You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by "Artem D." <ar...@gmail.com> on 2008/06/25 15:18:27 UTC

Tomcat 6 clustering problem

Hi all,
I've got wicket 1.4-m2 based application running on two different network
hosts configured as Tomcat 6 Simple TCP cluster.
I try to simulate failover with session replication using the following
schema:
1) Log into the first server, store some info in HTTP session
2) Access mounted page on the first server, i.e.
http://first.server/mounted/page
3) Try to access the same page on the second server, i.e.
http://second.server/mounted/page

I assume that HTTP session should replicate between Tomcat's and I want to
get immediate reply from the second server, but all I get is forwarding me
to the login screen and the following entries in log:

Jun 25, 2008 5:10:39 PM org.apache.catalina.ha.session.DeltaManager
messageReceived
SEVERE: Manager [localhost#/mas]: Unable to receive message through TCP
channel
java.lang.IllegalArgumentException: Unknown object type null
        at
org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSerialization(DiskPageStore.java:1211)
        at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.readObject(SecondLevelCacheSessionStore.java:403)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at
org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(DeltaRequest.java:361)
        at
org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.java:255)
        at
org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(DeltaManager.java:619)
        at
org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1363)
        at
org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1320)
        at
org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1083)
        at
org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:87)
        at
org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:899)
        at
org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:880)
        at
org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:269)
        at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
        at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:110)
        at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
        at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
        at
org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:241)
        at
org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:225)
        at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:188)
        at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:91)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)

Is there a way to resolve this issue?
-- 
View this message in context: http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18112263.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


RE: Tomcat 6 clustering problem

Posted by "Artem D." <ar...@gmail.com>.
Just tested you suggestion - it works like a charm!
Thanks for your help!

Artem.


