geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cristian Roldan <roldan...@yahoo.com.ar>
Subject Re: Issue attempting to deploy second DB2 Datasource
Date Thu, 20 Apr 2006 07:44:04 GMT
Hi All,
         I had this problem using native library (DLL/.a), I could fix it using the same classloader
for all the enterprise applications (EAR) or using differents JVM (proccess), it depends on
Application Server vendor.
   
  Bye.
  

Matt Hogstrom <matt@hogstrom.org> escribió:
  Fran,

I think the problem is related to the fact that the DLL can only be loaded once per process
and is 
associated to a classloader that is not accessible to the second instance for a variety of
reasons. 
Here is a link that provides some insight as to the restriction:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4225434

excerpt from the above link "A native library can not be loaded into two live ClassLoaders
objects
at the same time and the reasoning for this is obvious -- native code
that caches JNI IDs will get wrong answers. The long term fix for
this is a way for the native library to tell the VM (on JNI_OnLoad)
that it is multiple-ClassLoader safe. That would be an RFE."

Unless you must use the Type 2 Driver I recommend you move to the DB2 JCC Type 4 driver and
all 
these problems will go away (of course I'm sure there will be several other new ones as well
:)

Matt

Fran Varin wrote:
> One thing that I did not discuss is the exeption that we are seeing. It
> appears that the error is that Geronimo is trying to launch the .dll file
> that backs the type 2 driver a second time. 
> 
> There must be a way to define multiple databases to a pool or to perhaps
> define multiple pools. However, it is very frustrating to not get connected
> with the documentation that explains it. 
> 
> Here is the stack trace that we receive: 
> 
> 11:25:45,739 ERROR [GBeanInstanceState] Error while starting; GBean is now
> in the FAILED state:
> objectName="geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResource=user/database-pool-BLUEGDB/1/car,j2eeType=JCAManagedConnectionFactory,name=BLUEGDB"
> java.sql.SQLException: java.lang.UnsatisfiedLinkError: Native Library
> C:\Program Files\SQLLIB\bin\db2jdbc.dll already loaded in another
> classloader
> at COM.ibm.db2.jdbc.app.DB2Driver.(Unknown Source)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
> at java.lang.Class.newInstance0(Class.java:306)
> at java.lang.Class.newInstance(Class.java:259)
> at org.tranql.connector.jdbc.JDBCDriverMCF.setDriver(JDBCDriverMCF.java:145)
> at
> org.tranql.connector.jdbc.JDBCDriverMCF$$FastClassByCGLIB$$81f38179.invoke()
> at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
> at
> org.apache.geronimo.gbean.DynamicGBeanDelegate$Operation.invoke(DynamicGBeanDelegate.java:181)
> at
> org.apache.geronimo.gbean.DynamicGBeanDelegate.setAttribute(DynamicGBeanDelegate.java:134)
> at
> org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper.setAttribute(ManagedConnectionFactoryWrapper.java:254)
> at
> org.apache.geronimo.gbean.runtime.GBeanAttribute$DynamicSetterMethodInvoker.invoke(GBeanAttribute.java:430)
> at
> org.apache.geronimo.gbean.runtime.GBeanAttribute.setValue(GBeanAttribute.java:403)
> at
> org.apache.geronimo.gbean.runtime.GBeanAttribute.inject(GBeanAttribute.java:334)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:925)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:537)
> at
> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:208)
> at
> org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(Configuration.java:315)
> at
> org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke()
> at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
> at
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
> at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
> at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
> at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:173)
> at
> org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(ConfigurationManagerImpl.java:142)
> at
> org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke()
> at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
> at
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
> at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
> at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
> at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:125)
> at
> org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke()
> at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
> at
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
> at
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
> at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
> at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
> at
> org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke(MBeanServerDelegate.java:117)
> at
> mx4j.remote.rmi.RMIConnectionInvoker.invoke(RMIConnectionInvoker.java:219)
> at sun.reflect.GeneratedMethodAccessor335.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:34)
> at
> mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain(RMIConnectionSubjectInvoker.java:99)
> at
> mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000(RMIConnectionSubjectInvoker.java:31)
> at
> mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run(RMIConnectionSubjectInvoker.java:90)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:499)
> at mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:163)
> at
> mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke(RMIConnectionSubjectInvoker.java:86)
> at
> mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke(RMIConnectionSubjectInvoker.java:80)
> at $Proxy0.invoke(Unknown Source)
> at
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:221)
> at sun.reflect.GeneratedMethodAccessor335.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
> at sun.rmi.transport.Transport$1.run(Transport.java:148)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
> at java.lang.Thread.run(Thread.java:536)
> --
> View this message in context: http://www.nabble.com/Issue-attempting-to-deploy-second-DB2-Datasource-t1469616.html#a3989589
> Sent from the Apache Geronimo - Users forum at Nabble.com.
> 
> 
> 
> 


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
Mime
View raw message