Re: Why is session unbound called after cluster failover?

2008-02-26 Thread Filip Hanik - Dev Lists

kill -9 my friend :)

Andrew Hole wrote:

 The valueUnbound is NOT being propagated from the TC instance shutting
down across the cluster. The valueunbound is executed when I do the shutdown
of an TC instance  (session logout tracking was done - database record
inserted). After that I still work with this session on the active node ...
(however, on database i already have a logout session record). What we want
is that the valueunbound not be
executed while there is an active node in the cluster.

Thanks a lot


On Mon, Feb 25, 2008 at 9:41 PM, Rainer Jung [EMAIL PROTECTED]
wrote:

  

Christopher Schultz schrieb:


Of course, bringing down one container in a cluster will have the effect
of logging everyone out at once, even if they are on other servers as
  

well.

No, unless you set expireSessionsOnShutdown which is false by default,
shutdown of a node should not expire the sessions on the other nodes
(i.e. should not send expiration messages to the other nodes).

Regards,

Rainer


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





  



No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.516 / Virus Database: 269.21.0/1296 - Release Date: 2/24/2008 12:19 PM
  



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Why is session unbound called after cluster failover?

2008-02-25 Thread Andrew Hole
Hi!
Why is session unbound called after cluster failover?
Two more questions:
-- In a scenario with two nodes, if I shutdown one, the other is instantly
ready to receive and respond to requests, or it is necessary to wait a
while?
In a procuction scenario we cannot wait, because requests are frequently.
-- Is there any recommended configuration (basically If one tomcat crashes I
want that the other responds immediatly to the requests)?
Thanks a lot
A

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Christopher Schultz

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Andrew,

Andrew Hole wrote:
| Why is session unbound called after cluster failover?

What value is being unbound?

| Two more questions: -- In a scenario with two nodes, if I shutdown
| one, the other is instantly ready to receive and respond to requests,
| or it is necessary to wait a while?

It depends on how you set up your cluster. If you have distributed
sessions, then any other node can pick up right where the other left
off. If not, the user might have to log-in again in order for you to get
the session set up properly.

| In a production scenario we cannot wait, because requests are
| frequently. -- Is there any recommended configuration (basically If
| one tomcat crashes I want that the other responds immediately to the
| requests)?

If you want complete, immediate failover, you need to use distributed
sessions, have all nodes participate in the cluster, and have a way to
route traffic to the TC instances (using a lb appliance, httpd + mod_jk,
or some other mechanism).

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfC0hoACgkQ9CaO5/Lv0PBKgwCgmkYSZdZkYkH6hDVYbEjIUB1T
ANoAoIhmSgIOZrZeWzVmsNKoJgFCESwt
=QcE1
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Andrew Hole
Hi!

Well, our class USER implements HttpSessionBindingListener,
Serializable and when failover happens valueUnbound is executed(public
void valueUnbound(HttpSessionBindingEvent event)) - valueUnbound is a
method of class USER.

Could you help.
Thanks

On 2/25/08, Christopher Schultz [EMAIL PROTECTED] wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Andrew,

 Andrew Hole wrote:
 | Why is session unbound called after cluster failover?

 What value is being unbound?

 | Two more questions: -- In a scenario with two nodes, if I shutdown
 | one, the other is instantly ready to receive and respond to requests,
 | or it is necessary to wait a while?

 It depends on how you set up your cluster. If you have distributed
 sessions, then any other node can pick up right where the other left
 off. If not, the user might have to log-in again in order for you to get
 the session set up properly.

 | In a production scenario we cannot wait, because requests are
 | frequently. -- Is there any recommended configuration (basically If
 | one tomcat crashes I want that the other responds immediately to the
 | requests)?

 If you want complete, immediate failover, you need to use distributed
 sessions, have all nodes participate in the cluster, and have a way to
 route traffic to the TC instances (using a lb appliance, httpd + mod_jk,
 or some other mechanism).

 - -chris
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.8 (MingW32)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

 iEYEARECAAYFAkfC0hoACgkQ9CaO5/Lv0PBKgwCgmkYSZdZkYkH6hDVYbEjIUB1T
 ANoAoIhmSgIOZrZeWzVmsNKoJgFCESwt
 =QcE1
 -END PGP SIGNATURE-

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Christopher Schultz

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Andrew,

