You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Bruce Pease <bp...@wth.com> on 2012/03/09 17:38:35 UTC

Tomcat 7 Cluster Issue

Good Morning:

 

I recently upgraded my tomcat containers from tomcat 6 to tomcat 7.0.26, and
the jdk from 1.6 to 1.7.  I am now seeing a clustering issue when I start a
second instance on the same server.  I have tried a few variations of the
config (address="auto", address="the ip", no address entry, different ports,
etc.) with no success.  I have included the configurations and error messages
below.  Thank you in advance for your assistance.

 

Error:

Mar 09, 2012 11:16:16 AM org.apache.catalina.tribes.transport.nio.NioReceiver
listen

SEVERE: Unable to process request in NioReceiver

java.net.SocketException: Invalid argument: no further information

                at sun.nio.ch.Net.setIntOption0(Native Method)

                at sun.nio.ch.Net.setSocketOption(Net.java:279)

                at
sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)

                at
sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)

                at
sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)

                at
org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:
308)

                at
org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.java:418
)

                at java.lang.Thread.run(Thread.java:722)

 

SEVERE: Unable to send message through cluster sender.

org.apache.catalina.tribes.ChannelException: Send failed, attempt:2 max:1;
Faulty members:tcp://{10, 103, 4, 70}:4021; 

                at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(ParallelNio
Sender.java:187)

                at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(Parall
elNioSender.java:89)

                at
org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(Poo
ledParallelSender.java:54)

                at
org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(Repli
cationTransmitter.java:79)

                at
org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordi
nator.java:78)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelIn
terceptorBase.java:79)

                at
org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.send
Message(MessageDispatchInterceptor.java:77)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelIn
terceptorBase.java:79)

                at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(
TcpFailureDetector.java:89)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelIn
terceptorBase.java:79)

                at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:224)

                at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:182)

                at
org.apache.catalina.ha.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java:804)

                at
org.apache.catalina.ha.session.DeltaManager.getAllClusterSessions(DeltaManage
r.java:830)

                at
org.apache.catalina.ha.session.DeltaManager.startInternal(DeltaManager.java:7
98)

                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

                at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5
282)

                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

                at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:89
5)

                at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

                at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

                at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

                at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

                at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

                at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

                at java.util.concurrent.FutureTask.run(FutureTask.java:166)

                at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:111
0)

                at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:60
3)

                at java.lang.Thread.run(Thread.java:722)

Caused by: java.net.SocketException: Invalid argument: no further information

                at sun.nio.ch.Net.setIntOption0(Native Method)

                at sun.nio.ch.Net.setSocketOption(Net.java:279)

                at
sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)

                at
sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)

                at
sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)

                at
org.apache.catalina.tribes.transport.nio.NioSender.completeConnect(NioSender.
java:151)

                at
org.apache.catalina.tribes.transport.nio.NioSender.process(NioSender.java:92)

                at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(ParallelNio
Sender.java:142)

                ... 28 more

 

Isapi worker.properties:

worker.list=cluster

 

# base settings

worker.foundation.type=ajp13

worker.foundation.connect_timeout=60000

worker.foundation.connection_pool_size=100

worker.foundation.connection_pool_timeout=30

worker.foundation.socket_keepalive=false

worker.foundation.socket_timeout=300

worker.foundation.lbfactor=5

 

# worker 1 of cluster

worker.tomcat1.reference=worker.foundation

worker.tomcat1.host=10.103.4.70

worker.tomcat1.port=10109

worker.tomcat1.activation=A

 

# worker 2 of cluster

worker.tomcat2.reference=worker.foundation

worker.tomcat2.host=10.103.4.70

worker.tomcat2.port=10209

worker.tomcat2.activation=A

 

# define the load balancer

worker.cluster.type=lb

worker.cluster.method=B

worker.cluster.balance_workers=tomcat1,tomcat2

 

 

server.xml instance 1:

<?xml version="1.0" encoding="utf-8"?>

<Server port="8005" shutdown="SHUTDOWN">

      <Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on"/>

      <Listener className="org.apache.catalina.core.JasperListener"/>

      <Listener
className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>

      <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>

      <Listener
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

      <GlobalNamingResources>

            <Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase" description="User database that can
be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>

      </GlobalNamingResources>

      <Service name="Catalina">

            <Connector port="10180" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"/>

            <Connector port="10109" protocol="AJP/1.3" redirectPort="8443"/>

            <Engine name="Catalina" defaultHost="localhost"
jvmRoute="tomcat1">

                  <Cluster
className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="6">

                        <Manager
className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>

                        <Channel
className="org.apache.catalina.tribes.group.GroupChannel">

                              <Membership
className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>

                              <Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto" port="4021" autoBind="100" selectorTimeout="5000"
maxThreads="6"/>

                              <Sender
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

                                    <Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

                              </Sender>

                              <Interceptor
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/
>

                              <Interceptor
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Int
erceptor"/>

                        </Channel>

                        <Valve
className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>

                        <Valve
className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

                        <Deployer
className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/" watchEnabled="false"/>

                        <ClusterListener
className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

                        <ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener"/>

                  </Cluster>

                  <Realm className="org.apache.catalina.realm.LockOutRealm">

                        <Realm
className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

                  </Realm>

                  <Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="true">

                        <Valve
className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t
&quot;%r&quot; %s %b"/>

                  </Host>

            </Engine>

      </Service>

</Server>

 

Server xml instance 2:

<?xml version="1.0" encoding="utf-8"?>

<Server port="8006" shutdown="SHUTDOWN">

      <Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on"/>

      <Listener className="org.apache.catalina.core.JasperListener"/>

      <Listener
className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>

      <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>

      <Listener
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

      <GlobalNamingResources>

            <Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase" description="User database that can
be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>

      </GlobalNamingResources>

      <Service name="Catalina">

            <Connector port="10280" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443"/>

            <Connector port="10209" protocol="AJP/1.3" redirectPort="8443"/>

            <Engine name="Catalina" defaultHost="localhost"
jvmRoute="tomcat2">

                  <Cluster
className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="6">

                        <Manager
className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>

                        <Channel
className="org.apache.catalina.tribes.group.GroupChannel">

                              <Membership
className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>

                              <Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto" port="4022" autoBind="100" selectorTimeout="5000"
maxThreads="6"/>

                              <Sender
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">

                                    <Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

                              </Sender>

                              <Interceptor
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/
>

                              <Interceptor
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Int
erceptor"/>

                        </Channel>

                        <Valve
className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>

                        <Valve
className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

                        <Deployer
className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/" watchEnabled="false"/>

                        <ClusterListener
className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

                        <ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener"/>

                  </Cluster>

                  <Realm className="org.apache.catalina.realm.LockOutRealm">

                        <Realm
className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

                  </Realm>

                  <Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="true">

                        <Valve
className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t
&quot;%r&quot; %s %b"/>

                  </Host>

            </Engine>

      </Service>

</Server>

 

 

 

 

 

 

Bruce D. Pease
Technical Team Lead - Web Applications
CruiseOne(r) <http://www.cruiseone.com/>  & Cruises Inc(tm)
<http://www.cruisesinc.com/> 
1201 W. Cypress Creek Road, Suite 100
Fort Lauderdale, FL 33309-1955
954-958-3654 (direct) | 954-958-3665 (fax)
bpease@wth.com <ma...@wth.com> 

 


Re: Tomcat 7 Cluster Issue

Posted by Mark Thomas <ma...@apache.org>.
On 15/03/2012 10:14, Pid wrote:
> On 12/03/2012 22:14, Bruce Pease wrote:
>> I am using a windows 2003 server 32 bit standard edition SP2 with IIS 6.  I
>> have an isapi_redirect.dll v.1.2.31 communicating to tomcat via ajp1.3.  JDK
>> version was 7.03, and tomcat version is 7.0.26.  Tomcat is installed as a
>> service using the service.bat, and I am running two containers in the
>> clustered environment.  Session replication is in memory, and communication
>> is limited to within the server, i.e. not to any external server. 
>>
>> I can provide complete configuration files or more detail if needed.
>>
>> Thanks very much for your help.
> 
> Can you add the -Djava.net.preferIPv4Stack=true to your service startup
> settings?
> 
> See thread: "Re: Java 7 + Tomcat 6.0.35 + Win2k3 Problem" for more details.

For the archives, this was a Tomcat bug fixed in 7.0.30.
See http://svn.apache.org/viewvc?rev=1358591&view=rev

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat 7 Cluster Issue

Posted by Pid <pi...@pidster.com>.
On 12/03/2012 22:14, Bruce Pease wrote:
> I am using a windows 2003 server 32 bit standard edition SP2 with IIS 6.  I
> have an isapi_redirect.dll v.1.2.31 communicating to tomcat via ajp1.3.  JDK
> version was 7.03, and tomcat version is 7.0.26.  Tomcat is installed as a
> service using the service.bat, and I am running two containers in the
> clustered environment.  Session replication is in memory, and communication
> is limited to within the server, i.e. not to any external server. 
> 
> I can provide complete configuration files or more detail if needed.
> 
> Thanks very much for your help.

Can you add the -Djava.net.preferIPv4Stack=true to your service startup
settings?

See thread: "Re: Java 7 + Tomcat 6.0.35 + Win2k3 Problem" for more details.


p

