jeudi oct. 28, 2010

GlassFish 3.1 Milestone 6 is out !

As part of my various Java EE 6 and GlassFish presentations, I was in Luxemburg last week visiting the YaJUG. The other speaker having declined a few weeks before the event, I ended up doing a two part presentation, the second one focused on GlassFish (slides). I think both went well but I'll confess that I received the same feedback from three different attendees - GlassFish 3.x needs to have clustering before it is seriously considered as a strategic runtime for their company (lots of banks in Luxemburg).

I honestly didn't think that lacking clustering in 3.0.x was such a big issue for the following reasons:
• Java EE 6 and modularization (HK2/OSGi) were more important
• people are still building Java EE 6 applications
• GlassFish 2.1.1 provides state of the art clustering today for Java EE 5 applications
• GlassFish 3.1 (which has Clustering as its main theme) will follow the 3.0.1 release by less than a year to provide a second-generation Java EE 6 product with centralized admin, load-balancing, and HA.

Now, perception is more important than my personal take on this so, here's where GlassFish 3.1 stands :
• it is feature-complete and Milestone 6 was released just today, so try that build out : Full distro (79MB), Web Profile (51MB)
• Shreedhar discussed some of the HA improvements (see this post on TheAquarium)
FishCAT is back!

Get the full schedule from the GlassFish Wiki.

mercredi juin 30, 2010

GlassFish 3.1 - Milestone 2 is out (more screencasts)

This blog has moved to
Follow the link for the most up-to-date version of this blog entry.

The pace is good - Milestone 2 of GlassFish Open Source Edition (see roadmap) 3.1 is out (check out TheAquarium post).
Engineering details are here and you can get the bits from (glassfish-3.1-b06.\* )

Trying to keep up with producing screencasts to illustrate the new features, here are two more demos :
a/ more clustering features such as ssh-based centralized admin and deployment.
b/ websockets supports, courtesy of the underlying grizzly engine.

You can read more about these clustering features here (including how to set up ssh) and in Carla's blog.

The above demo is scripted here, and based on Grizzly 1.9.19.

You'll find more information about the future developments of 3.1 on the GlassFish Wiki.
The next milestone is currently scheduled for in about three weeks and most P1 should be integrated.

jeudi mars 25, 2010

GlassFish Roadmap slides posted

There's been some FUD around GlassFish since the Oracle acquisition closed in January (and in fact even before) and it was hard for the team to dispel it until now. The GlassFish Roadmap Community Update slides used during today's live presentation are now available.

In a nutshell, the v3.1 release will offer centralized admin, clustering and Coherence support in 2010. As the Open Source community is concerned nothing changes (license, contributions, governance). More details in the slides and in an upcoming FAQ.

All in all, excellent news if you ask me.

dimanche nov. 23, 2008

Le clustering dans GlassFish (v2)

Baptiste me demande ou est passé le cluster "fantastique" (envolée du dimanche soir? :) dans GlassFish v3 Prelude? En réalité, cela fait partie des fonctionnalités qui ne sont pas encore intégrées dans cette nouvelle version de GlassFish et qui justifient de rester sur GlassFish v2 (si on exclu mod_jk, bien présent lui dans v3). L'ensemble des différences est résumé dans ce tableau comparatif.

Ce commentaire me donne l'occasion de mentionner le document récent de mon collègue Satya qui résume (et simplifie quelque peu) la mise en oeuvre du clustering dans GlassFish v2. Les retours habituels des utilisateurs: simple et administrable. A noter qu'il reste des choix à faire pour définir la topologie de déploiement la plus appropriée. C'est le sujet du récent "White Paper": "GlassFish HA Reference Config Guide" (enregistrement gratuit mais nécessaire).

mardi nov. 06, 2007

GlassFish/SJS AS in production - which bundle, which profile, ...?

You may have heard it before, GlassFish v2 is a single bundle (no more "Editions"). So why bother writing a post about this? Well, the reality is a little more complex.

First you need to choose between the GlassFish v2 bits (simple ANT-based installer) from and the SJS Application Server 9.1 (more polished installer). Both end up installing the same JARs (see this FAQ entry for more on the differences between the two approaches). As explained in this previous post, you should be using SJS Application Server 9.1 bits for patches to be applicable.

