[
https://issues.apache.org/jira/browse/DBCP-352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Phil Steitz closed DBCP-352.
----------------------------
> 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.2.2, 1.3.1, 1.4
> Environment: PostgreSQL, MySQL, JDK 1.6
> Reporter: Derek Hulley
> Priority: Critical
> Fix For: 1.3.1, 1.4.1
>
> Attachments: DBCPMetadataTest.zip, commons-dbcp-1.4-patched.diff
>
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)