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

Phil Steitz commented on DBCP-352:
----------------------------------

The fix that I suggested for DBCP-330 should resolve this as well.  I would 
appreciate review and comments on the fix proposed there.

> Repeated calls to getMetadata in a transaction leads to performance 
> degredation
> -------------------------------------------------------------------------------
>
>                 Key: DBCP-352
>                 URL: https://issues.apache.org/jira/browse/DBCP-352
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.4
>         Environment: PostgreSQL, MySQL, JDK 1.6
>            Reporter: Derek Hulley
>            Priority: Critical
>         Attachments: DBCPMetadataTest.zip
>
>
> During long-running transactions that utilize conditional logic based on the 
> database metadata, it is possible to get thousands of calls to 
> Connection.getMetaData.  An ArrayList is built up containing objects which 
> are never removed (this is the cause of DBCP-330).  However, the array is 
> shared with all other PreparedStatements, so the array scan and modification 
> time keeps rising as the transaction progresses.
> I will attempt to attach an Eclipse project; profiling (or even a few 
> JStacks) will show that most of the time is spent scanning the cluttered and 
> growing array for objects to remove.

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

        

Reply via email to