|
|
|
|
|
|
Most GlassFish subprojects (Grizzly, Metro, Woodstock, HK2, Jersey, mq, Mojarra, ...) can be used independently from the application server. Project Shoal is no exception. This Group Management Service used by GlassFish clustering can also be applied to other use-cases. |
Community members Juan Pedro Danculovic and Diego Naya have a nice article over on java.net covering in a single place most of the Shoal features. It goes into the definition of all the basic terms such as Group, Member, Member Token, Spectator, Core, Group Management Service, Components, and Signals. The article also covers how to integrate your own code into the clustering infrastructure (not only for Java EE applications, but SE applications too). Given the artifact's size (JARs are less than 2MB), together with a stripped-down GlassFish v3, the possibilities become very interesting.
Previous Shoal resources include:
• Previous Shoal posts
• Other introductory Shoal article
• GlassFish podcast interview about GlassFish Clustering and Shoal
|
Linda has two new posts; one builds on her popular JMS 101 introduction; in the Follow-up Entry she expands the hello world example to use JNDI and administered objects. The second entry is more advanced and covers High Availability in JMS. Linda talks about brokers, clusters, and stores in the OpenMQ implementation and points to the future directions for the project. The OpenMQ team is always interested in your comments at USERS@mq; the binaries are included in GlassFish and separately at their Download Page. Enjoy! |
|
• How-Tos: Clustering |
|
When it comes to clustering in an application server, defining the vocabulary is the first thing that needs to be done. This new article does this and much more. It defines key concepts for GlassFish such as Domain Administration Server (DAS), Node Agents, server instances, discusses deployment topologies, and explains how the Shoal and JXTA technologies are used to set up the cluster and replicate data in-memory. It also provides instructions on how to get the GlassFish "Cluster" profile running. |
The second article explains how the application server can take advantage of the Zones technology built in Solaris 10 and OpenSolaris. It has a quick intro on what are Solaris zones and how they provide isolated environments for application instances. Propagation among zones can complicate installations and updates, so the article going into the details of installing and using the GlassFish application server in a global or a sparse zone. It also covers upgrading from previous versions of the software that may have come bundled with Solaris.
|
One of the key features in GlassFish v2 is clustering support. With greater power comes greater responsibility, so Prashanth has a detailed post on setting up and using the clustering, load-balancing and data replication features from the newly released GlassFish v2. Prashanth goes into the various options in terms of replication and load-balancing using either software (web servers) or hardware solutions. It also covers more advanced topics such as establishing a secure connection between the DAS (Domain Admin Server) and the web server. Shreedhar comments with interesting GMS/Shoal prerequisites like syncing machine clocks. |
Update: The clustering features briefly described here are meant to give readers a feel for how this all works and is not intended to replace the product documentation
• Sun Java System Application Server 9.1 High Availability Administration Guide
• Sun Java System Application Server 9.1 Deployment Planning Guide
• Sun Java System Application Server 9.1 HADB Commands Reference Manual.
|
A tip from
Shalini:
2 Machine Cluster Setup for GlassFish - CLI mode |
|
A recent USERS thread asked about Load Balancers and GlassFish; from there and with a couple of additions:
• Load Balancer Module Home Page
|
We are going to start an FAQ at the GlassFish Wiki for frequent questions like this; stay tuned.
On a different direction, one of Sailfin's improvements is integrated Load Balancer - see Milestone 1.
|
Shreedhar is beginning to document how Shoal works and has just written a Shoal 101. Shoal is the Group Management Service (GMS) used in GlassFish but it can also be used independently. The writeup includes a Sample Example that shows how to register for group events, join a pre-defined group, get notifications of group events, send/receive messages, and leave the group. |
|
|
Artima has a feature entry on Project Shoal which just reached 1.0 Early Access. Project Shoal is a Group Management System heavily used in GlassFish v2 but it can also be used in other contexts. The JXTA implementation used by default and which brings close-to-zero clustering configuration in GlassFish can also be replaced (by JGroups for instance) using the appropriate SPIs. |
One of the reasons for the GlassFish v2 delay was the time needed to make sure we could go through as many customer scenarios as possible, specifically in the clustering area. Shreedhar reports on the 8-node GlassFish clustering quality tests which led to improved quality of Shoal itself. This and future use of Shoal in SailFin (the SIP supported application server based on GlassFish with Ericsson as a major contributor) shows the greater GlassFish Community at work.
|
Alexis has put together a nice summary of the basic concepts needed to use GlassFish v2 in a cluster profile. These include the concepts of domain, cluster, DAS and NA, master password, upgrading profiles, difference between cluster and enterprise profiles and more. Check all of these at Alexis' blog. And here you can find the transcript to Young Frankenstein (the young master). |
|
JMX is the popular management and monitoring technology which has been integrated into Java SE starting with version 5. JDMK (Java Dynamic Management Kit) is a Sun product building on JMX to provide a distributed model with Federated MBean Servers, Agent Discovery, and SNMP support. This is a mature product that reached version 5.1 patch level 3 and it is now being open sourced under the name OpenDMK. Here's a good blog on all things JMX and OpenDMK. |
Sreeni reports how the open sourcing of JDMK impacts GlassFish. The clustering architecture of version 2 uses cascading of instance MBeans on to the DAS (Domain Admin Server) and JMX remote connectivity. The latest GlassFish v2 build now uses the OpenDMK bits instead of the JDMK jars. This is transparent to the user and probably the last step on the way to a full open source GlassFish application server.
|
Think that enterprise features like clustering, fail-over, and load-balancing are beyond the scope of an open source application server? Think again. GlassFish v2 implements them all, and Nazrul has put together a nice writeup of these new features in his blog. GlassFish v2 is currently in Beta, and we're getting pretty close to its production release target (September). So it's a great time to try these new features out for yourself. (And if you need even more motivation, don't forget that someone is going to win a great prize just for sharing their experiences in trying out GlassFish.) |
|
Kedar has a very good write-up on Clustering in GlassFish v2 that describes the basic use-case for a cluster profile and then shows how to upgrade to it from the usual developer profile. Kedar also has a two-parter screencast based on the writeup. The first part is only audio but the second part has the actual upgrade screens. |
|
GlassFish is moving farther in the deployment level, with GlassFish v2's support for clustering and other enterprise-level features. A recent example of this is described by Prashanth where, triggered by questions at the JavaOne pavillion, he describes how to use a hardware appliance (Big-IP from F5 Networks) for load balancing. Prashanth's writeup is very detailed and explains how to configure Big-IP and also includes links to relevant GlassFish documents. Check it out! |
|
Once upon a time... Open Source application servers had poor administration consoles, but GlassFish v2 has an excellent one; thanks to Anissa (on the right)! Anissa has started describing the Admin GUI; check these two blogs. The first came just before JavaOne and showed how to create a cluster on two machines (blog, screencast). In the second she describes a common scenario: upgrading from a development profile to a cluster profile (blog, screencast). |
Great job! Check it out!