RE: Tracking Datasource Connection Usage?

2005-10-07 Thread JWM
Brian and others,

Good information.  Thanks.  What happens with result sets if they don't get
closed?  Do they live on forever as memory leaks, or do they get cleaned up
by GC when the object referencing them goes out of scope?  If a result set
is left open, does it prevent the connection from getting successfully
closed?

Thx.

JWM

-Original Message-
From: Brian Cook [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 07, 2005 3:38 PM
To: Tomcat Users List
Subject: Re: Tracking Datasource Connection Usage?

JWM wrote:

Two things you can do here.

1. Set both removeAbandoned and logAbandoned  parameters to 
true.  This will reclaim most lost connections.  And log a trace of what 
code called a connection that was never closed.

 2.  Use a finally block to close all of your Resultsets and 
connections.  This will insure they are closed even if your code throws 
an exception.

Example :

ResultSet rs = null;
Connection con  = null;
try {




}
catch(Exception e) {

}
finally {
rs.close();
con.close();
}

I started getting exceptions saying no connections were available on my
JDBC
datasource  (org.gjt.mm.mysql.Driver).  The pool was definitely large
enough
to handle the load.  So it appears that I'm not freeing the all the
connections as I should.  I noticed that I did not have the
'removeAbandoned' flag set on the Resource tag.  Changing that has
apparently fixed the out of connections problem.  But I really want to
clean
up the code and fix it the right way.  I've got the close() statements in
place.  But obviously, I'm missing some of them somewhere.  Is there any
process for logging/tracking allocating and freeing connections (and
absence
thereof.), available connections, etc?  Or are there any methods I can call
to give me this type of debug info?  What's the recommended way to debug
this?

Thanks.

JWM



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


  



-- 
Brian Cook
Digital Services Analyst
Print Time Inc.
[EMAIL PROTECTED]
913.345.8900 




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Tracking Datasource Connection Usage?

2005-10-06 Thread JWM
I started getting exceptions saying no connections were available on my JDBC
datasource  (org.gjt.mm.mysql.Driver).  The pool was definitely large enough
to handle the load.  So it appears that I'm not freeing the all the
connections as I should.  I noticed that I did not have the
'removeAbandoned' flag set on the Resource tag.  Changing that has
apparently fixed the out of connections problem.  But I really want to clean
up the code and fix it the right way.  I've got the close() statements in
place.  But obviously, I'm missing some of them somewhere.  Is there any
process for logging/tracking allocating and freeing connections (and absence
thereof.), available connections, etc?  Or are there any methods I can call
to give me this type of debug info?  What's the recommended way to debug
this?

Thanks.

JWM



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]