Andrew Hole wrote:
| Well, our class USER implements HttpSessionBindingListener,
| Serializable and when failover happens valueUnbound is executed(public
| void valueUnbound(HttpSessionBindingEvent event)) - valueUnbound is a
| method of class USER.

Is this happening on the new server or the old server?

Maybe your application is replacing the USER in the session with another
copy or something like that.

You can always generate a stack trace to find out where the call is
coming from:

System.err.println(User saw valueUnbound event!);
new Throwable().printStackTrace();

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfC6VsACgkQ9CaO5/Lv0PDwjgCghiPQXcAA9AGGSKkeJ5WuzoRQ
HYkAn1SjgLifqMpxKyZmZ1+GWp74PTTY
=hNUj
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Andrew Hole
It happens on both. Valueunbound is executed on old server when tomcat
is stopped, and is executed on new server when I execute logout (or if
I shutdown tomcat). We only want that new server executes
valueunbound.

Could you help?

Thanks a lot
A

On 2/25/08, Christopher Schultz [EMAIL PROTECTED] wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Andrew,

 Andrew Hole wrote:
 | Well, our class USER implements HttpSessionBindingListener,
 | Serializable and when failover happens valueUnbound is executed(public
 | void valueUnbound(HttpSessionBindingEvent event)) - valueUnbound is a
 | method of class USER.

 Is this happening on the new server or the old server?

 Maybe your application is replacing the USER in the session with another
 copy or something like that.

 You can always generate a stack trace to find out where the call is
 coming from:

 System.err.println(User saw valueUnbound event!);
 new Throwable().printStackTrace();

 - -chris
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.8 (MingW32)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

 iEYEARECAAYFAkfC6VsACgkQ9CaO5/Lv0PDwjgCghiPQXcAA9AGGSKkeJ5WuzoRQ
 HYkAn1SjgLifqMpxKyZmZ1+GWp74PTTY
 =hNUj
 -END PGP SIGNATURE-

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Filip Hanik - Dev Lists


the stack trace idea is a good idea, and you can post it here

Filip


Christopher Schultz wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Andrew,

Andrew Hole wrote:
| Well, our class USER implements HttpSessionBindingListener,
| Serializable and when failover happens valueUnbound is executed(public
| void valueUnbound(HttpSessionBindingEvent event)) - valueUnbound is a
| method of class USER.

Is this happening on the new server or the old server?

Maybe your application is replacing the USER in the session with another
copy or something like that.

You can always generate a stack trace to find out where the call is
coming from:

System.err.println(User saw valueUnbound event!);
new Throwable().printStackTrace();

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfC6VsACgkQ9CaO5/Lv0PDwjgCghiPQXcAA9AGGSKkeJ5WuzoRQ
HYkAn1SjgLifqMpxKyZmZ1+GWp74PTTY
=hNUj
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Andrew Hole
Stack trace of old server:
java.lang.Exception
at mni.core.sessions.User.valueUnbound(User.java:95)
at
org.apache.catalina.cluster.session.DeltaSession.removeAttributeInternal(DeltaSession.java:1589)
at
org.apache.catalina.cluster.session.DeltaSession.expire(DeltaSession.java:776)
at
org.apache.catalina.cluster.session.DeltaManager.stop(DeltaManager.java:1194)
at
org.apache.catalina.core.StandardContext.stop(StandardContext.java:4345)
at
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)
at
org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1164)
at
org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1135)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1054)
at
org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1066)
at
org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:447)
at
org.apache.catalina.core.StandardService.stop(StandardService.java:512)
at
org.apache.catalina.core.StandardServer.stop(StandardServer.java:743)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:601)
at org.apache.catalina.startup.Catalina.start(Catalina.java:576)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

