Issue with ajp13 socket after tomcat shutdown

2006-02-24 Thread Joey Geiger

After I manually shutdown tomcat (shutdown.sh) the ajp socket seems
to stay open for an extended period of time. If I attempt to restart,
I get the following output in catalina.out. The problem is that ajp13
should be listening on 8889, but this port is never released, and for
some odd reason, it decides to move up one. If I shutdown again, it
will switch the port to 8891. I noticed another thread in the
archives that discussed a similar problem, but the solution was for
the apr connector.

The ports do release after a waiting period, but this isn't helpful
during development, and I think it might also be the cause of a few
errors with tomcat restarting on it's own. (The site seems unavailable
but it's just not listening on the correct port)

Any help is appreciated. Thank you.


Subject: RE: Re: Re: APR Connector Shutdown Problem
From: Fenlason, Josh jfenlason () ptc ! com
Date: 2006-01-31 22:45:57
...
I added the following line to
tomcat-native.1.1.1/jni/native/src/network.c (added at line 388):
apr_socket_opt_set( s, APR_SO_REUSEADDR, 1 );
But I'm still running into the same problem.


Feb 24, 2006 9:29:02 AM org.apache.catalina.core.AprLifecycleListener 
lifecycleEvent
INFO: The Apache Portable Runtime which allows optimal performance in 
production environments was not found on the java.library.path: 
/usr/local/jdk1.5.0_05/jre/lib/i386/server:/usr/local/jdk1.5.0_05/jre/lib/i386:/usr/local/jdk1.5.0_05/jre/../lib/i386

Feb 24, 2006 9:29:03 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1190 ms
Feb 24, 2006 9:29:03 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Feb 24, 2006 9:29:03 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.12
Feb 24, 2006 9:29:03 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
AbandonedObjectPool is used 
([EMAIL PROTECTED])

  LogAbandoned: false
  RemoveAbandoned: true
  RemoveAbandonedTimeout: 300
Feb 24, 2006 9:29:30 AM org.apache.jk.common.ChannelSocket init
INFO: Port busy 8889 java.net.BindException: Address already in use
Feb 24, 2006 9:29:30 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8890
Feb 24, 2006 9:29:30 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=1 time=0/170  config=null
Feb 24, 2006 9:29:30 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 27445 ms



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



Re: Issue with ajp13 socket after tomcat shutdown

2006-02-24 Thread Joey Geiger
The problem is the same as I'm running into, but I'm not using APR as 
you can see by my log trace


INFO: The Apache Portable Runtime which allows optimal performance in 
production environments was not found on the java.library.path: 
/usr/local/jdk1.5.0_05/jre/lib/i386/server:/usr/local/jdk1.5.0

_05/jre/lib/i386:/usr/local/jdk1.5.0_05/jre/../lib/i386




Fenlason, Josh wrote:

Take a look at this thread to fix this problem.
http://marc.theaimsgroup.com/?l=tomcat-userm=114062756728076w=2
,
Josh.

  

