Any resource in Resin can be managed by JMX by implementing an MBean interface and by specifying an MBean name. The interface exposes the resource's methods to be managed.
The Basic
bean is the example resource implementation.
It exposes its managed interface by implementing a BasicMBean
interface. The xxxMBean
naming convention lets JMX determine
which interface to use for management. The MBean interface will expose
the Data attribute to JMX.
BasicMBean
is the bean's management interface.
It exposes a single attribute, Data, as a getter/setter pair.
The name of the interface is important. Since the resource is named
Basic
, the MBean interface will be
named BasicMBean
.
MBeans are stored in the MBean server using
an ObjectName
as its key. Essentially, the MBean server
stores the managed beans in a map using the mbean name as a key.
The mbean name consists of a set of <name,value> properties and a "domain" used like a namespace. The properties allow for querying related mbeans. For example, you could request for all mbeans with "J2EEType=Servlet", which would return all the managed servlets.
The example uses the name "example:name=basic". "example" is the domain and the bean's single property is "name" with a value of "basic". By convention, an mbean would normally also have a "type" property, but this example is using a name as simple as possible.
The web.xml (or resin.conf) configures the resource with the
<resource> tag just as with
other resources. The resources is
registered as an MBean by specifying an .
Resin's JMX implementation provides a proxy to
managed object using the interface for an API. You can, of course,
use the standard JMX interface, the proxy interface is much easier to
use. The resource's code is completely compatible with other JMX
implementations. The proxy interface, however, is unique to Resin.
If you choose, you can use the JMX API to access the resource.
The configuration, of course, is Resin-dependent.tag description
resource defines the resource
mbean-name the MBean name of the resource
type the class name of the resource bean
init Any bean-style configuration goes here
data The example bean's setData
parameter.