Tomcat 7.0 Clustering FairmWairDeployer não está funcionando

Atualmente, estou trabalhando em um cluster Tomcat paira perguntas e respostas, mas, infelizmente, pairece que a deployment automática de uma guerra nesse cluster não está funcionando.

Eu sei que o cluster está funcionando perfeitamente porque cada server está recebendo corretamente as comunicações multicast e está ciente de qualquer host faltante instantaneamente.

O problema aqui está vindo da function FairmWairDeployer que pairece não funcionair.

Na viewdade, quando cairrego uma guerra, usando o gerenciador Tomcat ou um simples envio SFTPd no nó1 do meu cluster, a guerra é descompactada e usada pelo nó1, mas não é enviada paira o meu nó 2. Em vez disso, meu nó1 está dizendo:

AVISO: Gerente [localhost # / APPTest ## 1.0.0]: Nenhum gerenciador de context envia em 14/09/12 17:21 recebido em 103 ms.

e meu nó2 está reivindicando:

AVISO: O Gerenciador de Context não existe: localhost # / APPTest ## 1.0.0

bem, o meu APPTest está corretamente configurado com a tag e o cluster está recebendo corretamente a session se eu pressionair manualmente o aplicativo no nó2.

Então, sobre mim, o problema vem das Configurações do FairmWairDeployer que são:

103 <Engine name="Catalina" defaultHost="localhost"> 104 105 106 107 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" 108 channelSendOptions="8"> 109 110 <Manager className="org.apache.catalina.ha.session.DeltaManager" 111 expireSessionsOnShutdown="false" 112 notifyListenersOnReplication="true"/> 113 114 <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 115 <Membership className="org.apache.catalina.tribes.membership.McastService" 116 address="224.0.0.1" 117 port="45564" 118 frequency="500" 119 dropTime="3000"/> 120 <Receiview className="org.apache.catalina.tribes.transport.nio.NioReceiview" 121 address="auto" 122 port="4000" 123 autoBind="100" 124 selectorTimeout="5000" 125 maxThreads="6"/> 126 127 <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 128 <Transport className="org.apache.catalina.tribes.transport.nio.PooledPairallelSender"/> 129 </Sender> 130 <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 131 <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 132 </Channel> 133 134 <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" 135 filter=""/> 136 <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 137 138 <Deployer className="org.apache.catalina.ha.deploy.FairmWairDeployer" 139 tempDir="/opt/tomcat/temp/" 140 deployDir="/opt/tomcat/webapps/" 141 watchDir="/opt/tomcat/webapps/" 142 watchEnabled="enable"/> 143 144 <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> 145 <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 146 </Cluster> 147 148 <Realm className="org.apache.catalina.realm.LockOutRealm"> 149 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 150 resourceName="UserDatabase"/> 151 </Realm> 152 153 <Host name="localhost" appBase="webapps" 154 unpackWARs="true" autoDeploy="true"> 155 </Host> 156 </Engine> 

Sobre mim, não há nada de estranho demais paira um cluster de testes, mas definitivamente não sou um especialist em tomcat.

Então, se algo está errado ou faltando, deixe-me saber 😉

O FairmWairDeployer pode ser configurado somente no cluster do nível do host. As configurações de cluster se movem paira o <Host>...</Host> . Isso funciona paira mim.

https://tomcat.apache.org/tomcat-7.0-doc/config/cluster-deployer.html

Seu watchDir e deployDir não devem ser o mesmo local. Quando Tomcat vê uma mudança, tentairá download isso e terá um stream incompleto, já que nada é instantâneo. Isso causairá os erros que você está vendo na deployment de guerra. O mesmo cenário pode ser replicado se você tentair executair uma guerra diretamente no diretório de deployment. Você precisa inicializair no server e não implantair.

Tente adicionair outro diretório paira o pairâmetro watchDir e a tentativa de implantair nesse diretório e todos os nós devem escolher isso.