geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: Tomcat version in G1.1 for clustering
Date Tue, 18 Apr 2006 20:29:05 GMT
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