> -----Original Message-----
> From: Pid [mailto:pid@pidster.com] 
> Sent: Monday, March 12, 2012 5:13 PM
> To: Tomcat Users List
> Subject: Re: Tomcat 7 Cluster Issue
> 
> On 12/03/2012 17:30, Pid * wrote:
>> I will try to reproduce using your config, shortly.
> 
> The only warning I get on OSX with JDK 1.7.0 is that FarmWarDeployer only
> works when the Cluster is defined inside a Host.
> 
> Can you provide as much detail as possible about your OS & JDK 7 version
> please?
> 
> 
> p
> 
>>>>>                        <Deployer
>>>>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>>>>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>>>>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>>>>
>>>>>                        <ClusterListener 
>>>>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderLi
>>>>> st
>>>>> e
>>>>> ner"/>
>>>>>
>>>>>                        <ClusterListener 
>>>>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>>>>
>>>>>                  </Cluster>
>>>>>
>>>>>                  <Realm
>>>>> className="org.apache.catalina.realm.LockOutRealm">
>>>>>
>>>>>                        <Realm
>>>>> className="org.apache.catalina.realm.UserDatabaseRealm"
>>>>> resourceName="UserDatabase"/>
>>>>>
>>>>>                  </Realm>
>>>>>
>>>>>                  <Host name="localhost" appBase="webapps"
>>>> unpackWARs="true"
>>>>> autoDeploy="true">
>>>>>
>>>>>                        <Valve
>>>>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>>>>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
>>>>> &quot;%r&quot; %s %b"/>
>>>>>
>>>>>                  </Host>
> 
> 
> 


-- 

[key:62590808]


RE: Tomcat 7 Cluster Issue

Posted by Bruce Pease <bp...@wth.com>.
I am using a windows 2003 server 32 bit standard edition SP2 with IIS 6.  I
have an isapi_redirect.dll v.1.2.31 communicating to tomcat via ajp1.3.  JDK
version was 7.03, and tomcat version is 7.0.26.  Tomcat is installed as a
service using the service.bat, and I am running two containers in the
clustered environment.  Session replication is in memory, and communication
is limited to within the server, i.e. not to any external server. 

I can provide complete configuration files or more detail if needed.

Thanks very much for your help.

-----Original Message-----
From: Pid [mailto:pid@pidster.com] 
Sent: Monday, March 12, 2012 5:13 PM
To: Tomcat Users List
Subject: Re: Tomcat 7 Cluster Issue

On 12/03/2012 17:30, Pid * wrote:
> I will try to reproduce using your config, shortly.

The only warning I get on OSX with JDK 1.7.0 is that FarmWarDeployer only
works when the Cluster is defined inside a Host.

Can you provide as much detail as possible about your OS & JDK 7 version
please?


p

>>>>                        <Deployer
>>>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>>>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>>>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>>>
>>>>                        <ClusterListener 
>>>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderLi
>>>> st
>>>> e
>>>> ner"/>
>>>>
>>>>                        <ClusterListener 
>>>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>>>
>>>>                  </Cluster>
>>>>
>>>>                  <Realm
>>>> className="org.apache.catalina.realm.LockOutRealm">
>>>>
>>>>                        <Realm
>>>> className="org.apache.catalina.realm.UserDatabaseRealm"
>>>> resourceName="UserDatabase"/>
>>>>
>>>>                  </Realm>
>>>>
>>>>                  <Host name="localhost" appBase="webapps"
>>> unpackWARs="true"
>>>> autoDeploy="true">
>>>>
>>>>                        <Valve
>>>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>>>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
>>>> &quot;%r&quot; %s %b"/>
>>>>
>>>>                  </Host>



-- 

[key:62590808]


Re: Tomcat 7 Cluster Issue

Posted by Pid <pi...@pidster.com>.
On 12/03/2012 17:30, Pid * wrote:
> I will try to reproduce using your config, shortly.

The only warning I get on OSX with JDK 1.7.0 is that FarmWarDeployer
only works when the Cluster is defined inside a Host.

Can you provide as much detail as possible about your OS & JDK 7 version
please?


p

>>>>                        <Deployer
>>>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>>>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>>>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>>>
>>>>                        <ClusterListener
>>>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderList
>>>> e
>>>> ner"/>
>>>>
>>>>                        <ClusterListener
>>>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>>>
>>>>                  </Cluster>
>>>>
>>>>                  <Realm
>>>> className="org.apache.catalina.realm.LockOutRealm">
>>>>
>>>>                        <Realm
>>>> className="org.apache.catalina.realm.UserDatabaseRealm"
>>>> resourceName="UserDatabase"/>
>>>>
>>>>                  </Realm>
>>>>
>>>>                  <Host name="localhost" appBase="webapps"
>>> unpackWARs="true"
>>>> autoDeploy="true">
>>>>
>>>>                        <Valve
>>>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>>>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t
>>>> &quot;%r&quot; %s %b"/>
>>>>
>>>>                  </Host>



-- 

[key:62590808]


Re: Tomcat 7 Cluster Issue

Posted by Pid * <pi...@pidster.com>.
I will try to reproduce using your config, shortly.


p


On 12 Mar 2012, at 16:02, Bruce Pease <bp...@wth.com> wrote:

