Tuesday Apr 03, 2012

Tuning GlassFish for Production

The GlassFish distribution is optimized for developers and need simple deployment and server configuration changes to provide the performance typically required for production usage. The formal Performance Tuning Guide provides an explanation of capacity planning and tuning tips for application, GlassFish, JVM, and the operating system.


The GlassFish Server Control (only with the commercial edition) also comes with Performance Tuner that optimizes the runtime for optimal throughput and scalability.

And then there are multiple blogs that provide more insights as well:

Optimizing GlassFish for Production (Diego Silva, Mar 2012)
GlassFish Production Tuning (Vegard Skjefstad, Nov 2011)
GlassFish in Production (Sunny Saxena, Jul 2011)
Putting GlassFish v3 in Production: Essential Surviving Guide (JeanFrancois, Nov 2009)
A GlassFish Tuning Primer (Scott Oaks, Dec 2007)

What is your favorite source for GlassFish Performance Tuning ?

Sunday Apr 03, 2011

Get social and healthy with GlassFish

Two new stories have been published this week and both of them use GlassFish 3.1 in production. If you haven't seen them before, "Stories" is a blog with production use of GlassFish by small, medium, and large users with user questionnaires describing their experience with the rest of the community.

The first story is PointDebate, a "social network company that stir up, engage and give voice to most diverse opinions". They've been following pretty closely all the recent updates of GlassFish and now run the latest 3.1 version (only a month after it was released). They application is built using Java EE 6 and JSF in particular with RichFaces. The full architecture includes MySQL as well as EHCache and uses JMS to "decouple operations" (an somewhat underutilized architectural pattern if you ask me).


The second story, TinyHabits, an online service "to maintain a healthy lifestyle despite leading a busy life that leaves very little time to incorporate healthy habits" is yet another Java EE 6 application with GlassFish as a platform chosen for its simplicity and robust administration and monitoring. This service also just moved to the latest and greatest version 3.1 (from 3.0.1), also uses JSF 2.0 (with PrimeFaces this time), uses both PostgreSQL and MongoDB and runs production on Amazon EC2. Check it out.

Thursday Feb 24, 2011

Story : Probendi geo-referencing emergencies with GlassFish

Probendi is the latest of our "GlassFish in production" stories. This ISV has deployed a good number of copies of its Critical Governance™ software powered by GlassFish 3.0.1 to track all sorts of emergencies in real time.


The core software is built using Java EE 6 with key mobile extensions. To find out more about this story, check out this entry and the associated detailed questionnaire.

Wednesday Jan 19, 2011

Mollom.com is now GlassFish-powered

Mollom logo

Drupal creator and leader Dries Buytaert announced last month that Mollom was betting the farm on GlassFish (well, its backend at least). Mollom is a popular web service which helps websites keep spam and other unwanted content such as website spam and profanity off of their web site. I know of a few sites myself that could use some help...

Dries and lodgON's Johan Vos, the architect being the move to GlassFish, were nice enough to share more details on the motivations, challenges and results in this adoption story as well as in this new episode of the GlassFish Podcast (#72). Update: Johan now has a post up on his experience moving to Java EE 6 and GlassFish 3.0.1.

This Java EE 6 application has been running in production for several months now and shows impressive results.
Update : you can now read even more about the specifics of this architecture in this article published on HighScalability.com.
Update 2: mollom.com now has a blog post with the background for this project, the GlassFish choice and some forward-looking statements.

Friday May 28, 2010

GlassFish 3 in the EC2 Cloud powering Dutch and Belgian community polls

Deployment topology

Some people like bleeding edge technology and take full advantage of its most recent features. This is the case of community member Johan Vos, a long time GlassFish user and contributor, who has deployed in production an early version of GlassFish 3.0.1 (see roadmap). Now, this is not any production deployment, but rather three different traffic-heavy web sites for people to find which of the candidates to the Dutch and Belgian parliament elections is their "closest match". Johan has all the details in this post.

One very interesting part is the fact that the infrastructure is Amazon's Elastic Cloud Computing (EC2) environment because of the dynamic provisioning (elasticity) required by such an online service. Requests are handled directly by the grizzly layer of GlassFish with no extra front-end HTTP layer and shows great performance and scalability. The application itself is fully built using Java EE 6 and Johan discusses the EJB and JAX-RS architectural choices implemented in the application as well as HTTP listener and thread pool configurations, claiming that "(GlassFish offers) flexible and transparent tuning".

This is a follow-up to this earlier GlassFish deployment story. Johan works for LodgON, the makers of the Dali suite of products. Check out also Episode #37 of the GlassFish Podcast, an interview with Johan about Java EE and GlassFish from last December.

Added - The updated post at Stories is here.

Friday Feb 20, 2009

Setting up GlassFish for production on OpenSolaris


Installing GlassFish for developing is fairly easy and you are even given multiple options (simple JAR installer, Sun installer, IzPack-based installer, and now zip-based for v3). Installing GlassFish for production certainly needs a bit more care.

Brian Leonard over at the OpenSolaris "Observatory" blog has a recent entry on how to setup GlassFish for production use in a cluster profile. It covers installation from the update center, user setup, domain directory, and SMF service creation.

Also don't forget to read the GlassFish "Installation Guide" and "Deployment Planning Guide" from the standard documentation set.

