You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Mandeep Jossan <to...@yahoo.com> on 2003/09/11 20:01:16 UTC

Session Problems in Tomcat Clustering

Iam using the Tomcat 4.1.24 clustering with apache 2.0.43. everything seems to work fine, many many thanks to Filip for the fine work. But I have a problem when I try to save a session notifier called 'SessionTimeoutNotifier' which extends 'HttpSessionBindingListener' in the session. First it said it is not serializable so I implemented java.io.Serializable and it accepted it. But now when the session is replicated to the other Tomcat server in the cluster then it says cannot unserialize because the file SessionTimeoutNotifier is missing. But the file is right there but I don't know why the Replication manager cannot load it. I think it has some class loading problems.
I am pretty sure that I have the SessionTimeoutNotifier.class file under both the Tomcat under the same directory.
Iam getting the following exception
--------------------------------------------------------------------------------------[InMemoryReplicationManager] Failed to deserialize the session!
java.lang.ClassNotFoundException: com.checkfree.login.SessionTimeoutNotifier
        at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClas
sLoader.java:992)
        at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClas
sLoader.java:857)
        at org.apache.catalina.session.ReplicationStream.resolveClass(Replicatio
nStream.java:124)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:150
3)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1425)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
616)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1264)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:322)
        at org.apache.catalina.session.StandardSession.readObject(StandardSessio
n.java:1369)
        at org.apache.catalina.session.StandardSession.readObjectData(StandardSe
ssion.java:864)
        at org.apache.catalina.session.ReplicatedSession.readObjectData(Replicat
edSession.java:336)
        at org.apache.catalina.session.InMemoryReplicationManager.readSession(In
MemoryReplicationManager.java:555)
        at org.apache.catalina.session.InMemoryReplicationManager.messageReceive
d(InMemoryReplicationManager.java:859)
        at org.apache.catalina.session.InMemoryReplicationManager.messageDataRec
eived(InMemoryReplicationManager.java:943)
        at org.apache.catalina.cluster.ObjectReader.append(ObjectReader.java:45)
        at org.apache.catalina.cluster.WorkerThread.drainChannel(WorkerThread.ja
va:121)
        at org.apache.catalina.cluster.WorkerThread.run(WorkerThread.java:60)
[InMemoryReplicationManager] Unable to receive message through TCP channel
java.lang.NullPointerException
        at org.apache.catalina.session.InMemoryReplicationManager.messageReceive
d(InMemoryReplicationManager.java:860)
        at org.apache.catalina.session.InMemoryReplicationManager.messageDataRec
eived(InMemoryReplicationManager.java:943)
        at org.apache.catalina.cluster.ObjectReader.append(ObjectReader.java:45)
        at org.apache.catalina.cluster.WorkerThread.drainChannel(WorkerThread.ja
va:121)
        at org.apache.catalina.cluster.WorkerThread.run(WorkerThread.java:60)
Sep 11, 2003 11:42:26 AM org.apache.jk.common.ChannelSocket processConnection
INFO: connection timeout reached
Sep 11, 2003 11:42:45 AM org.apache.jk.common.ChannelSocket processConnection
INFO: connection timeout reached
-------------------------------------------------------------------------------------
 


---------------------------------
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software

RE: Session Problems in Tomcat Clustering

Posted by Filip Hanik <ma...@filip.net>.
is this class in all your webapps?
can you send me a test case webapp and I will try it out

> -----Original Message-----
> From: Mandeep Jossan [mailto:tomcat21117@yahoo.com]
> Sent: Thursday, September 11, 2003 11:01 AM
> To: tomcat-user@jakarta.apache.org
> Subject: Session Problems in Tomcat Clustering
>
>
> Iam using the Tomcat 4.1.24 clustering with apache 2.0.43.
> everything seems to work fine, many many thanks to Filip for the
> fine work. But I have a problem when I try to save a session
> notifier called 'SessionTimeoutNotifier' which extends
> 'HttpSessionBindingListener' in the session. First it said it is
> not serializable so I implemented java.io.Serializable and it
> accepted it. But now when the session is replicated to the other
> Tomcat server in the cluster then it says cannot unserialize
> because the file SessionTimeoutNotifier is missing. But the file
> is right there but I don't know why the Replication manager
> cannot load it. I think it has some class loading problems.
> I am pretty sure that I have the SessionTimeoutNotifier.class
> file under both the Tomcat under the same directory.
> Iam getting the following exception
> ------------------------------------------------------------------
> --------------------[InMemoryReplicationManager] Failed to
> deserialize the session!
> java.lang.ClassNotFoundException:
> com.checkfree.login.SessionTimeoutNotifier
>         at
> org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClas
> sLoader.java:992)
>         at
> org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClas
> sLoader.java:857)
>         at
> org.apache.catalina.session.ReplicationStream.resolveClass(Replicatio
> nStream.java:124)
>         at
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:150
> 3)
>         at
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1425)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
> 616)
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1264)
>         at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:322)
>         at
> org.apache.catalina.session.StandardSession.readObject(StandardSessio
> n.java:1369)
>         at
> org.apache.catalina.session.StandardSession.readObjectData(StandardSe
> ssion.java:864)
>         at
> org.apache.catalina.session.ReplicatedSession.readObjectData(Replicat
> edSession.java:336)
>         at
> org.apache.catalina.session.InMemoryReplicationManager.readSession(In
> MemoryReplicationManager.java:555)
>         at
> org.apache.catalina.session.InMemoryReplicationManager.messageReceive
> d(InMemoryReplicationManager.java:859)
>         at
> org.apache.catalina.session.InMemoryReplicationManager.messageDataRec
> eived(InMemoryReplicationManager.java:943)
>         at
> org.apache.catalina.cluster.ObjectReader.append(ObjectReader.java:45)
>         at
> org.apache.catalina.cluster.WorkerThread.drainChannel(WorkerThread.ja
> va:121)
>         at
> org.apache.catalina.cluster.WorkerThread.run(WorkerThread.java:60)
> [InMemoryReplicationManager] Unable to receive message through TCP channel
> java.lang.NullPointerException
>         at
> org.apache.catalina.session.InMemoryReplicationManager.messageReceive
> d(InMemoryReplicationManager.java:860)
>         at
> org.apache.catalina.session.InMemoryReplicationManager.messageDataRec
> eived(InMemoryReplicationManager.java:943)
>         at
> org.apache.catalina.cluster.ObjectReader.append(ObjectReader.java:45)
>         at
> org.apache.catalina.cluster.WorkerThread.drainChannel(WorkerThread.ja
> va:121)
>         at
> org.apache.catalina.cluster.WorkerThread.run(WorkerThread.java:60)
> Sep 11, 2003 11:42:26 AM org.apache.jk.common.ChannelSocket
> processConnection
> INFO: connection timeout reached
> Sep 11, 2003 11:42:45 AM org.apache.jk.common.ChannelSocket
> processConnection
> INFO: connection timeout reached
> ------------------------------------------------------------------
> -------------------
>
>
>
> ---------------------------------
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free, easy-to-use web site design software