RE: PetStore - Session State in a Cluster

2001-05-22 Thread Juan Lorandi (Chile)

FACT: Orion's HTTP clustering won't work unless the web site is
default-web-site.

also, session replication in orion(at least, 1.4.7, which is the version
I've used) does survive well server crashes, but not server restarts. I'll
explain

Environment with a redirector (R) and two orion boxes (A  B)

session values are replicated.

server B goes down

server A performs (session values are used)

server B goes live again

sessions on server A aren't replicated in server B. However, any attributes
set in A(setAttribute() ), will be replicated to B in realtime.

So, there's an amount of time, when crashed servers go back online, in which
they have partial or no session status replication. This is observable when
using any tipe of redirector, either software(LoadBalancer) or
hardware(Cisco Redirector, Foundry Iron). This could be solved(not easily
tough) with a synchronization instance in which server B should get a the
bulk of all session state in server A, then proceed normally.

Along this line, but diverting, the logged user is replicated only when the
user logs in, so sessions in B after the restart have no identity
information, which will eventually trigger a login page to be displayed.
These issues tend to get worse as the island size(box count) increases.

Orion does have a HTTPSessionManager interface exposed as public. It allows
Orion to implement a 'normal' HTTPSession and a ClusteredHTTPSession
transparently, and is used internally when some attributes are on appropiate
xml files (ref: cluster/); I'd wish there was a tag on
orion-application.xml that could allow a personalized class which implements
HTTPSessionManager to be used, a la UserManager, so some of these problems
(and others that arise with mixed sites that use non secure and secure
portions) could be worked around without giving up many of orion's session
managing abilities(URL rewriting, Management of sessions with the console
and so on)

My 2c,

JP

PS: I'm forwarding this to Karl to be entered in the wishlist.

 -Original Message-
 From: Marcel Schutte [mailto:[EMAIL PROTECTED]]
 Sent: Lunes, 21 de Mayo de 2001 5:48
 To: Orion-Interest
 Subject: RE: PetStore - Session State in a Cluster
 
 
 My guess is you stumbled upon a mismatch between the servlet and jsp
 specifications: a container needs some way to decide when to 
 replicate a
 session to a cluster. In Orion and Weblogic this is done when
 session.setAttribute() is called. This works fine for things like the
 SessionServlet.
 
 In jsp's with the jsp:useBean ... scope=session tag, 
 setAttribute is
 only called upon creation of the bean class. Modifications to 
 the session
 state are done through calls on the bean class. This doesn't 
 trigger session
 replication because the container doesn't know about the change.
 
 Marcel
 
  Hi,
 
  I have the (J2EE Blueprint) PetStore application clustered on
  two Orion
  instances running on the same machine.
 
  When I connect through the LoadBalancer, I can see my session
  state get
  replicated across the two nodes. When I kill the primary
  node, the load
  balancer automatically connects me to the secondary node 
 and takes me
  through the rest of the shopping cart experience, however any
  items I had in
  my cart (ie. Session state!) aren't there anymore.
 
  I know that for clustering to work, objects should be
  Serializable AND
  placed in the session/servlet context for it to be
  replicated.  So my *real*
  questions are:
 
  1) I haven't dived into the PetStore code - but is this a
  design issue with
  the PetStore or do I need some configuration pointers?
 
  2) Has ANYBODY got PetStore working properly in a Clustered
  environment
  where you can kill the primary server and continue shopping
  (with your
  existing cart) on the secondary node?
 
  My Environment:Win2K, JDK 1.3, PetStore 1.1.2, Orion 1.4.5
 
  NB: The SessionServlet example works FINE for me.  When the
  primary goes
  down, the secondary node picks up with the same counter
  number as before the
  failure.
 
  __
  ___
  Get Your Private, Free E-mail from MSN Hotmail at
 http://www.hotmail.com.
 
 
 




RE: PetStore - Session State in a Cluster

2001-05-21 Thread Marcel Schutte

My guess is you stumbled upon a mismatch between the servlet and jsp
specifications: a container needs some way to decide when to replicate a
session to a cluster. In Orion and Weblogic this is done when
session.setAttribute() is called. This works fine for things like the
SessionServlet.

In jsp's with the jsp:useBean ... scope=session tag, setAttribute is
only called upon creation of the bean class. Modifications to the session
state are done through calls on the bean class. This doesn't trigger session
replication because the container doesn't know about the change.

Marcel

 Hi,

 I have the (J2EE Blueprint) PetStore application clustered on
 two Orion
 instances running on the same machine.

 When I connect through the LoadBalancer, I can see my session
 state get
 replicated across the two nodes. When I kill the primary
 node, the load
 balancer automatically connects me to the secondary node and takes me
 through the rest of the shopping cart experience, however any
 items I had in
 my cart (ie. Session state!) aren't there anymore.

 I know that for clustering to work, objects should be
 Serializable AND
 placed in the session/servlet context for it to be
 replicated.  So my *real*
 questions are:

 1) I haven't dived into the PetStore code - but is this a
 design issue with
 the PetStore or do I need some configuration pointers?

 2) Has ANYBODY got PetStore working properly in a Clustered
 environment
 where you can kill the primary server and continue shopping
 (with your
 existing cart) on the secondary node?

 My Environment:Win2K, JDK 1.3, PetStore 1.1.2, Orion 1.4.5

 NB: The SessionServlet example works FINE for me.  When the
 primary goes
 down, the secondary node picks up with the same counter
 number as before the
 failure.

 __
 ___
 Get Your Private, Free E-mail from MSN Hotmail at
http://www.hotmail.com.