Agents

Various agents are available for providing Jolokia services in different environments:

  • WAR Agent for deployment as web application in a JEE Server.
  • OSGi Agent for deployment in an OSGi container. This agent is packaged as a bundle and comes in two flavors (minimal, all-in-one).
  • JVM Agent which can be used with any Oracle/Sun based JVM, Version 6 or later.
  • Mule Agent for usage within a Mule ESB.

WAR Agent

The WAR agent jolokia.war deploys as a regular web archive (WAR) in a JEE server. Deployment is simple (often only a copy in a certain directory) and the agent can be tuned like a normal web application. Setting it up the agent servlet for secure communication is a well known business (but specific to every application server) and the same as for any other web archive. The runtime behaviour like connection pooling or dedicated HTTP connector can be tuned very easily (for Tomcat, see this example for setting up an extra HTTP connector for this agent).

Also, this is the agent for the proxy mode where it is deployed in a simple, dedicated application server like Tomcat or Jetty.

The WAR agent has been tested to work on

  • JBoss 4.2.3, 5.1.0, 6.1.0, 7.0.2, 7.1.1, 8.0.0
  • Oracle WebLogic 9.2.3.0, 10.0.2.0, 10.3.6.0
  • Glassfish 2.1.1, 3.0.1, 3.1.2, 4.0.0
  • IBM Websphere 6.1.0.33, 7.0.0.11, 8.0.0.1
  • Apache Tomcat 5.5.35, 6.0.37, 7.0.52, 8.0.3
  • Jetty 5.1.15, 6.1.26, 7.6.9, 8.1.9, 9.1.2
  • Resin 3.1.9
  • Jonas 4.10.7, 5.1.1, 5.2.1
  • Apache Geronimo 2.1.6, 2.2.1, 3.0.0
  • Spring dm Server 2.0.0.RELEASE
  • Eclipse Virgo 2.1.0

This is the most widely used agent. Read more about the WAR agent and its installation.

OSGi Agent

For an OSGi environment an agent packaged as an OSGi bundle is provided. The bundle comes in two flavors: The minimal bundle jolokia-osgi.jar, including only the agent itself (and an json-simple embedded), which requires an already installed OSGi HTTP service like the Pax-Web HTTP-Service. A second version jolokia-osgi-bundle.jar is an all-in-one bundle, including the Pax Web HTTP-Service. This bundle is useful for quick installations, where no HTTP-Service is already existent. However, for best fitting the OSGi philosophy, the usage of the minimal bundle is recommended.

The OSGi agent has been tested with the following containers:

  • Felix 2.0.5, 3.0.8, 3.2.2, 4.2.1
  • Equinox 3.5.2, 3.6.1, 3.7.1, 3.8.1
  • Karaf 2.3.0
  • Virgo 2.1.0, 3.0.1
  • Knopflerfish 3.2.0

JVM Agent

Since Java 5 it is possible to start so called JVM agents in advance before starting a Java application. This technique is used e.g. by profiling tools for installing global classloaders in order to instrument classes. Additionally, Sun's Java 6 JVM comes with a simple embedded HTTP-Server which is used e.g. for exposing web services with the default JAXWS implementation coming with Java 6.

This Jolokia agent uses the agent API and the HTTPServer to allow instrumenting any Java application running with a Sun Java 6 VM, not only application servers.

The JVM Agent has been tested with:

  • Camel 2.8.1
  • ActiveMQ 5.5.0
  • Hadoop 0.20.2
  • Terracotta 3.2.1
  • HornetQ 2.2.14

Please note that the embedded HTTP-Server is not the fastest one, but for simple monitoring use cases it should be performant enough.

Mule Agent

The Mule Standalone ESB offers a dedicated JMX agent interface, into which this agents plugs in seemlessly.

This agent has been tested for Mule 2 and Mule 3 (3.1.1 and 3.2.0).