Skip to main content
Participant
April 25, 2013
Question

session replication not work in CF10 cluster set up

  • April 25, 2013
  • 2 replies
  • 1334 views
I would like to confirm session replication working in CF10 cluster set up.
First, I am using 30-days trial version (just installed for one or two days). If cluster will not work with 30-days trial version, then we could stop here.
After following the instruction at
<a href="http://help.adobe.com/en_US/ColdFusion/10.0/Admin/WSc3ff6d0ea77859461172e0811cbf363c31-7ffa.html">http://help.adobe.com/en_US/ColdFusion/10.0/Admin/WSc3ff6d0ea77859461172e0811cbf363c31-7ffa.html</a>
, with J2EE session enable and distributable existed in web.xml,
I could see log entries like
"INFO: Replication member added:org.apache.catalina.tribes.membership.MemberImpl... "
To me, the node was recognized within cluster at this point.

Next, I would like to confirm session replicated as well. I used sample at
<a href="http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7c30.html">http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7c30.html</a>
, but I do not see any log entries regarding session being replicated. When I set up a separated tomcat 6 cluster and used the sample at
<a href="http://blogs.agilefaqs.com/wp-content/uploads/2009/11/session.jsp">http://blogs.agilefaqs.com/wp-content/uploads/2009/11/session.jsp</a>
, I could see something like

"INFO: SessionListener: attributeAdded …"
I would expect CF 10 will have something the same since CF 10 is using tomcat as well. I tried the same jsp using with a quick cfm code at CF 10 cluster, still could NOT confirm the session replication.
This topic has been closed for replies.

2 replies

vishu_13
Inspiring
August 22, 2014

Check this thread : https://forums.adobe.com/message/5616340#5616340

HTH

Thanks

Vj

Participant
August 20, 2014

Not necessarily an answer to your questions, but I worked with the people at Adobe to try and get working session replication with Tomcat (v7, but v6 should be the same) installed separately with ColdFusion deployed as a war file in tomcat. At first CF sessions didn't replicate with weird errors about ClassNotFound ... eventually I got to a working solution (though with a "caveat"):

The bottom line is:

I _can_ confirm that, with working Tomcat clustering in place, if I ensure there is no "Application name" set in the Application.cfc or Application.cfm file then clustering _does_ work (obviously I had to tell CF to allow nameless applications in the admin interface). As soon as I put an application name back in clustering once again starts logging nasty errors and fails to work.

So

  • don't name your application, which requires you allowing applications wtih no name in the CF admin console
  • make sure your tomcat replication is working the first place (I deployed https://code.google.com/p/hsr-test/ In order to verify "outside coldfusion"
  • tweak your logging for clustering

My conf/logging.properties additions for cluster logging:

# Log clustering information

org.apache.catalina.cluster = FINE

org.apache.catalina.ha.deploy.level = INFO

org.apache.catalina.ha.level = FINE

org.apache.catalina.tribes.level = FINE

org.apache.catalina.tribes.MESSAGES.level = FINE

For reference I ended up with the below as my tomcat cluster configuration (which is basically what you'd get from reading loads of cruft on tomcat clustering on the web):

<!-- BEGIN CLUSTER CONFIG -->

  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">

  <Manager notifyListenersOnReplication="true" expireSessionsOnShutdown="false" className="org.apache.catalina.ha.session.DeltaManager">

  </Manager>

  <Channel className="org.apache.catalina.tribes.group.GroupChannel">

  <Membership port="45564" dropTime="3000" address="228.0.0.4" className="org.apache.catalina.tribes.membership.McastService" frequency="500">

  </Membership>

  <Receiver port="4003" autoBind="100" address="auto" selectorTimeout="5000" maxThreads="6" className="org.apache.catalina.tribes.transport.nio.NioReceiver">

  </Receiver>

  <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

  <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender">

  </Transport>

  </Sender>

  <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector">

  </Interceptor>

  <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor">

  </Interceptor>

  </Channel>

  <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter="">

  </Valve>

  <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve">

  </Valve>

  <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener">

  </ClusterListener>

  <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener">

  </ClusterListener>

  </Cluster>

  <!-- END CLUSTER CONFIG -->