Yes, David, you were right. The same behavior we got with direct JDBC access. Our database server is Oracle 10.2.0.2.0 and we use thin JDBC driver with the same version. Our JAVA environment is 1.5. Tomcat version 5.5.17. There are no firewalls between Tomcat and Oracle (direct LAN connection).
Currently we do not have a right solution to deal with the connections which were in processing (getting the result set) when database goes down. Those connections stays forever busy in the pool, and could not be reused, as well as Tomcat thread which executed the statement to a connection. Note that when database is not accessable, before executing the statement, will not produce any "busy" connection in the pool and never-ending Tomcat thread, since they will be auto removed by validatonQuery (DBCP parameter). We performed the similar tests with Oracle8i (8.1.7) and thin JDBC driver for this Oracle version and got the same results. Customer does not anymore claim this problem as a big issue, since other applications installed there (developed by different companies) share the same problem. We hope that DB server will be always awailable... and that our application will not be on a heavy load in the same time when DB server "suddenly" goes down. Thank you for your answers. BR, Drazen -----Original Message----- From: David Smith [mailto:[EMAIL PROTECTED] Sent: 22 March 2007 18:01 To: Tomcat Users List Subject: Re: Connections in tomcat resource "in busy" state forever At the point you say this is stalling, we aren't dealing with tomcat code (or even DBCP code). The issue appears to be between your jdbc driver and the database server. You'd probably experience the exact same behavior with the same query in a console java app w/o database pooling. Have you checked with the db vendor for any known issues in your jdbc driver or database service? Also what is the database server doing at the moment this occurs? Are there any firewalls or other network issues that might bring this on between tomcat and the db server? --David Drazen Nikolic wrote: >Thank you Mark for answering. > >We are still experiencing the problems: when database becomes >unavailabe, in exact time after CallableStatement.execute() is finished >(executed) and when we start retrieving the records sets from called >stored procedure, thread is never passing the line statement.getObject() (we saw that in debuger). >Here is the part of the source code: > >for (int i = 1; i <= outParametersCount; i++) { > resultSet = (ResultSet) statement.getObject(inputParameterCount + i); > resultSetList.add(resultSet); > resultVector.add(packResultData(resultSet, true)); } > >Do anyone have a clue why this happen? > >NOTE: We're using tomcat resouce datasouce to access database. > >BR, >Drazen > >-----Original Message----- >From: Mark Thomas [mailto:[EMAIL PROTECTED] >Sent: 22 March 2007 00:48 >To: Tomcat Users List >Subject: Re: Connections in tomcat resource "in busy" state forever > >Drazen Nikolic wrote: > > >>Is there a possibility to remove those connection, or to threat them >>somehow not be become busy forever? >> >> > >Configuring a time-out (to close them if they are open too long) and a >validation query (to fix any connections broken when the db goes down) >should help. > >Mark > >--------------------------------------------------------------------- >To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, >e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]