You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Willem Fibbe - Realworks BV <wi...@realworks.nl> on 2012/04/13 16:21:52 UTC

CometConnectionManagerValve combined with SimpleTcpCluster

Hi,

We have a small cluster of 2 Tomcat-nodes, replicating sessions via SimpleTcpCluster.
After we enabled CometConnectionManagerValve in context.xml, sessions weren't replicated anymore and we saw the following exceptions in the tomcat logs:
    java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.catalina.connector.Request

After digging further, I see that the Valve puts a list of Request-objects on the session that have comet-connections open.
When sessions are tried to be replicated, the Request-objects can't be serialized, hence the exception.

Is this a bug, maybe? Or should I use something else than SimpleTcpCluster?

Regards,
Willem Fibbe

Re: CometConnectionManagerValve combined with SimpleTcpCluster

Posted by Rainer Jung <ra...@kippdata.de>.
On 14.04.2012 02:37, Konstantin Kolinko wrote:
> 2012/4/13 Willem Fibbe - Realworks BV<wi...@realworks.nl>:
>> Hi,
>>
>> We have a small cluster of 2 Tomcat-nodes, replicating sessions via
>> SimpleTcpCluster.
>> After we enabled CometConnectionManagerValve in context.xml, sessions
>> weren't replicated anymore and we saw the following exceptions in the tomcat
>> logs:
>>    java.io.WriteAbortedException: writing aborted;
>> java.io.NotSerializableException: org.apache.catalina.connector.Request
>>
>> After digging further, I see that the Valve puts a list of Request-objects
>> on the session that have comet-connections open.
>> When sessions are tried to be replicated, the Request-objects can't be
>> serialized, hence the exception.
>>
>> Is this a bug, maybe? Or should I use something else than SimpleTcpCluster?
>>
>> Sorry, should have mentioned this before, but this was on Tomcat 6.0.35 (Debian).
>>
>
> I think this is a question for the users@ list.

Agreed.

> CometConnectionManagerValve in its current implementation is not
> really compatible with clustering (for the reason that you
> encountered). So do you really need this valve?
>
>
> There was the following new feature in 7.0.22, but it seems that it is
> accessible only programmatically and not through configuration:
> "Allow to overwrite the check for distributability of session
> attributes by session implementations. (rjung)"
>
> I mean, to really make CometConnectionManagerValve work in a cluster
> you have to exclude that non-serializable session attribute from
> replication. Its content makes sense for the current node only.

Since 7.0.22 and 6.0.34 you can configure, which session attributes you 
want to distribute via a regular expression matched against the 
attribute names. By default all attributes are replicated (and thus must 
be serializable).

See "sessionAttributeFilter" in

http://tomcat.apache.org/tomcat-7.0-doc/config/cluster-manager.html#Common_Attributes

Regards,

Rainer

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


Re: CometConnectionManagerValve combined with SimpleTcpCluster

Posted by Konstantin Kolinko <kn...@gmail.com>.
2012/4/13 Willem Fibbe - Realworks BV <wi...@realworks.nl>:
> Hi,
>
> We have a small cluster of 2 Tomcat-nodes, replicating sessions via
> SimpleTcpCluster.
> After we enabled CometConnectionManagerValve in context.xml, sessions
> weren't replicated anymore and we saw the following exceptions in the tomcat
> logs:
>   java.io.WriteAbortedException: writing aborted;
> java.io.NotSerializableException: org.apache.catalina.connector.Request
>
> After digging further, I see that the Valve puts a list of Request-objects
> on the session that have comet-connections open.
> When sessions are tried to be replicated, the Request-objects can't be
> serialized, hence the exception.
>
> Is this a bug, maybe? Or should I use something else than SimpleTcpCluster?
>
> Sorry, should have mentioned this before, but this was on Tomcat 6.0.35 (Debian).
>

I think this is a question for the users@ list.

CometConnectionManagerValve in its current implementation is not
really compatible with clustering (for the reason that you
encountered). So do you really need this valve?


There was the following new feature in 7.0.22, but it seems that it is
accessible only programmatically and not through configuration:
"Allow to overwrite the check for distributability of session
attributes by session implementations. (rjung)"

I mean, to really make CometConnectionManagerValve work in a cluster
you have to exclude that non-serializable session attribute from
replication. Its content makes sense for the current node only.


Best regards,
Konstantin Kolinko

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


Re: CometConnectionManagerValve combined with SimpleTcpCluster

Posted by Willem Fibbe - Realworks BV <wi...@realworks.nl>.
Sorry, should have mentioned this before, but this was on Tomcat 6.0.35 (Debian).

Willem


Op vrijdag, 13 april 2012 16:21 schreef Willem Fibbe - Realworks BV <wi...@realworks.nl>:
> 
> 
> 
> Hi,
> 
> We have a small cluster of 2 Tomcat-nodes, replicating sessions via SimpleTcpCluster.
> After we enabled CometConnectionManagerValve in context.xml, sessions weren't replicated anymore and we saw the following exceptions in the tomcat logs:
>     java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.catalina.connector.Request
> 
> After digging further, I see that the Valve puts a list of Request-objects on the session that have comet-connections open.
> When sessions are tried to be replicated, the Request-objects can't be serialized, hence the exception.
> 
> Is this a bug, maybe? Or should I use something else than SimpleTcpCluster?
> 
> Regards,
> Willem Fibbe
> 
> 
> 
>