> You are correct.  I rolled back the jdk7 change, and the session replication
> fired up without error.  I will hold off on the jdk 7 upgrade until I see the
> okay on a subsequent release.  Thanks.
>
> -----Original Message-----
> From: Pid [mailto:pid@pidster.com]
> Sent: Saturday, March 10, 2012 5:26 AM
> To: Tomcat Users List
> Subject: Re: Tomcat 7 Cluster Issue
>
> On 09/03/2012 18:33, Bruce Pease wrote:
>> I can try the rollback the jdk, and try that.  However, the issue
>> doesn't appear to be jdk related.
>
> Plenty of changes to NIO in Java 7 AFAIK.
> Let us know if Java 6 + Tomcat 7 presents the same problem.
>
>
> p
>
>> The migration was performed by completely removing the old containers,
>> installing tomcat 7 instances, updating all configuration using the
>> ones released in tomcat 7 version, recompiling all applications with
>> jdk 1.7 and tomcat 7 dependencies, and redeploying the applications.
>>
>> -----Original Message-----
>> From: Daniel Mikusa [mailto:dmikusa@vmware.com]
>> Sent: Friday, March 09, 2012 1:02 PM
>> To: Tomcat Users List
>> Subject: Re: Tomcat 7 Cluster Issue
>>
>> On Fri, 2012-03-09 at 08:38 -0800, Bruce Pease wrote:
>>> Good Morning:
>>>
>>>
>>>
>>> I recently upgraded my tomcat containers from tomcat 6 to tomcat
>>> 7.0.26, and the jdk from 1.6 to 1.7.
>>
>> This is a major jump for both Tomcat & the JVM.  Have you considered
>> rolling back one of them to the previous version?
>>
>> For example, roll back the JDK to 1.6 and try just the upgrade to
>> Tomcat 7.0.26.
>>
>> Also, from a Tomcat standpoint, how did you perform the migration?  In
>> particular with your configuration files?
>>
>> Dan
>>
>>
>>> I am now seeing a clustering issue when I start a second instance on
>>> the same server.  I have tried a few variations of the config
>>> (address="auto", address="the ip", no address entry, different ports,
>>> etc.) with no success.  I have included the configurations and error
>>> messages below.  Thank you in advance for your assistance.
>>>
>>>
>>>
>>> Error:
>>>
>>> Mar 09, 2012 11:16:16 AM
>>> org.apache.catalina.tribes.transport.nio.NioReceiver
>>> listen
>>>
>>> SEVERE: Unable to process request in NioReceiver
>>>
>>> java.net.SocketException: Invalid argument: no further information
>>>
>>>                at sun.nio.ch.Net.setIntOption0(Native Method)
>>>
>>>                at sun.nio.ch.Net.setSocketOption(Net.java:279)
>>>
>>>                at
>>> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>>>
>>>                at
>>> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>>>
>>>                at
>>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>>>
>>>                at
>>>
>>
> org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:
>>> 308)
>>>
>>>                at
>>> org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.
>>> j
>>> ava:418
>>> )
>>>
>>>                at java.lang.Thread.run(Thread.java:722)
>>>
>>>
>>>
>>> SEVERE: Unable to send message through cluster sender.
>>>
>>> org.apache.catalina.tribes.ChannelException: Send failed, attempt:2
>>> max:1; Faulty members:tcp://{10, 103, 4, 70}:4021;
>>>
>>>                at
>>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Par
>>> a
>>> llelNio
>>> Sender.java:187)
>>>
>>>                at
>>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessag
>>> e
>>> (Parall
>>> elNioSender.java:89)
>>>
>>>                at
>>> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMes
>>> s
>>> age(Poo
>>> ledParallelSender.java:54)
>>>
>>>                at
>>> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessa
>>> g
>>> e(Repli
>>> cationTransmitter.java:79)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(Chann
>>> e
>>> lCoordi
>>> nator.java:78)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(C
>>> h
>>> annelIn
>>> terceptorBase.java:79)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.interceptors.MessageDispatchIntercep
>>> t
>>> or.send
>>> Message(MessageDispatchInterceptor.java:77)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(C
>>> h
>>> annelIn
>>> terceptorBase.java:79)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.send
>>> M
>>> essage(
>>> TcpFailureDetector.java:89)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(C
>>> h
>>> annelIn
>>> terceptorBase.java:79)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:
>>> 2
>>> 24)
>>>
>>>                at
>>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:
>>> 1
>>> 82)
>>>
>>>                at
>>> org.apache.catalina.ha.tcp.SimpleTcpCluster.send(SimpleTcpCluster.jav
>>> a
>>> :804)
>>>
>>>                at
>>> org.apache.catalina.ha.session.DeltaManager.getAllClusterSessions(Del
>>> t
>>> aManage
>>> r.java:830)
>>>
>>>                at
>>> org.apache.catalina.ha.session.DeltaManager.startInternal(DeltaManage
>>> r
>>> .java:7
>>> 98)
>>>
>>>                at
>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>>
>>>                at
>>> org.apache.catalina.core.StandardContext.startInternal(StandardContex
>>> t
>>> .java:5
>>> 282)
>>>
>>>                at
>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>>
>>>                at
>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.
>>> java:89
>>> 5)
>>>
>>>                at
>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
>>> 1
>>> )
>>>
>>>                at
>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>>>
>>>                at
>>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
>>>
>>>                at
>>> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
>>> 1
>>> 599)
>>>
>>>                at
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
>>> 1
>>> )
>>>
>>>                at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>>
>>>                at
>>> java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>>
>>>                at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
>>> j
>>> ava:111
>>> 0)
>>>
>>>                at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>>> java:60
>>> 3)
>>>
>>>                at java.lang.Thread.run(Thread.java:722)
>>>
>>> Caused by: java.net.SocketException: Invalid argument: no further
>>> information
>>>
>>>                at sun.nio.ch.Net.setIntOption0(Native Method)
>>>
>>>                at sun.nio.ch.Net.setSocketOption(Net.java:279)
>>>
>>>                at
>>> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>>>
>>>                at
>>> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>>>
>>>                at
>>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>>>
>>>                at
>>>
>>
> org.apache.catalina.tribes.transport.nio.NioSender.completeConnect(NioSender.
>>> java:151)
>>>
>>>                at
>>> org.apache.catalina.tribes.transport.nio.NioSender.process(NioSender.
>>> j
>>> ava:92)
>>>
>>>                at
>>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Par
>>> a
>>> llelNio
>>> Sender.java:142)
>>>
>>>                ... 28 more
>>>
>>>
>>>
>>> Isapi worker.properties:
>>>
>>> worker.list=cluster
>>>
>>>
>>>
>>> # base settings
>>>
>>> worker.foundation.type=ajp13
>>>
>>> worker.foundation.connect_timeout=60000
>>>
>>> worker.foundation.connection_pool_size=100
>>>
>>> worker.foundation.connection_pool_timeout=30
>>>
>>> worker.foundation.socket_keepalive=false
>>>
>>> worker.foundation.socket_timeout=300
>>>
>>> worker.foundation.lbfactor=5
>>>
>>>
>>>
>>> # worker 1 of cluster
>>>
>>> worker.tomcat1.reference=worker.foundation
>>>
>>> worker.tomcat1.host=10.103.4.70
>>>
>>> worker.tomcat1.port=10109
>>>
>>> worker.tomcat1.activation=A
>>>
>>>
>>>
>>> # worker 2 of cluster
>>>
>>> worker.tomcat2.reference=worker.foundation
>>>
>>> worker.tomcat2.host=10.103.4.70
>>>
>>> worker.tomcat2.port=10209
>>>
>>> worker.tomcat2.activation=A
>>>
>>>
>>>
>>> # define the load balancer
>>>
>>> worker.cluster.type=lb
>>>
>>> worker.cluster.method=B
>>>
>>> worker.cluster.balance_workers=tomcat1,tomcat2
>>>
>>>
>>>
>>>
>>>
>>> server.xml instance 1:
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>>
>>> <Server port="8005" shutdown="SHUTDOWN">
>>>
>>>      <Listener className="org.apache.catalina.core.AprLifecycleListener"
>>> SSLEngine="on"/>
>>>
>>>      <Listener className="org.apache.catalina.core.JasperListener"/>
>>>
>>>      <Listener
>>> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/
>>>>
>>>
>>>      <Listener
>>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListene
>>> r
>>> "/>
>>>
>>>      <Listener
>>> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
>>> />
>>>
>>>      <GlobalNamingResources>
>>>
>>>            <Resource name="UserDatabase" auth="Container"
>>> type="org.apache.catalina.UserDatabase" description="User database
>>> that can be updated and saved"
>>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>>> pathname="conf/tomcat-users.xml"/>
>>>
>>>      </GlobalNamingResources>
>>>
>>>      <Service name="Catalina">
>>>
>>>            <Connector port="10180" protocol="HTTP/1.1"
>>> connectionTimeout="20000" redirectPort="8443"/>
>>>
>>>            <Connector port="10109" protocol="AJP/1.3"
>>> redirectPort="8443"/>
>>>
>>>            <Engine name="Catalina" defaultHost="localhost"
>>> jvmRoute="tomcat1">
>>>
>>>                  <Cluster
>>> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>>> channelSendOptions="6">
>>>
>>>                        <Manager
>>> className="org.apache.catalina.ha.session.DeltaManager"
>>> expireSessionsOnShutdown="false"
>>> notifyListenersOnReplication="true"/>
>>>
>>>                        <Channel
>>> className="org.apache.catalina.tribes.group.GroupChannel">
>>>
>>>                              <Membership
>>> className="org.apache.catalina.tribes.membership.McastService"
>>> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>>>
>>>                              <Receiver
>>> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>>> address="auto" port="4021" autoBind="100" selectorTimeout="5000"
>>> maxThreads="6"/>
>>>
>>>                              <Sender
>>> className="org.apache.catalina.tribes.transport.ReplicationTransmitte
>>> r
>>> ">
>>>
>>>                                    <Transport
>>> className="org.apache.catalina.tribes.transport.nio.PooledParallelSen
>>> d
>>> er"/>
>>>
>>>                              </Sender>
>>>
>>>                              <Interceptor
>>> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDe
>>> t
>>> ector"/
>>>>
>>>
>>>                              <Interceptor
>>> className="org.apache.catalina.tribes.group.interceptors.MessageDispa
>>> t
>>> ch15Int
>>> erceptor"/>
>>>
>>>                        </Channel>
>>>
>>>                        <Valve
>>> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>>>
>>>                        <Valve
>>> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>>>
>>>                        <Deployer
>>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>>
>>>                        <ClusterListener
>>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderList
>>> e
>>> ner"/>
>>>
>>>                        <ClusterListener
>>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>>
>>>                  </Cluster>
>>>
>>>                  <Realm
>>> className="org.apache.catalina.realm.LockOutRealm">
>>>
>>>                        <Realm
>>> className="org.apache.catalina.realm.UserDatabaseRealm"
>>> resourceName="UserDatabase"/>
>>>
>>>                  </Realm>
>>>
>>>                  <Host name="localhost" appBase="webapps"
>> unpackWARs="true"
>>> autoDeploy="true">
>>>
>>>                        <Valve
>>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t
>>> &quot;%r&quot; %s %b"/>
>>>
>>>                  </Host>
>>>
>>>            </Engine>
>>>
>>>      </Service>
>>>
>>> </Server>
>>>
>>>
>>>
>>> Server xml instance 2:
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>>
>>> <Server port="8006" shutdown="SHUTDOWN">
>>>
>>>      <Listener className="org.apache.catalina.core.AprLifecycleListener"
>>> SSLEngine="on"/>
>>>
>>>      <Listener className="org.apache.catalina.core.JasperListener"/>
>>>
>>>      <Listener
>>> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/
>>>>
>>>
>>>      <Listener
>>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListene
>>> r
>>> "/>
>>>
>>>      <Listener
>>> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
>>> />
>>>
>>>      <GlobalNamingResources>
>>>
>>>            <Resource name="UserDatabase" auth="Container"
>>> type="org.apache.catalina.UserDatabase" description="User database
>>> that can be updated and saved"
>>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>>> pathname="conf/tomcat-users.xml"/>
>>>
>>>      </GlobalNamingResources>
>>>
>>>      <Service name="Catalina">
>>>
>>>            <Connector port="10280" protocol="HTTP/1.1"
>>> connectionTimeout="20000" redirectPort="8443"/>
>>>
>>>            <Connector port="10209" protocol="AJP/1.3"
>>> redirectPort="8443"/>
>>>
>>>            <Engine name="Catalina" defaultHost="localhost"
>>> jvmRoute="tomcat2">
>>>
>>>                  <Cluster
>>> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>>> channelSendOptions="6">
>>>
>>>                        <Manager
>>> className="org.apache.catalina.ha.session.DeltaManager"
>>> expireSessionsOnShutdown="false"
>>> notifyListenersOnReplication="true"/>
>>>
>>>                        <Channel
>>> className="org.apache.catalina.tribes.group.GroupChannel">
>>>
>>>                              <Membership
>>> className="org.apache.catalina.tribes.membership.McastService"
>>> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>>>
>>>                              <Receiver
>>> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>>> address="auto" port="4022" autoBind="100" selectorTimeout="5000"
>>> maxThreads="6"/>
>>>
>>>                              <Sender
>>> className="org.apache.catalina.tribes.transport.ReplicationTransmitte
>>> r
>>> ">
>>>
>>>                                    <Transport
>>> className="org.apache.catalina.tribes.transport.nio.PooledParallelSen
>>> d
>>> er"/>
>>>
>>>                              </Sender>
>>>
>>>                              <Interceptor
>>> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDe
>>> t
>>> ector"/
>>>>
>>>
>>>                              <Interceptor
>>> className="org.apache.catalina.tribes.group.interceptors.MessageDispa
>>> t
>>> ch15Int
>>> erceptor"/>
>>>
>>>                        </Channel>
>>>
>>>                        <Valve
>>> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>>>
>>>                        <Valve
>>> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>>>
>>>                        <Deployer
>>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>>
>>>                        <ClusterListener
>>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderList
>>> e
>>> ner"/>
>>>
>>>                        <ClusterListener
>>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>>
>>>                  </Cluster>
>>>
>>>                  <Realm
>>> className="org.apache.catalina.realm.LockOutRealm">
>>>
>>>                        <Realm
>>> className="org.apache.catalina.realm.UserDatabaseRealm"
>>> resourceName="UserDatabase"/>
>>>
>>>                  </Realm>
>>>
>>>                  <Host name="localhost" appBase="webapps"
>> unpackWARs="true"
>>> autoDeploy="true">
>>>
>>>                        <Valve
>>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t
>>> &quot;%r&quot; %s %b"/>
>>>
>>>                  </Host>
>>>
>>>            </Engine>
>>>
>>>      </Service>
>>>
>>> </Server>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Bruce D. Pease
>>> Technical Team Lead - Web Applications
>>> CruiseOne(r) <http://www.cruiseone.com/>  & Cruises Inc(tm)
>>> <http://www.cruisesinc.com/>
>>> 1201 W. Cypress Creek Road, Suite 100 Fort Lauderdale, FL 33309-1955
>>> 954-958-3654 (direct) | 954-958-3665 (fax) bpease@wth.com
>>> <ma...@wth.com>
>>>
>>>
>>>
>>
>> ----------------------------------------------
>> T ususcib, -mil uer-ususcib@tmct.paheor
>> oraditonl omans,e-ai: ses-el@tmct.paheor
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>
>
> --
>
> [key:62590808]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Tomcat 7 Cluster Issue

