2013-10-30 29 views
0

我有2個TOMCATS:Tomcat的7複製 - 不同的機器

1)10.0.50.35

2)10.0.110.31

10.0.50.35的server.xml:

<Engine name="Catalina" defaultHost="localhost"> 

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

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

     <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
     <Membership className="org.apache.catalina.tribes.membership.McastService" 
        address="228.0.0.4" 
        port="45564" 
        frequency="500" 
        dropTime="3000"/> 
     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
        address="auto" 
        port="4000" 
        autoBind="100" 
        selectorTimeout="5000" 
        maxThreads="6"/> 

     <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
     </Sender> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
     </Channel> 

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

     <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" 
       tempDir="/tmp/war-temp/" 
       deployDir="/tmp/war-deploy/" 
       watchDir="/tmp/war-listen/" 
       watchEnabled="false"/> 

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

這裏是10.0.110.31 server.xml

<Engine name="Catalina" defaultHost="localhost"> 

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

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

     <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
     <Membership className="org.apache.catalina.tribes.membership.McastService" 
        address="228.0.0.4" 
      bind="10.0.50.35" 
        port="45564" 
        frequency="500" 
        dropTime="3000"/> 
     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
        address="auto" 
        port="4000" 
        autoBind="100" 
        selectorTimeout="5000" 
        maxThreads="6"/> 

     <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
     </Sender> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
     </Channel> 

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

     <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" 
       tempDir="/tmp/war-temp/" 
       deployDir="/tmp/war-deploy/" 
       watchDir="/tmp/war-listen/" 
       watchEnabled="false"/> 

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

10.0.110.31啓動,但10.0.50.35犯規,並出現以下錯誤:

SEVERE: Unable to start cluster. 
org.apache.catalina.tribes.ChannelException: java.net.SocketException: Cannot assign requested address; No faulty members identified. 
at org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:178) 
at org.apache.catalina.tribes.group.ChannelCoordinator.start(ChannelCoordinator.java:99) 
at org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:162) 
at org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.start(MessageDispatchInterceptor.java:157) 
at org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:162) 
at org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:162) 
at org.apache.catalina.tribes.group.GroupChannel.start(GroupChannel.java:419) 
at org.apache.catalina.ha.tcp.SimpleTcpCluster.startInternal(SimpleTcpCluster.java:685) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1106) 
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:691) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456) 
Caused by: java.net.SocketException: Cannot assign requested address 
+1

我一無所知集羣Tomcat的,但應該有一個綁定=「10.0.110.31」爲您入境10.0。 50.35服務器? – Jaydee

回答

3

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

去掉 「自動」,並把你的局域網的地址。

1

幾點建議:

首先,確保組播是properly enabled on your system

其次,確保您的JVM首先嚐試綁定到IPv4地址(而不是IPv6)。做到這一點在Tomcat的bin目錄添加以下到JAVA_OPTS在catalina.sh:

JAVA_OPTS="-Djava.net.preferIPv4Stack=true"