Como configurar o cluster com a replicação SESSION no Coldfusion 10?

1

Não consigo configurar um cluster com a replicação de sessão. Eu configurei com sucesso um cluster com uma sessão persistente.  Quando googled eu encontrei um monte de links explicando o mesmo problema, como

  1. link

  2. link

A desmarcação automática da sessão fixa permite a replicação da sessão?

Mas não onde eu tenho uma solução. Alguém resolveu esse problema?

    
por user3427540 06.06.2014 / 14:08

1 resposta

0

Cross postar aqui de minha resposta no StackOverflow para essa mesma pergunta

Do artigo que você incluiu por Adam Cameron ele menciona ter problemas com a replicação de sessão - Problema com a replicação de sessão com clustering CF10 . A chave aqui é que um bug foi inserido para o ColdFusion 10 (3361502) sem ter o opção para ativar a replicação de sessão no Administrador. Esse bug já foi corrigido. Você está executando a versão atualizada?

Em um dos comentários desse bug alguém da Adobe menciona isso:

When sticky session is enabled the session is not replicated and when sticky session is disabled the session is automatically replicated.

Assim, parece que, no ColdFusion 10, quando você desabilita sessões fixas, isso deve habilitar a replicação de sessão. Você também deve ativar as variáveis de sessão J2EE.

Existem também algumas limitações na replicação de sessão. Dos documentos aqui :

Session replication also ensures that that Session scope variables are replicated across the cluster. However, session replication does not support replication of arrays in Session scope CFCs or variables.

Após um breve bate-papo, consultei o OP deste artigo - Como trabalhar com o Tomcat como no servidor de aplicativos , que entra em maiores detalhes sobre o trabalho com clusters no ColdFusion 10. De particular interesse é a seção sobre gerenciamento de cluster intitulada "Adicionando instância remota ao cluster". Lá, ele menciona algumas adições que precisam ser feitas no arquivo server.xml em cada instância remota.

Use the following steps to add a remote instance to a cluster:

  1. Register the remote instance to local machine.
  2. Create a cluster in the local machine.
  3. Open the cf_install_dir\instance-name\runtime\conf\server.xml file of the remote instance.
  4. Add the following block between the entries </host> and </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 . In the entry above, update the membership port with the multicast port of the cluster.

6 . Using ColdFusion administrator of the local host, add the local instance and the remote instance to the cluster.

Note: If you enable sticky sessions, the JVM route of the remote instance and local instance must not be the same.

7 . Restart all of the instances.

    
por 06.06.2014 / 16:37