geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Genender <jgenen...@apache.org>
Subject Re: Tomcat version in G1.1 for clustering
Date Wed, 19 Apr 2006 19:17:05 GMT
I would vote for not moving to 5.5.16 for 1.1.  IMHO, its too close.  We
did some preliminary testing for 5.5.15 and it seems ok...and we will
know in the next several days if its good to bake in to 1.1.  5.5.9 is
fine to stick with since its pretty stable and it just works, and in the
event 5.5.15 causes any discomfort during testing, we are comfortable
that we can fall back on it.

IIRC, the 5.5.16 issues had to do with cross context stuff that David
Jencks and I worked pretty diligently on to fix.  So I would probably be
apt to push a -1 on 5.5.16 for 1.1.

Jeff

Dave Colasurdo wrote:
> Hmmm..  What level of Tomcat does the community want to include in G1.1?
> 
> Background...
> 
> Tomcat 5.5.9 - current working level in G1.0 and G1.1.. Clustering
> works.. TCK is testing with this level..
> 
> Tomcat 5.5.10-5.5.14 - clustering is broken
> 
> Tomcat 5.5.15 - Clustering seems to work somewhat. We've encountered at
> least one bug. Filip (tomcat clustering developer) mentioned there are
> still some significant bugs in this level and advises us to move to 5.5.16.
> 
> Tomcat 5.5.16 - Jeff has mentioned that he and David J had previously
> discovered some issues that required significant rework that he didn't
> want to tackle until G1.2..
> 
> So...  Do we stick with 5.5.9 for G1.1 and move to 5.5.16+ in G1.2?
> 
> Thanks
> -Dave-
> 
> 
> 
> Filip Hanik - Dev Lists wrote:
>> looks like you are right, there where some other fixes in .16 that
>> were important, so it may be better to use that one.
>> seems like you got a coordination error, ie, node1 requested state
>> from node2, but node2 didn't know about node1, and that caused the
>> stack trace from below.
>>
>> Filip
>>
>>
>> Dave Colasurdo wrote:
>>> Thanks Filip!!
>>>
>>> http://mail-archives.apache.org/mod_mbox/tomcat-users/200512.mbox/%3c63770.72.64.65.166.1135363511.squirrel@www.hanik.com%3e
>>>
>>>
>>> seems to indicate that it is fixed in 5.5.15..
>>>
>>> Is it fixed in 5.5.15 or 5.5.16?
>>>
>>> Thanks
>>> -Dave-
>>>
>>> Filip Hanik - Dev Lists wrote:
>>>> Clustering was broken in Tomcat 5.5.10-5.5.15 due to a protocol
>>>> change, this was corrected in 5.5.16.
>>>> I would run the tests again that version, and then I can help you
>>>> out with any problems you run into.
>>>>
>>>> Filip
>>>>
>>>>
>>>> Dave Colasurdo wrote:
>>>>> Jeff,
>>>>>
>>>>> Upgraded tomcat, tomcat_ajp and jasper to 5.5.15 and ran the
>>>>> clustering tests.
>>>>>
>>>>> The *good* news...
>>>>>  Load balancing, sticky session, session replication and session
>>>>> failover seem to work using the same deployment plan that was
>>>>> created for G1.1 w/ TC 5.5.9..
>>>>>
>>>>> The *bad* news...
>>>>>
>>>>> *Problem1*
>>>>> When testing Sticky session, my browser locks unto a particular
>>>>> cluster member (e.g. node1) due to the nodeid in the cookie. If I
>>>>> kill node1, the session fails over into node2 and all my session
>>>>> data is still present. This is good.
>>>>> The nodeid in the cookie continues to say node1 (this is also true
>>>>> w/ TC 5.5.9 w/ and mod-jk)..
>>>>>
>>>>> Now, if I restart node1 and wait a minute or so and then hit my
>>>>> browser,    I am directed to node1 and all my session data is gone. :(
>>>>> BTW, an earlier run using TC 5.5.9 also resulted in being directed
>>>>> back to node1 though the httpsession is retained.  I think this may
>>>>> be related to problems replicating data whenever nodes are
>>>>> added..   Which leads me to ...
>>>>>
>>>>>
>>>>> *Problem2*
>>>>> Whenever a cluster member is added to the cluster, the other nodes
>>>>> receive the following exception.  This occurs both during the
>>>>> initial addition of a node and after a stopped node is restarted...
>>>>>
>>>>> (Though later when I access an httpsession (via a servlet
>>>>> request)it does result in session replication between members.)
>>>>>
>>>>> 15:30:19,352 INFO  [SimpleTcpCluster] Replication member
>>>>> added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.14.160
>>>>> :4001,catalina,192.168.14.160,4001
>>>>> , alive=0]
>>>>> 15:30:19,692 ERROR [SimpleTcpCluster] Unable to send message
>>>>> through cluster sender.
>>>>> java.io.IOException: Sender not available. Make sure sender
>>>>> information is available to the ReplicationTransmitter.
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessageDat
>>>>> a(ReplicationTransmitter.java:857)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessage(Re
>>>>> plicationTransmitter.java:430)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.send(SimpleTcpCluste
>>>>> r.java:1074)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.DeltaManager.sendSessions(DeltaMa
>>>>> nager.java:1690)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.DeltaManager.handleGET_ALL_SESSIO
>>>>> NS(DeltaManager.java:1629)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.DeltaManager.messageReceived(Delt
>>>>> aManager.java:1443)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(
>>>>> DeltaManager.java:1225)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.ClusterSessionListener.messageRec
>>>>> eived(ClusterSessionListener.java:85)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.receive(SimpleTcpClu
>>>>> ster.java:1160)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.ClusterReceiverBase.messageDataReceiv
>>>>> ed(ClusterReceiverBase.java:418)
>>>>>         at
>>>>> org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java
>>>>> :107)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(Tcp
>>>>> ReplicationThread.java:131)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicati
>>>>> onThread.java:69)
>>>>> 15:30:19,692 ERROR [SimpleTcpCluster] Unable to send message
>>>>> through cluster sen
>>>>> der.
>>>>> java.io.IOException: Sender not available. Make sure sender
>>>>> information is avail
>>>>> able to the ReplicationTransmitter.
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessageDat
>>>>> a(ReplicationTransmitter.java:857)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessage(Re
>>>>> plicationTransmitter.java:430)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.send(SimpleTcpCluste
>>>>> r.java:1074)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.DeltaManager.handleGET_ALL_SESSIO
>>>>> NS(DeltaManager.java:1660)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.DeltaManager.messageReceived(Delt
>>>>> aManager.java:1443)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(
>>>>> DeltaManager.java:1225)
>>>>>         at
>>>>> org.apache.catalina.cluster.session.ClusterSessionListener.messageRec
>>>>> eived(ClusterSessionListener.java:85)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.receive(SimpleTcpClu
>>>>> ster.java:1160)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.ClusterReceiverBase.messageDataReceiv
>>>>> ed(ClusterReceiverBase.java:418)
>>>>>         at
>>>>> org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java
>>>>> :107)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(Tcp
>>>>> ReplicationThread.java:131)
>>>>>         at
>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicati
>>>>> onThread.java:69)
>>>>>
>>>>> *Problem3*
>>>>> Getting a bunch of exceptions relating to session invalidation
>>>>>
>>>>> [snip]
>>>>> java.lang.IllegalStateException: getId: Session already invalidated
>>>>> [snip]
>>>>>
>>>>> This one may not be new..
>>>>>
>>>>>
>>>>> Thanks
>>>>> -Dave-
>>>>>
>>>>>
>>>>> Jeff Genender wrote:
>>>>>> Dave,
>>>>>>
>>>>>> Thanks for doing this.
>>>>>>
>>>>>> Jeff
>>>>>>
>>>>>> Dave Colasurdo wrote:
>>>>>>> I've validated that the Geronimo clustering example
>>>>>>> (http://opensource.atlassian.com/confluence/oss/display/GERONIMO/Geronimo+Clustering+Example)
>>>>>>>
>>>>>>>  still works for Geronimo 1.1 (with Tomcat 5.5.9).  The application
>>>>>>> deployment plan (attached to email) required some changes.
>>>>>>>
>>>>>>> I'm now rebuilding G1.1 with Tomcat 5.5.15 to determine if the
>>>>>>> clustering Gbeans and plans still work..
>>>>>>>
>>>>>>> -Dave-
>>>>>>>
>>>>>>> Jeff Genender wrote:
>>>>>>>> IIRC, 5.5.15 went to backward compatibility...
>>>>>>>>
>>>>>>>> http://mail-archives.apache.org/mod_mbox/tomcat-users/200512.mbox/%3c63770.72.64.65.166.1135363511.squirrel@www.hanik.com%3e
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Perhaps Filip can fill us in on this.
>>>>>>>>
>>>>>>>> If I remember right, the 5.5.9 clustering GBeans will work
on
>>>>>>>> forward
>>>>>>>> versions.  So I don't think there is a problem there.  HEAD
has
>>>>>>>> been set
>>>>>>>> to 5.5.15 for quite some time.
>>>>>>>>
>>>>>>>> Nevertheless, it doesn't hurt to try em out ;-)
>>>>>>>>
>>>>>>>> Jeff
>>>>>>>>
>>>>>>>> Dave Colasurdo wrote:
>>>>>>>>> Jeff (et al.),
>>>>>>>>>
>>>>>>>>> Will G1.1 definitely be upgraded to Tomcat 5.5.15?
>>>>>>>>>
>>>>>>>>> IIRC, the clustering deployment plans were quite different
for
>>>>>>>>> 5.5.9
>>>>>>>>> -vs- 5.5.12.  If we upgrade to 5.5.15, we will likely
need a
>>>>>>>>> new plan
>>>>>>>>> that accounts for both the webcontainer upgrade as well
as the
>>>>>>>>> new G1.1
>>>>>>>>>  plan format..
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> -Dave-
>>>>>>>>>
>>>>>>>>> Jeff Genender wrote:
>>>>>>>>>> Thanks Rainer.  But I think 5.5.15 will be the one
for 1.1.  But
>>>>>>>>>> possibly 5.5.17 for 1.2 ;-)
>>>>>>>>>>
>>>>>>>>>> Jeff
>>>>>>>>>>
>>>>>>>>>> Rainer Jung wrote:
>>>>>>>>>>> Just for your information: 5.5.16 was released
a couple of
>>>>>>>>>>> weeks ago,
>>>>>>>>>>> but has some problems with de delivered packaginf
of examples
>>>>>>>>>>> app
>>>>>>>>>>> under
>>>>>>>>>>> windows.
>>>>>>>>>>>
>>>>>>>>>>> 5.5.17 is expected to be cut on friday and voted
stable
>>>>>>>>>>> eventually 1-2
>>>>>>>>>>> weeks later.
>>>>>>>>>>>
>>>>>>>>>>> Jeff Genender wrote:
>>>>>>>>>>>> Yep...need to update the plan.  Its updated
in trunk.
>>>>>>>>>>>>
>>>>>>>>>>>> Dave Colasurdo wrote:
>>>>>>>>>>>>> It appears that G1.1 is still using Tomcat
5.5.9
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://svn.apache.org/repos/asf/geronimo/branches/1.1/etc/project.properties
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Wasn't a tomcat upgrade to 5.5.15 in
plan for G1.1?? 
>>>>>>>>>>>>> Perhaps I am
>>>>>>>>>>>>> confused with the plans for trunk.. ??
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>> -Dave-
>>>>>>>>
>>>>>>> ------------------------------------------------------------------------
>>>>>>>
>>>>>>>
>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>> <!--Copyright 2004-2005 The Apache Software Foundation
>>>>>>>
>>>>>>>     Licensed 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.-->
>>>>>>> <!--$Rev: 381704 $ $Date: 2006-02-28 11:55:41 -0500 (Tue,
28 Feb
>>>>>>> 2006) $-->
>>>>>>> <web-app
>>>>>>> xmlns="http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-1.1">
>>>>>>>   <dep:environment
>>>>>>> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
>>>>>>>     <dep:configId>
>>>>>>>       <dep:groupId>geronimo</dep:groupId>
>>>>>>>      
>>>>>>> <dep:artifactId>servlets-examples-tomcat-cluster</dep:artifactId>
>>>>>>>       <dep:version>1.1-SNAPSHOT</dep:version>
>>>>>>>       <dep:type>car</dep:type>
>>>>>>>     </dep:configId>
>>>>>>>     <dep:dependencies/>
>>>>>>>     <dep:hidden-classes/>
>>>>>>>     <dep:non-overridable-classes/>
>>>>>>>   </dep:environment>
>>>>>>>   <context-root>/servlets-examples-cluster</context-root>
>>>>>>>   <context-priority-classloader>false</context-priority-classloader>
>>>>>>>  
>>>>>>> <security-realm-name>geronimo-properties-realm</security-realm-name>
>>>>>>>   <security>
>>>>>>>     <default-principal>
>>>>>>>       <principal name="anonymous"
>>>>>>> class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal"/>
>>>>>>>
>>>>>>>     </default-principal>
>>>>>>>     <role-mappings>
>>>>>>>       <role role-name="tomcat">
>>>>>>>         <principal name="admin"
>>>>>>> class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"/>
>>>>>>>
>>>>>>>       </role>
>>>>>>>     </role-mappings>
>>>>>>>   </security>
>>>>>>>
>>>>>>>     <cluster>TomcatCluster</cluster>
>>>>>>>
>>>>>>>     <!-- Cluster -->
>>>>>>>     <gbean name="TomcatCluster"
>>>>>>> class="org.apache.geronimo.tomcat.cluster.CatalinaClusterGBean">
>>>>>>>         <attribute
>>>>>>> name="className">org.apache.catalina.cluster.tcp.SimpleTcpCluster</attribute>
>>>>>>>
>>>>>>>         <attribute name="initParams">
>>>>>>>            
>>>>>>> managerClassName=org.apache.catalina.cluster.session.DeltaManager
>>>>>>>             expireSessionsOnShutdown=false
>>>>>>>             useDirtyFlag=false
>>>>>>>             notifyListenersOnReplication=true
>>>>>>>         </attribute>
>>>>>>>
>>>>>>>         <reference name="Membership"> 
>>>>>>> <name>TomcatMembership</name> </reference>
        <reference
