tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Christophe Praud ...@praud.com>
Subject ClassCastException on cluster deserialization
Date Thu, 18 May 2006 15:02:28 GMT
Hi all,

I'm setting up a Tomcat cluster on two servers, and I keep getting a 
ClassCastException on a session variable (GW). The server which handles 
the request works well, but the other one can't get the session data.

Its GW object seems to be instantiated, 
valueBound(HttpSessionBindingEvent event) is called, the object is added 
to the session, then I get the Exception.

I tried with Tomcat 5.5.16 and 5.5.17, with several <Sender> 
replicationMode.

My session variable com.package1.subpackage1.GW implements the 
Serializable interface and contains some classes which are also 
Serializable. I don't see any Exception from the writeObject or 
readObject methods on any server.

My config :

        <Cluster 
className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="true"
                 notifyListenersOnReplication="true">

            <Membership
                className="org.apache.catalina.cluster.mcast.McastService"
                mcastAddr="228.0.0.4"
                mcastPort="45564"
                mcastFrequency="500"
                mcastDropTime="3000"/>

            <Receiver
                
className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="auto"
                tcpListenPort="4001"
                tcpSelectorTimeout="100"
                tcpThreadCount="6"/>

            <Sender
                
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="synchronous"
                                autoConnect="true"
                                keepAliveTimeout="-1"
                ackTimeout="15000"/>

            <Valve 
className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
                  
            <Deployer 
className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                      tempDir="/tmp/war-temp/"
                      deployDir="/tmp/war-deploy/"
                      watchDir="/tmp/war-listen/"
                      watchEnabled="false"/>
                     
            <ClusterListener 
className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
        </Cluster>


The Exception's log :

18 mai 2006 16:48:28 org.apache.catalina.cluster.session.DeltaSession 
setAttribute
GRAVE: Session attribute event listener threw exception
java.lang.ClassCastException: com.package1.subpackage1.GW
        at 
common.listeners.ClusterAppSessionListener.printSessionInfo(ClusterAppSessionListener.java:47)
        at 
common.listeners.ClusterAppSessionListener.attributeAdded(ClusterAppSessionListener.java:26)
        at 
org.apache.catalina.cluster.session.DeltaSession.setAttribute(DeltaSession.java:1310)
        at 
org.apache.catalina.cluster.session.DeltaRequest.execute(DeltaRequest.java:159)
        at 
org.apache.catalina.cluster.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1565)
        at 
org.apache.catalina.cluster.session.DeltaManager.messageReceived(DeltaManager.java:1516)
        at 
org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(DeltaManager.java:1268)
        at 
org.apache.catalina.cluster.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:85)
        at 
org.apache.catalina.cluster.tcp.SimpleTcpCluster.receive(SimpleTcpCluster.java:1163)
        at 
org.apache.catalina.cluster.tcp.ClusterReceiverBase.messageDataReceived(ClusterReceiverBase.java:418)
        at 
org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java:107)
        at 
org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(TcpReplicationThread.java:138)
        at 
org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicationThread.java:69)



What did I miss ?

Regards,


-- 
Jean-Christophe Praud         -      http://shub-niggurath.com
Conseil & Développement Informatique      http://www.praud.com
Ph'nglui mglw'nafh Cthulhu n'gah Bill R'lyeh Wgah'nagl fhtagn!


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message