Posted by Bruce Pease <bp...@wth.com>.
You are correct.  I rolled back the jdk7 change, and the session replication
fired up without error.  I will hold off on the jdk 7 upgrade until I see the
okay on a subsequent release.  Thanks.

-----Original Message-----
From: Pid [mailto:pid@pidster.com] 
Sent: Saturday, March 10, 2012 5:26 AM
To: Tomcat Users List
Subject: Re: Tomcat 7 Cluster Issue

On 09/03/2012 18:33, Bruce Pease wrote:
> I can try the rollback the jdk, and try that.  However, the issue 
> doesn't appear to be jdk related.

Plenty of changes to NIO in Java 7 AFAIK.
Let us know if Java 6 + Tomcat 7 presents the same problem.


p

> The migration was performed by completely removing the old containers, 
> installing tomcat 7 instances, updating all configuration using the 
> ones released in tomcat 7 version, recompiling all applications with 
> jdk 1.7 and tomcat 7 dependencies, and redeploying the applications.
> 
> -----Original Message-----
> From: Daniel Mikusa [mailto:dmikusa@vmware.com]
> Sent: Friday, March 09, 2012 1:02 PM
> To: Tomcat Users List
> Subject: Re: Tomcat 7 Cluster Issue
> 
> On Fri, 2012-03-09 at 08:38 -0800, Bruce Pease wrote:
>> Good Morning:
>>
>>
>>
>> I recently upgraded my tomcat containers from tomcat 6 to tomcat 
>> 7.0.26, and the jdk from 1.6 to 1.7.
> 
> This is a major jump for both Tomcat & the JVM.  Have you considered 
> rolling back one of them to the previous version?
> 
> For example, roll back the JDK to 1.6 and try just the upgrade to 
> Tomcat 7.0.26.
> 
> Also, from a Tomcat standpoint, how did you perform the migration?  In 
> particular with your configuration files?
> 
> Dan
> 
> 
>> I am now seeing a clustering issue when I start a second instance on 
>> the same server.  I have tried a few variations of the config 
>> (address="auto", address="the ip", no address entry, different ports,
>> etc.) with no success.  I have included the configurations and error 
>> messages below.  Thank you in advance for your assistance.
>>
>>
>>
>> Error:
>>
>> Mar 09, 2012 11:16:16 AM
>> org.apache.catalina.tribes.transport.nio.NioReceiver
>> listen
>>
>> SEVERE: Unable to process request in NioReceiver
>>
>> java.net.SocketException: Invalid argument: no further information
>>
>>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>>
>>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>>
>>                 at
>> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>>
>>                 at
>>
>
org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:
>> 308)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.
>> j
>> ava:418
>> )
>>
>>                 at java.lang.Thread.run(Thread.java:722)
>>
>>
>>
>> SEVERE: Unable to send message through cluster sender.
>>
>> org.apache.catalina.tribes.ChannelException: Send failed, attempt:2 
>> max:1; Faulty members:tcp://{10, 103, 4, 70}:4021;
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Par
>> a
>> llelNio
>> Sender.java:187)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessag
>> e
>> (Parall
>> elNioSender.java:89)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMes
>> s
>> age(Poo
>> ledParallelSender.java:54)
>>
>>                 at
>> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessa
>> g
>> e(Repli
>> cationTransmitter.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(Chann
>> e
>> lCoordi
>> nator.java:78)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(C
>> h
>> annelIn
>> terceptorBase.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.interceptors.MessageDispatchIntercep
>> t
>> or.send
>> Message(MessageDispatchInterceptor.java:77)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(C
>> h
>> annelIn
>> terceptorBase.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.send
>> M
>> essage(
>> TcpFailureDetector.java:89)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(C
>> h
>> annelIn
>> terceptorBase.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:
>> 2
>> 24)
>>
>>                 at
>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:
>> 1
>> 82)
>>
>>                 at
>> org.apache.catalina.ha.tcp.SimpleTcpCluster.send(SimpleTcpCluster.jav
>> a
>> :804)
>>
>>                 at
>> org.apache.catalina.ha.session.DeltaManager.getAllClusterSessions(Del
>> t
>> aManage
>> r.java:830)
>>
>>                 at
>> org.apache.catalina.ha.session.DeltaManager.startInternal(DeltaManage
>> r
>> .java:7
>> 98)
>>
>>                 at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>
>>                 at
>> org.apache.catalina.core.StandardContext.startInternal(StandardContex
>> t
>> .java:5
>> 282)
>>
>>                 at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.
>> java:89
>> 5)
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:87
>> 1
>> )
>>
>>                 at
>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>>
>>                 at
>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
>>
>>                 at
>> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
>> 1
>> 599)
>>
>>                 at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
>> 1
>> )
>>
>>                 at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>
>>                 at
>> java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
>> j
>> ava:111
>> 0)
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>> java:60
>> 3)
>>
>>                 at java.lang.Thread.run(Thread.java:722)
>>
>> Caused by: java.net.SocketException: Invalid argument: no further 
>> information
>>
>>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>>
>>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>>
>>                 at
>> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>>
>>                 at
>>
>
org.apache.catalina.tribes.transport.nio.NioSender.completeConnect(NioSender.
>> java:151)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.NioSender.process(NioSender.
>> j
>> ava:92)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Par
>> a
>> llelNio
>> Sender.java:142)
>>
>>                 ... 28 more
>>
>>
>>
>> Isapi worker.properties:
>>
>> worker.list=cluster
>>
>>
>>
>> # base settings
>>
>> worker.foundation.type=ajp13
>>
>> worker.foundation.connect_timeout=60000
>>
>> worker.foundation.connection_pool_size=100
>>
>> worker.foundation.connection_pool_timeout=30
>>
>> worker.foundation.socket_keepalive=false
>>
>> worker.foundation.socket_timeout=300
>>
>> worker.foundation.lbfactor=5
>>
>>
>>
>> # worker 1 of cluster
>>
>> worker.tomcat1.reference=worker.foundation
>>
>> worker.tomcat1.host=10.103.4.70
>>
>> worker.tomcat1.port=10109
>>
>> worker.tomcat1.activation=A
>>
>>
>>
>> # worker 2 of cluster
>>
>> worker.tomcat2.reference=worker.foundation
>>
>> worker.tomcat2.host=10.103.4.70
>>
>> worker.tomcat2.port=10209
>>
>> worker.tomcat2.activation=A
>>
>>
>>
>> # define the load balancer
>>
>> worker.cluster.type=lb
>>
>> worker.cluster.method=B
>>
>> worker.cluster.balance_workers=tomcat1,tomcat2
>>
>>
>>
>>
>>
>> server.xml instance 1:
>>
>> <?xml version="1.0" encoding="utf-8"?>
>>
>> <Server port="8005" shutdown="SHUTDOWN">
>>
>>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
>> SSLEngine="on"/>
>>
>>       <Listener className="org.apache.catalina.core.JasperListener"/>
>>
>>       <Listener
>> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/
>> >
>>
>>       <Listener
>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListene
>> r
>> "/>
>>
>>       <Listener
>> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
>> />
>>
>>       <GlobalNamingResources>
>>
>>             <Resource name="UserDatabase" auth="Container"
>> type="org.apache.catalina.UserDatabase" description="User database 
>> that can be updated and saved"
>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>> pathname="conf/tomcat-users.xml"/>
>>
>>       </GlobalNamingResources>
>>
>>       <Service name="Catalina">
>>
>>             <Connector port="10180" protocol="HTTP/1.1"
>> connectionTimeout="20000" redirectPort="8443"/>
>>
>>             <Connector port="10109" protocol="AJP/1.3" 
>> redirectPort="8443"/>
>>
>>             <Engine name="Catalina" defaultHost="localhost"
>> jvmRoute="tomcat1">
>>
>>                   <Cluster
>> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>> channelSendOptions="6">
>>
>>                         <Manager
>> className="org.apache.catalina.ha.session.DeltaManager"
>> expireSessionsOnShutdown="false" 
>> notifyListenersOnReplication="true"/>
>>
>>                         <Channel
>> className="org.apache.catalina.tribes.group.GroupChannel">
>>
>>                               <Membership 
>> className="org.apache.catalina.tribes.membership.McastService"
>> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>>
>>                               <Receiver 
>> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>> address="auto" port="4021" autoBind="100" selectorTimeout="5000"
>> maxThreads="6"/>
>>
>>                               <Sender 
>> className="org.apache.catalina.tribes.transport.ReplicationTransmitte
>> r
>> ">
>>
>>                                     <Transport 
>> className="org.apache.catalina.tribes.transport.nio.PooledParallelSen
>> d
>> er"/>
>>
>>                               </Sender>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDe
>> t
>> ector"/
>>>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.MessageDispa
>> t
>> ch15Int
>> erceptor"/>
>>
>>                         </Channel>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>>
>>                         <Deployer
>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderList
>> e
>> ner"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>
>>                   </Cluster>
>>
>>                   <Realm
>> className="org.apache.catalina.realm.LockOutRealm">
>>
>>                         <Realm
>> className="org.apache.catalina.realm.UserDatabaseRealm"
>> resourceName="UserDatabase"/>
>>
>>                   </Realm>
>>
>>                   <Host name="localhost" appBase="webapps"
> unpackWARs="true"
>> autoDeploy="true">
>>
>>                         <Valve
>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
>> &quot;%r&quot; %s %b"/>
>>
>>                   </Host>
>>
>>             </Engine>
>>
>>       </Service>
>>
>> </Server>
>>
>>
>>
>> Server xml instance 2:
>>
>> <?xml version="1.0" encoding="utf-8"?>
>>
>> <Server port="8006" shutdown="SHUTDOWN">
>>
>>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
>> SSLEngine="on"/>
>>
>>       <Listener className="org.apache.catalina.core.JasperListener"/>
>>
>>       <Listener
>> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/
>> >
>>
>>       <Listener
>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListene
>> r
>> "/>
>>
>>       <Listener
>> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
>> />
>>
>>       <GlobalNamingResources>
>>
>>             <Resource name="UserDatabase" auth="Container"
>> type="org.apache.catalina.UserDatabase" description="User database 
>> that can be updated and saved"
>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>> pathname="conf/tomcat-users.xml"/>
>>
>>       </GlobalNamingResources>
>>
>>       <Service name="Catalina">
>>
>>             <Connector port="10280" protocol="HTTP/1.1"
>> connectionTimeout="20000" redirectPort="8443"/>
>>
>>             <Connector port="10209" protocol="AJP/1.3" 
>> redirectPort="8443"/>
>>
>>             <Engine name="Catalina" defaultHost="localhost"
>> jvmRoute="tomcat2">
>>
>>                   <Cluster
>> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>> channelSendOptions="6">
>>
>>                         <Manager
>> className="org.apache.catalina.ha.session.DeltaManager"
>> expireSessionsOnShutdown="false" 
>> notifyListenersOnReplication="true"/>
>>
>>                         <Channel
>> className="org.apache.catalina.tribes.group.GroupChannel">
>>
>>                               <Membership 
>> className="org.apache.catalina.tribes.membership.McastService"
>> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>>
>>                               <Receiver 
>> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>> address="auto" port="4022" autoBind="100" selectorTimeout="5000"
>> maxThreads="6"/>
>>
>>                               <Sender 
>> className="org.apache.catalina.tribes.transport.ReplicationTransmitte
>> r
>> ">
>>
>>                                     <Transport 
>> className="org.apache.catalina.tribes.transport.nio.PooledParallelSen
>> d
>> er"/>
>>
>>                               </Sender>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDe
>> t
>> ector"/
>>>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.MessageDispa
>> t
>> ch15Int
>> erceptor"/>
>>
>>                         </Channel>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>>
>>                         <Deployer
>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderList
>> e
>> ner"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>
>>                   </Cluster>
>>
>>                   <Realm
>> className="org.apache.catalina.realm.LockOutRealm">
>>
>>                         <Realm
>> className="org.apache.catalina.realm.UserDatabaseRealm"
>> resourceName="UserDatabase"/>
>>
>>                   </Realm>
>>
>>                   <Host name="localhost" appBase="webapps"
> unpackWARs="true"
>> autoDeploy="true">
>>
>>                         <Valve
>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
>> &quot;%r&quot; %s %b"/>
>>
>>                   </Host>
>>
>>             </Engine>
>>
>>       </Service>
>>
>> </Server>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Bruce D. Pease
>> Technical Team Lead - Web Applications
>> CruiseOne(r) <http://www.cruiseone.com/>  & Cruises Inc(tm) 
>> <http://www.cruisesinc.com/>
>> 1201 W. Cypress Creek Road, Suite 100 Fort Lauderdale, FL 33309-1955
>> 954-958-3654 (direct) | 954-958-3665 (fax) bpease@wth.com 
>> <ma...@wth.com>
>>
>>
>>
> 
> ----------------------------------------------
> T ususcib, -mil uer-ususcib@tmct.paheor
> oraditonl omans,e-ai: ses-el@tmct.paheor
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