-Original Message-
From: Joey Geiger [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 24, 2006 9:24 AM

To: users@tomcat.apache.org
Subject: Issue with ajp13 socket after tomcat shutdown


After I manually shutdown tomcat (shutdown.sh) the ajp socket 
seems to stay open for an extended period of time. If I 
attempt to restart, I get the following output in 
catalina.out. The problem is that ajp13 should be listening 
on 8889, but this port is never released, and for some odd 
reason, it decides to move up one. If I shutdown again, it 
will switch the port to 8891. I noticed another thread in the 
archives that discussed a similar problem, but the solution 
was for the apr connector.


The ports do release after a waiting period, but this isn't 
helpful during development, and I think it might also be the 
cause of a few errors with tomcat restarting on it's own. 
(The site seems unavailable but it's just not listening on 
the correct port)


Any help is appreciated. Thank you.


 Subject: RE: Re: Re: APR Connector Shutdown Problem
 From: Fenlason, Josh jfenlason () ptc ! com
 Date: 2006-01-31 22:45:57
 ...
 I added the following line to  

tomcat-native.1.1.1/jni/native/src/network.c (added at line 

388):  apr_socket_opt_set( s, APR_SO_REUSEADDR, 1 );  But 
I'm still running into the same problem.



Feb 24, 2006 9:29:02 AM org.apache.catalina.core.AprLifecycleListener 
lifecycleEvent
INFO: The Apache Portable Runtime which allows optimal performance in 
production environments was not found on the java.library.path: 
/usr/local/jdk1.5.0_05/jre/lib/i386/server:/usr/local/jdk1.5.0

_05/jre/lib/i386:/usr/local/jdk1.5.0_05/jre/../lib/i386
Feb 24, 2006 9:29:03 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1190 ms
Feb 24, 2006 9:29:03 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Feb 24, 2006 9:29:03 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.12
Feb 24, 2006 9:29:03 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
AbandonedObjectPool is used 
([EMAIL PROTECTED])

   LogAbandoned: false
   RemoveAbandoned: true
   RemoveAbandonedTimeout: 300
Feb 24, 2006 9:29:30 AM org.apache.jk.common.ChannelSocket init
INFO: Port busy 8889 java.net.BindException: Address already 
in use Feb 24, 2006 9:29:30 AM org.apache.jk.common.ChannelSocket init

INFO: JK: ajp13 listening on /0.0.0.0:8890
Feb 24, 2006 9:29:30 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=1 time=0/170  config=null
Feb 24, 2006 9:29:30 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 27445 ms



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




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



  




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



RE: Tomcat 5.5.15 Context Reloading issue

2006-02-15 Thread Joey Geiger
Well, I discovered the cause of the bug, and I can now stop it from
happening, but I'm unable to *fix* the problem. The top logging statement
works properly, while the commented one does not. 

The NullPointer on the date occurs because a date is not being sent to the
logger when the context is reloaded. The date is sent on a startup. Tomcat
can survive this error during reload. The other error
(NoClassDefFoundError:VectorWriter) is an issue with the line number being
sent to the logger, which causes the reload to completely fail. 

log4j.appender.ap.layout.ConversionPattern=%p %t %c - %m%n
#log4j.appender.ap.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n


Log output:
Initial Load:
11:42:20,781 INFO
org.apache.catalina.core.ContainerBase.[Catalina].[hostname.com].[/] -
Loading Spring root WebApplicationContext

Reload:
INFO org.apache.catalina.core.ContainerBase.[Catalina].[hostname.com].[/] -
Loading Spring root WebApplicationContext

-Original Message-
From: Caldarale, Charles R [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, February 07, 2006 9:15 AM
To: Tomcat Users List
Subject: RE: Tomcat 5.5.15 Context Reloading issue

 From: Joey Geiger [mailto:[EMAIL PROTECTED] 
 Subject: Tomcat 5.5.15 Context Reloading issue
 
 The host is configured as:
 
 Host name=application.com appBase=C:\web\application 
 unpackWARs=true autoDeploy=true xmlValidation=false
 xmlNamespaceAware=false reloadable=true
 
 Context path= docBase= debug=1 reloadable=true
 Manager pathname= /
 /Host

An empty docBase path is rather odd.  The appBase parameter is supposed
to point to the directory under which one or more application
directories or war files are stored; docBase should specify the
directory or war for the given application.  Perhaps you should try
setting appBase to C:\web and docBase to application.

 I've tried to add log4j 1.2.9 to both the common/lib and 
 server/lib with no success.

Not at the same time, I hope.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you
received this in error, please contact the sender and delete the e-mail
and its attachments from all computers.

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




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



RE: Session Expires At Every Request (Tomcat5.0.28/Firefox)

2006-02-15 Thread Joey Geiger
Oddly enough, the banks don't even care about this.

US Bank, for example, claims their login on the front page is secure and
has you enter your account data into a non https form. After the browser
sends the information, it then redirects to a secure(https) link.

I wrote them about this, and their response was, we know it's not secure,
but we'll compensate you for any losses you may have... Crazy.

-Original Message-
From: George Sexton [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, February 15, 2006 3:16 PM
To: 'Tomcat Users List'
Subject: RE: Session Expires At Every Request (Tomcat5.0.28/Firefox)

An even simpler case:

Adam visits a banking site. On entering the site he gets a cookie. 


Mallory snoops the session ID on the data stream.

Adam then authenticates to read his account information. The application
sets a session attribute (say a bean with the account name and number) on
the session.


Mallory now enters the secure area of the banking site using the forged
session ID. 

Poof. Mallory is logged in as Adam.

Poof. Adam is had and his data is there to be stolen, or wire transferred to
another account.



George Sexton
MH Software, Inc.
http://www.mhsoftware.com/
Voice: 303 438 9585
  

 -Original Message-
 From: George Sexton [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, February 15, 2006 2:09 PM
 To: 'Tomcat Users List'
 Subject: RE: Session Expires At Every Request (Tomcat5.0.28/Firefox)
 
 
 
  -Original Message-
  From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED] 
  Sent: Wednesday, February 15, 2006 1:16 PM
  To: Tomcat Users List
  Subject: Re: Session Expires At Every Request (Tomcat5.0.28/Firefox)
  
  George Sexton wrote:
   Does the code transparently create a new JSessionID value then?
  
  George,
  you might wanna rethink your comments, they don't shine any 
  light on the 
  issue and they for sure don't state any facts, let me prove 
 you I am 
  right. Below is the headers I tracked with LiveHttpHeaders, 
  as you can 
  see, JSESSIONID remains exactly the same in the browser 
  request when the 
  switch from HTTP to HTTPS happens.
 
 And this is an incredibly major trap that lies waiting for 
 every application
 developer that uses sessions. You see, I have given a great 
 deal of thought
 about sessions and what should happen when a connection transitions to
 secure, or from secure to non-secure.
 
 Let's take a simple shopping cart app. User Adam visit a site on a
 non-secure connection and receives a session. He shops and 
 puts something in
 his cart.
 
 Mallory (crypto speak for the person in the middle) monitors 
 Adam's network
 stream and picks up the jsessionid from the data stream.
 
 Adam then goes to the check out screen and starts entering 
 checkout data
 (name, address, and credit card information). To give 
 ourselves a window,
 assume that Adam then continues shopping or is just slow, or 
 the credit card
 processing procedure takes time...
 
 Mallory can forge a request using the JSessionID, and go to 
 the checkout
 pages. Since Mallory has the same session, all of the 
 information entered by
 Adam is now visible.
 
 This is the flaw. This is why sessions should not transition 
 from non-secure
 to secure, or if they do transition a new ID should be 
 generated and the old
 session ID invalidated. The session ID is a key into the data 
 store and if
 the session key has been exposed to the public, then no 
 confidential data
 should be accessed using that session key.
 
 I think this should be submitted as a bug. 
 
 
 George Sexton
 MH Software, Inc.
 http://www.mhsoftware.com/
 Voice: 303 438 9585
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


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




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



RE: Tomcat 5.5.15 Context Reloading issue

2006-02-14 Thread Joey Geiger
I've done some further searching, and noticed that tomcat was also dumping
information into stdout. There is another log trace that might be helpful if
anyone else recognizes the problem. I'm of the belief that this is a bug of
some sort, but I don't know who to pass the information along to.

 

Also, I tried adding information into the context docbase, and it had no
effect on the problem. I also removed all log4j files that I had added to
the configuration. Again, this wasn't happening with tomcat 5.5.12, but
started after I began to use 5.5.15.

 

Thanks.

 

 

log4j:ERROR Error occured while converting date.

java.lang.NullPointerException

at java.lang.System.arraycopy(Native Method)

at
java.lang.AbstractStringBuilder.getChars(AbstractStringBuilder.java:331)

at java.lang.StringBuffer.getChars(StringBuffer.java:202)

at
org.apache.log4j.helpers.AbsoluteTimeDateFormat.format(AbsoluteTimeDateForma
t.java:117)

at java.text.DateFormat.format(DateFormat.java:314)

at
org.apache.log4j.helpers.PatternParser$DatePatternConverter.convert(PatternP
arser.java:444)

at
org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:64)

at org.apache.log4j.PatternLayout.format(PatternLayout.java:503)

at
org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301)

at
org.apache.log4j.WriterAppender.append(WriterAppender.java:159)

at
org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)

at
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(Append
erAttachableImpl.java:65)

at org.apache.log4j.Category.callAppenders(Category.java:203)

at org.apache.log4j.Category.forcedLog(Category.java:388)

at org.apache.log4j.Category.log(Category.java:853)

at
org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:133)