>>>>>>> name="Receiver">  <name>TomcatReceiver</name>
>>>>>>> </reference>         <reference name="Sender"> 
>>>>>>> <name>TomcatSender</name> </reference>    
    <reference
>>>>>>> name="TomcatValveChain">  <name>ReplicationValve</name>
>>>>>>> </reference>         <!--
>>>>>>>         <reference name="ClusterDeployer">
>>>>>>> <name>FarmWarDeployer</name> </reference> 
       -->
>>>>>>>     </gbean>
>>>>>>>
>>>>>>>     <!-- Membership -->
>>>>>>>
>>>>>>>     <gbean name="TomcatMembership"
>>>>>>> class="org.apache.geronimo.tomcat.cluster.MembershipServiceGBean">
>>>>>>>         <attribute
>>>>>>> name="className">org.apache.catalina.cluster.mcast.McastService</attribute>
>>>>>>>
>>>>>>>         <attribute name="initParams">
>>>>>>>             mcastAddr=228.0.0.4
>>>>>>>             mcastBindAddress=xx.yy.zz.aa             mcastPort=45564
>>>>>>>             mcastFrequency=500
>>>>>>>             mcastDropTime=3000
>>>>>>>         </attribute>
>>>>>>>     </gbean>
>>>>>>>     <!-- Receiver -->
>>>>>>>
>>>>>>>     <gbean name="TomcatReceiver"
>>>>>>>         class="org.apache.geronimo.tomcat.cluster.ReceiverGBean">
>>>>>>>         <attribute
>>>>>>> name="className">org.apache.catalina.cluster.tcp.ReplicationListener</attribute>
>>>>>>>
>>>>>>>         <attribute name="initParams">
>>>>>>>             tcpListenAddress=xx.yy.zz.aa            
>>>>>>> tcpListenPort=4001
>>>>>>>             tcpSelectorTimeout=100
>>>>>>>             tcpThreadCount=6
>>>>>>>         </attribute>
>>>>>>>     </gbean>     <!-- Sender -->
>>>>>>>
>>>>>>>     <gbean name="TomcatSender"
>>>>>>>         class="org.apache.geronimo.tomcat.cluster.SenderGBean">
>>>>>>>         <attribute
>>>>>>> name="className">org.apache.catalina.cluster.tcp.ReplicationTransmitter</attribute>
>>>>>>>
>>>>>>>         <attribute name="initParams">
>>>>>>>             replicationMode=pooled
>>>>>>>             ackTimeout=15000
>>>>>>>         </attribute>
>>>>>>>     </gbean>      <!-- Valves -->
>>>>>>>     <gbean name="ReplicationValve"
>>>>>>>         class="org.apache.geronimo.tomcat.ValveGBean">
>>>>>>>         <attribute
>>>>>>> name="className">org.apache.catalina.cluster.tcp.ReplicationValve</attribute>
>>>>>>>
>>>>>>>         <attribute name="initParams">
>>>>>>>            
>>>>>>> filter=.*\.gif;.*\.js;.*\.css;.*\.png;.*\.jpeg;.*\.jpg;.*\.htm;.*\.html;.*\.txt;
>>>>>>>
>>>>>>>         </attribute>
>>>>>>>     </gbean>
>>>>>>>     <!-- Deployer     <gbean name="FarmWarDeployer"
>>>>>>> class="org.apache.geronimo.tomcat.cluster.FarmWarDeployerGBean">
>>>>>>>         <attribute name="tempDir">var/catalina/war-temp</attribute>
>>>>>>>         <attribute
>>>>>>> name="deployDir">var/catalina/war-deploy</attribute>
>>>>>>>         <attribute
>>>>>>> name="watchDir">var/catalina/war-listen</attribute>
>>>>>>>         <attribute name="watchEnabled">true</attribute>
>>>>>>>         <attribute name="processDeployFrequency">10</attribute>
>>>>>>>         <reference name="ServerInfo">
>>>>>>>             <moduleType>J2EEModule</moduleType>
>>>>>>>             <module>geronimo/j2ee-system/1.1-SNAPSHOT/car</module>
>>>>>>>             <name>ServerInfo</name>
>>>>>>>         </reference>
>>>>>>>     </gbean>
>>>>>>>     -->
>>>>>>> </web-app>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>

Mime
View raw message