Hi,
log4j buffer is not getting emptied by the dispatcher thread.
Looks like flush has some problem
"Dispatcher-Thread-1" daemon prio=5 tid=0x5cdb88 nid=0xf runnable
[0xfa831000..0xfa8319e0]
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:207)
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:225)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:239)
at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:49)
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:306)
at org.apache.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:225)
at org.apache.log4j.WriterAppender.append(WriterAppender.java:150)
at com.cisco.stardm.util.VWDebug$VWLogAppender.append(VWDebug.java:1667)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221)
at
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57)
at org.apache.log4j.Dispatcher.run(AsyncAppender.java:310)
This thread gets blocked and subsequent threads are blocking on callAppenders. One
thread is trying to get a lock on append(),
"Initial Poll DispatcherWorker#7" prio=5 tid=0x3377b0 nid=0x39 waiting on monitor
[0xa9240000..0xa92419e0]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:415)
at org.apache.log4j.AsyncAppender.append(AsyncAppender.java:85)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221)
at
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57)
at org.apache.log4j.Category.callAppenders(Category.java:187)
at org.apache.log4j.Category.forcedLog(Category.java:372)
at org.apache.log4j.Category.log(Category.java:846)
But since buffer is full, it waits there (AsyncAppender.java line # 85).
Could you please suggest me a workaround or solution.
regards
- Srikanth
---------------------------------
Want to chat instantly with your online friends?�Get the FREE Yahoo!Messenger