PDA

Ver la Versión Completa : Error en JCO


ekim68
26/10/10, 17:15:50
Hola compañeros, me preguntaba si alguno de ustedes ha realizado interfaces con el Java Connector, debido a que en la empresa no se han decidido por el Modulo de PI, solicitarón dos RFC para una aplicación web en JAVA.

Se desarrollaron las interfaces y los prgramas en Java, se probaron y funcionaban bien.

Se les proporcionaron a los desarrolladores de la aplicación web y al integrarla con sus aplicación comentan que despues de 6 u 8 ejecuciones la aplicación manda el siguiente error:

Error 500: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [sapjcorfc (Library is already loaded in another ClassLoader)].
java.library.path [C:\Archivos de programa\IBM\SDP\runtimes\base_v61\java\jre\bin;.;C:\Archivos de programa\IBM\SDP\runtimes\base_v61\bin;
C:\Archivos de programa\IBM\SDP\runtimes\base_v61\java\bin;C:\Archivos de programa\IBM\SDP\runtimes\base_v61\java\jre\bin;C:\WINDOWS\system32;
C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Archivos de programa\Diskeeper Corporation\Diskeeper\;C:\Archivos de programa\IBM\Trace Facility\;
C:\Archivos de programa\IBM\Personal Communications\;C:\ARCHIV~1\IBM\SQLLIB\BIN;C:\ARCHIV~1\IBM\SQLLIB\FUNCTION;
C:\ARCHIV~1\IBM\SQLLIB\SAMPLES\REPL;E:\QTSystem\;C:\Archivos de programa\QuickTime\QTSystem\;
C:\Archivos de programa\IBM\SDP\runtimes\base_v61\profiles\was61profile1\bin;C:\Archivos de programa\Windows Imaging\;
C:\amustieles\proyectos\villacero\winXPversionDelJar2;C:\Archivos de programa\IBM\SDP\runtimes\base_v61\lib\WMQ\java\lib]


tienen que reiniciar el servidor de aplicación para que vuelva a funcionar su aplicación web, alguno sabe algo al respecto?

Busque información pero generalmente el error es lanzado cada vez que se integra una nueva aplicación web que use librearías Dll.

El ambiente es Windows XP con servidor de aplicación Websphere 6.1.

Gracias.

Athlit
28/10/10, 15:55:22
Hola ekim68,
eso te pasa porque en la clase donde haces la conexion, tienes configurado un pool de conexiones (que por defecto está a 5), cuando superas estas 5 conexiones (consultas por ejemplo), has llegado al máximo y te salta el error.

Tienes dos opciones:
1.- Cambiar ese parametro a 6000 o el número que quieras (lo cual es algo "guarrillo")
2.- Cada vez que haces una conexión, limpiar el pool de conexiones. Ésto es más limpio y de echo, lo correcto.

Te recomiendo la segunda.

Un saludo.

ekim68
28/10/10, 22:33:42
Hola Athlit, gracias por la pronta respuesta, checando lo que me comentas acerca del pool de conexiones veo que utilice la versión 2.9 del Java Connector el cúal no utiliza pool de conexiones, te digo ésto por que realice las mismas interfaces con la versión 3 del java connector pero el problema surge con la interface que utiliza la versión 2.9.

No se si tenga que ver algo con el tipo de servidor de aplicación que se esta utilizando.

Muchas Gracias.

Athlit
29/10/10, 07:24:07
Hola ekim68,
yo uso JCO2.
Después de cada conexión con la BAPI, ejecuta el método freePOOL().

Un saludo!

ekim68
29/10/10, 14:25:53
Lo voy a probar Athlit, excelente, muchas gracias.

Athlit
29/10/10, 16:12:00
ekim68,
si no tuvieras el metodo freePOOL(), ejecuta después de cada conexión esto:

JCO.releaseClient(Tuconexion);

Un saludo!