Skip to main content
Known Participant
October 30, 2013
Question

Tomcat 7.0.42, Context & Session Replication

  • October 30, 2013
  • 1 reply
  • 1650 views

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(ClusterSessionListener.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(ChannelInterceptorBase.java:84)

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

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

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

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

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

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

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

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

This topic has been closed for replies.

1 reply

Participant
August 20, 2014

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.