lzappaterrini wrote:
> 
> Well in a production situation there would be one host name used and
> failover would just change which server the requests to that host name
> get routed to. In that scenario the same cookies would be used so no
> problem.
> 
> You should be able to use some trickery in your hosts file to mimic
> this. Add a host name (clustertest perhaps)  that points to the first
> server's IP address, access the site, switch the IP address in the hosts
> file to the second server, verify that the second server is indeed hit
> and that the behavior is correct.
> 
> I'm not sure if you are familiar with working with a hosts file so just
> know that on all Unix-like systems I have encountered it is found at
> /etc/hosts and on all Windows systems I have encountered it is found at
> C:\WINDOWS\system32\drivers\etc\hosts
> 
> Larry
> 
> -----Original Message-----
> From: Artem D. [mailto:artem.dyranov@gmail.com] 
> Sent: Wednesday, June 25, 2008 10:05 AM
> To: users@wicket.apache.org
> Subject: RE: Tomcat 6 clustering problem
> 
> 
> Disabling cookies in browser made it work!
> Servers are configured with jvmRoutes jvm1 and jvm2, i.e. for the first
> server:
> 
> <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
> 
> jsessionid request parameter while requesting the first server looks
> like
> jsessionid=3E526DD2214AEA5B5C2DAB9C6713AF26.jvm1
> 
> When switching to the second server jvm2 suffix is used.
> 
> What's the correct way to make it work with enabled cookies?
> 
> -Artem.
> 
> 
> lzappaterrini wrote:
>> 
>> Are you sure that the same JSESSIONID cookie is being sent to both
>> servers? Cookies only get sent when the host value matches the host in
>> the URL. Might that be your issue?  
>> 
>> -----Original Message-----
>> From: Artem D. [mailto:artem.dyranov@gmail.com] 
>> Sent: Wednesday, June 25, 2008 9:18 AM
>> To: users@wicket.apache.org
>> Subject: Tomcat 6 clustering problem
>> 
>> 
>> Hi all,
>> I've got wicket 1.4-m2 based application running on two different
>> network
>> hosts configured as Tomcat 6 Simple TCP cluster.
>> I try to simulate failover with session replication using the
> following
>> schema:
>> 1) Log into the first server, store some info in HTTP session
>> 2) Access mounted page on the first server, i.e.
>> http://first.server/mounted/page
>> 3) Try to access the same page on the second server, i.e.
>> http://second.server/mounted/page
>> 
>> I assume that HTTP session should replicate between Tomcat's and I
> want
>> to
>> get immediate reply from the second server, but all I get is
> forwarding
>> me
>> to the login screen and the following entries in log:
>> 
>> Jun 25, 2008 5:10:39 PM org.apache.catalina.ha.session.DeltaManager
>> messageReceived
>> SEVERE: Manager [localhost#/mas]: Unable to receive message through
> TCP
>> channel
>> java.lang.IllegalArgumentException: Unknown object type null
>>         at
>>
> org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSeri
>> alization(DiskPageStore.java:1211)
>>         at
>>
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevel
>> CachePageMap.readObject(SecondLevelCacheSessionStore.java:403)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
>> a:39)
>>         at
>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
>> Impl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>         at
>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>         at
>>
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753
>> )
>>         at
>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>         at
>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>         at
>>
> org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(D
>> eltaRequest.java:361)
>>         at
>>
> org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.ja
>> va:255)
>>         at
>>
> org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(Delt
>> aManager.java:619)
>>         at
>>
> org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaMan
>> ager.java:1363)
>>         at
>>
> org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager
>> .java:1320)
>>         at
>>
> org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaMan
>> ager.java:1083)
>>         at
>>
> org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(Cl
>> usterSessionListener.java:87)
>>         at
>>
> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
>> ster.java:899)
>>         at
>>
> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
>> ster.java:880)
>>         at
>>
> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChann
>> el.java:269)
>>         at
>>
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
>> ChannelInterceptorBase.java:79)
>>         at
>>
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.message
>> Received(TcpFailureDetector.java:110)
>>         at
>>
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
>> ChannelInterceptorBase.java:79)
>>         at
>>
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
>> ChannelInterceptorBase.java:79)
>>         at
>>
> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(Chan
>> nelCoordinator.java:241)
>>         at
>>
> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(Re
>> ceiverBase.java:225)
>>         at
>>
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel
>> (NioReplicationTask.java:188)
>>         at
>>
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioRepli
>> cationTask.java:91)
>>         at
>>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
>> r.java:885)
>>         at
>>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
>> va:907)
>>         at java.lang.Thread.run(Thread.java:619)
>> 
>> Is there a way to resolve this issue?
>> -- 
>> View this message in context:
>>
> http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18112263.ht
>> ml
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>> 
>> ______________
>> 
>> The information contained in this message is proprietary and/or
>> confidential. If you are not the 
>> intended recipient, please: (i) delete the message and all copies;
> (ii) do
>> not disclose, 
>> distribute or use the message in any manner; and (iii) notify the
> sender
>> immediately. In addition, 
>> please be aware that any message addressed to our domain is subject to
>> archiving and review by 
>> persons other than the intended recipient. Thank you.
>> _____________
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>> 
>> 
>> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18113363.ht
> ml
> Sent from the Wicket - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> ______________
> 
> The information contained in this message is proprietary and/or
> confidential. If you are not the 
> intended recipient, please: (i) delete the message and all copies; (ii) do
> not disclose, 
> distribute or use the message in any manner; and (iii) notify the sender
> immediately. In addition, 
> please be aware that any message addressed to our domain is subject to
> archiving and review by 
> persons other than the intended recipient. Thank you.
> _____________
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18114127.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


RE: Tomcat 6 clustering problem

Posted by "Zappaterrini, Larry" <La...@fnis.com>.
Well in a production situation there would be one host name used and
failover would just change which server the requests to that host name
get routed to. In that scenario the same cookies would be used so no
problem.

You should be able to use some trickery in your hosts file to mimic
this. Add a host name (clustertest perhaps)  that points to the first
server's IP address, access the site, switch the IP address in the hosts
file to the second server, verify that the second server is indeed hit
and that the behavior is correct.

