This wiki provides links PDF review drafts of various sections related to the Load Balancing feature for GlassFish Server Open Source Edition 3.1.

Mandatory reviewers are listed below. The deadline for review comments is Monday, February 7th. Please provide your feedback by adding comments to this page. Please review existing comments before posting to avoid duplicates.

  • Kshitiz Saxena
  • Mahesh Kannan
  • Joe Di Pol
  • Yamini K B
  • Homer Yau

Administration Guide Changes

Quick Start Guide Changes

Section Status
Working With Load Balancers In review.

High Availability Administration Guide Changes

Section Status
1, High Availability in Enterprise Server In review.
High Availability and Failover; several sections In review.
5, Configuring HTTP Load Balancing In review.
_HADB references; throughout_ Entire book file is attached here; too many references to segregate sections. Please scan for errant HADB references. GF3.1 does not include or support HADB.

EEAG-mod_jk.pdf (application/pdf)
HAAG-config_lb.pdf (application/pdf)
HAAG-failover_configs.pdf (application/pdf)
HAAG-ha_overview.pdf (application/pdf)
QSG-lb_overview.pdf (application/pdf)
SJSASEEHAAG.pdf (application/pdf)
SJSASEEHAAG.pdf (application/octet-stream)
HAAG-config_lb.pdf (application/octet-stream)
EEAG-mod_jk.pdf (application/octet-stream)
HAAG-ha_overview.pdf (application/octet-stream)
QSG-lb_overview.pdf (application/octet-stream)
HAAG-failover_configs.pdf (application/octet-stream)
Comment ID Location Comment
YKB-001 Configuring HTTP LB, page 83 --autoapplyenabled is deprecated in 3.1, the note should be removed
Posted by xyamini at Feb 06, 2011 21:59
Comment ID Location Comment
Kshitiz-1 Configuring HTTP LB This section is not needed here at all. With Apache+mod_jk, there is no need to create http load-balancer configuration in domain xml
Kshitiz-2 Working With Load Balancers This guide need to reviewed by Amy Roh
Posted by kshitiz_s at Feb 07, 2011 01:19
Comment ID
Location Comment
Amy-1
Page 80
"Configuring GlassFish Server with Apache HTTPD Server and mod_jk" should be "Configuring GlassFish Server with Apache HTTP Server and mod_jk"
Amy-2
Page 81
Step 4 should be updated with

4  Enable mod_jk using the following command:

asadmin create-network-listener --protocol http-listener-1 --listenerport 8009 --jkenabled true jk-connector

asadmin set server-config.network-config.network-listeners.network-listener.jk-connector.jk-configuration-file=domain-dir/config/glassfish-jk.properties
Posted by amyroh at Feb 07, 2011 14:14

Comments on EEAG-mod_jk.pdf

