Connection Pooling and Exhausted Resultset
310047May 2 2003 — edited May 2 2003Hello!
I'm using 9.2.0.3 database and also JDBC driver for this database version.
I'm using connection pooling implemeted in oracle.jdbc.pool.OracleConnectionCacheImpl class, as it is shown at: http://www.csis.gvsu.edu/GeneralInfo/Oracle/java.920/a96654/connpoca.htm#1059543
From time to time I'm getting an error: java.sql.SQLException: Exhausted Resultset
(In 80% specifed select is working ok in 20% I'm recive above error.)
The error appears when the request to database takes more time, the select execution time on database side is a bit longer, about 4 minutes.
It's strange becouse I can start to porcess resultset I'm reading couple colums and then comes the error.
I use OracleConnectionCacheImpl.setLogWriter method to log what happend, the result is:
<-------- Start --------->
DRVR OPER OracleResultSetImpl.getString(columnIndex=1)
DRVR OPER OracleResultSetImpl.getString(columnIndex=2)
DRVR OPER OracleConnection.close()
DRVR OPER OracleResultSetImpl.getString(columnIndex=3)
DRVR OPER OracleResultSetImpl.getString(columnIndex=4)
DRVR OPER OracleResultSetImpl.getString(columnIndex=5)
DRVR OPER OracleResultSetImpl.getString(columnIndex=6)
DRVR OPER OracleResultSetImpl.getString(columnIndex=7)
DRVR OPER OracleResultSetImpl.getString(columnIndex=1)
DRVR OPER OracleResultSetImpl.getString(columnIndex=2)
DRVR OPER OracleResultSetImpl.getString(columnIndex=3)
DRVR OPER OracleResultSetImpl.getString(columnIndex=4)
DRVR OPER OracleResultSetImpl.getString(columnIndex=5)
DRVR OPER OraclePreparedStatement.sendBatch()
DRVR OPER OracleResultSetImpl.getString(columnIndex=6)
DRVR OPER OracleConnectionCacheImpl.getCacheInactivityTimeout(): returned 100
DRVR OPER OracleConnection.close()
DRVR OPER OracleConnection.close()
DRVR OPER OracleConnectionCacheImpl.getThreadWakeUpInterval(): returned 900
DRVR WARN DBError.findMessage(errNum, obj): returned Exhausted Resultset
DRVR OPER OracleConnection.close()
DRVR OPER OracleConnection.commit()
DRVR OPER OracleConnection.close()
DRVR OPER OracleConnection.close()
DRVR OPER OracleConnection.setAutoCommit(autoCommit=true)
<-------- End --------->
I'm think that the problem can be in closign connection, close before the error appear.
Maybe is't realated with "Inactivity timeout" or "Time to Live timeout". The times are set to 100 and 100.
Can anybody tell me what happes the error, how to solve the problem?