-- 

[key:62590808]


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat 7 Cluster Issue

Posted by Pid <pi...@pidster.com>.
On 09/03/2012 18:33, Bruce Pease wrote:
> I can try the rollback the jdk, and try that.  However, the issue doesn't
> appear to be jdk related.  

Plenty of changes to NIO in Java 7 AFAIK.
Let us know if Java 6 + Tomcat 7 presents the same problem.


p

> The migration was performed by completely removing the old containers,
> installing tomcat 7 instances, updating all configuration using the ones
> released in tomcat 7 version, recompiling all applications with jdk 1.7 and
> tomcat 7 dependencies, and redeploying the applications.
> 
> -----Original Message-----
> From: Daniel Mikusa [mailto:dmikusa@vmware.com] 
> Sent: Friday, March 09, 2012 1:02 PM
> To: Tomcat Users List
> Subject: Re: Tomcat 7 Cluster Issue
> 
> On Fri, 2012-03-09 at 08:38 -0800, Bruce Pease wrote:
>> Good Morning:
>>
>>
>>
>> I recently upgraded my tomcat containers from tomcat 6 to tomcat 
>> 7.0.26, and the jdk from 1.6 to 1.7.
> 
> This is a major jump for both Tomcat & the JVM.  Have you considered rolling
> back one of them to the previous version?
> 
> For example, roll back the JDK to 1.6 and try just the upgrade to Tomcat
> 7.0.26.
> 
> Also, from a Tomcat standpoint, how did you perform the migration?  In
> particular with your configuration files?
> 
> Dan
> 
> 
>> I am now seeing a clustering issue when I start a second instance on 
>> the same server.  I have tried a few variations of the config 
>> (address="auto", address="the ip", no address entry, different ports,
>> etc.) with no success.  I have included the configurations and error 
>> messages below.  Thank you in advance for your assistance.
>>
>>
>>
>> Error:
>>
>> Mar 09, 2012 11:16:16 AM 
>> org.apache.catalina.tribes.transport.nio.NioReceiver
>> listen
>>
>> SEVERE: Unable to process request in NioReceiver
>>
>> java.net.SocketException: Invalid argument: no further information
>>
>>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>>
>>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>>
>>                 at
>> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>>
>>                 at
>>
> org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:
>> 308)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.j
>> ava:418
>> )
>>
>>                 at java.lang.Thread.run(Thread.java:722)
>>
>>
>>
>> SEVERE: Unable to send message through cluster sender.
>>
>> org.apache.catalina.tribes.ChannelException: Send failed, attempt:2 
>> max:1; Faulty members:tcp://{10, 103, 4, 70}:4021;
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Para
>> llelNio
>> Sender.java:187)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage
>> (Parall
>> elNioSender.java:89)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMess
>> age(Poo
>> ledParallelSender.java:54)
>>
>>                 at
>> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessag
>> e(Repli
>> cationTransmitter.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(Channe
>> lCoordi
>> nator.java:78)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Ch
>> annelIn
>> terceptorBase.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.interceptors.MessageDispatchIntercept
>> or.send
>> Message(MessageDispatchInterceptor.java:77)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Ch
>> annelIn
>> terceptorBase.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendM
>> essage(
>> TcpFailureDetector.java:89)
>>
>>                 at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Ch
>> annelIn
>> terceptorBase.java:79)
>>
>>                 at
>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:2
>> 24)
>>
>>                 at
>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:1
>> 82)
>>
>>                 at
>> org.apache.catalina.ha.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java
>> :804)
>>
>>                 at
>> org.apache.catalina.ha.session.DeltaManager.getAllClusterSessions(Delt
>> aManage
>> r.java:830)
>>
>>                 at
>> org.apache.catalina.ha.session.DeltaManager.startInternal(DeltaManager
>> .java:7
>> 98)
>>
>>                 at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>
>>                 at
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext
>> .java:5
>> 282)
>>
>>                 at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.
>> java:89
>> 5)
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871
>> )
>>
>>                 at
>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>>
>>                 at
>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
>>
>>                 at
>> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1
>> 599)
>>
>>                 at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471
>> )
>>
>>                 at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>
>>                 at 
>> java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
>> ava:111
>> 0)
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>> java:60
>> 3)
>>
>>                 at java.lang.Thread.run(Thread.java:722)
>>
>> Caused by: java.net.SocketException: Invalid argument: no further 
>> information
>>
>>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>>
>>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>>
>>                 at
>> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>>
>>                 at
>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>>
>>                 at
>>
> org.apache.catalina.tribes.transport.nio.NioSender.completeConnect(NioSender.
>> java:151)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.NioSender.process(NioSender.j
>> ava:92)
>>
>>                 at
>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Para
>> llelNio
>> Sender.java:142)
>>
>>                 ... 28 more
>>
>>
>>
>> Isapi worker.properties:
>>
>> worker.list=cluster
>>
>>
>>
>> # base settings
>>
>> worker.foundation.type=ajp13
>>
>> worker.foundation.connect_timeout=60000
>>
>> worker.foundation.connection_pool_size=100
>>
>> worker.foundation.connection_pool_timeout=30
>>
>> worker.foundation.socket_keepalive=false
>>
>> worker.foundation.socket_timeout=300
>>
>> worker.foundation.lbfactor=5
>>
>>
>>
>> # worker 1 of cluster
>>
>> worker.tomcat1.reference=worker.foundation
>>
>> worker.tomcat1.host=10.103.4.70
>>
>> worker.tomcat1.port=10109
>>
>> worker.tomcat1.activation=A
>>
>>
>>
>> # worker 2 of cluster
>>
>> worker.tomcat2.reference=worker.foundation
>>
>> worker.tomcat2.host=10.103.4.70
>>
>> worker.tomcat2.port=10209
>>
>> worker.tomcat2.activation=A
>>
>>
>>
>> # define the load balancer
>>
>> worker.cluster.type=lb
>>
>> worker.cluster.method=B
>>
>> worker.cluster.balance_workers=tomcat1,tomcat2
>>
>>
>>
>>
>>
>> server.xml instance 1:
>>
>> <?xml version="1.0" encoding="utf-8"?>
>>
>> <Server port="8005" shutdown="SHUTDOWN">
>>
>>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
>> SSLEngine="on"/>
>>
>>       <Listener className="org.apache.catalina.core.JasperListener"/>
>>
>>       <Listener
>> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
>>
>>       <Listener
>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener
>> "/>
>>
>>       <Listener
>> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
>> />
>>
>>       <GlobalNamingResources>
>>
>>             <Resource name="UserDatabase" auth="Container"
>> type="org.apache.catalina.UserDatabase" description="User database 
>> that can be updated and saved"
>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>> pathname="conf/tomcat-users.xml"/>
>>
>>       </GlobalNamingResources>
>>
>>       <Service name="Catalina">
>>
>>             <Connector port="10180" protocol="HTTP/1.1"
>> connectionTimeout="20000" redirectPort="8443"/>
>>
>>             <Connector port="10109" protocol="AJP/1.3" 
>> redirectPort="8443"/>
>>
>>             <Engine name="Catalina" defaultHost="localhost"
>> jvmRoute="tomcat1">
>>
>>                   <Cluster
>> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>> channelSendOptions="6">
>>
>>                         <Manager
>> className="org.apache.catalina.ha.session.DeltaManager"
>> expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
>>
>>                         <Channel
>> className="org.apache.catalina.tribes.group.GroupChannel">
>>
>>                               <Membership 
>> className="org.apache.catalina.tribes.membership.McastService"
>> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>>
>>                               <Receiver 
>> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>> address="auto" port="4021" autoBind="100" selectorTimeout="5000"
>> maxThreads="6"/>
>>
>>                               <Sender
>> className="org.apache.catalina.tribes.transport.ReplicationTransmitter
>> ">
>>
>>                                     <Transport 
>> className="org.apache.catalina.tribes.transport.nio.PooledParallelSend
>> er"/>
>>
>>                               </Sender>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDet
>> ector"/
>>>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.MessageDispat
>> ch15Int
>> erceptor"/>
>>
>>                         </Channel>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>>
>>                         <Deployer
>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListe
>> ner"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>
>>                   </Cluster>
>>
>>                   <Realm 
>> className="org.apache.catalina.realm.LockOutRealm">
>>
>>                         <Realm
>> className="org.apache.catalina.realm.UserDatabaseRealm"
>> resourceName="UserDatabase"/>
>>
>>                   </Realm>
>>
>>                   <Host name="localhost" appBase="webapps"
> unpackWARs="true"
>> autoDeploy="true">
>>
>>                         <Valve
>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
>> &quot;%r&quot; %s %b"/>
>>
>>                   </Host>
>>
>>             </Engine>
>>
>>       </Service>
>>
>> </Server>
>>
>>
>>
>> Server xml instance 2:
>>
>> <?xml version="1.0" encoding="utf-8"?>
>>
>> <Server port="8006" shutdown="SHUTDOWN">
>>
>>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
>> SSLEngine="on"/>
>>
>>       <Listener className="org.apache.catalina.core.JasperListener"/>
>>
>>       <Listener
>> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
>>
>>       <Listener
>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener
>> "/>
>>
>>       <Listener
>> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
>> />
>>
>>       <GlobalNamingResources>
>>
>>             <Resource name="UserDatabase" auth="Container"
>> type="org.apache.catalina.UserDatabase" description="User database 
>> that can be updated and saved"
>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>> pathname="conf/tomcat-users.xml"/>
>>
>>       </GlobalNamingResources>
>>
>>       <Service name="Catalina">
>>
>>             <Connector port="10280" protocol="HTTP/1.1"
>> connectionTimeout="20000" redirectPort="8443"/>
>>
>>             <Connector port="10209" protocol="AJP/1.3" 
>> redirectPort="8443"/>
>>
>>             <Engine name="Catalina" defaultHost="localhost"
>> jvmRoute="tomcat2">
>>
>>                   <Cluster
>> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>> channelSendOptions="6">
>>
>>                         <Manager
>> className="org.apache.catalina.ha.session.DeltaManager"
>> expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
>>
>>                         <Channel
>> className="org.apache.catalina.tribes.group.GroupChannel">
>>
>>                               <Membership 
>> className="org.apache.catalina.tribes.membership.McastService"
>> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>>
>>                               <Receiver 
>> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>> address="auto" port="4022" autoBind="100" selectorTimeout="5000"
>> maxThreads="6"/>
>>
>>                               <Sender
>> className="org.apache.catalina.tribes.transport.ReplicationTransmitter
>> ">
>>
>>                                     <Transport 
>> className="org.apache.catalina.tribes.transport.nio.PooledParallelSend
>> er"/>
>>
>>                               </Sender>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDet
>> ector"/
>>>
>>
>>                               <Interceptor 
>> className="org.apache.catalina.tribes.group.interceptors.MessageDispat
>> ch15Int
>> erceptor"/>
>>
>>                         </Channel>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>>
>>                         <Valve
>> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>>
>>                         <Deployer
>> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
>> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
>> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListe
>> ner"/>
>>
>>                         <ClusterListener 
>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>
>>                   </Cluster>
>>
>>                   <Realm 
>> className="org.apache.catalina.realm.LockOutRealm">
>>
>>                         <Realm
>> className="org.apache.catalina.realm.UserDatabaseRealm"
>> resourceName="UserDatabase"/>
>>
>>                   </Realm>
>>
>>                   <Host name="localhost" appBase="webapps"
> unpackWARs="true"
>> autoDeploy="true">
>>
>>                         <Valve
>> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
>> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
>> &quot;%r&quot; %s %b"/>
>>
>>                   </Host>
>>
>>             </Engine>
>>
>>       </Service>
>>
>> </Server>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Bruce D. Pease
>> Technical Team Lead - Web Applications
>> CruiseOne(r) <http://www.cruiseone.com/>  & Cruises Inc(tm) 
>> <http://www.cruisesinc.com/>
>> 1201 W. Cypress Creek Road, Suite 100
>> Fort Lauderdale, FL 33309-1955
>> 954-958-3654 (direct) | 954-958-3665 (fax) bpease@wth.com 
>> <ma...@wth.com>
>>
>>
>>
> 
> ----------------------------------------------
> T ususcib, -mil uer-ususcib@tmct.paheor
> oraditonl omans,e-ai: ses-el@tmct.paheor
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


