We are already using JDBCAppender Could you please elaborate more on the plans for JDBCAppender ? When is to be removed ? Any replacement ?
Thanks, Ema -----Original Message----- From: Ceki Gülcü [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 12, 2003 10:11 AM To: Log4J Developers List Subject: Re: JDBCAppender memory leak issue JDBCAppender is likely to be removed. At 10:04 12.02.2003 -0500, you wrote: >How long does something like this typically take to resolve? ... and does it >mean going to a version greater than 1.2.7? >I apologize for my newness to this process. > >We're intended to use the JDBC appender and this could obviously be >problematic. > >Mike > > > > >-----Original Message----- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >Sent: Wednesday, February 12, 2003 9:59 AM >To: [EMAIL PROTECTED] >Subject: DO NOT REPLY [Bug 16998] New: - JDBCAppender leaks memory > > >DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG >RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT ><http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16998>. >ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND >INSERTED IN THE BUG DATABASE. > >http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16998 > >JDBCAppender leaks memory > > Summary: JDBCAppender leaks memory > Product: Log4j > Version: 1.2 > Platform: Other > OS/Version: Other > Status: NEW > Severity: Normal > Priority: Other > Component: Appender > AssignedTo: [EMAIL PROTECTED] > ReportedBy: [EMAIL PROTECTED] > > >The class org.apache.log4j.jdbc.JDBCAppender in Log4j 1.2.7 (and probably >earlier too) leaks memory. In the method flushBuffer() values are added to >the >ArrayList removes (removes.add(logEvent)), but this ArrayList is never >cleared >or values removed. After some time this will end up with an >OutOfMemoryError. >In my example of flushBuffer() below there will be no memory leak. > >Besides this we have some ideas about improving performance for user threads >by adding a thread that handles the database writing. > > public void append(LoggingEvent event) { > buffer.add(event); > if (buffer.size() >= bufferSize) > logThread.wakeup(); > } > public synchronized void flushBuffer() { > LoggingEvent logEvent = null; > while (buffer.size() >0) { > try { > logEvent = (LoggingEvent)buffer.remove(0); > } catch(Exception ignore){ > break; > } > try { > String sql = getLogStatement(logEvent); > execute(sql); > } catch (SQLException sqle) { > // Unable to store LogEvent i database, put it back in buffer. > if (logEvent != null) > buffer.add(logEvent); // I'm not sure this is a good idea > > errorHandler.error("Failed to excute sql", sqle, >ErrorCode.FLUSH_FAILURE); > } > } > } > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] > >--------------------------------------------------------------------------- ---- >This message and any included attachments are from Siemens Medical Solutions >Health Services Corporation and are intended only for the addressee(s). >The information contained herein may include trade secrets or privileged or >otherwise confidential information. Unauthorized review, forwarding, >printing, >copying, distributing, or using such information is strictly prohibited >and may >be unlawful. If you received this message in error, or have reason to >believe >you are not authorized to receive it, please promptly delete this message and >notify the sender by e-mail with a copy to [EMAIL PROTECTED] Thank you > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] -- Ceki --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This message may contain privileged and/or confidential information. If you have received this e-mail in error or are not the intended recipient, you may not use, copy, disseminate or distribute it; do not open any attachments, delete it immediately from your system and notify the sender promptly by e-mail that you have done so. Thank you. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]