logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lutz Michael <michael.h.l...@siemens.com>
Subject RE: JDBCAppender memory leak issue
Date Wed, 12 Feb 2003 18:37:49 GMT


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


Mime
View raw message