Comment ID
Location Comment
sre-001
General Comment
There is a lot of overlap between the Admin Guide mod_jk instructions and the HA Admin Guide.  Are they both needed?  Could the Admin Guide simply refer (or defer) to the HA Admin Guide, especially as the Admin Guide also discusses load balancing with mod_jk, which is really a HA feature???
sre-002
General Comment
I see nothing that explains what the benefits/differences are in using either the Apache workers.properties file or the glassfish-jk.properties file, and under which circumstances which is the best choice.  For example, if the Apache tier is separate from the GlassFish instance tier, do you just need the Apache side with a workers.properties file and nothing on the GlassFish tier, or does the GlassFish tier need a glassfish-jk.properties file that matches up with the Apache workers.properties file???
sre-003
p108, point 1, first bullet point
URL should be updated to point to the Apache 2.2 docs.  Just change the 2.0 in the URL to 2.2
sre-004
p109, point 2
Perhaps update the paths so they start apache22 and not apache2
sre-005
p109, point 2
Why is the Apache configuration directory "conf" in the first bullet point, and "config" in the second.  Shouldn't both be "conf"?
sre-006
p109, point 5
Probably should match the changes suggested in Amy-2 as the original text of both is the same.  Again, is the glassfish-jk.properties needed?  The Amy-2 comment appear to suggest its always needed, but the text here makes it optional - I've setup 3.0 in the past with all the configuration on the Apache side.
sre-007
p109, Example 6-4
Could add that this example is just using mod_jk as a simple passthrough.
sre-008
p110, Example 6-5
Should it be made clearer that this is the workers.properties file referenced by the httpd.conf file in Example 6-4?
sre-009
General Comment
The HA Admin Guide has the config files from Examples 6-4 and 6-5, but doesn't have the example files that actually show a LB configuration with mod_jk, i.e. from Examples 6-6 and 6-7.
sre-010
p110-111, points 1 and 2
There's no mention of the jvmRoute property in the HA Guide.  If this is still needed then it should be mentioned there as well (unless docs are combined).
sre-011
p111, Example 6-6
A slightly better example would move the JkMount /glassfish-test/* into a separate file, i.e. have the following directive:
JkMountFile /etc/httpd/conf/urlmap.properties

where that file would have:

/glassfish-test=loadbalancer
/glassfish-test/*=loadbalancer

This actually allows you to take URIs in and out of load balancing dynamically as the mod_jk plugin polls the file on a regular basis.  The example as it stands is fine, but this more convoluted is better suited to the real world where you might want to change things without restarting the apache front end
sre-012
Example 6-7
A slightly more compact example file would be to use worker references, e.g.

worker.list=worker1,worker2,loadbalancer
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
worker.worker2.reference=worker.worker1
worker.worker2.port=8010
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=worker1,worker2

Since that lets worker2 inherit/copy its configuration from worker1 and then just has the port overridden.

sre-013
p112, point 1
On systems that have a /dev/*random device the -rand <filelist> is unnecessary.  That's certainly Solaris 10 and recent Linux editions, e.g. RH5
sre-014
p113, point 5
With Apache 2.2 the ssl.conf is now httpd-ssl.conf.  The /etc/apache2 seems to be using the Solaris pre-bundled apache 2.0 install.  Given 2.0 isn't supported, should this be referring to a Apache 2.2 installation somewhere.  If the Apache 2.2 isn't using the Solaris semantics for splitting the installation over /usr, /etc and /var then the file would be <apache-2.2-dir>/conf/extra/httpd-ssl.conf
sre-015 p112, point 6 Given this is based on a previous example, should it say that any JkMount mappings that are going to be protected using SSL should be moved from the httpd.conf to the httpd-ssl.conf file.  See sre-014 about ssl.conf file name.
 
sre-016
Example 6-8
httpd-ssl.conf instead of ssl.conf.
sre-017
p113, point 3
Does this need changing checking given the previous changes to the create-listener commands?
sre-018
p113, point 4
Again, ssl.conf name/directory path probably need correcting/bringing up to date.
Posted by tecknobabble at Feb 08, 2011 05:12

Comments on SJSASEEHAAG.pdf

Comment ID
Location Comment
sre-019
p13, 1st para
Probably can remove the reference to converged load balancing.  The converged load balancer was functionality added into 2.x in the SailFin product, which was built upon GlassFish.  Given the future of SailFin is unknown, and this appears to be the only reference to converged load balancing, just remove this.
sre-020
p17, Overview of High Availability, first sentence.
Do we really provide five-9's availability with just in-memory replication?  The 5 9's claim I believe was predicated on the fact that HADB provided this level of availability, and this was a proven statement.   Given that the product no longer makes use of HADB, can the same claim be made?  For HADB to claim 5 9's you had to use hardware with redundant power, networks etc.  Given that it appears the intra-cluster GMS is bound to a specific network/interface, its hard to see how that could failover to a separate redundant network if there was a failure.
sre-021
p18, first para
Tying in to Amy-1, this should be Apache HTTP and not HTTPD.
sre-022
p18, High Availability Java Message Service
The Sun Java System Message Queue should be the GlassFish Message Queue.  I'd also wonder whether "is tightly integrated" is the best wording given that GF MQ is now only available as part of the GlassFish Server.  Maybe be simplest to have "is provided with the GlassFish Server".
sre-023
p19, MQ Clustering
MQ Enterprise Edition should just be GlassFish Message Queue.
sre-024
p19, More Information, first bullet point.
No node agents in GF 3.1.  As a general comment will the "Open Source" be removed from the document title and any references to differentiate between the branded/fully supported version of the product and the open source edition?
sre-025
p20, penultimate para
The first sentence is:
"In-memory replication on other servers provides lightweight storage of session state data without the need to obtain a separate database, such as HADB."
Two things wrong with this, the obvious one is that it mentions HADB.  The second is that even if you remove the HADB reference, the sentence implies that a database can be used in place of in-memory replication.  As a result I suspect the complete sentence can be truncated to just:
"In-memory replication on other servers provides lightweight storage of session state data across a GlassFish cluster."
sre-026 p21-22, Sun Cluster references.
Is there even going to be a Sun Cluster Data Service for GlassFish 3.1?  If there is will it be tested?  The Sun Cluster docs assumed certainly capabilities in the SJS AS 9.x/2.x with network interface binding that simply weren't capable of working in a Sun Cluster environment (Admin Service JMX/RMI port couldn't be bound to a failover network interface).  May want to check with product management about support for Sun Cluster.

SJS Application Server would need changing, and the reference to node agents removing.  The docs.sun.com address needs to be changed to the oracle documentation url.  Is the "Java ES" bundle still the valid way to install Sun Cluster software?
sre-27 p22, Recovering the DAS
GF 3.1 has the ability to schedule its own backups if the DAS is running, that should be referenced here.  Should we really have a reference to the AS 8.1 patch 4 install instructions for restoring the DAS from backup????
sre-28
p22, Recoving Node Agents
There are no node agents.  Could just refer to nodes and not node agents if there is still no commands that would back up a node and its instances on a machine.  If there are commands that deal with that, those would need documenting.
sre-29
p23, Recovering the HTTP Load Balancer
Just backing up the loadbalancer.xml may not be enough.  If the DAS certificate has been exported and imported into the Web Server certificate store then either its NSS files should also be backed up, or the administrator will have to re-export and re-import the DAS certificate.s
sre-030
p23, Recovering Message Queue
Given Message Queue will not be available standalone, and will be installed as part of the GF 3.1 installation, its unlikely that the MQ config will be under /var/imq, that's really only valid for the older package-based standalone MQ installations, that were part of the JES stack.  If a GF Cluster is not using a highly available MQ cluster, then the MQ data will be under each instance in the node directory, e.g. <gf-install-dir>/glassfish/nodes/<node-name>/<instance-name>/imq.  Hence a proper backup of the nodes/instances should also provide a backup of the MQ data.
sre-031
p23, Using Netbackup
Veritas were bought by Symantec in 2005, therefore I have to infer this section of the document is at least 5-6 years old, if not older.  The product is now Symantec Netbackup.  Do we know if the information in this section is still accurate at all? 

May be worth checking with Product Management and consider removing this information - not sure we should be advising on the best way to use a 3rd party backup solution, especially if it is one flagged with "This procedure has not been tested by Sun QA"

The section that continues over to p24 also refers to HADB, which shouldn't be mentioned.
sre-032 p25, Recreating the DAS, point 1a
There is no -console mode for the installer in GF 3.1
sre-033
p25, point 3
Don't believe restore-domain has a --clienthostname option in GF 3.1.  Procedure may need to use the asadmin update-admin-server-local-coordinates command.
sre-034
p25, point 4
Don't believe there is a generated/tmp directory with GF 3.1

Suspect I'm starting to tread over ground that has been made available as separate self-contained reviews (I may have done so with the above comments, but its not something I recall seeing before).

Posted by tecknobabble at Feb 08, 2011 07:10