如何在Coldfusion 10中使用SESSION复制设置群集?

我无法使用会话复制设置群集。 我已经成功地build立了一个粘滞会话的集群。 当用Googlesearch时,我发现了很多解释相同问题的链接

  1. http://cfmlblog.adamcameron.me/2012/11/problem-with-session-replication-with.html

  2. https://forums.adobe.com/thread/1238702?start=0&tstart=0

是否取消select粘性会话自动启用会话复制?

但没有我在哪里得到解决scheme。 任何人解决这个问题?

从StackOverflow上的答案交叉发布到这个相同的问题

从Adam Cameron收录的文章中,他提到会话复制时遇到问题 – 使用CF10集群进行会话复制的问题 。 这里的关键是为ColdFusion 10(3361502)input了一个错误,无法在pipe理员中启用会话复制。 那个错误已经被修复了。 你正在运行更新的版本?

在这个错误的一个评论来自Adobe的人提到这一点:

启用粘性会话时,不会复制会话,并且禁用粘性会话时会自动复制会话。

所以看起来,在ColdFusion 10中,当您禁用粘性会话时,应该启用会话复制。 您还必须启用J2EE会话variables。

会话复制也有一些限制。 从这里的文档 :

会话复制也确保会话范围variables在集群中复制。 但是,会话复制不支持在会话范围CFC或variables中复制数组

在简短的聊天之后,我将OP引用到本文中 – 使用Tomcat作为内置的应用程序服务器 ,详细介绍如何在ColdFusion 10中使用集群。特别感兴趣的是有关集群pipe理的部分,题为“将远程实例添加到集群“。 在那里它提到了一些额外的东西,需要在每个远程实例上的server.xml文件中进行。

使用以下步骤将远程实例添加到群集:

  1. 将远程实例注册到本地计算机。
  2. 在本地机器上创build一个集群。
  3. 打开远程实例的cf_install_dir \ instance-name \ runtime \ conf \ server.xml文件。
  4. 在条目</host></engine>之间添加以下块:
 <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="45565" 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> 

5。 在上面的条目中,使用群集的多播端口更新成员端口。

6。 使用本地主机的ColdFusionpipe理员,将本地实​​例和远程实例添加到集群。

注意:如果启用粘性会话,则远程实例和本地实例的JVM路由不能相同。

7。 重新启动所有的实例。