-- 

[key:62590808]


RE: Tomcat 7 Cluster Issue

Posted by Bruce Pease <bp...@wth.com>.
I can try the rollback the jdk, and try that.  However, the issue doesn't
appear to be jdk related.  

The migration was performed by completely removing the old containers,
installing tomcat 7 instances, updating all configuration using the ones
released in tomcat 7 version, recompiling all applications with jdk 1.7 and
tomcat 7 dependencies, and redeploying the applications.

-----Original Message-----
From: Daniel Mikusa [mailto:dmikusa@vmware.com] 
Sent: Friday, March 09, 2012 1:02 PM
To: Tomcat Users List
Subject: Re: Tomcat 7 Cluster Issue

On Fri, 2012-03-09 at 08:38 -0800, Bruce Pease wrote:
> Good Morning:
>
>
>
> I recently upgraded my tomcat containers from tomcat 6 to tomcat 
> 7.0.26, and the jdk from 1.6 to 1.7.

This is a major jump for both Tomcat & the JVM.  Have you considered rolling
back one of them to the previous version?

For example, roll back the JDK to 1.6 and try just the upgrade to Tomcat
7.0.26.

Also, from a Tomcat standpoint, how did you perform the migration?  In
particular with your configuration files?

Dan


> I am now seeing a clustering issue when I start a second instance on 
> the same server.  I have tried a few variations of the config 
> (address="auto", address="the ip", no address entry, different ports,
> etc.) with no success.  I have included the configurations and error 
> messages below.  Thank you in advance for your assistance.
>
>
>
> Error:
>
> Mar 09, 2012 11:16:16 AM 
> org.apache.catalina.tribes.transport.nio.NioReceiver
> listen
>
> SEVERE: Unable to process request in NioReceiver
>
> java.net.SocketException: Invalid argument: no further information
>
>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>
>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>
>                 at
> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>
>                 at
> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>
>                 at
> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>
>                 at
>
org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:
> 308)
>
>                 at
> org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.j
> ava:418
> )
>
>                 at java.lang.Thread.run(Thread.java:722)
>
>
>
> SEVERE: Unable to send message through cluster sender.
>
> org.apache.catalina.tribes.ChannelException: Send failed, attempt:2 
> max:1; Faulty members:tcp://{10, 103, 4, 70}:4021;
>
>                 at
> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Para
> llelNio
> Sender.java:187)
>
>                 at
> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage
> (Parall
> elNioSender.java:89)
>
>                 at
> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMess
> age(Poo
> ledParallelSender.java:54)
>
>                 at
> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessag
> e(Repli
> cationTransmitter.java:79)
>
>                 at
> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(Channe
> lCoordi
> nator.java:78)
>
>                 at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Ch
> annelIn
> terceptorBase.java:79)
>
>                 at
> org.apache.catalina.tribes.group.interceptors.MessageDispatchIntercept
> or.send
> Message(MessageDispatchInterceptor.java:77)
>
>                 at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Ch
> annelIn
> terceptorBase.java:79)
>
>                 at
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendM
> essage(
> TcpFailureDetector.java:89)
>
>                 at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Ch
> annelIn
> terceptorBase.java:79)
>
>                 at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:2
> 24)
>
>                 at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:1
> 82)
>
>                 at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java
> :804)
>
>                 at
> org.apache.catalina.ha.session.DeltaManager.getAllClusterSessions(Delt
> aManage
> r.java:830)
>
>                 at
> org.apache.catalina.ha.session.DeltaManager.startInternal(DeltaManager
> .java:7
> 98)
>
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>
>                 at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext
> .java:5
> 282)
>
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>
>                 at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.
> java:89
> 5)
>
>                 at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871
> )
>
>                 at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>
>                 at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
>
>                 at
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1
> 599)
>
>                 at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471
> )
>
>                 at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>
>                 at 
> java.util.concurrent.FutureTask.run(FutureTask.java:166)
>
>                 at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
> ava:111
> 0)
>
>                 at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
> java:60
> 3)
>
>                 at java.lang.Thread.run(Thread.java:722)
>
> Caused by: java.net.SocketException: Invalid argument: no further 
> information
>
>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>
>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>
>                 at
> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>
>                 at
> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>
>                 at
> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>
>                 at
>
org.apache.catalina.tribes.transport.nio.NioSender.completeConnect(NioSender.
> java:151)
>
>                 at
> org.apache.catalina.tribes.transport.nio.NioSender.process(NioSender.j
> ava:92)
>
>                 at
> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Para
> llelNio
> Sender.java:142)
>
>                 ... 28 more
>
>
>
> Isapi worker.properties:
>
> worker.list=cluster
>
>
>
> # base settings
>
> worker.foundation.type=ajp13
>
> worker.foundation.connect_timeout=60000
>
> worker.foundation.connection_pool_size=100
>
> worker.foundation.connection_pool_timeout=30
>
> worker.foundation.socket_keepalive=false
>
> worker.foundation.socket_timeout=300
>
> worker.foundation.lbfactor=5
>
>
>
> # worker 1 of cluster
>
> worker.tomcat1.reference=worker.foundation
>
> worker.tomcat1.host=10.103.4.70
>
> worker.tomcat1.port=10109
>
> worker.tomcat1.activation=A
>
>
>
> # worker 2 of cluster
>
> worker.tomcat2.reference=worker.foundation
>
> worker.tomcat2.host=10.103.4.70
>
> worker.tomcat2.port=10209
>
> worker.tomcat2.activation=A
>
>
>
> # define the load balancer
>
> worker.cluster.type=lb
>
> worker.cluster.method=B
>
> worker.cluster.balance_workers=tomcat1,tomcat2
>
>
>
>
>
> server.xml instance 1:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <Server port="8005" shutdown="SHUTDOWN">
>
>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on"/>
>
>       <Listener className="org.apache.catalina.core.JasperListener"/>
>
>       <Listener
> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
>
>       <Listener
> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener
> "/>
>
>       <Listener
> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
> />
>
>       <GlobalNamingResources>
>
>             <Resource name="UserDatabase" auth="Container"
> type="org.apache.catalina.UserDatabase" description="User database 
> that can be updated and saved"
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
> pathname="conf/tomcat-users.xml"/>
>
>       </GlobalNamingResources>
>
>       <Service name="Catalina">
>
>             <Connector port="10180" protocol="HTTP/1.1"
> connectionTimeout="20000" redirectPort="8443"/>
>
>             <Connector port="10109" protocol="AJP/1.3" 
> redirectPort="8443"/>
>
>             <Engine name="Catalina" defaultHost="localhost"
> jvmRoute="tomcat1">
>
>                   <Cluster
> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
> channelSendOptions="6">
>
>                         <Manager
> className="org.apache.catalina.ha.session.DeltaManager"
> expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
>
>                         <Channel
> className="org.apache.catalina.tribes.group.GroupChannel">
>
>                               <Membership 
> className="org.apache.catalina.tribes.membership.McastService"
> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>
>                               <Receiver 
> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
> address="auto" port="4021" autoBind="100" selectorTimeout="5000"
> maxThreads="6"/>
>
>                               <Sender
> className="org.apache.catalina.tribes.transport.ReplicationTransmitter
> ">
>
>                                     <Transport 
> className="org.apache.catalina.tribes.transport.nio.PooledParallelSend
> er"/>
>
>                               </Sender>
>
>                               <Interceptor 
> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDet
> ector"/
> >
>
>                               <Interceptor 
> className="org.apache.catalina.tribes.group.interceptors.MessageDispat
> ch15Int
> erceptor"/>
>
>                         </Channel>
>
>                         <Valve
> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>
>                         <Valve
> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>
>                         <Deployer
> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>
>                         <ClusterListener 
> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListe
> ner"/>
>
>                         <ClusterListener 
> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>
>                   </Cluster>
>
>                   <Realm 
> className="org.apache.catalina.realm.LockOutRealm">
>
>                         <Realm
> className="org.apache.catalina.realm.UserDatabaseRealm"
> resourceName="UserDatabase"/>
>
>                   </Realm>
>
>                   <Host name="localhost" appBase="webapps"
unpackWARs="true"
> autoDeploy="true">
>
>                         <Valve
> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
> &quot;%r&quot; %s %b"/>
>
>                   </Host>
>
>             </Engine>
>
>       </Service>
>
> </Server>
>
>
>
> Server xml instance 2:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <Server port="8006" shutdown="SHUTDOWN">
>
>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on"/>
>
>       <Listener className="org.apache.catalina.core.JasperListener"/>
>
>       <Listener
> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
>
>       <Listener
> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener
> "/>
>
>       <Listener
> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
> />
>
>       <GlobalNamingResources>
>
>             <Resource name="UserDatabase" auth="Container"
> type="org.apache.catalina.UserDatabase" description="User database 
> that can be updated and saved"
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
> pathname="conf/tomcat-users.xml"/>
>
>       </GlobalNamingResources>
>
>       <Service name="Catalina">
>
>             <Connector port="10280" protocol="HTTP/1.1"
> connectionTimeout="20000" redirectPort="8443"/>
>
>             <Connector port="10209" protocol="AJP/1.3" 
> redirectPort="8443"/>
>
>             <Engine name="Catalina" defaultHost="localhost"
> jvmRoute="tomcat2">
>
>                   <Cluster
> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
> channelSendOptions="6">
>
>                         <Manager
> className="org.apache.catalina.ha.session.DeltaManager"
> expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
>
>                         <Channel
> className="org.apache.catalina.tribes.group.GroupChannel">
>
>                               <Membership 
> className="org.apache.catalina.tribes.membership.McastService"
> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>
>                               <Receiver 
> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
> address="auto" port="4022" autoBind="100" selectorTimeout="5000"
> maxThreads="6"/>
>
>                               <Sender
> className="org.apache.catalina.tribes.transport.ReplicationTransmitter
> ">
>
>                                     <Transport 
> className="org.apache.catalina.tribes.transport.nio.PooledParallelSend
> er"/>
>
>                               </Sender>
>
>                               <Interceptor 
> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDet
> ector"/
> >
>
>                               <Interceptor 
> className="org.apache.catalina.tribes.group.interceptors.MessageDispat
> ch15Int
> erceptor"/>
>
>                         </Channel>
>
>                         <Valve
> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>
>                         <Valve
> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>
>                         <Deployer
> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>
>                         <ClusterListener 
> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListe
> ner"/>
>
>                         <ClusterListener 
> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>
>                   </Cluster>
>
>                   <Realm 
> className="org.apache.catalina.realm.LockOutRealm">
>
>                         <Realm
> className="org.apache.catalina.realm.UserDatabaseRealm"
> resourceName="UserDatabase"/>
>
>                   </Realm>
>
>                   <Host name="localhost" appBase="webapps"
unpackWARs="true"
> autoDeploy="true">
>
>                         <Valve
> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t 
> &quot;%r&quot; %s %b"/>
>
>                   </Host>
>
>             </Engine>
>
>       </Service>
>
> </Server>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Bruce D. Pease
> Technical Team Lead - Web Applications
> CruiseOne(r) <http://www.cruiseone.com/>  & Cruises Inc(tm) 
> <http://www.cruisesinc.com/>
> 1201 W. Cypress Creek Road, Suite 100
> Fort Lauderdale, FL 33309-1955
> 954-958-3654 (direct) | 954-958-3665 (fax) bpease@wth.com 
> <ma...@wth.com>
>
>
>

