WebLogic and WSL: modwsl.dll already loaded in another class

Could someone explain this exception and a way to solve it?

Nested Exception (com.softwareag.tamino.db.api.invocation.TInvocationException, tag: $Name: JavaTaminoAPI_2_1_0_39 $) stacktrace:

Native Library C:\Program Files\Common Files\Software AG\modwsl.dll already loaded in another classloader
at com.softwareag.tamino.db.api.invocation.wsl.WSL.(Unknown Source)
at com.softwareag.tamino.db.api.invocation.wsl.TWSLInvocation.(Unknown Source)
at com.softwareag.tamino.db.api.invocation.wsl.TWSLInvocation.(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Native Method)
at com.softwareag.tamino.db.api.invocation.TInvocationFactory.newInvocation(Unknown Source)
at com.softwareag.tamino.db.api.invocation.TInvocationFactory.newInvocation(Unknown Source)
at com.softwareag.tamino.db.api.connection.TConnectionFactory.newConnection(Unknown Source)
at com.softwareag.tamino.db.api.connector.spi.TaminoManagedConnection.(Unknown Source)
at com.softwareag.tamino.db.api.connector.spi.AbstractConnectionFactory.createManagedConnection(Unknown Source)
at weblogic.connector.common.internal.ConnectionPool.makeResources(ConnectionPool.java:994)
at weblogic.connector.common.internal.ConnectionPool.getConnection(ConnectionPool.java:1768)
at weblogic.connector.common.internal.ConnectionPoolManager.getConnection(ConnectionPoolManager.java:177)
at weblogic.connector.common.internal.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:25)
at com.softwareag.tamino.db.api.connector.TaminoDataSourceImpl.getConnectionHandle(Unknown Source)
at com.softwareag.tamino.db.api.connector.TaminoDataSourceImpl.getConnection(Unknown Source)
at nl.schiphol.ciss.database.base.AbstractSessionBean.getWslConnectionWithProtectedLock(AbstractSessionBean.java:69)
at testwsl.WslTestBean.getFlightByWslJca(WslTestBean.java:69)
at testwsl.WslTestBean_ghi82m_EOImpl.getFlightByWslJca(WslTestBean_ghi82m_EOImpl.java:96)
at testwsl.Test.test(Test.java:100)
at testwsl.TestWslServlet.doGet(TestWslServlet.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1058)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:401)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5412)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:744)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3086)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
javax.resource.spi.ResourceAllocationException: CreateManagedConnection Error: Server not available.
NestedException:Native Library C:\Program Files\Common Files\Software AG\modwsl.dll already loaded in another classloader
at weblogic.connector.common.internal.ConnectionPool.makeResources(ConnectionPool.java:1001)
at weblogic.connector.common.internal.ConnectionPool.getConnection(ConnectionPool.java:1768)
at weblogic.connector.common.internal.ConnectionPoolManager.getConnection(ConnectionPoolManager.java:177)
at weblogic.connector.common.internal.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:25)
at com.softwareag.tamino.db.api.connector.TaminoDataSourceImpl.getConnectionHandle(Unknown Source)
at com.softwareag.tamino.db.api.connector.TaminoDataSourceImpl.getConnection(Unknown Source)
at nl.schiphol.ciss.database.base.AbstractSessionBean.getWslConnectionWithProtectedLock(AbstractSessionBean.java:69)
at testwsl.WslTestBean.getFlightByWslJca(WslTestBean.java:69)
at testwsl.WslTestBean_ghi82m_EOImpl.getFlightByWslJca(WslTestBean_ghi82m_EOImpl.java:96)
at testwsl.Test.test(Test.java:100)
at testwsl.TestWslServlet.doGet(TestWslServlet.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1058)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:401)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5412)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:744)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3086)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
<18-jun-03 12:16:53 CEST> <190006>

Thanks,

Django

Hi Django,
what were you doing when the described exception occured? I am aware of such a behaviour if two WebDAV stores that are using WSL are configured at the same time. I.e. up to now you should only use one WSL enabled WebDAV store or catch the exception.
Regards,
Gerald


Gerald Ristow
Tamino R&D

Hi Gerald,

I’m not using WebDAV at all. I just have an EAR with (among others) an EJB jar and a Tamino RAR. This works fine using http as taminoURL but yields this stacktrace when using wsl as taminoURL.

Django

Hi Django,
I think your Exception has to do with a well-known “feature” of the JVM, please see http://forum.java.sun.com/thread.jsp?thread=70530&forum=37&message=179229
or
http://www.websphere-world.com/modules.php?name=News&file=article&sid=657.
In short: You have to move the TaminoAPI4J.jar file from your application library directory to the library directory of the webserver. I only know how to do this for Tomcat, though.
Hope that helps, please let me.
Cheers,
Gerald


Gerald Ristow
Tamino R&D