We have a lot of PLSQL in our system, with ref cursors in some of them. After we switched from "New connection for every request" to Session Pool, I notice the problem - ref cursors still remain unclosed in DB-server, even after we close cursor or release the connection. The stored procedures called with "Cursor.callproc" method. Some of this procedures were called from Java code and everything went flawless.
I also find thread on mailing-list similar to this issue: http://sourceforge.net/p/cx-oracle/mailman/message/27028242/
This is very similar to what I've see now: An increasing number of open cursors in the DB server, which remain open until we close the connection. The problem is reproduced on both cx_Oracle 5.1.3 and 5.1.2 versions ( Debian Linux 32&64bit ).
Our Oracle DB-server version: Oracle Database 11g Enterprise Edition Release 22.214.171.124.0 - 64bit Production
- ii oracle-instantclient11.2-basic 126.96.36.199.0-2 i386 Instant Client for Oracle Database 11g
- ii oracle-instantclient11.2-devel 188.8.131.52.0-2 i386 Development headers for Instant Client.
- ii oracle-instantclient11.2-jdbc 184.108.40.206.0-2 i386 Supplemental JDBC features for the Oracle Instant Client
- ii oracle-instantclient11.2-sqlplus 220.127.116.11.0-2 i386 SQL*Plus for Instant Client.
||/ Name Version Architecture Description +++-===================-==============-==============-===========================================
- ii cx-oracle 5.1.2-2 amd64 Python interface to Oracle
- ii oracle-instantclien 18.104.22.168.0-2 amd64 Instant Client for Oracle Database 11g
- ii oracle-instantclien 22.214.171.124.0-2 amd64 SQL*Plus for Instant Client.
I would appreciate any assistance that will help track down the cause of the problem. Thank you!