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


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