I am getting the following Oracle error "maximum open cursors exceeded".
In a web application "weblogic 5.1 sp8, Oracle 8.06". I am explicitly closing the resultSet, the prepared statement and issuing a commit, but still the number of cursor and resources are not released.
What I am looking for
1. How can I relinquish DBMS resources?
2. Any idea on how to demarcate (start and end) a transaction?
Sometimes Oracle doesn't free up the resourses even though you are making sure to close connection, callable st & resultsets. For this you should call clearParameter() method after getting the resultset back. This method releases all the resources used by the current parameter values in the transaction. It's defined in the PreparedStatement interface. Try this if it works..
Didn't know about clearParameters() working...
In our projects, we discovered that Oracle doesn't close Oracle Cursors returned as parameter values. If you are using this to return multiple result sets, be sure to close them too.
did it work calling clearParameter ?
you didn't mention that you closed the connection too.
I assume you did.
I found it hard on a larger project to make sure this is
done correctly in _all_ cases. For once, make sure you
always close connections, statements and result sets in finally clauses. Otherwise you could easily run out of
Since your problem are cursors, the result sets are most
likely the problem.
Of course the maximum open cursors is a tunable parameter
in Oracle - it might well be that you have a legitimate need for additional cursors.
The Problem ur facing is b'coz of The OPen Cursor limit is Crossed the reason is Connection are not closed.To solce the problem u have to do...
1.Close every connection, Resultsets.
2.Go to Init.ora file (Oracle) then change the max_cursor_limit values default is 100 increased to desired value.