users@glassfish.java.net

Data session replication failure

From: <glassfish_at_javadesktop.org>
Date: Tue, 14 Apr 2009 07:49:39 PDT

I am unable to get in memory session data replication to consistently work in my Glassfish 2.1 cluster.

The setup is three Solaris 10 machines. One box with Apache. Another box with the DAS
and instances A and C. A third box with instances B and D. Each instance has its
own node agent. The four instances are in cluster "tst_cl".

My testing procedure is to go to http://appweb0.its.unc.edu/clusterjsp and add a few variables.
Then, thru the DAS, I stop the "Served From Server instance". After adding another variable on
clusterjsp, the "Served From Server instance", "Session ID", and "Session Created" values all
change. Only my last variable is listed in "Data retrieved from the HttpSession".

Sometimes bouncing everything (shutting everything down and then restarting) temporarily
fixes session data replication - usually not.

Sometimes changing the Heartbeat Port and Heartbeat Address fixes session data replication -
usually not. (Clusters -> tst_cl -> General)

Things I have checked
1 - the web server and app servers are all in the same subnet

2 - Time is the same on web server and app servers

3 - Heartbeat is enabled for the cluster
       Cluster -> tst_cl -> General

4 - Availability is enabled for the clusterjsp application
      Cluster -> tst_cl -> Applications -> clusterjsp

5 - Clusterjsp is load balanced enabled
      Cluster -> tst_cl -> Applications (both Enabled and LB Enabled are true)

6 - Instances are load balanced enabled
      cluster -> tst_cl -> Instances ( LB Enabled is true for all 4 instances )

7 - Availability Service is enabled in the clusters configuration in the Availability Service tab,
      the Web Container Availability tab and the EJB Container Availability tab
      Configurations -> tst_cl-config -> Availability Service
      Configurations -> tst_cl-config -> Availability Service -> Web Container Availability
      Configurations -> tst_cl-config -> Availability Service -> EJB Container Availability

8 - Setting for Web Container
      Availability Service: enabled
      Persistence Type: replicated (I have experimented with "memory" but that has never worked.)
      Persistence Frequency: web-method
      Persistence Scope: session
      Single-Sign-On State: not enabled ( These 3 should not be
      HTTP Session Store: jdbc/hastore relevant. Only included
      Persistence Store Health Check: not enabled for completeness )
      Configurations -> tst_cl-config -> Availability Service -> Web Container Availability tab

9 - The HTTP Load Balancer (tst_lb) targets the tst_cl cluster
       HTTP Load Balancers -> tst_lb -> Target -> Target Name equals tst_cl
       Also, clicking on "1 of 1 Application(s) Enabled" takes me to the Applications tab on Clusters > tst_cl

My software was downloaded from http://java.sun.com/javaee/downloads/index.jsp "GlassFish/App
Platform + JDK". Clustering was enabled after installation. I'm using the download's clusterjsp.

I've also had a session data replication problem using Sun GlassFish Enterprise Server v2.1.

Any ideas?
[Message sent by forum member 'updmst' (updmst)]

http://forums.java.net/jive/thread.jspa?messageID=341994