logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ceki Gülcü <c...@qos.ch>
Subject RE: JDBCAppender memory leak issue
Date Wed, 12 Feb 2003 21:04:15 GMT
Mike,

Have you looked at the code of JDBC Appender? If so, what do you think?

At 13:37 12.02.2003 -0500, you wrote:


>Ceki,
>
>Is there anything we can do to help ensure JDBC is supported continuously?
>It sounds like the JDBC Appender has been a headache for you and you want to
>focus more on core Log4j functionality (understandable).  The database stuff
>certainly can be time consuming.
>
>When you remove the JDBC Appender, are you going to replace it with an
>equivalent solution?  ... and should we assume the memory leak isn't going
>to be fixed in the current appender?
>
>I suspect many may consider JDBC support to be one of the important
>differentiators from 1.4 logging.
>
>Mike
>
>
>
>
>-----Original Message-----
>From: Ceki Gülcü [mailto:ceki@qos.ch]
>Sent: Wednesday, February 12, 2003 11:13 AM
>To: Log4J Developers List
>Subject: RE: JDBCAppender memory leak issue
>
>
>
>Have you missed this?
>
>http://jakarta.apache.org/log4j/docs/api/org/apache/log4j/jdbc/JDBCAppender.
>html
>
>At 10:21 12.02.2003 -0500, you wrote:
>
> >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:ceki@qos.ch]
> >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: bugzilla@apache.org [mailto:bugzilla@apache.org]
> > >Sent: Wednesday, February 12, 2003 9:59 AM
> > >To: log4j-dev@jakarta.apache.org
> > >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: log4j-dev@jakarta.apache.org
> > >         ReportedBy: Roland.S.Nygren@Telia.se
> > >
> > >
> > >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: log4j-dev-unsubscribe@jakarta.apache.org
> > >For additional commands, e-mail: log4j-dev-help@jakarta.apache.org
> > >
> >
> >---------------------------------------------------------------------------
> >----
> > >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 CSOffice@smed.com.  Thank you
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
> > >For additional commands, e-mail: log4j-dev-help@jakarta.apache.org
> >
> >--
> >Ceki
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: log4j-dev-help@jakarta.apache.org
> >
> >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: log4j-dev-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: log4j-dev-help@jakarta.apache.org
>
>--
>Ceki
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: log4j-dev-help@jakarta.apache.org
>
>-------------------------------------------------------------------------------
>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 CSOffice@smed.com.  Thank you
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: log4j-dev-help@jakarta.apache.org

--
Ceki 


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-dev-help@jakarta.apache.org


Mime
View raw message