The End of Commercial Java EE 5 Appservers?

Just few years ago, opensource application servers were only an interesting alternative to the commercial products. The commercial products were easier to administer and maintain. Especially the graphical administration capabilities, good documentation, reference manual and easier installation were the differentiation points. In the early days of the opensource appservers the documentation wasn't sufficient. Although e.g. JBoss 2/3 functional capabilities were somehow comparable with commercial ones - there was a huge quality difference.

However the landscape changed very much. Nowadays the JBoss documentation and knowlege base is really extensive. For the glassfish application server the online documentation is already available from the graphical admin console. It can be downloaded as PDF as well. Even the command line tool is documented (just start asadmin and type in "help"). The Geronimo appserver comes also with good documentation and graphical administration console.

The monitoring capabilities of opensource appservers are also are remarkable. JBoss and Glassfish provide runtime statistics - glassfish even call flow - a sequence chart comparable visualization of EJBs / Servlets. The opensource appservers are even able to outperform the commercial ones (e.g. Glassfish won shortly a performance and scalability benchmark).

An interesting aspect is the installation. The installation of JBoss is really simple - just extract and start. Glassfish needs the execution of an ant-task after the extraction - but it is still fast (less than 3 minutes). The installation of commercial appservers is not always so simple. Sometimes a bunch of DVDs is needed :-).

In my opinion the quality (not amount) of documentation as well as usability decreased in the commercial space significantly. Commercial application servers often come with overbloated and often unneeded features. Although they still have a nice looking graphical UI - it is not always better usable and more intuitive than e.g. a Glassfish or Geronimo one. Ofter the "philosophy" of a particular vendor has to be understood first. Try e.g. to setup a JMS Queue with Glassfish, Geronimo, JBoss and then with one of the commercial ones. Compare the needed mouse clicks afterwards :-). Documentation of the commercial appservers comes with more "Hello World" examples, but in general it is not very helpful in more serious problems and sophisticiated applications. Problems in opensource space can be often solved indirectly - e.g. most of the developers of the commercial appservers blog about they work and participate in forums.

The decision to a commercial appserver is often the quality of commercial support. However, my impression here, the commercial support often operates in "Inversion Of Control" mode. So you have first to provide the isolated sample app with reproduction code, unit tests and even documentation, before the support actually kicks in. It can take even weeks, until a problem is recognized (not solved!) as such.

Commercial support for OpenSource products is available as well. However the chances are much higher, that you will get a high skilled engineer (if not the committer), and not only someone from a offshore call center. Most of the problems can be even solved using the internet resources. E.g. I sent last week a problem description (without isolated reproduction code) for TopLink Essentials case to the mailing list and got a feedback in few hours. However the quality of the feedback is highly dependent on the question - answer like RTFM is possible as well. The feedback of a commercial support is more honest in general :-).

It seems like opensource application servers are the best choice for "mainstream" Java EE 5 applications. However, we (the developers), can only in few cases make such decisions -> the reason is: we do not like to play golf and so influence the golf-course decisions :-)


I partially agree with you, it is true that Commercial JavaEE container are not necessarily that exciting compare to OpenSource one.
but in the same time don't you have the feeling that companies that are buying commercial "application servers" are not only buying a J2EE/JavaEE container, but all the services that are with it? (security, caching, SOA "components"...)

I have been working for Oracle for many years, now I am in a consulting firm, and customer that I am working with, big bank, insurance are still using commercial application server for their critical applications. (and sometimes using open source for some internal sites, eg internal wikis, or portal sites that in this case are not critical)

Posted by Tugdual Grall on October 22, 2007 at 11:38 PM CEST #

Hi Tugdual,

if the customer is using commercial application servers because of it added value, and not just as a plain Java EE platform is absolutely o.k. However even in this area the opensource space is catching up. The JBoss JBPM, as well as the openESB products are really great. For both engines even graphical designers are available,

thank you for your comment!,


Posted by Adam Bien on October 23, 2007 at 10:00 PM CEST #

Hi Tugdual - GlassFish has all the features you are describing and is Open Source. Sun distributes it under the Sun Java System brand and provides (very competitive) support. And we have several banks and insurance companies running on it. - eduard/o

Posted by Eduardo Pelegri-Llopart on November 02, 2007 at 04:03 PM CET #

Professional Carpet Cleaning

Posted by Timothy K on November 20, 2009 at 11:59 PM CET #

Post a Comment:
  • HTML Syntax: NOT allowed
...the last 150 posts
...the last 10 comments