
The JMX Adapter Service manages the configuration and lifecycle of the MBean Server and provides access to it for applications, services, and libraries. A local MBean Server is created on each cluster element. The local MBean Servers communicate with each other, so that clients running inside the AS Java (Management Client B in the figure below) only have to interact with their local MBean Server. Each local MBean Server provides a virtual view of all MBeans in the cluster, that is, a client can access MBeans regardless of whether they are registered locally or on a remote cluster node.
The external clients (Management Client A in the figure below) must connect to the cluster using a JMX connector, based on the RMI-P4 protocol. The RMI-P4 call is dispatched to the server part of the JMX connector on an arbitrary server process, which in turn delegates the request to the local MBeanServer.
Interceptor Chain
The virtual MBean Server view is provided by an MBean Server interceptor, which redirects calls according to the location information in the ObjectName . The location information also guarantees unique ObjectNames across all cluster elements. There is a factory, which supports the creation of ObjectNames that include this location information. For local MBeans, the location information can be omitted, as in this case the ObjectName is automatically completed by another MBean Server interceptor. For more information, see com.sap.jmx.ObjectNameFactory .
Virtual MBean Server
There is a mechanism to access MBeans remotely in the cluster, which can be visible from a different cluster. For example the client on a cluster node with Node ID 5000050 will see all Mbeans that are registered on the same node. It will also see those Mbeans from the remote nodes (for example on Node ID 5000051) that include SAPJ2EEClusterNode in their ObjectName .
The cluster node ID (SAP J2EEClusterNode) in the ObjectName of an MBean is always equal to the ID of the cluster node where this MBean is registered. The cluster node ID prevents not only name clashes, but is also used to address the proper MBean Server in the cluster.