aspose file tools*
The moose likes JDBC and the fly likes Getting Stale Connection using OracleDataSource with OCI driver - Please Help URGENT Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Getting Stale Connection using OracleDataSource with OCI driver - Please Help URGENT" Watch "Getting Stale Connection using OracleDataSource with OCI driver - Please Help URGENT" New topic
Author

Getting Stale Connection using OracleDataSource with OCI driver - Please Help URGENT

Caeser smith
Greenhorn

Joined: May 10, 2011
Posts: 5
Hi All,

I am getting stale connection error when there is no requests to the database from my java application for couple of hours.

Little background about my application:
Its a simple java application runned on Linux box with OCI (type driver). Dont ask me why OCI, why not thin. I am using OracleDataSource and OracleConnectionCacheManager for maintaining the cache of connection objects. Here is the code snippet:


The error is as follows:

ConnectionManager.java:getConnection:87 - Exception while getting Connection object:
java.sql.SQLException: Invalid or Stale Connection found in the Connection Cache
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.pool.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:390)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:404)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:189)

Please let me know what am i missing. I will be very thankful to you.

Many THanks
true friend




[added code tags]
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30293
    
150

Does the caller of this code close the connection when done with it?

Another possibility that your datasource is not sized correctly. Some datasources need the minimum size to zero or they hang on to open connections.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Caeser smith
Greenhorn

Joined: May 10, 2011
Posts: 5
Jeanne Boyarsky wrote:Does the caller of this code close the connection when done with it?

Another possibility that your datasource is not sized correctly. Some datasources need the minimum size to zero or they hang on to open connections.


Hi Jeanne,

Thanks for your reply.
The caller code is closing the connection object. I am pretty sure about it. After some research, i have found the same suggestion as you mentioned above(making the minimum size to zero).

I have talked to my DBA and according to him on the database, the connection objects are closed if they are idle for 30 mins. My pool minimum size is 1, hence if there is no requests to the DB for more than 30 mins, that connection object is becoming stale.

Having said that, I am still not able to understand the functionality of refreshCache(), why it is not refreshing the invalid connections.

Any comments on this will be appreciated. thanks
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Getting Stale Connection using OracleDataSource with OCI driver - Please Help URGENT