Tuesday Mar 17, 2015

Java EE Container Lifecycle

Java EE defines different component/container models with their own well-defined lifecycle.  Understanding the lifecycle of those different component/container might sometime be useful. Having some visibility on component lifecycle is also useful with applications that use different types of components (e.g. Servlet and EJB) and needless to stay that this is the most common uses case. Finally, it is not just about visibility. Having the ability to also trigger certain actions based on the state of a particular component/container is also sometime required (e.g. perform some specific initialisation).

So when it comes to monitoring and managing Java EE applications, Application Servers tends to provide some custom hooks to achieve that, i.e. observe internal state (e.g. state of a particular container) and trigger management actions based on events such as a state change. Obviously, this is Application Server dependent. For example, GlassFish has Life Cycle Modules/Listeners while WebLogic has, amongst different options, WLDF Watches. So overall, this type of capability (and theirs implantations) varies greatly and is Application Server dependent.

But some of the Java EE Java APIs also provide hooks that can be used to determine in which state an actual component/container is. In terms of granularity, this approach might be a bit more limited but it has the advantage of being Application Server agnostic since it is based on standardised APIs. I recently came across 2 articles that are discussing that particular topic:

On a related matter, the discussions over the upcoming 'Java EE Management API 2.0' (JSR 373) will also be interesting to track.

Wednesday Dec 04, 2013

Java Mission Control with Marcus and Markus

