Previously our application was using following setting with DBCP 1.2.1
And in the oracle DB around 30 open cursors were found during high load.
But when we upgrade DBCP version to 1.3 even during normal load conditions the number of open cursors keeps on increasing and reaches up to the maximum allowed limit (i.e. 1000 cursors per connection). It results an exception "nested exception is java.sql.SQLException: ORA-01000: maximum open cursors exceeded". After this exception no DB query is processed.
Same problematic behavior is noticed with DBCP 1.4.
When poolPreparedStatements is set to false the number of maximum open cursors never goes beyond 6 (in all DBCP versions 1.2.1/1.3/1.4)