----------------------------------------------
T ususcib, -mil uer-ususcib@tmct.paheor
oraditonl omans,e-ai: ses-el@tmct.paheor

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat 7 Cluster Issue

Posted by Daniel Mikusa <dm...@vmware.com>.
On Fri, 2012-03-09 at 08:38 -0800, Bruce Pease wrote:
> Good Morning:
>
>
>
> I recently upgraded my tomcat containers from tomcat 6 to tomcat 7.0.26, and
> the jdk from 1.6 to 1.7.

This is a major jump for both Tomcat & the JVM.  Have you considered
rolling back one of them to the previous version?

For example, roll back the JDK to 1.6 and try just the upgrade to Tomcat
7.0.26.

Also, from a Tomcat standpoint, how did you perform the migration?  In
particular with your configuration files?

Dan


> I am now seeing a clustering issue when I start a
> second instance on the same server.  I have tried a few variations of the
> config (address="auto", address="the ip", no address entry, different ports,
> etc.) with no success.  I have included the configurations and error messages
> below.  Thank you in advance for your assistance.
>
>
>
> Error:
>
> Mar 09, 2012 11:16:16 AM org.apache.catalina.tribes.transport.nio.NioReceiver
> listen
>
> SEVERE: Unable to process request in NioReceiver
>
> java.net.SocketException: Invalid argument: no further information
>
>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>
>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>
>                 at
> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>
>                 at
> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>
>                 at
> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>
>                 at
> org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:
> 308)
>
>                 at
> org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.java:418
> )
>
>                 at java.lang.Thread.run(Thread.java:722)
>
>
>
> SEVERE: Unable to send message through cluster sender.
>
> org.apache.catalina.tribes.ChannelException: Send failed, attempt:2 max:1;
> Faulty members:tcp://{10, 103, 4, 70}:4021;
>
>                 at
> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(ParallelNio
> Sender.java:187)
>
>                 at
> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(Parall
> elNioSender.java:89)
>
>                 at
> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(Poo
> ledParallelSender.java:54)
>
>                 at
> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(Repli
> cationTransmitter.java:79)
>
>                 at
> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordi
> nator.java:78)
>
>                 at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelIn
> terceptorBase.java:79)
>
>                 at
> org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.send
> Message(MessageDispatchInterceptor.java:77)
>
>                 at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelIn
> terceptorBase.java:79)
>
>                 at
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(
> TcpFailureDetector.java:89)
>
>                 at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelIn
> terceptorBase.java:79)
>
>                 at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:224)
>
>                 at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:182)
>
>                 at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java:804)
>
>                 at
> org.apache.catalina.ha.session.DeltaManager.getAllClusterSessions(DeltaManage
> r.java:830)
>
>                 at
> org.apache.catalina.ha.session.DeltaManager.startInternal(DeltaManager.java:7
> 98)
>
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>
>                 at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5
> 282)
>
>                 at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>
>                 at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:89
> 5)
>
>                 at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
>
>                 at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>
>                 at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
>
>                 at
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
>
>                 at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>
>                 at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>
>                 at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>
>                 at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:111
> 0)
>
>                 at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:60
> 3)
>
>                 at java.lang.Thread.run(Thread.java:722)
>
> Caused by: java.net.SocketException: Invalid argument: no further information
>
>                 at sun.nio.ch.Net.setIntOption0(Native Method)
>
>                 at sun.nio.ch.Net.setSocketOption(Net.java:279)
>
>                 at
> sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:175)
>
>                 at
> sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:296)
>
>                 at
> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:396)
>
>                 at
> org.apache.catalina.tribes.transport.nio.NioSender.completeConnect(NioSender.
> java:151)
>
>                 at
> org.apache.catalina.tribes.transport.nio.NioSender.process(NioSender.java:92)
>
>                 at
> org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(ParallelNio
> Sender.java:142)
>
>                 ... 28 more
>
>
>
> Isapi worker.properties:
>
> worker.list=cluster
>
>
>
> # base settings
>
> worker.foundation.type=ajp13
>
> worker.foundation.connect_timeout=60000
>
> worker.foundation.connection_pool_size=100
>
> worker.foundation.connection_pool_timeout=30
>
> worker.foundation.socket_keepalive=false
>
> worker.foundation.socket_timeout=300
>
> worker.foundation.lbfactor=5
>
>
>
> # worker 1 of cluster
>
> worker.tomcat1.reference=worker.foundation
>
> worker.tomcat1.host=10.103.4.70
>
> worker.tomcat1.port=10109
>
> worker.tomcat1.activation=A
>
>
>
> # worker 2 of cluster
>
> worker.tomcat2.reference=worker.foundation
>
> worker.tomcat2.host=10.103.4.70
>
> worker.tomcat2.port=10209
>
> worker.tomcat2.activation=A
>
>
>
> # define the load balancer
>
> worker.cluster.type=lb
>
> worker.cluster.method=B
>
> worker.cluster.balance_workers=tomcat1,tomcat2
>
>
>
>
>
> server.xml instance 1:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <Server port="8005" shutdown="SHUTDOWN">
>
>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on"/>
>
>       <Listener className="org.apache.catalina.core.JasperListener"/>
>
>       <Listener
> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
>
>       <Listener
> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
>
>       <Listener
> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
>
>       <GlobalNamingResources>
>
>             <Resource name="UserDatabase" auth="Container"
> type="org.apache.catalina.UserDatabase" description="User database that can
> be updated and saved"
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
> pathname="conf/tomcat-users.xml"/>
>
>       </GlobalNamingResources>
>
>       <Service name="Catalina">
>
>             <Connector port="10180" protocol="HTTP/1.1"
> connectionTimeout="20000" redirectPort="8443"/>
>
>             <Connector port="10109" protocol="AJP/1.3" redirectPort="8443"/>
>
>             <Engine name="Catalina" defaultHost="localhost"
> jvmRoute="tomcat1">
>
>                   <Cluster
> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
> channelSendOptions="6">
>
>                         <Manager
> className="org.apache.catalina.ha.session.DeltaManager"
> expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
>
>                         <Channel
> className="org.apache.catalina.tribes.group.GroupChannel">
>
>                               <Membership
> className="org.apache.catalina.tribes.membership.McastService"
> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>
>                               <Receiver
> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
> address="auto" port="4021" autoBind="100" selectorTimeout="5000"
> maxThreads="6"/>
>
>                               <Sender
> className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
>
>                                     <Transport
> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
>
>                               </Sender>
>
>                               <Interceptor
> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/
> >
>
>                               <Interceptor
> className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Int
> erceptor"/>
>
>                         </Channel>
>
>                         <Valve
> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>
>                         <Valve
> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>
>                         <Deployer
> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>
>                         <ClusterListener
> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
>
>                         <ClusterListener
> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>
>                   </Cluster>
>
>                   <Realm className="org.apache.catalina.realm.LockOutRealm">
>
>                         <Realm
> className="org.apache.catalina.realm.UserDatabaseRealm"
> resourceName="UserDatabase"/>
>
>                   </Realm>
>
>                   <Host name="localhost" appBase="webapps" unpackWARs="true"
> autoDeploy="true">
>
>                         <Valve
> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t
> &quot;%r&quot; %s %b"/>
>
>                   </Host>
>
>             </Engine>
>
>       </Service>
>
> </Server>
>
>
>
> Server xml instance 2:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> <Server port="8006" shutdown="SHUTDOWN">
>
>       <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on"/>
>
>       <Listener className="org.apache.catalina.core.JasperListener"/>
>
>       <Listener
> className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
>
>       <Listener
> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
>
>       <Listener
> className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
>
>       <GlobalNamingResources>
>
>             <Resource name="UserDatabase" auth="Container"
> type="org.apache.catalina.UserDatabase" description="User database that can
> be updated and saved"
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
> pathname="conf/tomcat-users.xml"/>
>
>       </GlobalNamingResources>
>
>       <Service name="Catalina">
>
>             <Connector port="10280" protocol="HTTP/1.1"
> connectionTimeout="20000" redirectPort="8443"/>
>
>             <Connector port="10209" protocol="AJP/1.3" redirectPort="8443"/>
>
>             <Engine name="Catalina" defaultHost="localhost"
> jvmRoute="tomcat2">
>
>                   <Cluster
> className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
> channelSendOptions="6">
>
>                         <Manager
> className="org.apache.catalina.ha.session.DeltaManager"
> expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
>
>                         <Channel
> className="org.apache.catalina.tribes.group.GroupChannel">
>
>                               <Membership
> className="org.apache.catalina.tribes.membership.McastService"
> address="228.0.0.45" port="45564" frequency="500" dropTime="3000"/>
>
>                               <Receiver
> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
> address="auto" port="4022" autoBind="100" selectorTimeout="5000"
> maxThreads="6"/>
>
>                               <Sender
> className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
>
>                                     <Transport
> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
>
>                               </Sender>
>
>                               <Interceptor
> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/
> >
>
>                               <Interceptor
> className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Int
> erceptor"/>
>
>                         </Channel>
>
>                         <Valve
> className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
>
>                         <Valve
> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>
>                         <Deployer
> className="org.apache.catalina.ha.deploy.FarmWarDeployer"
> tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
> watchDir="/tmp/war-listen/" watchEnabled="false"/>
>
>                         <ClusterListener
> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
>
>                         <ClusterListener
> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>
>                   </Cluster>
>
>                   <Realm className="org.apache.catalina.realm.LockOutRealm">
>
>                         <Realm
> className="org.apache.catalina.realm.UserDatabaseRealm"
> resourceName="UserDatabase"/>
>
>                   </Realm>
>
>                   <Host name="localhost" appBase="webapps" unpackWARs="true"
> autoDeploy="true">
>
>                         <Valve
> className="org.apache.catalina.valves.AccessLogValve" directory="logs"
> prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t
> &quot;%r&quot; %s %b"/>
>
>                   </Host>
>
>             </Engine>
>
>       </Service>
>
> </Server>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Bruce D. Pease
> Technical Team Lead - Web Applications
> CruiseOne(r) <http://www.cruiseone.com/>  & Cruises Inc(tm)
> <http://www.cruisesinc.com/>
> 1201 W. Cypress Creek Road, Suite 100
> Fort Lauderdale, FL 33309-1955
> 954-958-3654 (direct) | 954-958-3665 (fax)
> bpease@wth.com <ma...@wth.com>
>
>
>