java jdbc and oracle - maximum open cursors exceeded
Joined: Dec 26, 2005
I have some jdbc code that is retrieving data from Oracle
In my method I use a Prepared statement
However I dont close the prepared statement
To test it I ran this in a loop and sure enough I got an exception :
"ORA-01000: maximum open cursors exceeded"
My question is in case of a managed environment ( code deployed on a J2EE applications erver using connection pools ) :
what happens to the application ?
will it never be able to fire any sql to the database unless the connection is closed / recycled ( assume that there is only 1 connection in the pool )
I am assuming as connections in pool are not really closed - so the oracle session will be alive
Joined: Jun 21, 2008
I think it depends on the pool configuration.
Most of the pools can be configured to validate if connection is erroneous by executing a validation query,
and in case of errors - the pool closes that connection and reopens a new one.
When the session is closed, oracle closes all cursors opened within this session.
Why don't you want to close statements ?