It's not necessarily bad to use Singletons. You have to be certain that
they do not hold references to themselves or their class or they cannot be
unloaded. Google for: permgen log4j.
One thing about log4j -- you should have an ServletContextListener that
shuts down log4j properly:
public class ApplicationLifecycleListener implements ServletContextListener
{
public void contextDestroyed(ServletContextEvent sce)
{
LogFactory.release(Thread.currentThread().getContextClassLoader());
}
}
Tim
> -----Original Message-----
> From: Rachel Wilson [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, February 28, 2007 12:10 PM
> To: 'Tomcat Users List'
> Subject: RE: log4j exception only when stopping and starting a web
> application
>
>
> > This problem is pretty common when restarting web applications.
> Libraries
> > that use singletons etc. don't get reinitialized correctly when the web
> > application is reloaded.
>
> Blimey, that sounds like a serious flaw :S
>
> Do you know why they don't get reinitialized properly? Could you give me
> a
> pointer so i can diagnose if this is truly the case in our situation?
> (not
> that i don't believe you but before i tell our administrators that they're
> going to have to do everything differently i'd like to be able to give
> them
> some evidence)
>
> My administrator assures me that this didn't used to be the case for
> tomcat
> 4.x so what changed i wonder?
>
> By the way, a couple of things that may be of interest and some further
> relevant questions:
>
> [1] To cut a long diagnostic story short I found that if you removed the
> leading 3 from the %3x portion of my layout conversionpattern then that
> error is no longer encountered, the webapp restarts and the user is able
> to
> log in. BUT after my user is successfully returned from LDAP
> authorization
> and (is supposed to be) redirected back to the first page of my
> application... processing stops, all i get is a blank screen and the url
> that ends in j_security_check. But no errors are logged anywhere that i
> can
> see.
>
> Q. Could this be caused by the same reinitialization problem? We do use
> singletons in our own code.
>
> [2] The exact same stop/start problems occur if i deploy a war file under
> /webapps where we specify unpacked="false". This isn't too surprising,
> however...... my colleague deploys his webapps under a
> $TOMCAT_HOME/myWarfiles directory and has changed the docBase. (He did
> this
> because of the annoying context.xml deleting/management behaviour and his
> reluctance to include configuration files in a war file to be passed to
> development) but he can stop/start undeploy/redeploy his (packed)
> warfiles
> with no problem.
>
> Q. How does this fit with the reinitialization issue you describe?
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: [email protected]
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]