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 20:24:00 GMT
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