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]

Reply via email to