File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JDBC and the fly likes Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark ""Cannot get a connection" exception" Watch ""Cannot get a connection" exception" New topic
Author

"Cannot get a connection" exception

Luca Adamo
Greenhorn

Joined: Oct 10, 2009
Posts: 8
Hi everyone,

I'm developing a web-application using the JSF framework and I'm deploying it on a Apache Tomcat 6.0.18. The server is installed on a CentOS5 Linux server.

Sometime, apparently without any reason I get the following exception:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object

and the DB cannot be queried anymore (no more connections possible from my application). The only solutions is to restart Tomcat or the machine.


I'm handling user authentication through the Apache Tomcat DataSourceRealm method. My database is an Oracle XE and as a connector I'm using the one supplied by Oracle ojdbc14.jar.

I open connections to my DB with a JNDI Resource. The configuration (from context.xml) is the following one:



I'm closing every connection through a method that close every previously opened instance of the following classes: Connection, Statement, PreparedStatement, ResultSet. I tried also monitoring the number of connection opened at one time and they never overcome a total of 3.

The same happens with the Tomcat Server given in bundle with NetBeans 6.7.

Below a full stack-trace taken from the catalina.out log file.




Thanks for any help

Luca
Jan Cumps
Bartender

Joined: Dec 20, 2006
Posts: 2491
    
    8

I'm closing every connection through a method that close every previously opened instance of the following classes: Connection, Statement, PreparedStatement, ResultSet. I tried also monitoring the number of connection opened at one time and they never overcome a total of 3.
Recheck that code. The error shows that you are out of connections. Better close Connection, Statement, etc... in the proper place: immediately after use, in a final block.


OCUP UML fundamental and ITIL foundation
youtube channel
Luca Adamo
Greenhorn

Joined: Oct 10, 2009
Posts: 8
Jan Cumps wrote:
I'm closing every connection through a method that close every previously opened instance of the following classes: Connection, Statement, PreparedStatement, ResultSet. I tried also monitoring the number of connection opened at one time and they never overcome a total of 3.
Recheck that code. The error shows that you are out of connections. Better close Connection, Statement, etc... in the proper place: immediately after use, in a final block.



Actually I do close everything in the final block. I also tought that there must be an error somewhere, but I can't find it! :P so I was wondering if the reason could be different. I'll recheck my code. Thanks
Jan Cumps
Bartender

Joined: Dec 20, 2006
Posts: 2491
    
    8

Sagar Rohankar suggested to use the logAbandoned property to find leaks.
See this thread: http://www.coderanch.com/t/465105/JDBC/java/Inputs-needed-writing-tool-resolve
Luca Adamo
Greenhorn

Joined: Oct 10, 2009
Posts: 8
Jan Cumps wrote:Sagar Rohankar suggested to use the logAbandoned property to find leaks.
See this thread: http://www.coderanch.com/t/465105/JDBC/java/Inputs-needed-writing-tool-resolve


That seems quite interesting...i'll give a try...tahnks!
Luca Adamo
Greenhorn

Joined: Oct 10, 2009
Posts: 8
That logAbandoned property actually helped: I found the error; there was one, indeed. Thanks!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: "Cannot get a connection" exception
 
Similar Threads
Cannot get a connection, pool error Timeout waiting for idle object
A JTA EntityManager cannot use getTransaction()
cannot get connection, pool exhausted
Connection Problem in Linux Server
Getting "view could not be restored" error, has anyone seen this before?