at
org.apache.catalina.core.ApplicationContext.log(ApplicationContext.java:638)

at
org.apache.catalina.core.ApplicationContextFacade.log(ApplicationContextFaca
de.java:249)

at
org.springframework.web.context.ContextLoader.initWebApplicationContext(Cont
extLoader.java:176)

at
org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServl
et.java:83)

at javax.servlet.GenericServlet.init(GenericServlet.java:211)

at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:11
05)

at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)

at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:
3915)

at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4176)

at
org.apache.catalina.core.StandardContext.reload(StandardContext.java:2988)

at
org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:
403)

at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:
1276)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1568)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1577)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1577)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(Cont
ainerBase.java:1557)

at java.lang.Thread.run(Thread.java:595)



RE: Logging session timeouts

2006-02-09 Thread Joey Geiger
Session Listeners

http://pdf.coreservlets.com/CSAJSP-Chapter9.pdf

-Original Message-
From: David Kerber [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 09, 2006 8:38 AM
To: Tomcat Users List
Subject: Logging session timeouts

Is there any way of trapping session timeouts, so I can log them?  I am 
logging when a user logs in and when they explicitly log out, but would 
like to log when their session times out, if that is possible.

TIA!
Dave



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




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



RE: Logging session timeouts

2006-02-09 Thread Joey Geiger
Ugh, sorry I pasted and mailed the wrong link...

The example posted by Tim Lucia is good.

I was hoping for something a little simpler to implement into my app for
just logging a user timing out

Just look at the code and use it as a base and modify what you need.


-Original Message-
From: Joey Geiger [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 09, 2006 8:48 AM
To: 'Tomcat Users List'
Subject: RE: Logging session timeouts

Session Listeners

http://pdf.coreservlets.com/CSAJSP-Chapter9.pdf

-Original Message-
From: David Kerber [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 09, 2006 8:38 AM
To: Tomcat Users List
Subject: Logging session timeouts

Is there any way of trapping session timeouts, so I can log them?  I am 
logging when a user logs in and when they explicitly log out, but would 
like to log when their session times out, if that is possible.

TIA!
Dave



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




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




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



RE: Logging session timeouts

2006-02-09 Thread Joey Geiger
Here is the code I use, instead of a filter, I use a listener so I don't
have to worry about setting urls.

This part is in web.xml

listener
  listener-classyourpackage.SessionListener/listener-class
/listener


The majority of this code was found online (and I think came from
coreservlets.com)

package yourpackage;

import java.util.Date;
import java.util.Enumeration;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class SessionListener implements ServletContextListener,
HttpSessionListener{

private static int sessionCount=0;
protected transient final Log logger =
LogFactory.getLog(this.getClass());

public void contextInitialized(ServletContextEvent sce)
{
  sce.getServletContext().setAttribute(sessionListener,this);
}

public void contextDestroyed(ServletContextEvent sce)
{
}

public synchronized void  sessionCreated(HttpSessionEvent event){
HttpSession session = event.getSession();
//  session.setMaxInactiveInterval(60);
synchronized (this) {
sessionCount++;
}
String id = session.getId();
Date now = new Date();
String message = new StringBuffer(New Session created on
).append(
now.toString()).append(\nID:
).append(id).append(\n)
.append(There are now ).append( +
sessionCount).append(
 live sessions in the
application.).toString();

this.logger.debug(Created: + message);
session.setAttribute(sessionstarted,new Date());
}
 
public  void sessionDestroyed(HttpSessionEvent event) {
HttpSession session = event.getSession();
String id = session.getId();

synchronized (this) {
sessionCount--;
}

String message = new StringBuffer(Session destroyed
+ \nValue of destroyed session ID is
).append( + id)
.append(\n).append(There are now )
.append( + sessionCount).append(
 live sessions in the
application.).toString();
this.logger.debug(Destroyed:  + message);

Date d = (Date)session.getAttribute(sessionstarted);
this.logger.debug(Session Length:
+millisecondsToString(System.currentTimeMillis() - d.getTime()));


Enumeration stuff = session.getAttributeNames();
while (stuff.hasMoreElements()) {
String name = (String) stuff.nextElement();
//  Object value = session.getAttribute(name);
this.logger.debug(Attribute Name:+name);
}
 
}

public int getSessionCount() { return sessionCount; }


/**
 * Converts time in milliseconds to a codeString/code in the
format Days HH:mm:ss.SSS.
 * @param time the time in milliseconds.
 * @return a codeString/code representing the time in the format
Days HH:mm:ss.SSS.
 */
public static String millisecondsToString(long time)
{
int milliseconds = (int)(time % 1000);
int seconds = (int)((time/1000) % 60);
int minutes = (int)((time/6) % 60);
int hours = (int)((time/360) % 24);
int days = (int)((time/360)/24);
//hours += days*24;
String millisecondsStr = (milliseconds10 ? 00 :
(milliseconds100 ? 0 : ))+milliseconds;
String secondsStr = (seconds10 ? 0 : )+seconds;
String minutesStr = (minutes10 ? 0 : )+minutes;
String hoursStr = (hours10 ? 0 : )+hours;
return new String(days+ Days
+hoursStr+:+minutesStr+:+secondsStr+.+millisecondsStr);
}

}



-Original Message-
From: David Kerber [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 09, 2006 9:56 AM
To: Tomcat Users List
Subject: Re: Logging session timeouts

I got your code in, and it compiles, but I don't understand how I 
configure the url-mapping you refer to.  Could you point me to some docs 
for that?  I looked through the web.xml files (both the server one, and 
the one for the app), but couldn't find anything about url-mapping or 
filters that seemed to apply to this.  It may be there, but I don't know 
enough about it to recognize it.

Thanks!
Dave


Tim Lucia wrote:

Below is a filter which keeps track of how many sessions are attached to a
web app.  The 

RE: Logging session timeouts

2006-02-09 Thread Joey Geiger
While the user can delete the cookie that is associated with the session,
the server will consider the session valid until it times out, as the user
is unable to end the session manually. If you add in a link/button that says
Remove my session from server and then have the application invalidate the
session, the listener would still log it the same as if the server did it
automatically, but you also now have control over logging that.

I might be wrong (a famous saying) but I don't know how effective the Filter
version of the system will be, as it needs to be invoked via a request in
order to process/expire the session. The listener is able to log sessions as
they end, and not require a user to hit the filter first. (If a user goes
inactive, the session will expire, and the listener will catch it and log
it)


-Original Message-
From: David Kerber [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 09, 2006 11:09 AM
To: Tomcat Users List
Subject: Re: Logging session timeouts

That got me going; thanks! 

One more question:
Is there any way of telling if the session was actively invalidated, or 
if it timed out?  Looking at the docs for HttpSessionBindingEvent, I 
don't see any differentiation between them.  That's not a big deal, but 
would be nice to have.

Dave




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



RE: Logging session timeouts

2006-02-09 Thread Joey Geiger
Thank you for the clarification.


-Original Message-
From: Tim Lucia [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 09, 2006 11:38 AM
To: 'Tomcat Users List'
Subject: RE: Logging session timeouts

The filter, implementing HttpSessionListener, and binding itself to the
session, will be called by Tomcat when the session is invalidated (all bound
values which implement HttpSessionListener will have their valueUnbound
method called.)

So, the filter is effective in that it won't miss any session unbind events
as long as the filter captures the creation request as well.  If you create
the session but the request which does so has not passed through the filter,
then it will not know when the session goes away.

So in the listener case, you are guaranteed a call from the server any time
any session is created.  That might be a better approach, depending on your
need(s).  In my case, the filter does a whole lot more, but I stripped it
down before posting it to only show the relevant section.

Tim 

-Original Message-
From: Joey Geiger [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 09, 2006 12:27 PM
To: 'Tomcat Users List'
Subject: RE: Logging session timeouts

While the user can delete the cookie that is associated with the session,
the server will consider the session valid until it times out, as the user
is unable to end the session manually. If you add in a link/button that says
Remove my session from server and then have the application invalidate the
session, the listener would still log it the same as if the server did it
automatically, but you also now have control over logging that.

I might be wrong (a famous saying) but I don't know how effective the Filter
version of the system will be, as it needs to be invoked via a request in
order to process/expire the session. The listener is able to log sessions as
they end, and not require a user to hit the filter first. (If a user goes
inactive, the session will expire, and the listener will catch it and log
it)


-Original Message-
From: David Kerber [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 09, 2006 11:09 AM
To: Tomcat Users List
Subject: Re: Logging session timeouts

That got me going; thanks! 

One more question:
Is there any way of telling if the session was actively invalidated, or if
it timed out?  Looking at the docs for HttpSessionBindingEvent, I don't see
any differentiation between them.  That's not a big deal, but would be nice
to have.

Dave




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



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




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



Tomcat 5.5.15 Context Reloading issue

2006-02-07 Thread Joey Geiger
I've run into an issue with Tomcat 5.5.15 and the Context reloading. When I
change a file in my application, I have the context set to automatically
restart. This was working fine with 5.5.12, but there seems to be an issue
after I upgraded to 5.5.15.

 

The host is configured as:

Host name=application.com appBase=C:\web\application unpackWARs=true
autoDeploy=true xmlValidation=false xmlNamespaceAware=false
reloadable=true

Context path= docBase= debug=1 reloadable=true

Manager pathname= /

/Host

 

I've tried to add log4j 1.2.9 to both the common/lib and server/lib with no
success. If I stop the server and restart, it works properly.

Any help you can provide would be appreciated. Thank you.

 

 

My stack trace is:

 

INFO: Illegal access: this web application instance has been stopped
already.  Could not load org.apache.log4j.spi.VectorWriter.  The eventual
following stack trace is caused by an error thrown for debugging purposes as
well as to attempt to terminate the thread which caused the illegal access,
and has no functional impact.

java.lang.IllegalStateException

at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1238)

at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1198)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

at
org.apache.log4j.spi.LoggingEvent.init(LoggingEvent.java:154)

at org.apache.log4j.Category.forcedLog(Category.java:388)

at org.apache.log4j.Category.log(Category.java:853)

at
org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:193)

at
org.apache.catalina.core.ApplicationContext.log(ApplicationContext.java:667)

at
org.apache.catalina.core.ApplicationContextFacade.log(ApplicationContextFaca
de.java:269)

at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:11
41)

at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)

at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:
3915)

at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4176)

at
org.apache.catalina.core.StandardContext.reload(StandardContext.java:2988)

at
org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:
403)

at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:
1276)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1568)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1577)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1577)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(Cont
ainerBase.java:1557)

at java.lang.Thread.run(Thread.java:595)

Feb 6, 2006 4:04:58 PM
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor
processChildren

SEVERE: Exception invoking periodic operation: 

java.lang.NoClassDefFoundError: org/apache/log4j/spi/VectorWriter

at
org.apache.log4j.spi.LoggingEvent.init(LoggingEvent.java:154)

at org.apache.log4j.Category.forcedLog(Category.java:388)

at org.apache.log4j.Category.log(Category.java:853)

at
org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:193)

at
org.apache.catalina.core.ApplicationContext.log(ApplicationContext.java:667)

at
org.apache.catalina.core.ApplicationContextFacade.log(ApplicationContextFaca
de.java:269)

at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:11
41)

at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)

at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:
3915)

at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4176)

at
org.apache.catalina.core.StandardContext.reload(StandardContext.java:2988)

at
org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:
403)

at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:
1276)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1568)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1577)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processC
hildren(ContainerBase.java:1577)

at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(Cont
ainerBase.java:1557)

at