And after logout on new server:
java.lang.Exception
at mni.core.sessions.User.valueUnbound(User.java:95)
at 
org.apache.catalina.cluster.session.DeltaSession.removeAttributeInternal(DeltaSession.java:1603)
at 
org.apache.catalina.cluster.session.DeltaSession.expire(DeltaSession.java:786)
at 
org.apache.catalina.cluster.session.DeltaSession.expire(DeltaSession.java:697)
at 
org.apache.catalina.cluster.session.DeltaSession.expire(DeltaSession.java:685)
at 
org.apache.catalina.cluster.session.DeltaSession.invalidate(DeltaSession.java:1080)
at 
org.apache.catalina.cluster.session.DeltaSessionFacade.invalidate(DeltaSessionFacade.java:151)
at mni.businesscore.service.sessions.LogOut.DoIt(LogOut.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at 
flashgateway.adapter.java.JavaAdapter.invokeFunction(JavaAdapter.java:55)
at flashgateway.filter.AdapterFilter.invoke(AdapterFilter.java:117)
at 
flashgateway.filter.MessageSecurityFilter.invoke(MessageSecurityFilter.java:144)
at 
flashgateway.filter.ServiceNameFilter.invoke(ServiceNameFilter.java:101)
at flashgateway.filter.EnvelopeFilter.invoke(EnvelopeFilter.java:102)
at flashgateway.filter.SessionFilter.invoke(SessionFilter.java:28)
at flashgateway.filter.LicenseFilter.invoke(LicenseFilter.java:57)
at flashgateway.filter.ErrorFilter.invoke(ErrorFilter.java:39)
at flashgateway.filter.LogFilter.invoke(LogFilter.java:46)
at 
flashgateway.filter.BatchProcessFilter.invoke(BatchProcessFilter.java:63)
at 
flashgateway.filter.PacketSecurityFilter.invoke(PacketSecurityFilter.java:79)
at flashgateway.filter.DebugFilter.invoke(DebugFilter.java:38)
at 
flashgateway.filter.SerializationFilter.invoke(SerializationFilter.java:89)
at flashgateway.Gateway.invoke(Gateway.java:217)
at 
flashgateway.controller.GatewayServlet.service(GatewayServlet.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at mni.core.servlets.RequestFilter.processRequest(RequestFilter.java:40)
at 
mni.core.servlets.RequestContextFilter.doFilter(RequestContextFilter.java:76)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at 

Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Christopher Schultz

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Andrew,

Andrew Hole wrote:
| It happens on both. Valueunbound is executed on old server when
| tomcat is stopped, and is executed on new server when I execute
| logout (or if I shutdown tomcat).

That behavior seems entirely consistent with what should happen -- and
has nothing to do with clustering or anything like that.

| We only want that new server executes valueunbound.
|
| Could you help?

I think you need to manage your events in a way that takes into account
the fact that valueUnbound will can be called by other members in the
cluster.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfDFr8ACgkQ9CaO5/Lv0PCGqgCgmpf4OeJQe484bd/BQ0Q5GNX4
TxAAoKzasXr4H7ICeJB78c2K3uzpPrCh
=DLZ3
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Christopher Schultz

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Andrew,

Andrew Hole wrote:
| I think you need to manage your events in a way that takes into account
| the fact that valueUnbound will can be called by other members in the
| cluster.
| It is not a easy task, rigth?
| Could you be more specific in the way of developing it?

Hmm... I hadn't seen your stack trace before writing my own post.

Does it appear that the TC that is going down is propagating the
expire event to the sessions on other servers? Is that why the new
TC is also calling valudUnbound?

I'm interested in finding out exactly what is happening before I suggest
a solution.

- -chris

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfDJ94ACgkQ9CaO5/Lv0PCTYQCgijoEPPCCPrPhITX3gvYVn70G
6PsAnRJzSE1WVsXUAaJ87VdgHVmIZTyz
=Wl0Z
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Andrew Hole
I think you need to manage your events in a way that takes into account
the fact that valueUnbound will can be called by other members in the
cluster.
It is not a easy task, rigth?
Could you be more specific in the way of developing it?

Thanks

On Mon, Feb 25, 2008 at 7:27 PM, Christopher Schultz 
[EMAIL PROTECTED] wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Andrew,

 Andrew Hole wrote:
 | It happens on both. Valueunbound is executed on old server when
 | tomcat is stopped, and is executed on new server when I execute
 | logout (or if I shutdown tomcat).

 That behavior seems entirely consistent with what should happen -- and
 has nothing to do with clustering or anything like that.

 | We only want that new server executes valueunbound.
 |
 | Could you help?

 I think you need to manage your events in a way that takes into account
 the fact that valueUnbound will can be called by other members in the
 cluster.

 - -chris
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.8 (MingW32)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

 iEYEARECAAYFAkfDFr8ACgkQ9CaO5/Lv0PCGqgCgmpf4OeJQe484bd/BQ0Q5GNX4
 TxAAoKzasXr4H7ICeJB78c2K3uzpPrCh
 =DLZ3
 -END PGP SIGNATURE-

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Andrew Hole
Well, valueunbound is executed on both TC.
we are doing session replication, lets say we have a 5 (for example) node
cluster. When a user logs on, his/her session will be replicated on 5
tomcats. When he/she logs out, you only want track that the user has logged
out once, not 5 times (our logout tracking is associated to valueunbound).
Actually, valueunbound is executed on all tomcats.

Let me know if you need more information.



On Mon, Feb 25, 2008 at 8:41 PM, Christopher Schultz 
[EMAIL PROTECTED] wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Andrew,

 Andrew Hole wrote:
 | I think you need to manage your events in a way that takes into account
 | the fact that valueUnbound will can be called by other members in the
 | cluster.
 | It is not a easy task, rigth?
 | Could you be more specific in the way of developing it?

 Hmm... I hadn't seen your stack trace before writing my own post.

 Does it appear that the TC that is going down is propagating the
 expire event to the sessions on other servers? Is that why the new
 TC is also calling valudUnbound?

 I'm interested in finding out exactly what is happening before I suggest
 a solution.

 - -chris

 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.8 (MingW32)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

 iEYEARECAAYFAkfDJ94ACgkQ9CaO5/Lv0PCTYQCgijoEPPCCPrPhITX3gvYVn70G
 6PsAnRJzSE1WVsXUAaJ87VdgHVmIZTyz
 =Wl0Z
 -END PGP SIGNATURE-

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Rainer Jung
Not sure if I followed this thread closely enough. It looks like 
sometimes you are talking about node shutdown (your example stack), and 
sometimes about user logout (your last message).


Concerning user logout (resp. session expiration/invalidation): the 
attribute notifyListenersOnReplication of a cluster manager 
(DeltaManager) should help.


See

http://tomcat.apache.org/tomcat-6.0-doc/config/cluster-manager.html

and

http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

for configuration example.

Regards,

Rainer

Andrew Hole schrieb:

Well, valueunbound is executed on both TC.
we are doing session replication, lets say we have a 5 (for example) node
cluster. When a user logs on, his/her session will be replicated on 5
tomcats. When he/she logs out, you only want track that the user has logged
out once, not 5 times (our logout tracking is associated to valueunbound).
Actually, valueunbound is executed on all tomcats.

Let me know if you need more information.



On Mon, Feb 25, 2008 at 8:41 PM, Christopher Schultz 
[EMAIL PROTECTED] wrote:

Andrew,

Andrew Hole wrote:
| I think you need to manage your events in a way that takes into account
| the fact that valueUnbound will can be called by other members in the
| cluster.
| It is not a easy task, rigth?
| Could you be more specific in the way of developing it?

Hmm... I hadn't seen your stack trace before writing my own post.

Does it appear that the TC that is going down is propagating the
expire event to the sessions on other servers? Is that why the new
TC is also calling valudUnbound?

I'm interested in finding out exactly what is happening before I suggest
a solution.

-chris



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Christopher Schultz

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Andrew,

Andrew Hole wrote:
| Well, valueUnbound is executed on both TC.

You mentioned that. The valueUnbound is being propagated from the TC
instance shutting down across the cluster, right? I can't seem to get a
straight answer to that question.

| we are doing session replication, lets say we have a 5 (for example) node
| cluster. When a user logs on, his/her session will be replicated on 5
| tomcats. When he/she logs out, you only want track that the user has
logged
| out once, not 5 times (our logout tracking is associated to valueunbound).
| Actually, valueunbound is executed on all tomcats.

Again, this seems consistent to me.

The servlet specification suggests (S 7.7.2):


Application Developers writing distributed applications should be aware
that since the container may run in more than one Java virtual machine,
the developer cannot depend on static variables for storing an
application state. They should store such states using an enterprise
bean or a database.


Perhaps you could have your User object (in its valueUnbound method)
mark the session as already having processed this event.

Of course, bringing down one container in a cluster will have the effect
of logging everyone out at once, even if they are on other servers as well.

Having never run Tomcat under a clustered configuration, I can't say as
I have too many suggestions for you... I usually store a user's state in
a database instead of relying on the HttpSession for that kind of
management. (And we don't attempt to log 'logout' events, which it looks
like you might be attempting to do).

I'm not sure how to tell the difference between a session going away due
to an HttpSession.invalidate call versus some other mechanism (such as
the expire method that you are encountering during shutdown).

- -chris

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkfDMuQACgkQ9CaO5/Lv0PCABACgkRZIFUnCyh+53MbJy4rVLwUG
7c8An0A5DcUfxGDu6+ZFZCCKpy4P+ikh
=PZqx
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Rainer Jung

Christopher Schultz schrieb:

Of course, bringing down one container in a cluster will have the effect
of logging everyone out at once, even if they are on other servers as well.


No, unless you set expireSessionsOnShutdown which is false by default, 
shutdown of a node should not expire the sessions on the other nodes 
(i.e. should not send expiration messages to the other nodes).


Regards,

Rainer


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Why is session unbound called after cluster failover?

2008-02-25 Thread Andrew Hole
 The valueUnbound is NOT being propagated from the TC instance shutting
down across the cluster. The valueunbound is executed when I do the shutdown
of an TC instance  (session logout tracking was done - database record
inserted). After that I still work with this session on the active node ...
(however, on database i already have a logout session record). What we want
is that the valueunbound not be
executed while there is an active node in the cluster.

Thanks a lot


On Mon, Feb 25, 2008 at 9:41 PM, Rainer Jung [EMAIL PROTECTED]
wrote:

 Christopher Schultz schrieb:
  Of course, bringing down one container in a cluster will have the effect
  of logging everyone out at once, even if they are on other servers as
 well.

 No, unless you set expireSessionsOnShutdown which is false by default,
 shutdown of a node should not expire the sessions on the other nodes
 (i.e. should not send expiration messages to the other nodes).

 Regards,

 Rainer


 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Why is session unbound called after cluster failover?

2008-02-22 Thread Andrew Hole
Hi!
Why is session unbound called after cluster failover?
Two more questions:
-- In a scenario with two nodes, if I shutdown  one, the other is instantly
ready to receive and respond to requests, or it is necessary to wait a
while?
In a procuction scenario we cannot wait, because requests are frequently.
-- Is there any recommended configuration (basically If one tomcat crashes I
want that the other responds immediatly to the requests)?

Thanks a lot
A