I'm not sure if you are familiar with working with a hosts file so just
know that on all Unix-like systems I have encountered it is found at
/etc/hosts and on all Windows systems I have encountered it is found at
C:\WINDOWS\system32\drivers\etc\hosts

Larry

-----Original Message-----
From: Artem D. [mailto:artem.dyranov@gmail.com] 
Sent: Wednesday, June 25, 2008 10:05 AM
To: users@wicket.apache.org
Subject: RE: Tomcat 6 clustering problem


Disabling cookies in browser made it work!
Servers are configured with jvmRoutes jvm1 and jvm2, i.e. for the first
server:

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

jsessionid request parameter while requesting the first server looks
like
jsessionid=3E526DD2214AEA5B5C2DAB9C6713AF26.jvm1

When switching to the second server jvm2 suffix is used.

What's the correct way to make it work with enabled cookies?

-Artem.


lzappaterrini wrote:
> 
> Are you sure that the same JSESSIONID cookie is being sent to both
> servers? Cookies only get sent when the host value matches the host in
> the URL. Might that be your issue?  
> 
> -----Original Message-----
> From: Artem D. [mailto:artem.dyranov@gmail.com] 
> Sent: Wednesday, June 25, 2008 9:18 AM
> To: users@wicket.apache.org
> Subject: Tomcat 6 clustering problem
> 
> 
> Hi all,
> I've got wicket 1.4-m2 based application running on two different
> network
> hosts configured as Tomcat 6 Simple TCP cluster.
> I try to simulate failover with session replication using the
following
> schema:
> 1) Log into the first server, store some info in HTTP session
> 2) Access mounted page on the first server, i.e.
> http://first.server/mounted/page
> 3) Try to access the same page on the second server, i.e.
> http://second.server/mounted/page
> 
> I assume that HTTP session should replicate between Tomcat's and I
want
> to
> get immediate reply from the second server, but all I get is
forwarding
> me
> to the login screen and the following entries in log:
> 
> Jun 25, 2008 5:10:39 PM org.apache.catalina.ha.session.DeltaManager
> messageReceived
> SEVERE: Manager [localhost#/mas]: Unable to receive message through
TCP
> channel
> java.lang.IllegalArgumentException: Unknown object type null
>         at
>
org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSeri
> alization(DiskPageStore.java:1211)
>         at
>
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevel
> CachePageMap.readObject(SecondLevelCacheSessionStore.java:403)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
>
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>         at
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>         at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>         at
>
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753
> )
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>         at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>         at
>
org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(D
> eltaRequest.java:361)
>         at
>
org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.ja
> va:255)
>         at
>
org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(Delt
> aManager.java:619)
>         at
>
org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaMan
> ager.java:1363)
>         at
>
org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager
> .java:1320)
>         at
>
org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaMan
> ager.java:1083)
>         at
>
org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(Cl
> usterSessionListener.java:87)
>         at
>
org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
> ster.java:899)
>         at
>
org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
> ster.java:880)
>         at
>
org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChann
> el.java:269)
>         at
>
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
> ChannelInterceptorBase.java:79)
>         at
>
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.message
> Received(TcpFailureDetector.java:110)
>         at
>
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
> ChannelInterceptorBase.java:79)
>         at
>
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
> ChannelInterceptorBase.java:79)
>         at
>
org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(Chan
> nelCoordinator.java:241)
>         at
>
org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(Re
> ceiverBase.java:225)
>         at
>
org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel
> (NioReplicationTask.java:188)
>         at
>
org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioRepli
> cationTask.java:91)
>         at
>
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
> r.java:885)
>         at
>
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
> va:907)
>         at java.lang.Thread.run(Thread.java:619)
> 
> Is there a way to resolve this issue?
> -- 
> View this message in context:
>
http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18112263.ht
> ml
> Sent from the Wicket - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> ______________
> 
> The information contained in this message is proprietary and/or
> confidential. If you are not the 
> intended recipient, please: (i) delete the message and all copies;
(ii) do
> not disclose, 
> distribute or use the message in any manner; and (iii) notify the
sender
> immediately. In addition, 
> please be aware that any message addressed to our domain is subject to
> archiving and review by 
> persons other than the intended recipient. Thank you.
> _____________
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context:
http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18113363.ht
ml
Sent from the Wicket - User mailing list archive at Nabble.com.


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

