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

Jose Manuel Vivó Arnal edited comment on OFBIZ-5122 at 1/9/13 8:27 AM:
-----------------------------------------------------------------------

Hello Jacques,

Sorry about the patch. I will prepare a new one for trunk and the other 
releases.

This patch is just a port from the refereed in OFBIZ-2599 which should be 
applied to solve a DBCP memory-leak reported and solved in DBCP-294.

The main problem is:

* When a connection is created, a strong reference is stored in a 
_TransactionRegistry_ class, if _LocalXAConnectionFactory_ is used (as 
_DBCPConnectionFactory_ do).
* When this connection is removed from connection pool, _TransactionRegistry_ 
still contains the reference (no one remove it) and Garbage Collector can't 
collect it.
* So, every connection eviction the JDBC connection instances increases until a 
OutOfMemory is throw.

_PoolableManagedConnectionFactory_ creates a wrapper 
([PoolableManagedConnection|http://svn.apache.org/viewvc/commons/proper/dbcp/branches/DBCP_1_4_x_BRANCH/src/java/org/apache/commons/dbcp/managed/PoolableManagedConnection.java?view=markup])
 over each created connection instances that cleans TransactionRegistry 
connection reference after it is closed (into reallyClose method).

I didn't include this description because this problem was already reported in 
OFBIZ-2599. This issue is related to a missing 
[patch|https://issues.apache.org/jira/secure/attachment/12410582/patch-DBCPConneectionFactory.txt]
 application in resolution of that task.

Thanks.
                
      was (Author: jmvivo):
    Hello Jacques,

Sorry about the patch. I will prepare a new one for trunk and the other 
releases.

This patch is just a port from the refereed in OFBIZ-2599 which should be 
applied to solve a DBCP memory-leak reported and solved in DBCP-294.

The main problem is:

* When a connection is created, a strong reference is stored in a 
_TransactionRegistry_ class, if _LocalXAConnectionFactory_ is used (as 
_DBCPConnectionFactory_ do).
* When this connection is removed from connection pool, _TransactionRegistry_ 
still contains the reference (no one remove it) and Garbage Collector can't 
collect it.
* So, every connection eviction the JDBC connection instances increases until a 
OutOfMemory is throw.

_PoolableManagedConnectionFactory_ creates a wrapper 
([PoolableManagedConnection|http://svn.apache.org/viewvc/commons/proper/dbcp/branches/DBCP_1_4_x_BRANCH/src/java/org/apache/commons/dbcp/managed/PoolableManagedConnection.java?view=markup])
 over each created connection instances that cleans TransactionRegistry 
connection reference after it is closed (into reallyClose method).

I didn't include this description because this problem was already reported in 
OFBIZ-2599. This issue is related to a missing 
[patch|https://issues.apache.org/jira/secure/attachment/12410582/patch-DBCPConneectionFactory.txt]
 application in resolution of that task.

                  
> Memory leak due to transaction management using DBCP and MySQL
> --------------------------------------------------------------
>
>                 Key: OFBIZ-5122
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-5122
>             Project: OFBiz
>          Issue Type: Bug
>          Components: framework
>    Affects Versions: Release 09.04, Release 09.04.01, Release 10.04
>         Environment: Linux, MySQL 5.5.28
>            Reporter: Jose Manuel Vivó Arnal
>            Priority: Critical
>         Attachments: DBCPConnectionFactory-patch.txt
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> After several hours looking for the memory-leak, we found than the problem is 
> the very same that OFBIZ-2599
> This issue has a patch file attached for DBCPConnectionFactory class 
> (patch-DBCPConneectionFactory.txt) which is not applied to specified versions.
> We check that this patch solves the problem.
> Please, apply this patch.
> Thank you in advance.
> --
> Jose Manuel Vivó Arnal
> DiSiD Technologies (http://www.disid.com)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to