Я не могу настроить кластер с репликацией сеанса. Я успешно настроил кластер с липкой сессией. Когда я погуглил, я нашел много ссылок, объясняющих ту же проблему, например
Включает ли автоматическая отмена выбора прикрепленного сеанса репликацию сеанса?
Но у меня нет решения. Кто-нибудь решил эту проблему?
Перекрестная публикация здесь от мой ответ на StackOverflow на этот же вопрос
Из статьи, которую вы добавили Адам Кэмерон, он упоминает о проблемах с репликацией сеанса - Проблема с репликацией сеанса при кластеризации CF10. Ключевым моментом здесь является то, что ошибка была введена для ColdFusion 10 (3361502) не имея возможности включить репликацию сеанса в Администраторе. С тех пор эта ошибка исправлена. Вы используете обновленную версию?
В одном из комментариев к этой ошибке кто-то из Adobe упоминает об этом:
Когда липкий сеанс включен, сеанс не реплицируется, а когда липкий сеанс отключен, сеанс автоматически реплицируется.
Казалось бы, в ColdFusion 10, когда вы отключаете закрепленные сеансы, это должно включать репликацию сеансов. Вы также должны включить переменные сеанса J2EE.
Есть также некоторые ограничения при репликации сеанса. Из документы здесь:
Репликация сеанса также гарантирует, что переменные области сеанса реплицируются по кластеру. Однако репликация сеанса не поддерживает репликацию массивов в CFC области сеанса или переменных..
После короткой беседы я отослал ОП к этой статье - Работа с Tomcat как с встроенным сервером приложений в котором более подробно рассказывается о работе с кластерами в ColdFusion 10. Особый интерес представляет раздел, посвященный управлению кластером, под названием «Добавление удаленного экземпляра в кластер». Там упоминаются некоторые дополнения, которые необходимо внести в файл server.xml на каждом удаленном экземпляре.
Чтобы добавить удаленный экземпляр в кластер, выполните следующие действия:
- Зарегистрируйте удаленный экземпляр на локальном компьютере.
- Создайте кластер на локальной машине.
- Откройте файл cf_install_dir \ instance-name \ runtime \ conf \ server.xml удаленного экземпляра.
- Добавьте следующий блок между записями
</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. С помощью администратора локального хоста ColdFusion добавьте в кластер локальный и удаленный экземпляры.
Примечание: Если вы включаете прикрепленные сеансы, маршрут JVM удаленного и локального экземпляров не должен совпадать.
7. Перезапустите все экземпляры.