______________

The information contained in this message is proprietary and/or confidential. If you are not the 
intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, 
distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, 
please be aware that any message addressed to our domain is subject to archiving and review by 
persons other than the intended recipient. Thank you.
_____________

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


RE: Tomcat 6 clustering problem

Posted by "Artem D." <ar...@gmail.com>.
Disabling cookies in browser made it work!
Servers are configured with jvmRoutes jvm1 and jvm2, i.e. for the first
server:

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

jsessionid request parameter while requesting the first server looks like
jsessionid=3E526DD2214AEA5B5C2DAB9C6713AF26.jvm1

When switching to the second server jvm2 suffix is used.

What's the correct way to make it work with enabled cookies?

-Artem.


lzappaterrini wrote:
> 
> Are you sure that the same JSESSIONID cookie is being sent to both
> servers? Cookies only get sent when the host value matches the host in
> the URL. Might that be your issue?  
> 
> -----Original Message-----
> From: Artem D. [mailto:artem.dyranov@gmail.com] 
> Sent: Wednesday, June 25, 2008 9:18 AM
> To: users@wicket.apache.org
> Subject: Tomcat 6 clustering problem
> 
> 
> Hi all,
> I've got wicket 1.4-m2 based application running on two different
> network
> hosts configured as Tomcat 6 Simple TCP cluster.
> I try to simulate failover with session replication using the following
> schema:
> 1) Log into the first server, store some info in HTTP session
> 2) Access mounted page on the first server, i.e.
> http://first.server/mounted/page
> 3) Try to access the same page on the second server, i.e.
> http://second.server/mounted/page
> 
> I assume that HTTP session should replicate between Tomcat's and I want
> to
> get immediate reply from the second server, but all I get is forwarding
> me
> to the login screen and the following entries in log:
> 
> Jun 25, 2008 5:10:39 PM org.apache.catalina.ha.session.DeltaManager
> messageReceived
> SEVERE: Manager [localhost#/mas]: Unable to receive message through TCP
> channel
> java.lang.IllegalArgumentException: Unknown object type null
>         at
> org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSeri
> alization(DiskPageStore.java:1211)
>         at
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevel
> CachePageMap.readObject(SecondLevelCacheSessionStore.java:403)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>         at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753
> )
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>         at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>         at
> org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(D
> eltaRequest.java:361)
>         at
> org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.ja
> va:255)
>         at
> org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(Delt
> aManager.java:619)
>         at
> org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaMan
> ager.java:1363)
>         at
> org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager
> .java:1320)
>         at
> org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaMan
> ager.java:1083)
>         at
> org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(Cl
> usterSessionListener.java:87)
>         at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
> ster.java:899)
>         at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
> ster.java:880)
>         at
> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChann
> el.java:269)
>         at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
> ChannelInterceptorBase.java:79)
>         at
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.message
> Received(TcpFailureDetector.java:110)
>         at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
> ChannelInterceptorBase.java:79)
>         at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
> ChannelInterceptorBase.java:79)
>         at
> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(Chan
> nelCoordinator.java:241)
>         at
> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(Re
> ceiverBase.java:225)
>         at
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel
> (NioReplicationTask.java:188)
>         at
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioRepli
> cationTask.java:91)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
> r.java:885)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
> va:907)
>         at java.lang.Thread.run(Thread.java:619)
> 
> Is there a way to resolve this issue?
> -- 
> View this message in context:
> http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18112263.ht
> ml
> Sent from the Wicket - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> ______________
> 
> The information contained in this message is proprietary and/or
> confidential. If you are not the 
> intended recipient, please: (i) delete the message and all copies; (ii) do
> not disclose, 
> distribute or use the message in any manner; and (iii) notify the sender
> immediately. In addition, 
> please be aware that any message addressed to our domain is subject to
> archiving and review by 
> persons other than the intended recipient. Thank you.
> _____________
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18113363.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