Saturday Feb 14, 2009

More GlassFish Adoption Stories: SFR, T-Mobile USA, Medavie Blue Cross, Pretium Telecom


We just pushed out four new GlassFish Adoption Stories. Three of the stories are from telcos (from the US, the Netherlands and France), the remaining one is a health care company from Canada:

SFR - Developer APIs, GlassFish-powered - Telco in France.
T-Mobile, High Availability and GlassFish - Telco in the USA.
Medavie Blue Cross - Standards Eliminating Vendor Lock-In - Health Care in Canada.
Pretium Telecom - GlassFish ESB in Telco - Telco in The Netherlands.

Saturday Sep 27, 2008

Jersey - Reference Implementation AND Production Ready

When we started GlassFish we used to hear "It's just a Reference Implementation!" so often that I wrote a note on that in June 2006. I think we have made progress since then but I just read Solomon's note on Evaluting JAX-RS Implementations and it has the same misconception, so, here is a reminder...


"A long time ago in a galaxy far, far away", Sun had a group (the "church") doing proof-of-concept References Implementations and Specifications, and another (the "state") doing the commercial products based on those specifications. But those days are long gone and we now have a single team building a single (Open Source) implementation.

A Reference Implementation is just an attribute (defined by the JCP), and so is Enteprise Quality (defined by the market), so it is quite possible for an implementation to be both. Like a movie that is in the Top 20 by Revenue and in the Top 20 by AFI... like Star Wars Episode IV: A New Hope.

So, back to Solomon's questions ([1], [2]) - we are building Jersey to be both the Reference Implementation of JAX-RS and the component we will use in GF and several other artifacts. So, go use Jersey, and May the force be with you!

Friday Nov 30, 2007

GlassFish v2 production story - Karlovy Vary International Airport

OK Air logo

With GlassFish v2 having been out for a couple of months now, a great deal of deployments are happening now. We are highlighting some of these on the Stories blog. This time, it's an entire Java EE 5 Airport Information System (AIS) deployed in production with GlassFish v2. Read about it here.

Among the interesting things in this deployment is the use of almost all the GlassFish features, MySQL and Firebird as the databases, SuSE Linux as the deployment platform, and more. Read about all the details in the detailed questionnaire.

Tuesday Nov 27, 2007

N1SPS Application Server Plugin article

N1SPS screenshot

We've previously covered N1 SPS (Service Provisioning System). This new article goes into much greater details about how such a solution and specifically its application server plug-in can help in your larger-scale multi-tier deployment scenarios.

The article specifically goes into what a master server and a remote agent are, how a local distributor can help optimize network and firewall communications, how the concept of a component maps to a GlassFish domain or cluster, and how a plan is really a set of instructions requiring a set of variables to be executed. Running a plan can be done as "preflight only" or for real "deployment".

You'll learn how N1 SPS can provision existing installations of GlassFish v2 or carry out entire installations and deployments of SJS Application Server 9.1. This product is really meant for the provisioning of multi-tier deployments. For instance, it lets you install the load-balancing plug-in in the web server tier or manage HADB installation and node management.

Monday Jun 04, 2007

Latest GlassFish production "Story" - Auchan

Auchan Logo

In the latest addition to Stories Architect Guillaume Bilodeau shares his experience selecting and later transitioning to GlassFish for the Russian subsidiary of Auchan, one of the biggest retailers in the world (Map, Finances).

In the story and in the questionare Guillaume explains how and why they chose GlassFish over JBoss and others, how they moved existing code to the newer platform from Oracle's application server, what frameworks they use, and finally how the project went from some skepticism over the product choice to happy GlassFish customers.

Stay tuned - we expect more adoption stories in the near future as GlassFish V2's goes final with out-of-the-box enterprise features like custering.

Monday Mar 05, 2007

... GlassFish Doesn't Count ...

Stories Logo

A recent thread at TSS discussed that BEA had certified WLS 10 Technology Preview against the Java EE 5 CTS. That's great news for platform adoption but I'll admit I was unhappy when I read a comment in that same thread that said:

GlassFish doesn't count since the public opinion is to avoid using Sun software except for the JDK...

I find the comment specially grating as BEA is Using GlassFish's Java EE 5 WS Stack in WLS 10. And Sun is using it in Sun's JDK6! And there are more adopters; a non-exhaustive list for JAX-WS includes BEA, Tmax Soft's JEUS 6, Sun's JDK, and more (adoption). The list for JAXB is longer, also including JBoss, Geronimo, Celtix, XFire... (adoption)

I believe GlassFish's Web Services layer is the best in the market; but obviously we need to (continue to?) improve our communication story :-(

Oh well; we will get there eventually - all the annecdotal indicators I see point to strong adoption.

Tuesday Jun 13, 2006

Reference Implementations and Production Implementations

JCP Logo

Too many people still believe that a JCP Reference Implementation is always just a "Proof of Concept". Although some are, there are many that are fully production-quality, and, in particular, the Reference Implementation for Java EE has been production quality at least since SJS AS 8.x, so please help us spread the word.

I wrote a blog at Java.Net expanding on the relationship between Reference Implementations and Production Implementations. You may also want to check out our earlier 20 Things You Should Know about Project GlassFish.