Profiles in GlassFish v2 are "developer", "cluster", and "enterprise". The difference between the first two is pretty much self explanatory. The "enterprise" profile is mainly related to the use of HADB (highly available and distributed database) and a different keystore. Note that HADB is not open source (more on its relevance later). Here are the other main differences:

You can have any profile in production, including "developer". In that case, you should probably tune GlassFish (default tuning is done for developers) and certainly remove the fast startup:

The GlassFish bits provide support for the "developer" and "cluster" profiles. Chose between the two at install-time (setup.xml or setup-cluster.xml) or upgrade using the "Add clustering" web admin action to a "developer" instance. There is no "entreprise" support in GlassFish bits.

The SJS Application Server 9.1 bundles provide the choice between Application Server 9.1 and Application Server 9.1 with HADB. The first one is roughly the equivalent of the glassfish bits from (with no setup.xml, use asadmin create-domain instead). The second one contains HADB.

The difference between "cluster" and "enterprise" really boils down to the technology used for replicating data to provide high availability. The first one uses in-memory replication based on the Shoal framework while the second one uses HADB. This is a trade-off between degradation and availability:
• "cluster" is providing availability (not sure how many 9's, but that's clearly less than 5) with a very reasonable performance degradation (depending on your session size and application obviously).
• "enterprise" is 99.999% available, but performance can be less than half what it is without any data replication.

The other important thing to note here is that the "cluster" profile is very easy to setup while "enterprise" does require installing and administering HADB nodes.

Once you have either "cluster" or "enterprise" profiles in place, you simply need to :
•  Deploy your application with availability-enabled=true
•  Make sure the application is deployed with the <distributable/> element in web.xml

One question I often get is "What if I want clustering and load-balancing, but no data replication"? This can be achieved by using the "cluster" profile and deploying without the above two steps. In that case, load-balancing can still happen (using GlassFish's software load-balancer) or any external one with a sticky behavior - sessions live on only one instance and users are always redirected to this instance. If the instance fails, all associated sessions are lost. A great deal of applications can live with that.

If you'd like to hear more about clustering with GlassFish, the freshly released episode #003 of the GlassFish Podcast is an interview with Shreedhar Ganapathy.

vendredi févr. 02, 2007

Flexible GlassFish domain creation using --portbase

This blog has moved to
Follow the link for the most up-to-date version of this blog entry.

Marseille PortOne nice thing about GlassFish is the notion of a domain. A single installation can have multiple domains, each being created with the asadmin create-domain command. I use that a lot to separate clients and servers when using web services for instance. If you're not using Solaris Containers/Zones which have their own set of ports, you have to have different port settings for each domain. Default ports for GlassFish are as follows:
    4848 for Admin
for HTTP Instance
for JMS
for IIOP
When creating a new domain, I usually always start the other domains I'd like to see running at the same time and specify new Admin and HTTP Instance ports. The reason for starting first other domains is to make sure the new domain with not be created with any ports already in use (exact ports used are shown during domain creation).

The other option I recently found out about is --portbase. This allows you to provide a base port and have other ports defined as offsets.
Taken straight from the asadmin create-domain --help output:
       Determines the number with which the  port  assignment
       should  start. A domain uses a certain number of ports
       that are  statically  assigned.   The  portbase  value
       determines  where  the assignment should start. Choose
       this value judiciously. The values for the  ports  are
       calculated as follows: Admin port: portbase + 48, HTTP
       listener port: portbase  +  80,  IIOP  listener  port:
       portbase + 37, JMX port: portbase + 86. See the output
       of this command for a complete list of occupied ports,
       when --portbase option is specified.


      The --portbase  option  cannot  be  used  with  the  --
      adminport or the --instanceport option.

Also note that when it comes to ports, GlassFish now also has this optionnal feature of unifying ports as described here.


This blog has moved

Alexis Moussine-Pouchkine's Weblog

GlassFish - Stay Connected


« avril 2014

No bookmarks in folder


No bookmarks in folder