You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Balazs Zsoldos (Updated) (JIRA)" <ji...@apache.org> on 2012/04/12 13:31:22 UTC

[jira] [Updated] (DBCP-356) ManagedDataSource doesn't work with an active transaction in progress on IBM JDK 6+

     [ https://issues.apache.org/jira/browse/DBCP-356?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Balazs Zsoldos updated DBCP-356:
--------------------------------

    Attachment: TransactionRegistry.java.patch
                TransactionRegistry.java.patch

I experienced this problem on JDK 1.6_30. I managed to solve it by applying the patch (not hacking equals or any other function just being sure that the same object is used during getting the XAResource from the weakhashmap)
                
> ManagedDataSource doesn't work with an active transaction in progress on IBM JDK 6+
> -----------------------------------------------------------------------------------
>
>                 Key: DBCP-356
>                 URL: https://issues.apache.org/jira/browse/DBCP-356
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.3, 1.4
>         Environment: IBM JDK 6
> java version "1.6.0"
> Java(TM) SE Runtime Environment (build pwa6460sr9fp1-20110208_03(SR9 FP1))
> IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Windows 7 amd64-64 jvmwa6460sr9-20110203_74623 (JIT enabled, AOT enabled)
> J9VM - 20110203_074623
> JIT  - r9_20101028_17488ifx3
> GC   - 20101027_AA)
> JCL  - 20110203_01
> commons-dbcp of version 1.3 / 1.4
>            Reporter: an envy guest
>              Labels: ibm, xaresource
>             Fix For: 1.3.1, 1.4.1
>
>         Attachments: TransactionRegistry.java.patch, TransactionRegistry.java.patch
>
>
> When using IBM JDK 6+ and trying to build commons-dbcp, these tests fail:
> org.apache.commons.dbcp.managed.TestBasicManagedDataSource
> org.apache.commons.dbcp.managed.TestManagedDataSourceInTx
> with error:
> java.sql.SQLException: Connection does not have a registered XAResource null, UserName=null, null
> 	at org.apache.commons.dbcp.managed.TransactionRegistry.getXAResource(TransactionRegistry.java:81)
> 	at org.apache.commons.dbcp.managed.TransactionContext.setSharedConnection(TransactionContext.java:88)
> 	at org.apache.commons.dbcp.managed.ManagedConnection.updateTransactionStatus(ManagedConnection.java:131)
> 	at org.apache.commons.dbcp.managed.ManagedConnection.<init>(ManagedConnection.java:55)
> 	at org.apache.commons.dbcp.managed.ManagedDataSource.getConnection(ManagedDataSource.java:76)
> 	at org.apache.commons.dbcp.managed.TestManagedDataSource.getConnection(TestManagedDataSource.java:53)
> 	at org.apache.commons.dbcp.TestConnectionPool.newConnection(TestConnectionPool.java:81)
> 	at org.apache.commons.dbcp.managed.TestManagedDataSourceInTx.testMaxActive(TestManagedDataSourceInTx.java:102)
> When used in conjunction with OpenEJB 3.1.4 examples, the error is the same.
> The problem disappears when switched to Oracle JDK 1.6.24 (so, all tests are passed and OpenEJB examples are working).
> I beleive this has something to do with differences in java.lang.ref.WeakReference implementations between IBM and Oracle JDKs, which was already discussed here:
> http://www.mail-archive.com/dev@commons.apache.org/msg13107.html

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira