[ https://issues.apache.org/jira/browse/DBCP-355?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phil Steitz closed DBCP-355. ---------------------------- > DataSourceXAConnectionFactory does not store the XAConnection > ------------------------------------------------------------- > > Key: DBCP-355 > URL: https://issues.apache.org/jira/browse/DBCP-355 > Project: Commons Dbcp > Issue Type: Bug > Affects Versions: 1.3, 1.4 > Environment: MysqlXADataSource passed to BasicManagedDataSource > Reporter: Clement Pang > Fix For: 1.5.1, 2.0 > > Attachments: DBCP-355.diff > > > We have been diagnosing a leak with DBCP and XA mySQL and discovered that the > mySQL driver expects close() to be invoked on the XAConnection obtained from > xaDataSource.getXAConnection() instead of the java.sql.Connection returned by > xaConnection.getConnection(); > The following code snippet in DataSourceXAConnectionFactory illustrates how > the XAConnection is lost: > public Connection createConnection() throws SQLException { > // create a new XAConection > XAConnection xaConnection; > if (username == null) { > xaConnection = xaDataSource.getXAConnection(); > } else { > xaConnection = xaDataSource.getXAConnection(username, password); > } > // get the real connection and XAResource from the connection > Connection connection = xaConnection.getConnection(); > XAResource xaResource = xaConnection.getXAResource(); > // register the xa resource for the connection > transactionRegistry.registerConnection(connection, xaResource); > return connection; > } > In the code snippet above, the XAConnection is basically discarded after > using it to obtain the java.sql.Connection and XAResource. It would be ideal > if it actually associates the XAConnection in the transactionRegistry as well > so that when PooledManagedConnection handles reallyClose(), it can also > invoke close() on the XAConnection by interrogating the TransactionRegistry > for the actual XAConnection to close. > This may be something that's mySQL specific. -- This message was sent by Atlassian JIRA (v6.2#6252)