Instrumenting Resources
Resin 3.0

Features
Installation
Configuration
Web Applications
IOC/AOP
Resources
JSP
Quercus
Servlets and Filters
Databases
Admin (JMX)
CMP
EJB
Amber
EJB 3.0
Security
XML and XSLT
XTP
JMS
Performance
Protocols
Third-party
Troubleshooting/FAQ

Servlet
JMX Consoles
Instrumenting
Tutorials
Cookbook
JMX Consoles
Admin (JMX)
Tutorials

The facilities of JMX are a convenient way to provide an administration interface to objects and components in web applications.

  1. Instrumenting Resources
    1. Instrumenting a servlet
  2. Managing Resources
    1. /resin-status

Instrumenting Resources

Instrumenting resources so JMX can manage them consists of the following steps:

  1. For a class MyFoo, create an interface MyFooMBean with the management interface.
  2. Class MyFoo needs to implement the MyFooMBean interface.
  3. Register MyFoo with the JMX server.

Instrumenting a servlet

Resin will automatically register any servlet which implement an MBean interface. By default, the JMX name will be:

web-app:j2eeType=Servlet,name=servlet-name

ObjectName attributes
AttributeValue
j2eeTypeServlet
WebModulethe contextPath
J2EEApplicationthe host?
J2EEServerthe server-id?

The domain is web-app, the type property is javax.servlet.Servlet and the name property is the value of <servlet-name>.

JMX clients will use the name to manage the servlet. For example, a client might use the pattern web-app:type=javax.servlet.Servlet,* to retrieve all managed servlets.

MyServletMBean.java
package test;

public interface MyServletMBean {
  public int getCount();
}

MyServlet.java
package test;

import java.io.*;
import javax.servlet.*;

public class MyServlet extends GenericServlet implements MyServletMBean {
  private int count;

  public int getCount()
  {
    return count;
  }

  public void service(ServletRequest request,
                      ServletResponse response)
    throws IOException
  {
    PrintWriter out = response.getWriter();

    count++;

    out.println("Hello, world");
  }
}

Managing Resources

Managing resources uses the JMX API, primarily using the MBeanServer object. In Resin, each web-app has its own MBeanServer.

Getting the Count attribute
import javax.management.*;

...

MBeanServer server = MBeanServerFactory.createMBeanServer();

ObjectName name = new ObjectName("web-app:j2eeType=javax.servlet.Servlet," +
                                 "name=hello");

Object value = server.getAttribute(name, "Count");

out.println("Count: " + value);

/resin-status

The resin-status servlet has a primitive generic JMX management view of JMX managed servlets. By adding a MBean interface to your servlet, you'll automatically get a view of your servlets from /resin-status.


JMX Consoles
Admin (JMX)
Tutorials
Copyright © 1998-2006 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark, and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc.