You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Mark O'Driscoll <ma...@eircom.net> on 2002/08/14 14:45:11 UTC

How to keep track of sessions

I am trying to keep track of the current sessions that are active in my web
application.

I have a HttpSessionListener that is correctly called on
sessionCreated/sessionDeleted. I keep a reference to each session in the
servletContext as a Vector.

If tomcat is restarted then the sessions are persisted fine. However my
vector of sessions is lost so I have no record of sessions that were created
during a previous tomcat run.

Any idea how I could find or keep the list of previously created sessions?

Is there any way I can find a list of the current sessions without keeping a
list (that would be my preference)

TIA

- Mark


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How to keep track of sessions

Posted by Ben Walding <be...@walding.com>.
You could use an application context listener to write out the sessions 
when the context is shutdown and reread them when it starts up.

I tried to work out how the manager application (part of  the 
distribution) worked (as it knows about sessions), but gave up as it 
looked like to much work and too much poking about inside tomcat.

for my tastes (which didn't include
Mark O'Driscoll wrote:

>I am trying to keep track of the current sessions that are active in my web
>application.
>
>I have a HttpSessionListener that is correctly called on
>sessionCreated/sessionDeleted. I keep a reference to each session in the
>servletContext as a Vector.
>
>If tomcat is restarted then the sessions are persisted fine. However my
>vector of sessions is lost so I have no record of sessions that were created
>during a previous tomcat run.
>
>Any idea how I could find or keep the list of previously created sessions?
>
>Is there any way I can find a list of the current sessions without keeping a
>list (that would be my preference)
>
>TIA
>
>- Mark
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>  
>




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How to keep track of sessions

Posted by Luminous Heart <lu...@yahoo.com>.
Is this a bug in tomcat 4.0.4? Notice that these two
errors that am posting are from two different
applications in the same context.

Please help.

Thanks.


Apache Tomcat/4.0.4 - HTTP Status 500 - Internal
Server Error

--------------------------------------------------------------------------------

type Exception report

message Internal Server Error

description The server encountered an internal error
(Internal Server Error) that prevented it from
fulfilling this request.

exception 

javax.servlet.ServletException:
java.lang.NullPointerException
	at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:471)
	at
org.apache.jsp.inbox$jsp._jspService(inbox$jsp.java:1043)
	at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
	at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
	at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
	at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
	at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:368)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)
	at
org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)
	at java.lang.Thread.run(Thread.java:536)


root cause 

java.lang.Exception: java.lang.NullPointerException
	at
org.apache.jsp.inbox$jsp._jspService(inbox$jsp.java:1032)
	at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
	at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
	at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
	at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
	at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:368)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)
	at
org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)
	at java.lang.Thread.run(Thread.java:536)



--------------------------------------------------------------------------------

The same 


Apache Tomcat/4.0.4 - HTTP Status 500 - Internal
Server Error

--------------------------------------------------------------------------------

type Exception report

message Internal Server Error

description The server encountered an internal error
(Internal Server Error) that prevented it from
fulfilling this request.

exception 

java.lang.NullPointerException
	at
org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:61)
	at
org.postgresql.Connection.ExecSQL(Connection.java:398)
	at
org.postgresql.jdbc2.Statement.execute(Statement.java:130)
	at
org.postgresql.jdbc2.Statement.executeQuery(Statement.java:54)
	at
org.postgresql.jdbc2.PreparedStatement.executeQuery(PreparedStatement.java:99)
	at
com.codestudio.sql.PoolManPreparedStatement.executeQuery(Unknown
Source)
	at
org.apache.jsp.AccountAccess$jsp._jspService(AccountAccess$jsp.java:207)
	at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
	at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
	at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
	at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
	at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:368)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)
	at
org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)
	at java.lang.Thread.run(Thread.java:536)



--------------------------------------------------------------------------------




__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: How to keep track of sessions

Posted by Ashish Kulkarni <ku...@yahoo.com>.
Hi 
Can some one provide with some java code where in they
have used HttpSessionListener, and then stored the
sessions in a vector when a new session is created,
and remove it when it is invalidated.
i m developing a webapplication where in the database
is as400, so when ever a user logs in a job is run on
as/400, but if the user just closes the browser
without signing out, then this job runs on as/400
untill i restart tomcat,  so i would like to know when
the user closes the browser, but there is no way i 
can find it out, so i think i will store all the
sessions created in a vector, and when the user
signoff I will remove the session from vector and then
also run schedule job say after 30 min which will
check the session from the vector,to find when was it
used last time, and if it is more then some time say
30 min, invalidate that session, which will stop the
job running on as400
is there a better way of doing it..
Ashish
--- Mark O'Driscoll <ma...@eircom.net> wrote:
> I am trying to keep track of the current sessions
> that are active in my web
> application.
> 
> I have a HttpSessionListener that is correctly
> called on
> sessionCreated/sessionDeleted. I keep a reference to
> each session in the
> servletContext as a Vector.
> 
> If tomcat is restarted then the sessions are
> persisted fine. However my
> vector of sessions is lost so I have no record of
> sessions that were created
> during a previous tomcat run.
> 
> Any idea how I could find or keep the list of
> previously created sessions?
> 
> Is there any way I can find a list of the current
> sessions without keeping a
> list (that would be my preference)
> 
> TIA
> 
> - Mark
> 
> 
> --
> To unsubscribe, e-mail:  
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 


__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>