Ok.  Thanks.  I'll redefine the execute method in my subclass.  I'm using a connection 
pool, so 
that would be the way to go.

On Fri, 5 Sep 2003 14:23:15 -0700, Charles Hudak wrote:

>Actually, if you look at the code, the connection is closed in the finalize
>method, not after every call to the execute method so the connection will
>only be closed when the object is GC'd. The code is actually fairly fragile
>in that if the connection times out (and is summarilly closed), the appender
>will never reopen the connection and all further log events will fail.
>
>From the comments, it looks like JDBCAppender is a SIMPLE implementation
>(read reference implementation) that is designed to be subclassed to provide
>better functionality (e.g. using connection pooled DataSources in a webapp).
>
>-----Original Message-----
>From: Milind Rao [mailto:[EMAIL PROTECTED]
>Sent: Friday, September 05, 2003 14:09
>To: [EMAIL PROTECTED]
>Subject: Bug in JDBCAppender
>
>
>There is a bug in JDBCAppender's execute method.  If there is a
>SQLException, the connection is not 
>closed.  The best place to close a connection/statement is in "finally".
>What's happening now, is 
>I'm getting a connection leak every time an SQL exception happens.
>
>BTW, the log also gets lost.  Shouldn't the fallback handler kick in here?
>
>
>
>Regards
>Milind
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>



Regards
Milind



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

Reply via email to