RE: Tomcat 6 clustering problem

Posted by "Zappaterrini, Larry" <La...@fnis.com>.
Are you sure that the same JSESSIONID cookie is being sent to both
servers? Cookies only get sent when the host value matches the host in
the URL. Might that be your issue?  

-----Original Message-----
From: Artem D. [mailto:artem.dyranov@gmail.com] 
Sent: Wednesday, June 25, 2008 9:18 AM
To: users@wicket.apache.org
Subject: Tomcat 6 clustering problem


Hi all,
I've got wicket 1.4-m2 based application running on two different
network
hosts configured as Tomcat 6 Simple TCP cluster.
I try to simulate failover with session replication using the following
schema:
1) Log into the first server, store some info in HTTP session
2) Access mounted page on the first server, i.e.
http://first.server/mounted/page
3) Try to access the same page on the second server, i.e.
http://second.server/mounted/page

I assume that HTTP session should replicate between Tomcat's and I want
to
get immediate reply from the second server, but all I get is forwarding
me
to the login screen and the following entries in log:

Jun 25, 2008 5:10:39 PM org.apache.catalina.ha.session.DeltaManager
messageReceived
SEVERE: Manager [localhost#/mas]: Unable to receive message through TCP
channel
java.lang.IllegalArgumentException: Unknown object type null
        at
org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSeri
alization(DiskPageStore.java:1211)
        at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevel
CachePageMap.readObject(SecondLevelCacheSessionStore.java:403)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753
)
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at
org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(D
eltaRequest.java:361)
        at
org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.ja
va:255)
        at
org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(Delt
aManager.java:619)
        at
org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaMan
ager.java:1363)
        at
org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager
.java:1320)
        at
org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaMan
ager.java:1083)
        at
org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(Cl
usterSessionListener.java:87)
        at
org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
ster.java:899)
        at
org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpClu
ster.java:880)
        at
org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChann
el.java:269)
        at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
ChannelInterceptorBase.java:79)
        at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.message
Received(TcpFailureDetector.java:110)
        at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
ChannelInterceptorBase.java:79)
        at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
ChannelInterceptorBase.java:79)
        at
org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(Chan
nelCoordinator.java:241)
        at
org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(Re
ceiverBase.java:225)
        at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel
(NioReplicationTask.java:188)
        at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioRepli
cationTask.java:91)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:885)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:907)
        at java.lang.Thread.run(Thread.java:619)

Is there a way to resolve this issue?
-- 
View this message in context:
http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18112263.ht
ml
Sent from the Wicket - User mailing list archive at Nabble.com.


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

______________

The information contained in this message is proprietary and/or confidential. If you are not the 
intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, 
distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, 
please be aware that any message addressed to our domain is subject to archiving and review by 
persons other than the intended recipient. Thank you.
_____________

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


Re: Tomcat 6 clustering problem

