Hallo liebe Tomcat Freunde,
ich habe ein Problem mit dem Aufbau eines Tomcat Clusters welcher über Apache + Mod_JK gebalanced wird (Debian Lenny) Tomcat: 6.0.26 und hoffe dass mir hier jemand weiterhelfen kann:
Problem:
Seitenaufruf auf TomcatServer1 wird von TomcatServer2 verarbeitet und Seitenaufruf auf TomcatServer2 wird von TomcatServer1 verarbeitet.
Dabei taucht folgende Meldung im catalina.out des jeweils (nicht arbeiteten) Servers auf:
Die Cluster Konfiguration wurde nach der offiziellen ClusterHowTo vorgenommen http://tomcat.apache.org/tomcat-6.0-...ter-howto.html
Meine workers.properties sieht wie folgt aus:
Clusterteil der Server.xml:
Ich hoffe jemand hat eine Idee und kann mir weiterhelfen. Stehe momentan echt an.
Danke
Gruß
schoysi
ich habe ein Problem mit dem Aufbau eines Tomcat Clusters welcher über Apache + Mod_JK gebalanced wird (Debian Lenny) Tomcat: 6.0.26 und hoffe dass mir hier jemand weiterhelfen kann:
Problem:
Seitenaufruf auf TomcatServer1 wird von TomcatServer2 verarbeitet und Seitenaufruf auf TomcatServer2 wird von TomcatServer1 verarbeitet.
Dabei taucht folgende Meldung im catalina.out des jeweils (nicht arbeiteten) Servers auf:
Code:
Apr 28, 2010 3:51:00 PM org.apache.catalina.ha.session.DeltaManager messageReceived SEVERE: Manager [localhost#]: Unable to receive message through TCP channel java.io.InvalidObjectException: Could not find a SessionFactory named: null at org.hibernate.impl.SessionFactoryImpl.readResolve(SessionFactoryImpl.java:612) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1762) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(DeltaRequest.java:361) at org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.java:255) at org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(DeltaManager.java:621) at org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1402) at org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1357) at org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1093) at org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:87) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:901) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:882) at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:269) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79) at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:110) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79) at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:241) at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:225) at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:188) at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:91) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)
Meine workers.properties sieht wie folgt aus:
Code:
workers.tomcat_home=/opt/tomcat-6.0.26 workers.java_home=/usr/lib/jvm/java-6-sun ps=/ worker.list = bal1,stat1 worker.server1.type = ajp13 worker.server1.host = 10.10.1.1 worker.server1.port = 8009 worker.server1.lbfactor = 10 worker.server2.type = ajp13 worker.server2.host = 10.10.1.2 worker.server2.port = 8009 worker.server2.lbfactor = 10 worker.bal1.type = lb worker.bal1.sticky_session = 1 worker.bal1.balanced_workers = server1,server2 worker.stat1.type = status worker.bal1.local_worker_only=1
Code:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost" jvmRoute="server1"> <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="true"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="applikation" debug="0" reloadable="true" allowLinking="true"> </Context>
Danke
Gruß
schoysi