Hi,
we are getting the following error using jdbclogds (1.0.5) proxy configured in
Wildfly/Jboss 8.1 for an
Oracle xa-datasource:
12:35:38,115 ERROR [stderr] (EJB default - 1) Caused by: javax.resource.ResourceException: Could not create connection.....
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "javax/transaction/xa/XAResource"
at java.lang.Class.getDeclaredMethods0(Native Method) [rt.jar:1.7.0_60]
at java.lang.Class.privateGetDeclaredMethods(Class.java:2570) [rt.jar:1.7.0_60]
at java.lang.Class.privateGetPublicMethods(Class.java:2690) [rt.jar:1.7.0_60]
at java.lang.Class.getMethods(Class.java:1467) [rt.jar:1.7.0_60]
at sun.misc.ProxyGenerator.generateClassFile(ProxyGenerator.java:426) [rt.jar:1.7.0_60]
at sun.misc.ProxyGenerator.generateProxyClass(ProxyGenerator.java:323) [rt.jar:1.7.0_60]
at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:671) [rt.jar:1.7.0_60]
at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:591) [rt.jar:1.7.0_60]
at java.lang.reflect.WeakCache$Factory.get(WeakCache.java:244) [rt.jar:1.7.0_60]
at java.lang.reflect.WeakCache.get(WeakCache.java:141) [rt.jar:1.7.0_60]
at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:454) [rt.jar:1.7.0_60]
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:736) [rt.jar:1.7.0_60]
at org.jdbcdslog.XAConnectionLoggingProxy.wrap(XAConnectionLoggingProxy.java:10)
at org.jdbcdslog.DataSourceProxyBase.getXAConnection(DataSourceProxyBase.java:126)
at org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXAManagedConnection(XAManagedConnectionFactory.java:497)
... 105 more
The oracle driver is registered as an Jboss/Wildfly module:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
<resources>
<resource-root path="com.oracle.ojdbc6-11.2.0.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api">
</dependencies>
</module>
jdbcdslog is also registed as an jboss module:
<module xmlns="urn:jboss:module:1.1" name="org.jdbcdslog">
<resources>
<resource-root path="jdbcdslog-1.0.5.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="org.slf4j"/>
<module name="com.oracle.ojdbc6" optional="true"/>
<!-- TODO: add other database modules as other optional dependencies like h2 -->
</dependencies>
</module>
Problem seems to be related that the XAResource class is loaded/used from two differenent classloaders/locations:[Loaded
javax.transaction.xa.XAResource from
jar:file:/C:/wildfly-8.1.0.Final/modules/system/layers/base/javax/transaction/api/main/j
boss-transaction-api_1.2_spec-1.0.0.Final.jar!/]
and
[Loaded javax.transaction.xa.XAResource from C:\Program Files\Java\jdk1.7.0_60\jre
\lib\rt.jar]Any ideas what could be the problem and how to fix this?
Kind regards
Sebastian