File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

"Cannot get a connection" exception

 
Luca Adamo
Greenhorn
Posts: 8
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 2576
11
C++ Linux Netbeans IDE
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Luca Adamo
Greenhorn
Posts: 8
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 2576
11
C++ Linux Netbeans IDE
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 8
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 8
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That logAbandoned property actually helped: I found the error; there was one, indeed. Thanks!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic