Re: Looking for suggestions or pointers ..

2003-07-14 Thread Ronald Klop
See javax.servlet.ServletContextListener.
A context is destroyed and initialized when Tomcat is reloaded.
You can define a context listener in WEB-INF/web.xml:

bla.bla.MyContextListener


Works very well for my applications.
Note: Take a look at the various SessionListeners also. They can be very easy 
to use also for clean up.

Greetings,

Ronald.

On Monday 14 July 2003 10:14, Mufaddal Khumri wrote:
> The problem:
>
> We have some codebase that uses a legacy connection pool manager (cpm)
> to manage database connections with mysql. The very first time the
> login.jsp is used by a user  causes an instance of cpm being created
> and stored in the application context. The cpm gets and frees
> connection objects . Everything works fine, but when the webapp is
> reloaded a few times it gives the errors that i have logged below. The
> reason for the error is that the connections that are created and
> maintained by cpm are not being closed when the webapp is reloaded in
> tomcat. Is there a way or where in tomcat can we write clean up code ,
> for example close connections to databases. ??
>
> Thanks.
>
> // Error show in Browser
> 
> java.lang.NullPointerException
>   at
> com.wavesinmotion.cw.classes.db.ConnectionPoolManager.getConnectionPool(
> ConnectionPoolManager.java:112)
>   at
> com.wavesinmotion.cw.classes.jsphelpers.LoginServlet.isValid(LoginServle
> t.java:78)
>   at
> com.wavesinmotion.cw.classes.jsphelpers.LoginServlet.doPost(LoginServlet
> .java:32)
>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>   at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tionFilterChain.java:247)
>   at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erChain.java:193)
>   at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.java:260)
>   at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>   at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>   at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>   at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.java:191)
>   at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>   at
> org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.ja
> va:246)
>   at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:641)
>   at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>   at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>   at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241
> 5)
>   at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
>
> :180)
>
>   at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>   at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
> lve.java:170)
>   at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:641)
>   at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
>
> :172)
>
>   at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:641)
>   at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>   at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>   at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
> java:174)
>   at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>   at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>   at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>   at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>   at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:43
> 2)
>   at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
> onnection(Http11Protocol.java:386)
>   at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:53
> 4)
>   at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
> .java:530)
>   at java.lang.Thread.run(Thread.java:554)
>
>
> // Error show in log.out
> 
> 2003-07-14 12:09:01 StandardWrapperValve[LoginServlet

Looking for suggestions or pointers ..

2003-07-14 Thread Mufaddal Khumri
The problem:

We have some codebase that uses a legacy connection pool manager (cpm)  
to manage database connections with mysql. The very first time the  
login.jsp is used by a user  causes an instance of cpm being created  
and stored in the application context. The cpm gets and frees  
connection objects . Everything works fine, but when the webapp is  
reloaded a few times it gives the errors that i have logged below. The  
reason for the error is that the connections that are created and  
maintained by cpm are not being closed when the webapp is reloaded in  
tomcat. Is there a way or where in tomcat can we write clean up code ,  
for example close connections to databases. ??

Thanks.

// Error show in Browser  

java.lang.NullPointerException
	at  
com.wavesinmotion.cw.classes.db.ConnectionPoolManager.getConnectionPool( 
ConnectionPoolManager.java:112)
	at  
com.wavesinmotion.cw.classes.jsphelpers.LoginServlet.isValid(LoginServle 
t.java:78)
	at  
com.wavesinmotion.cw.classes.jsphelpers.LoginServlet.doPost(LoginServlet 
.java:32)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica 
tionFilterChain.java:247)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt 
erChain.java:193)
	at  
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv 
e.java:260)
	at  
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i 
nvokeNext(StandardPipeline.java:643)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
80)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at  
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv 
e.java:191)
	at  
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i 
nvokeNext(StandardPipeline.java:643)
	at  
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.ja 
va:246)
	at  
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i 
nvokeNext(StandardPipeline.java:641)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
80)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at  
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241 
5)
	at  
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java 
:180)
	at  
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i 
nvokeNext(StandardPipeline.java:643)
	at  
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa 
lve.java:170)
	at  
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i 
nvokeNext(StandardPipeline.java:641)
	at  
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java 
:172)
	at  
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i 
nvokeNext(StandardPipeline.java:641)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
80)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at  
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. 
java:174)
	at  
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i 
nvokeNext(StandardPipeline.java:643)
	at  
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 
80)
	at  
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at  
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at  
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:43 
2)
	at  
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC 
onnection(Http11Protocol.java:386)
	at  
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:53 
4)
	at  
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool 
.java:530)
	at java.lang.Thread.run(Thread.java:554)

// Error show in log.out  

2003-07-14 12:09:01 StandardWrapperValve[LoginServlet]:  
Servlet.service() for servlet LoginServlet threw exception
java.lang.NullPointerException
	at  
com.wavesinmotion.cw.classes.db.ConnectionPoolManager.getConnectionPool( 
ConnectionPoolManager.java:112)
	at  
com.wavesinmotion.cw.classes.jsphelpers.LoginServlet.isValid(LoginServle 
t.java:78)
	at  
com.wavesinmotion.cw.classes.jsphelpers.LoginServlet.doPost(LoginServlet 
.java:32)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica 
tionFilterChain.java:247)
	at  
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt 
erChain.java:193)