Return-Path: Delivered-To: apmail-tomcat-users-archive@www.apache.org Received: (qmail 53531 invoked from network); 10 Aug 2009 15:01:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Aug 2009 15:01:34 -0000 Received: (qmail 5591 invoked by uid 500); 10 Aug 2009 15:01:36 -0000 Delivered-To: apmail-tomcat-users-archive@tomcat.apache.org Received: (qmail 5536 invoked by uid 500); 10 Aug 2009 15:01:36 -0000 Mailing-List: contact users-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Users List" Delivered-To: mailing list users@tomcat.apache.org Received: (qmail 5525 invoked by uid 99); 10 Aug 2009 15:01:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Aug 2009 15:01:36 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jingtian.seu217@gmail.com designates 74.125.92.150 as permitted sender) Received: from [74.125.92.150] (HELO qw-out-1920.google.com) (74.125.92.150) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Aug 2009 15:01:28 +0000 Received: by qw-out-1920.google.com with SMTP id 4so1088308qwk.12 for ; Mon, 10 Aug 2009 08:01:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to :content-type; bh=gv8r+q80OUZlgOG1dSkFtk3g6OplZ5zctCnwb8duGOg=; b=Dtvgq5c5KsQ5Eec1RXfFdKewEFfMGXGpBuWBfCoOPgzJ0ojCvShBI4OTbeEG+oJ7as DVjgqiA8YyD2FdOL5wj0+npyQP3vBk55HURQLuDGIKa+TkSjKwYN/bCAg3H4oSjgQ0+D sn7dYXR/pQ6lGtoWAEZqm8HwfMfChu3OdQa0I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; b=BNPlyUT1hh+Brh4sxAG10uCtXXEQoAU/25QBjkEvBuBxgG786rz6reORvf2Ozaihy0 A22ySMl2Ctli0SNyaJxfP1YpXh2DJy7N7ynOuy9+RvSR9FVW7OjWqqr8W1mrMNVGsTVs DEXaAZhN0dPONWSCVfbW5j7CoUP7LL8++HFbc= MIME-Version: 1.0 Sender: jingtian.seu217@gmail.com Received: by 10.229.84.201 with SMTP id k9mr1240771qcl.84.1249916467164; Mon, 10 Aug 2009 08:01:07 -0700 (PDT) In-Reply-To: <4A8032D0.8000501@hanik.com> References: <7a9b6d1a0908100451t67304e21mb36b6649f5be8204@mail.gmail.com> <4A80245B.8090600@hanik.com> <7a9b6d1a0908100725s503e2b4by9b0c93a9280ac582@mail.gmail.com> <7a9b6d1a0908100735p79a1fe90mf47f4c5815dc2674@mail.gmail.com> <4A8032D0.8000501@hanik.com> Date: Mon, 10 Aug 2009 23:01:07 +0800 X-Google-Sender-Auth: a1ebe54c42d7754c Message-ID: <7a9b6d1a0908100801q2197ce0eg9821e94219557c75@mail.gmail.com> Subject: Re: questions on tomcat cluster From: TianJing To: devlists@hanik.com, Tomcat Users List Content-Type: multipart/alternative; boundary=0016364ee2ea063d6b0470cadb5f X-Virus-Checked: Checked by ClamAV on apache.org --0016364ee2ea063d6b0470cadb5f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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 > 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.AbstractReplicatedMa= p >> messageReceived >> =C3=91=C3=8F=C3=96=C3=98: Unable to apply diff to key:4CFE0AE7D7D00AAB25= 36871C84FE7865.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.jav= a: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:35= 1) >> 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:166= 7) >> 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:35= 1) >> at java.util.ArrayList.readObject(ArrayList.java:593) >> at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.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:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> at >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) >> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:166= 7) >> 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:35= 1) >> at java.util.HashMap.readObject(HashMap.java:1030) >> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.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:35= 1) >> at java.util.HashMap.readObject(HashMap.java:1030) >> at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.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.jav= a:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.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:35= 1) >> at >> org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(D= eltaRequest.java:361) >> at >> org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.ja= va:255) >> at >> org.apache.catalina.ha.session.DeltaSession.applyDiff(DeltaSession.java:= 171) >> at >> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(A= bstractReplicatedMap.java:626) >> at >> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChann= el.java:269) >> at >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(= ChannelInterceptorBase.java:79) >> at >> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.message= Received(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.mess= ageReceived(ThroughputInterceptor.java:86) >> at >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(= ChannelInterceptorBase.java:79) >> at >> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(Chan= nelCoordinator.java:241) >> at >> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(Re= ceiverBase.java:225) >> at >> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel= (NioReplicationTask.java:188) >> at >> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioRepli= cationTask.java:91) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto= r.java:886) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja= va:908) >> at java.lang.Thread.run(Thread.java:619) >> >> >> 2009/8/10 TianJing > tianjing@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 > > >> >> >> 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=3D47308 >> >> 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=3D/usr/java/latest >> worker.list=3Dcontroller >> # Set properties for worker1; >> worker.worker1.type=3Dajp13 >> worker.worker1.host=3Dlocalhost >> worker.worker1.port=3D8999 >> worker.worker1.lbfactor=3D50 >> worker.worker1.cachesize=3D10 >> worker.worker1.cache_timeout=3D600 >> worker.worker1.socket_keepalive=3D1 >> worker.worker1.socket_timeout=3D300 >> worker.worker1.redirect=3Dworker2 >> # Set properties for worker2; >> worker.worker2.type=3Dajp13 >> worker.worker2.host=3D192.168.8.129 >> worker.worker2.port=3D8999 >> worker.worker2.lbfactor=3D50 >> worker.worker2.cachesize=3D10 >> worker.worker2.cache_timeout=3D600 >> worker.worker2.socket_keepalive=3D1 >> worker.worker2.socket_timeout=3D300 >> worker.worker2.redirect=3Dworker1 >> # Define the LB worker >> worker.controller.type=3Dlb >> worker.controller.balance_workers=3Dworker1,worker2 >> worker.controller.sticky_session=3Dtrue >> >> ########apache vhost: >> >> 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 >> >> >> #######worker.conf >> /*=3Dcontroller >> >> >> ##tomcat1 server.xml on server1 >> > jvmRoute=3D"controller"> >> > resourceName=3D"UserDatabase"/> >> > className=3D"org.apache.catalina.ha.tcp.SimpleTcpCluster" >> channelSendOptions=3D"8"> >> >> > className=3D"org.apache.catalina.ha.session.DeltaManager" >> >> expireSessionsOnShutdown=3D"false" >> >> notifyListenersOnReplication=3D"true"/> >> >> > className=3D"org.apache.catalina.tribes.group.GroupChannel"> >> > className=3D"org.apache.catalina.tribes.membership.McastServi= ce" >> address=3D"224.0.0.4= " >> port=3D"45564" >> frequency=3D"500" >> dropTime=3D"3000"/> >> > >> className=3D"org.apache.catalina.tribes.transport.nio.NioReceiver" >> address=3D"auto" >> port=3D"4000" >> selectorTimeout=3D"100" >> maxThreads=3D"6"/> >> > >> className=3D"org.apache.catalina.tribes.transport.ReplicationTransmitte= r"> >> > >> className=3D"org.apache.catalina.tribes.transport.nio.PooledParallelSen= der"/> >> >> > >> className=3D"org.apache.catalina.tribes.group.interceptors.TcpFailureDe= tector"/> >> > >> className=3D"org.apache.catalina.tribes.group.interceptors.MessageDispa= tch15Interceptor"/> >> > >> className=3D"org.apache.catalina.tribes.group.interceptors.ThroughputIn= terceptor"/> >> >> > className=3D"org.apache.catalina.ha.tcp.ReplicationValve" >> >> >> filter=3D".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.t= xt;"/> >> >> > className=3D"org.apache.catalina.ha.deploy.FarmWarDeployer" >> tempDir=3D"/tmp/war-temp/" >> deployDir=3D"/tmp/war-deplo= y/" >> watchDir=3D"/tmp/war-listen= /" >> watchEnabled=3D"false"/> >> > >> className=3D"org.apache.catalina.ha.session.JvmRouteSessionIDBinderList= ener"/> >> > >> className=3D"org.apache.catalina.ha.session.ClusterSessionListener"/> >> >> > unpackWARs=3D"true" >> autoDeploy=3D"true"> >> > distributable=3D"true"/> >> >> >> >> >> >> ##tomcat2 server.xml on server2 >> > jvmRoute=3D"controller"> >> > resourceName=3D"UserDatabase"/> >> >> >> > className=3D"org.apache.catalina.ha.tcp.SimpleTcpCluster" >> channelSendOptions=3D"8"> >> >> > className=3D"org.apache.catalina.ha.session.DeltaManager" >> >> expireSessionsOnShutdown=3D"false" >> >> notifyListenersOnReplication=3D"true"/> >> >> > className=3D"org.apache.catalina.tribes.group.GroupChannel"> >> > className=3D"org.apache.catalina.tribes.membership.McastServi= ce" >> address=3D"224.0.0.4= " >> port=3D"45564" >> frequency=3D"500" >> dropTime=3D"3000"/> >> > >> className=3D"org.apache.catalina.tribes.transport.nio.NioReceiver" >> address=3D"auto" >> port=3D"4000" >> selectorTimeout=3D"100" >> maxThreads=3D"6"/> >> > >> className=3D"org.apache.catalina.tribes.transport.ReplicationTransmitte= r"> >> > >> className=3D"org.apache.catalina.tribes.transport.nio.PooledParallelSen= der"/> >> >> > >> className=3D"org.apache.catalina.tribes.group.interceptors.TcpFailureDe= tector"/> >> > >> className=3D"org.apache.catalina.tribes.group.interceptors.MessageDispa= tch15Interceptor"/> >> > >> className=3D"org.apache.catalina.tribes.group.interceptors.ThroughputIn= terceptor"/> >> >> > className=3D"org.apache.catalina.ha.tcp.ReplicationValve" >> >> >> filter=3D".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.t= xt;"/> >> >> > className=3D"org.apache.catalina.ha.deploy.FarmWarDeployer" >> tempDir=3D"/tmp/war-temp/" >> deployDir=3D"/tmp/war-deplo= y/" >> watchDir=3D"/tmp/war-listen= /" >> watchEnabled=3D"false"/> >> > >> className=3D"org.apache.catalina.ha.session.JvmRouteSessionIDBinderList= ener"/> >> > >> className=3D"org.apache.catalina.ha.session.ClusterSessionListener"/> >> >> > unpackWARs=3D"true" autoDeploy=3D"true"> >> > distributable=3D"true"/> >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org >> >> For additional commands, e-mail: users-help@tomcat.apache.org >> >> >> >> >> >> -- Tianjing >> >> Bioinformatics Center, >> Beijing Genomics Institute,Shenzhen >> Tel:+86-755-25273851 >> MSN:tianjing217@hotmail.com > MSN%3Atianjing217@hotmail.com > >> >> >> >> >> -- >> Tianjing >> >> Bioinformatics Center, >> Beijing Genomics Institute,Shenzhen >> Tel:+86-755-25273851 >> MSN:tianjing217@hotmail.com > MSN%3Atianjing217@hotmail.com > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org > For additional commands, e-mail: users-help@tomcat.apache.org > > --=20 Tianjing Bioinformatics Center, Beijing Genomics Institute,Shenzhen Tel:+86-755-25273851 MSN:tianjing217@hotmail.com --0016364ee2ea063d6b0470cadb5f--