Posted by "Artem D." <ar...@gmail.com>.
Just tried with 1.4-SNAPSHOT.
Same exception but different line in the DiskPageStore.java
SEVERE: Manager [localhost#/mas]: Unable to receive message through TCP
channel
java.lang.IllegalArgumentException: Unknown object type null
        at
org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSerialization(DiskPageStore.java:1215)



Matej Knopp-2 wrote:
> 
> Any chance you can try it with latest trunk?
> 
> -Matej
> 
> On Wed, Jun 25, 2008 at 3:18 PM, Artem D. <ar...@gmail.com> wrote:
>>
>> Hi all,
>> I've got wicket 1.4-m2 based application running on two different network
>> hosts configured as Tomcat 6 Simple TCP cluster.
>> I try to simulate failover with session replication using the following
>> schema:
>> 1) Log into the first server, store some info in HTTP session
>> 2) Access mounted page on the first server, i.e.
>> http://first.server/mounted/page
>> 3) Try to access the same page on the second server, i.e.
>> http://second.server/mounted/page
>>
>> I assume that HTTP session should replicate between Tomcat's and I want
>> to
>> get immediate reply from the second server, but all I get is forwarding
>> me
>> to the login screen and the following entries in log:
>>
>> Jun 25, 2008 5:10:39 PM org.apache.catalina.ha.session.DeltaManager
>> messageReceived
>> SEVERE: Manager [localhost#/mas]: Unable to receive message through TCP
>> channel
>> java.lang.IllegalArgumentException: Unknown object type null
>>        at
>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSerialization(DiskPageStore.java:1211)
>>        at
>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.readObject(SecondLevelCacheSessionStore.java:403)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>        at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>        at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>        at
>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>>        at
>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>>        at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>>        at
>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>>        at
>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>>        at
>> org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(DeltaRequest.java:361)
>>        at
>> org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.java:255)
>>        at
>> org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(DeltaManager.java:619)
>>        at
>> org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1363)
>>        at
>> org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1320)
>>        at
>> org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1083)
>>        at
>> org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:87)
>>        at
>> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:899)
>>        at
>> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:880)
>>        at
>> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:269)
>>        at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
>>        at
>> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:110)
>>        at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
>>        at
>> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
>>        at
>> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:241)
>>        at
>> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:225)
>>        at
>> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:188)
>>        at
>> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:91)
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>        at java.lang.Thread.run(Thread.java:619)
>>
>> Is there a way to resolve this issue?
>> --
>> View this message in context:
>> http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18112263.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18113223.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: Tomcat 6 clustering problem

Posted by Matej Knopp <ma...@gmail.com>.
Any chance you can try it with latest trunk?

-Matej

On Wed, Jun 25, 2008 at 3:18 PM, Artem D. <ar...@gmail.com> wrote:
>
> Hi all,
> I've got wicket 1.4-m2 based application running on two different network
> hosts configured as Tomcat 6 Simple TCP cluster.
> I try to simulate failover with session replication using the following
> schema:
> 1) Log into the first server, store some info in HTTP session
> 2) Access mounted page on the first server, i.e.
> http://first.server/mounted/page
> 3) Try to access the same page on the second server, i.e.
> http://second.server/mounted/page
>
> I assume that HTTP session should replicate between Tomcat's and I want to
> get immediate reply from the second server, but all I get is forwarding me
> to the login screen and the following entries in log:
>
> Jun 25, 2008 5:10:39 PM org.apache.catalina.ha.session.DeltaManager
> messageReceived
> SEVERE: Manager [localhost#/mas]: Unable to receive message through TCP
> channel
> java.lang.IllegalArgumentException: Unknown object type null
>        at
> org.apache.wicket.protocol.http.pagestore.DiskPageStore.restoreAfterSerialization(DiskPageStore.java:1211)
>        at
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.readObject(SecondLevelCacheSessionStore.java:403)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
>        at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
>        at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
>        at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>        at
> org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(DeltaRequest.java:361)
>        at
> org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.java:255)
>        at
> org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(DeltaManager.java:619)
>        at
> org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1363)
>        at
> org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1320)
>        at
> org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1083)
>        at
> org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:87)
>        at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:899)
>        at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:880)
>        at
> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:269)
>        at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
>        at
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:110)
>        at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
>        at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79)
>        at
> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:241)
>        at
> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:225)
>        at
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:188)
>        at
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:91)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>        at java.lang.Thread.run(Thread.java:619)
>
> Is there a way to resolve this issue?
> --
> View this message in context: http://www.nabble.com/Tomcat-6-clustering-problem-tp18112263p18112263.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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