"You can observe a lot by just watching." (Yogi Berra

Java Mission Control (JMC) is a JVM production time profiling and diagnostics suite of tools. The suite includes tools to observe, manage, profile, and eliminate memory leaks in Java applications and due to its very low overhead, JMC is particularly fitted to detect performance issues in applications running in production. 

JMC is based on runtime performance analyzing capabilities that were originally only available in JRockit. It is the fruit of the work Oracle has done over the last years to convergence its 2 JVMs (HotSpot and JRockit) into a single one. Starting with the 7u40 release, JMC is available in the regular HotSpot distribution. It is a commercial feature that can be used freely in development as per the standard Oracle Binary Code License (BCL).

Marcus Hirt (@hirt) of the Java Mission Control team wrote a nice introduction on Java Mission Control. Markus Eisele (@myfear) wrote another post showing how to quickly configure JMC and JFR with GlassFish 4.

Tuesday Jun 19, 2012

LightView: JavaFX 2 real-time visualizer for GlassFish

Adam Bien launched LightFish, a light-weight monitoring and visualization application for GlassFish. It comes with a introduction and a screencast to get you started.

The tool provides monitoring information about threads and memory (such as heap size, thread count, peak thread count), transactions (commits and rollbacks), HTTP sessions, JDBC sessions, and even "paranormal activity".


In a recently released first part of a tri-part article series at OTN, Adam explains how REST services can be exposed as bindable set of properties for JavaFX. The article titled "Enterprise side of JavaFX" shows how a practical combination of REST and JavaFX together.

It explains how read-only and dynamic properties can be created. The fine-grained binding model allows clear separation of the view, presentation, and business logic.

Read the first part here.

Saturday Dec 12, 2009

GlassFish v3 Resources and Links - Part 1

This is one of a series of resources and links related to the new GlassFish v3 release. Each entry starts with a section with key links; the resources are then grouped into categories.


Key links
  • Sun Press Releases: Java EE 6 and GlassFish v3
  • JavaEE 6 Web Hub, and JavaEE 6 Downloads
  • Sun GlassFish v3 Product Page

  • See you at Virtual Conference on Dec 15th, and in one of our Community Parties.

Real-Time News
  • Follow GlassFish at Twitter via @glassfish and #glassfish.


Overviews, Appreciation, Analysis

Non-English Posts

Technical Posts (Formatting needs some improvements)

JeanFrancois Putting GlassFish v3 in Production: Essential Surviving Guide
Scott First Look at v3 Performance
Judy GlassFish v3 FishCAT Survey Results
Judy Meet the FishCAT Team
Judy FishCAT Testing for v3.
Prashanth Making your Application monitorable in GlassFish V3
Prashanth Adhoc Monitoring with Scripting-Client in GlassFish v3
Prashanth Advanced Monitoring in GlassFish v3
Prashanth Top Ten features of Monitoring
Byron Mort Learns How To Use Monitoring in a WebApp
Sreeni Monitoring in GlassFih v3 - It's Different and Cool!
Sreeni How to use GlassFish v3 DTrace probes on Solaris
Jen Easy 1-2-3 Monitoring in v3
Jen v3 Monitoring with Admin Console
Lloyd 'mx' - JMX command line especially for GlassFish V3
Lloyd Navigating the GlassFish V3 MBean hierarchy using 'mx' command line
Lloyd GlassFish V3 management and monitoring MBeans, 'mx'
John Enterprise Manager DTrace Monitoring 3.0 Beta (tweet, download)
Anissa Ten New Features in Admin Console
Anissa trivia quizz
Anissa Launching Admin Console for GlassFish v3 RI
Anissa Launching Admin Console for GlassFish v3 RI
Ken P The AJAX Experiment(s) with improving the Admin Console.
Rajeshwar GF REST Interface for Management
Ken S Final EJB 3.1 Specification and GlassFish v3 Now Available
Rajiv Servlet 3.0 specification and GlassFish v3 now available
Ron Java EE 6 and Servlet 3.0 Converge on Container Security Functionality
Binod V3, Java EE 6 and SIP Servlets
SOAP and REST Web Services
Paul GlassFish v3 is a Go - includes
Fabian Runtime Configuration Management
Kumar Summary of Proprietary Features in SAAJ RI 1.3.4
Jagadish Java EE Connector Architecture 1.6 Reference Implementation
Sivakumar Java EE Connector Architecture 1.6 Specification approved!
Alexis Interview of Roberto Chinnici (podcast)
Alexis Interview of Ludo Champenois
Alexis JSF 2.0 discussion with Ed Burns and Roger Kitain (podcast)
Dynamic Languages
Vivek New GF Gem Features (tweet, History.txt@RubyForge).
Eileen JRuby Performance on Glassfish V3 -- Part 1
Sreeni Java EE 6 Samples for GlassFish Project
Tim App Client Container features in GlassFish v3
Shalini JDBC in GlassFish v3
Hong Glassfish v3 and deployment

Wednesday Dec 09, 2009

GlassFish v3 is Now Available!

Note I have split the resources and news links off from this GlassFish v3 Announcement into the first of one of a series of resources and links entries. The new arrangement is more manageable and also simplifies the creation of additional entries as more resources and news are posted on the release.

It has been 4 and a half years since we announced GlassFish during JavaOne 2005 (PR) and today we are making available our most important release: GlassFish v3 is now available for download!

Our first release was during JavaOne 2006, we released GlassFish v1, the first Java EE 5 compliant App Server (family overview) and the second generation of GlassFish came out in September 2007 (family overview). While still based on JavaEE 5, GFv2 leveraged on Sun's (too) long history of App Servers to add the benefits of an enterprise product (quality, performance, scalability) to those of an open source community (agility, ease of use, supportive teams, pricing).

While the transition between GlassFish v1 and v2 was evolutionary, the transition from v2 to v3 is a major change that includes a whole new set of JCP specifications, JavaEE 6, and a new modular, OSGi-based, architecture that expands significantly the applicability of GlassFish.


Key links available now:

• GlassFish v3 Main Product Page
JavaEE 6 Hub
• JavaEE 6 Downloads (multiple bundles)
Java EE 6 Feature Article (also see Overview White Paper).

We are hosting several events in the next few days; we hope to see many of you at our Virtual Conference on Dec 15th, and in one of our Community Parties.

Below are lists of posts relevant to the launch and the release; they will be updated through the day to incorporate news as they happen. Updates will also be posted to @glassfish at Twitter. If you use Twitter we recommend you to use #glassfish to facilitate discovery. Some level of geotagging would help visualize the spread of the community.


Saturday Sep 26, 2009

Towards GlassFish v3 fcs - Monitoring and New Enterprise Manager Features


One of the areas that has been improved significantly in GlassFish v3 is monitoring - see Prashanth's Functionality Overview. Most of the functionality is in the core product but some added value features will be part of the next version of the GlassFish Enterprise Manager available through Sun's commercial Sun GlassFish Portfolio.

Two recent posts by Sreeni explain how to use the new functionality to Enable/disable monitoring and attach Btrace-agent and to Create pluggable container-monitoring elements. The new monitoring functionality can also be used with JRuby, as Arun describes in How to monitor a Rails app using asadmin, JavaScript, jConsole, REST.

We are all looking forward towards GlassFish v3 FCS!

Wednesday Aug 26, 2009

GlassFish v3 Monitoring - DTrace, REST and More...


Prashanth has written a detailed description of the new monitoring framework in GlassFish v3, which includes descriptions of the basic concepts of probes, probe provider and probe listeners.

Probe providers include both class-based and XML-based providers, where the framework will automagically create a provider without requiring modifications to the existing code. Probe listeners are called from the providers to produce the desired information; for example statistics are generated by StatsProviders.

Prashanth's note also describes how to expose the probes to DTrace and to a OS-agnostic scripting client, and how this is used by different clients, including: JMX/AMX, REST, the Admin console and asadmin. Overall, a great overview - check it out.

PS. I was on vacation last week, just catching up now and I missed announcing the JavaEE 6 and GF v3 webinar from this morning; from what John told me and what I read in the Twitter posts, it was very successful: more than 4K subscribed, and over 1200 attended.

Friday Aug 07, 2009

Using REST Interface to Configure GFv3


Rajeshwar has written a short description on how to use the GlassFish v3 REST Interface to Configure GlassFish; this complements his previous entry REST and Monitoring and, like that one, it also has examples using a Jersey-based client - included in the post.

Related entries are tagged REST+GlassFish+v3.

PS. Picture at left shows the anterior eyes of a Jumping Spider.

Friday Jul 17, 2009

Monitoring GlassFish v3 using its REST Interface


GlassFish v3 has a REST/HTTP interface that is implemented using Jersey. The interface is used by the GUI admin console but can also be used by other clients; for example, the data can be exported as JSON, XML or HTML and the REST + JSON combination makes JavaScript clients very easy to write.

Check out Rajeshwar's recent writeup to learn how to Use the REST interface Monitoring.

Wednesday Apr 29, 2009

WebSpace Server Monitoring and Performance

WebSpace Server Homepage

Rajesh and team are hard at work plugging in more JMX monitoring features in WebSpace Server and Liferay (see the detailed proposal). This will give administrators a nice overview of performance metrics, fault diagnostics, and in general keeping WebSpace running smoothly. Speaking of performance, Srikanth has also written up an integration of WebSpace Server with Apache Solr, which is recommended for use with GlassFish clusters. The WebSpace Wiki is a great source of material like this for developers and administrators.

Tuesday Sep 16, 2008

Rails Monitoring on GlassFish via New Relic


RailsInside reports on New Relic "lite", a new free version of New Relic RPM that provides Rails monitoring. The product provides information on throughput, response time as load increases and per-controller action time information.

New Relic also has a fully-featured version (watch the Product Tour); and both versions are Supported for GlassFish Server!

Arun says he is going to a deeper review of this and another product very soon; stay tuned.

Tuesday Jul 15, 2008

Tracing DB Operations in GlassFish Using P6Spy


Jagadish shows how to use P6Spy to trace DataBase operations in the GlassFish Server with the intention of detecting performance bottlenecks. The note starts with downloading and configuring P6Spy, and shows how to use it in a simple CMP project.

Full details in Jagadish's writeup. And thanks to Gopal for the tip.

Saturday Jul 12, 2008

Running VisualVM on MacOS X


I wrote about VisualVM yesterday (entry) but I had missed Octavian's Introduction where he gives instructions on how to use VisualVM on MacOS X.

As a reminder, to run the VisualVM client you need a recent JVM, so you will need to use the latest JVM from Apple, but the app can run in a variety of JVMs, remote or local to VisualVM. VisualVM can even save the data into a snapshot and process it offline.

Check Octavian's Note for details.

Friday May 23, 2008

Monitor the Memory Consumption of your GlassFish Server

Poster for Little Shop of Horrors

Meena has posted a quick note on how to turn on GC logging on both the Cluster and the DAS instances of the GlassFish Server; check out her note on Monitoring Memory Growth in GlassFish.

I need to catch up on the whole VisualVM effort; perhaps we should invite them for the new TheAquarium TV series.

Monday Feb 11, 2008

Welcoming WiseMan to the GlassFish community

Personification of wisdom statue

WiseMan, the WS-Management Java implementation has now become a part of Metro (the GlassFish Web Services stack) community. WiseMan provides both client and server side APIs for building Manageable applications.

Jean-François Denise is reporting on the road traveled to provide the WS-Man implementation and make fit best into the existing Metro technology. The Web Services Connector for JMX builds on top of WiseMan to provide connection with WS-Man client tools such as Windows Remote Management much like OpenDMK is a window to the SNMP world.

"What's the relationship to GlassFish?" you may ask. Well, by deploying the Web Services Connector for JMX in GlassFish, all the existing MBeans (such as those defined by AMX, by JSR 77, and by you) are automatically exposed as WS-Management resources. Clearly, the key feature of WiseMan is interoperability.

For the Web Services savvy, Jean-François' entry is buzzword compliant and a very good read (WS-Addressing, Push mode, security, etc...). WiseMan's homepage is at wiseman.dev.java.net. Version 1.0 requires Java SE 5+ or above and JAX-WS 2.1.1.