commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Balazs Zsoldos (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DBCP-417) BasicManagedDataSource does not free connection after transaction is commited
Date Wed, 16 Apr 2014 20:42:14 GMT
Balazs Zsoldos created DBCP-417:
-----------------------------------

             Summary: BasicManagedDataSource does not free connection after transaction is
commited
                 Key: DBCP-417
                 URL: https://issues.apache.org/jira/browse/DBCP-417
             Project: Commons Dbcp
          Issue Type: Bug
    Affects Versions: 2.0
         Environment: Geronimo TM and JOTM, H2Database JDBC Driver
            Reporter: Balazs Zsoldos
            Priority: Blocker


When a JTA Transaction is commited, the Managed connection is not available again. The pool
is becomes exhausted.

To reproduce:

{code:java}
            Jotm jotm = new Jotm(true, false);
            JdbcDataSource h2DataSource = new JdbcDataSource();
            h2DataSource.setUrl("jdbc:h2:mem:test_mem");
            BasicManagedDataSource basicManagedDataSource = new BasicManagedDataSource();
            basicManagedDataSource.setTransactionManager(jotm.getTransactionManager());
            basicManagedDataSource.setXaDataSourceInstance(h2DataSource);
            basicManagedDataSource.setMaxTotal(2);
            basicManagedDataSource.setMaxIdle(2);

            UserTransaction userTransaction = jotm.getUserTransaction();
            userTransaction.begin();
            Connection connection = basicManagedDataSource.getConnection();
            connection.close();
            userTransaction.commit();

            userTransaction.begin();
            connection = basicManagedDataSource.getConnection();
            connection.close();
            userTransaction.rollback();

            // The managed datasource will block here as there is no available connection
            userTransaction.begin();
            connection = basicManagedDataSource.getConnection();
            connection.close();
            userTransaction.commit();
{code}

Set the priority to Blocker as BasicManagedDataSource cannot be used at all with the bug.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message