I have found and proved that Log4J does have a deadlock situation in
it's appender failover logic. 

In a nutshell heres whats happening. The entire instance of the logger
is syncronized. (Actually the syncronized object is the Category object
from which the Logger is derived.) A caller makes a log call
Log.xxxx(), in this case the JDBC appender. If the database is down the
DB call throws which in turn calls the errorHandler, which in turn calls
back into the Logger (deadlock) to swap out the primary and backup
appenders.

I guess what I'm going to do is to bust out another thread for the sole
purpose of handling failover logic.

Comments, input?

Al Harper


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

Reply via email to