1 Reply Latest reply on Aug 20, 2014 7:51 AM by Dale Roberts

    Tomcat 7.0.42, Context & Session Replication

    spellbmw Level 1

      Am making progress with:

      Windows 2012

      Apache Tomcat 7.0.42

      ColdFusion10 Enterprise

       

      Since we need /CF to be our Context for ColdFusion web applications, I deployed ColdFusion as CF.war; everything has functioned nominally... until now:  Session-replication is not functioning correctly. 

       

      Question:  are the errors below a consequence of deploying ColdFusion as cf.war (and a Context of /CF) instead of cfusion.war (and a Context of /Cfusion)?

       

      INFO: Starting clustering manager at /cf

      Oct 30, 2013 2:31:44 PM org.apache.catalina.ha.session.DeltaManager getAllClusterSessions

      INFO: Manager [/cf], requesting session state from org.apache.catalina.tribes.membership.MemberImpl[tcp://{167, 131, 75, 31}:4000,{167, 131, 75, 31},4000, alive=844838, securePort=-1, UDP Port=-1, id={-45 53 -56 -7 80 21 76 28 -110 113 71 -46 -62 -41 -88 52 }, payload={}, command={}, domain={}, ]. This operation will timeout if no session state has been received within 60 seconds.

      Oct 30, 2013 2:31:49 PM org.apache.catalina.ha.session.DeltaManager waitForSendAllSessions

      INFO: Manager [/cf]; session state send at 10/30/13 2:31 PM received in 5,039 ms.

      Oct 30, 2013 2:31:49 PM org.apache.catalina.ha.session.DeltaManager messageReceived

      SEVERE: Manager [/cf]: Unable to receive message through TCP channel

      java.lang.RuntimeException: java.lang.ClassNotFoundException: coldfusion.runtime.J2eeSessionScope

      at coldfusion.runtime.J2eeSessionScopeStub.readObject(J2eeSessionScopeStub.java:118)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      at java.lang.reflect.Method.invoke(Method.java:606)

      at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)

      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1891)

      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)

      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)

      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)

      at org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:738)

      at org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:532)

      at org.apache.catalina.ha.session.DeltaManager.deserializeSessions(DeltaManager.java:652)

      at org.apache.catalina.ha.session.DeltaManager.handleALL_SESSION_DATA(DeltaManager.java:1423 )

      at org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1276)

      at org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1014)

      at org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListe ner.java:92)

      at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:940)

      at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:921)

      at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:278)

      at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelIntercepto rBase.java:84)

      at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailu reDetector.java:117)

      at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelIntercepto rBase.java:84)

      at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelIntercepto rBase.java:84)

      at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.ja va:253)

      at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:2 87)

      at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTa sk.java:212)

      at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:1 01)

      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

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

      Caused by: java.lang.ClassNotFoundException: coldfusion.runtime.J2eeSessionScope

      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)

       

      Thanks,

      Scott

        • 1. Re: Tomcat 7.0.42, Context & Session Replication
          Dale Roberts

          I've replied to session replication not work in CF10 cluster set up with my experience of session replication. Not sure your errors are to do with context as my setup has coldfusion deployed with a cfusion.war file but with a "root context":

           

          my conf/Catalina/localhost/ROOT.xml file contains:

           

          <?xml version="1.0" encoding="UTF-8"?>

          <Context path="/" docBase="${catalina.base}/cfusion" aliases="/sharedcode=/CF/Code/sharedcode, /Other=/CF/Code/Other"/>

           

           

          The cfusion.war file is "exploded" into ${catalina.base}/cfusion (I don't even deploy into the webapps directory for various reasons ...).

           

          So you should be able to make things work.