no need to email me directly, I read the tomcat mailing list.
actually, your classpath is probably good. Its in the way the system
loads its classes.
There is classloading going while deserializing the message.
I've created a small patch
try to download
http://people.apache.org/~fhanik/tomcat/catalina-ha.jar
replace the one you have in your lib
and try again, if it works, I'll create a bug report and submit the fix
to tomcat core
Filip
On 08/10/2009 09:01 AM, TianJing wrote:
thanks for you help, could you please tell me more details?
my $CLASSPATH include the lib and the jre/lib,what should i do to
solve the problem?
thanks very much!
2009/8/10 Filip Hanik - Dev Lists <devli...@hanik.com
<mailto:devli...@hanik.com>>
so replication is actually working for you, you just have a
classpath issues with how you setup your libraries.
Filip
On 08/10/2009 08:35 AM, TianJing wrote:
thanks,
the two tomcat are on different machines, one is on the same
server with apache.
in the tomcat catalina.out, it says:
2009-8-10 18:57:53
org.apache.catalina.tribes.tipis.AbstractReplicatedMap
messageReceived
ÑÏÖØ: Unable to apply diff to
key:4CFE0AE7D7D00AAB2536871C84FE7865.worker2
java.lang.ClassNotFoundException: javax.faces.context.FacesContext
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native
Method)
at
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at
org.apache.el.util.ReflectionUtil.forName(ReflectionUtil.java:68)
at
org.apache.el.util.ReflectionUtil.toTypeArray(ReflectionUtil.java:95)
at
org.apache.el.MethodExpressionImpl.readExternal(MethodExpressionImpl.java:291)
at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
com.sun.facelets.el.TagMethodExpression.readExternal(TagMethodExpression.java:101)
at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
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 java.util.ArrayList.readObject(ArrayList.java:593)
at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at
java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
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 java.util.HashMap.readObject(HashMap.java:1030)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
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 java.util.HashMap.readObject(HashMap.java:1030)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at
java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480)
at
org.ajax4jsf.application.AjaxStateHolder.readObject(AjaxStateHolder.java:184)
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.invokeReadObject(ObjectStreamClass.java:974)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
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.DeltaSession.applyDiff(DeltaSession.java:171)
at
org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:626)
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.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:86)
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)
2009/8/10 TianJing <tianj...@genomics.org.cn
<mailto:tianj...@genomics.org.cn>
<mailto:tianj...@genomics.org.cn
<mailto:tianj...@genomics.org.cn>>>
the two tomcat are on different machines, one is on the same
server with apache.
2009/8/10 Filip Hanik - Dev Lists <devli...@hanik.com
<mailto:devli...@hanik.com>
<mailto:devli...@hanik.com <mailto:devli...@hanik.com>>>
are the Tomcat machines on the same box?
if yes, and this is tomcat 6.0.20, there is a regression in
the tomcat code
https://issues.apache.org/bugzilla/show_bug.cgi?id=47308
If this is not the case, let us know and we can help
you further
Filip
On 08/10/2009 05:51 AM, TianJing wrote:
Hi all,
i am now setting up a cluster with a httpd-2.2.13
and two
tomcat 6.0, i
hope to use Session Replication,but there have some
problems:
the session can not replication,when a tomcat is
disappeared, the session is
lost.
could you please give me some advices? thanks very
much!
here is some detail information:
i set the cluser at engine level,and my routing
table is :
Destination Gateway Genmask Flags
Metric Ref Use
Iface
255.255.255.255 0.0.0.0 255.255.255.255 UH
0 0 0 eth0
224.0.0.4 0.0.0.0 255.255.255.255 UH
0 0 0 eth1
my configure file is as follow:
########workers.properties configuration
workers.java_home=/usr/java/latest
worker.list=controller
# Set properties for worker1;
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8999
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
worker.worker1.redirect=worker2
# Set properties for worker2;
worker.worker2.type=ajp13
worker.worker2.host=192.168.8.129
worker.worker2.port=8999
worker.worker2.lbfactor=50
worker.worker2.cachesize=10
worker.worker2.cache_timeout=600
worker.worker2.socket_keepalive=1
worker.worker2.socket_timeout=300
worker.worker2.redirect=worker1
# Define the LB worker
worker.controller.type=lb
worker.controller.balance_workers=worker1,worker2
worker.controller.sticky_session=true
########apache vhost:
<VirtualHost *:80>
ServerAdmin xxxx.xxxx.xxxx
#DocumentRoot "/share/bccdata/Cloud/src"
DirectoryIndex home.xhtml index.htm index.jsp
index.php
ServerName xxx.xxx.xxx.xxx
JkMountFile /scratch/apache2.2.13/conf/worker.conf
ErrorLog "logs/cloud-error.log"
CustomLog "logs/cloud-access_log" common
</VirtualHost>
#######worker.conf
/*=controller
##tomcat1 server.xml on server1
<Engine name="Catalina" defaultHost="xxx.xxxxx.xxx.xx"
jvmRoute="controller">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Cluster
className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<!--<Manager
className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>-->
<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="224.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
selectorTimeout="100"
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"/>
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve
className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<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>
<Host name="xxx.xxx.xxx.xxx" debug="0" appBase="webapps"
unpackWARs="true"
autoDeploy="true">
<Context path="" docBase="Test" debug="0" reloadable="false"
distributable="true"/>
</Host>
</Engine>
##tomcat2 server.xml on server2
<Engine name="Catalina" defaultHost="xxx.xxx.xxx.xxx"
jvmRoute="controller">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<!--<Engine name="Catalina" defaultHost="localhost">-->
<Cluster
className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<!--<Manager
className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>-->
<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="224.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
selectorTimeout="100"
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"/>
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve
className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<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>
<Host name="xxxx.xxx.xxx.xxx" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="Test" debug="0" reloadable="false"
distributable="true"/>
</Host>
</Engine>
---------------------------------------------------------------------
To unsubscribe, e-mail:
users-unsubscr...@tomcat.apache.org
<mailto:users-unsubscr...@tomcat.apache.org>
<mailto:users-unsubscr...@tomcat.apache.org
<mailto:users-unsubscr...@tomcat.apache.org>>
For additional commands, e-mail:
users-h...@tomcat.apache.org <mailto:users-h...@tomcat.apache.org>
<mailto:users-h...@tomcat.apache.org
<mailto:users-h...@tomcat.apache.org>>
-- Tianjing
Bioinformatics Center,
Beijing Genomics Institute,Shenzhen
Tel:+86-755-25273851
MSN:tianjing...@hotmail.com
<mailto:msn%3atianjing...@hotmail.com>
<mailto:msn%3atianjing...@hotmail.com
<mailto:msn%253atianjing...@hotmail.com>>
--
Tianjing
Bioinformatics Center,
Beijing Genomics Institute,Shenzhen
Tel:+86-755-25273851
MSN:tianjing...@hotmail.com
<mailto:msn%3atianjing...@hotmail.com>
<mailto:msn%3atianjing...@hotmail.com
<mailto:msn%253atianjing...@hotmail.com>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
<mailto:users-unsubscr...@tomcat.apache.org>
For additional commands, e-mail: users-h...@tomcat.apache.org
<mailto:users-h...@tomcat.apache.org>
--
Tianjing
Bioinformatics Center,
Beijing Genomics Institute,Shenzhen
Tel:+86-755-25273851
MSN:tianjing...@hotmail.com <mailto:msn%3atianjing...@hotmail.com>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org