geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Colasurdo <davec...@earthlink.net>
Subject Re: Tomcat version in G1.1 for clustering
Date Tue, 18 Apr 2006 21:20:10 GMT
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