commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clement Pang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DBCP-327) XAConnection is not closed
Date Mon, 16 May 2011 23:38:47 GMT

    [ https://issues.apache.org/jira/browse/DBCP-327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13034426#comment-13034426
] 

Clement Pang commented on DBCP-327:
-----------------------------------

Not sure what's the workaround stated in the description is (other than to not use DBCP).
Basically, one cannot use XA mySQL connections with DBCP if this bug is not fixed (since connections
will never be closed properly).

> XAConnection is not closed
> --------------------------
>
>                 Key: DBCP-327
>                 URL: https://issues.apache.org/jira/browse/DBCP-327
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.4
>         Environment: MySQL Connector/J 5.1.12; JOTM 2.1.9; propesed solution is tested
with Derby 10.5.3.0_1 as well
>            Reporter: Sergey Vladimirov
>            Priority: Minor
>              Labels: connection, leak, mysql, transactions, xa
>             Fix For: 1.3.1
>
>         Attachments: MySQL and DBCP.zip
>
>   Original Estimate: 8h
>  Remaining Estimate: 8h
>
> After creation of connection in DataSourceXAConnectionFactory::createConnection() the
instance of XAConnection is ready to be garbage collected. But in MySQL Connector/J this instance
holds the real physiscal connection to MySQL server. Thus, simple test case (in attach) opens
2 connections to server and the first one can be considered as "leak".
> The possible solution is to close "parent" XA connection as soon as "child" Connection
is closed as well. Due to compatibility issues it may be an option for BasicManagerDataSource.
However, Derby seems okay with both variants (according to my test cases with JOTM/Hibernate/Derby/DBCP(+-patch))
> In the attachment - "manual" test case, since i don't know how to count real MySQL connection
number in runtime. When BasicManagedDataSource is used (change it at ~43) we can create breakpoint
at line "connection.close();" (~115). According to MySQL Administrator there are 2 connections,
but according to pool - only one. If BasicManagedDataSourceXAClose is used - first connection
correclty closed.
> This issue created serious problems in out production system, but, due to existing workaround
(replace BasicManagedDataSource and DataSourceXAConnectionFactory) priority is minor.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message