Fady, Sorry for top posting.
If I remember correctly, the Cluster Element goes into the Container and not the Host. Plus I see in our (working) case, a DeltaManager and a JvmRouteSessionIDBinderListener <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> ... <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> Besides this, only ports, limits and values are different. You may want to filter out the replication for static resources as gifs jpg or css. <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;" /> Best regards Peter > below is the server.xml configuration, as mentioened earlier the issue > is related to the cluster configuration, and as per my research i can > see that some users are facing the same issue but i didnt found the > solution of it > > > <?xml version='1.0' encoding='utf-8'?> > <!-- > Licensed to the Apache Software Foundation (ASF) under one or more > contributor license agreements. See the NOTICE file distributed with > this work for additional information regarding copyright ownership. > The ASF licenses this file to You under the Apache License, Version 2.0 > (the "License"); you may not use this file except in compliance with > the License. You may obtain a copy of the License at > > http://www.apache.org/licenses/LICENSE-2.0 > > Unless required by applicable law or agreed to in writing, software > distributed under the License is distributed on an "AS IS" BASIS, > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > See the License for the specific language governing permissions and > limitations under the License. > --> > <!-- Note: A "Server" is not itself a "Container", so you may not > define subcomponents such as "Valves" at this level. > Documentation at /docs/config/server.html > --> > <Server port="8005" shutdown="SHUTDOWN"> > <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> > <!-- Security listener. Documentation at /docs/config/listeners.html > <Listener className="org.apache.catalina.security.SecurityListener" /> > --> > <!--APR library loader. Documentation at /docs/apr.html --> > <Listener className="org.apache.catalina.core.AprLifecycleListener" > SSLEngine="on" /> > <!-- Prevent memory leaks due to use of particular java/javax APIs--> > <Listener > className="org.apache.catalina.core.JreMemoryLeakPreventionListener" > /> > <Listener > className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" > /> > <Listener > className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" > /> > > <!-- Global JNDI resources > Documentation at /docs/jndi-resources-howto.html > --> > <GlobalNamingResources> > <!-- Editable user database that can also be used by > UserDatabaseRealm to authenticate users > --> > <Resource name="UserDatabase" auth="Container" > type="org.apache.catalina.UserDatabase" > description="User database that can be updated and saved" > factory="org.apache.catalina.users.MemoryUserDatabaseFactory" > pathname="conf/tomcat-users.xml" /> > </GlobalNamingResources> > > <!-- A "Service" is a collection of one or more "Connectors" that share > a single "Container" Note: A "Service" is not itself a "Container", > so you may not define subcomponents such as "Valves" at this level. > Documentation at /docs/config/service.html > --> > <Service name="Catalina"> > > <!--The connectors can use a shared executor, you can define one > or more named thread pools--> > <!-- > <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" > maxThreads="150" minSpareThreads="4"/> > --> > > > <!-- A "Connector" represents an endpoint by which requests are received > and responses are returned. Documentation at : > Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) > Java AJP Connector: /docs/config/ajp.html > APR (HTTP/AJP) Connector: /docs/apr.html > Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 > --> > <Connector port="8080" protocol="HTTP/1.1" > connectionTimeout="60000" maxThreads="500" > minSpareThreads="25" maxSpareThreads="75" enableLookups="false" > disableUploadTimeout="true" acceptCount="100" redirectPort="8443" /> > <!-- A "Connector" using the shared thread pool--> > <!-- > <Connector executor="tomcatThreadPool" > port="8080" protocol="HTTP/1.1" > connectionTimeout="60000" > redirectPort="8443" /> > --> > <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 > This connector uses the NIO implementation that requires the JSSE > style configuration. When using the APR/native implementation, the > OpenSSL style configuration is required as described in the > APR/native > documentation --> > <!-- > <Connector port="8443" > protocol="org.apache.coyote.http11.Http11NioProtocol" > maxThreads="150" SSLEnabled="true" scheme="https" secure="true" > clientAuth="false" sslProtocol="TLS" /> > --> > > <!-- Define an AJP 1.3 Connector on port 8009 --> > <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> > > > <!-- An Engine represents the entry point (within Catalina) that processes > every request. The Engine implementation for Tomcat stand alone > analyzes the HTTP headers included with the request, and passes them > on to the appropriate Host (virtual host). > Documentation at /docs/config/engine.html --> > > <!-- You should set jvmRoute to support load-balancing via AJP ie : > > --> > <Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatNode1"> > <!-- Use the LockOutRealm to prevent attempts to guess user passwords > via a brute-force attack --> > <Realm className="org.apache.catalina.realm.LockOutRealm"> > <!-- This Realm uses the UserDatabase configured in the global JNDI > resources under the key "UserDatabase". Any edits > that are performed against this UserDatabase are immediately > available for use by the Realm. --> > <Realm className="org.apache.catalina.realm.UserDatabaseRealm" > resourceName="UserDatabase"/> > </Realm> > > <Host name="localhost" appBase="webapps" > unpackWARs="true" autoDeploy="true" startStopThreads="0"> > <!--For clustering, please take a look at documentation at: > /docs/cluster-howto.html (simple how to) > /docs/config/cluster.html (reference documentation) --> > <!-- > <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> > --> > > <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" > channelSendOptions="4"> > <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="9000"/> > <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="D:/imaljava/TomcatNode1/tmp/war-temp/" > deployDir="D:/imaljava/TomcatNode1/tmp/war-deploy/" > watchDir="D:/imaljava/TomcatNode1/tmp/war-listen/" > watchEnabled="false"/> > > <ClusterListener > className="org.apache.catalina.ha.session.ClusterSessionListener"/> > </Cluster> > <!-- SingleSignOn valve, share authentication between web applications > Documentation at: /docs/config/valve.html --> > <!-- > <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> > --> > > <!-- Access log processes all example. > Documentation at: /docs/config/valve.html > Note: The pattern used is equivalent to using pattern="common" > --> > <Valve className="org.apache.catalina.valves.AccessLogValve" > directory="logs" > prefix="localhost_access_log" suffix=".txt" > pattern="%h %l %u %t "%r" %s %b" /> > <Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" > threshold="900" /> > > </Host> > </Engine> > </Service> > </Server> > > On Mon, Feb 6, 2017 at 6:51 PM, André Warnier (tomcat) <a...@ice-sa.com> > wrote: > > On 06.02.2017 17:45, Fady Haikal wrote: > >> > >> Hi, > >> What is the host OS ? Windows Server 2012 > >> What is the Tomcat version ? Apache Tomcat/8.0.30 > >> > >> Is this problem new ? was this working before ? how long ? Since > >> cluster implementation > >> > > > > I still don't know tribes, but then my non-educated guess at this point > > would be that there is something wrong in your configuration. > > Can you copy/paste it here ? (remove sensible things like passwords, public > > IP addresses etc..)(but not to the point of making it uncheckable). > > > > Then maybe some tribes-specialist can take over ? > > > > > >> > >> Is there actually something listening on that address/port ? Tomcat > >> cluster > >> > >> the Port 4000 is listening and there is no disconnection between 2 > >> nodes ping and telnet are OK > >> > >> On Mon, Feb 6, 2017 at 6:42 PM, André Warnier (tomcat) <a...@ice-sa.com> > >> wrote: > >>> > >>> On 06.02.2017 17:24, Fady Haikal wrote: > >>>> > >>>> > >>>> Plz can i get some help here? > >>>> This issue is still occurring and it's filling the log file in the > >>>> Production server > >>>> > >>>> Regards, > >>>> Fady > >>> > >>> > >>> > >>> Hi. > >>> If you want quick answers, you should provide more information. > >>> What is the host OS ? > >>> What is the Tomcat version ? > >>> Is this problem new ? was this working before ? how long ? > >>> > >>> I do not know tribes at all, but according to the logfile below, it seems > >>> that something is trying to "ping" the address 10.114.43.103, port 4000, > >>> and > >>> never getting a response (or at least not within 3000ms). > >>> Is there actually something listening on that address/port ? > >>> The "netstat" command (available both on Linux and Windows) can tell you. > >>> If there is something listening there, can it respond to whatever is > >>> ping-ing it ? > >>> (routing, firewall, ..) > >>> > >>>> > >>>> On Mon, Feb 6, 2017 at 8:52 AM, Fady Haikal <fadyhai...@gmail.com> > >>>> wrote: > >>>>> > >>>>> > >>>>> Guys, we are facing the below errors in Tomcat cluster, please advise > >>>>> > >>>>> > >>>>> 06-Feb-2017 01:14:20.718 SEVERE [GroupChannel-Heartbeat-1] > >>>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.heartbeat > >>>>> Unable to send AbstractReplicatedMap.ping message > >>>>> org.apache.catalina.tribes.ChannelException: Operation has timed > >>>>> out(3000 ms.).; Faulty members:tcp://{10, 114, 43, 103}:4000; > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(ParallelNioSender.java:108) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(PooledParallelSender.java:48) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:54) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordinator.java:82) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.sendMessage(MessageDispatchInterceptor.java:81) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(TcpFailureDetector.java:93) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:233) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:186) > >>>>> at org.apache.catalina.tribes.group.RpcChannel.send(RpcChannel.java:99) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.ping(AbstractReplicatedMap.java:267) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.heartbeat(AbstractReplicatedMap.java:885) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.GroupChannel.heartbeat(GroupChannel.java:161) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.group.GroupChannel$HeartbeatThread.run(GroupChannel.java:697) > >>>>> > >>>>> > >>>>> 06-Feb-2017 01:20:51.437 SEVERE [NioReceiver] > >>>>> org.apache.catalina.tribes.transport.nio.NioReceiver.listen Unable to > >>>>> process request in NioReceiver > >>>>> java.io.IOException: A non-blocking socket operation could not be > >>>>> completed immediately > >>>>> at sun.nio.ch.SocketDispatcher.close0(Native Method) > >>>>> at sun.nio.ch.SocketDispatcher.close(Unknown Source) > >>>>> at sun.nio.ch.SocketChannelImpl.kill(Unknown Source) > >>>>> at sun.nio.ch.WindowsSelectorImpl.implDereg(Unknown Source) > >>>>> at sun.nio.ch.SelectorImpl.processDeregisterQueue(Unknown Source) > >>>>> at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) > >>>>> at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) > >>>>> at sun.nio.ch.SelectorImpl.select(Unknown Source) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:272) > >>>>> at > >>>>> > >>>>> org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.java:425) > >>>>> at java.lang.Thread.run(Unknown Source) > >>>>> > >>>>> Regards, > >>>>> Fady > >>>> > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > >>>> For additional commands, e-mail: users-h...@tomcat.apache.org > >>>> > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > >>> For additional commands, e-mail: users-h...@tomcat.apache.org > >>> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > >> For additional commands, e-mail: users-h...@tomcat.apache.org > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >