Java Management Extensions interoperability

Starting with Version 6, WebSphere Application Server implements Java Management Extensions (JMX) Version 1.2, while WebSphere Application Server Version 5 implements JMX Version 1.0.

Differences between Version 5 and Version 6

The product supports communication with earlier levels of the server through the SOAP connector. The earlier levels of the server cannot be more than two releases earlier. Version 6 and later of the product cannot communicate with servers on Version 5 through an RMI connector.

Due to the evolution of the JMX specification, the serialization format for JMX objects, such as the javax.management.ObjectName object, differs between the V5 implementation and the V6 and later implementation. The V6 and later JMX run time is enhanced to be aware of the version of the client with which it is communicating. The V6 and later run time makes appropriate transformations on these incompatible serialized formats to support communication between the different version run times.

A V5 wsadmin script or a V5 administrative client can call a V6 and later server. A V6 and later wsadmin script or a V6 and later administrative client can call a V5 server.

When a V5 wsadmin script or a V5 administrative client calls a V6 and later MBean, the instances of classes that are new in V6 and later cannot be passed back to V5 because these classes are not present in the V5 environment. The problem occurs infrequently. However, it usually occurs when an exception embeds a nested exception that is new starting with V6. The symptom is usually a serialization exception or a NoClassDefFoundException exception.

Due to changes in the JMX implementation from V5 to V6, different exceptions are created when a method on an MBean is invoked for V5 than when a method on an MBean is invoked for V6 and later . For example, when a method gets or sets an unknown attribute for V5, the MBeanRuntimeException exception is created. When a method gets or sets an unknown attribute for V6 and later, the MBeanException exception that wraps a ServiceNotFoundException exception is created.

An instance of a user-defined class that implements the Serializable interface that is passed as a parameter or return value during MBean invocation, or sent as part of a notification, cannot contain a non-transient instance variable that is in the javax.management.package package. If the instance does, it cannot be properly deserialized when passed between V5 and V6 or later run times.

Due to changes in the supported format for the ObjectName class from V5 to V6, the configuration ID in starting with V6 contains a vertical bar (|), whereas in V5, the ID contains a colon (:). This change is reflected in the output for wsadmin clients. For example, for a V5 client, the output is:
wsadmin>  $AdminConfig list Cell
     DefaultCellNetwork(cells/DefaultCellNetwork:cell.xml#Cell_1)
whereas for a V6 and later client, the output is:
wsadmin>  $AdminConfig list Cell
     DefaultCellNetwork(cells/DefaultCellNetwork|cell.xml#Cell_1)
The change to the configuration ID generally is not a problem because configuration IDs are generated dynamically. When a V5 client passes a configuration ID that contains a colon, the JMX run time, for upward compatibility, automatically transforms the configuration ID that contains a colon into a configuration ID that contains a vertical bar. Similarly, a reverse transformation is performed for backward compatibility.

Do not save the configuration ID and then try to use it later. Only query the ID and use it.

Differences between Version 6.1 and Version 6.0.x

The product supports communication with earlier levels of the server through the SOAP connector. The earlier levels of the server cannot be more than two releases earlier. Version 6 and later servers can communicate with each other through an RMI connector, with one restriction. The javax.management.MBeanInfo class and its subclasses do not iteroperate between Version 6.1.02 and version 6.0.2. You will receive a java.lang.IllegalArgumentException exception when attempting to send any instance of these classes between a Version 6.1 and Version 6.0.2. This restriction affects clients that perform the following operations.
  • A wsadmin scripting client that tries to perform the following operations, for example in Jacl,:
    $Help attributes MBeanObjectName
    $Help operations MBeanObjectName
    $Help notifications MBeanObjectName
  • Any Java client that tries to call:
    com.ibm.websphere.management.AdminClient.getMBeanInfo(ObjectName name);
    com.ibm.websphere.management.AdminService.getMBeanInfo(ObjectName name);
    javax.management.MBeanServer.getMBeanInfo(ObjectName name);
    
A serialization format mismatch exists between the JMX implementation in V6.1 and V6.0.x releases. When a V6.0.x wsadmin script or a V6.0.x administrative client tries to retrieve the ModelMBeanInfo interface of a V6.1 MBean, the expected field names are not found in the deserialized object because of the case difference between the versions. For example, the following wsadmin function does not work when a V6.0.x wsadmin script connects to a V6.1 server:
$Help attributes MBeanObjectName
$Help operations MBeanObjectName
$Help all MBeanObjectName
where MBeanObjectName is a string representation of a V6.1 MBean Object.
To avoid this problem, set the jmx.serial.form Java virtual machine (JVM) custom property on the JVM custom properties page in the administrative console. Create the custom property by specifying the name value-pair on the V6.1 Application Server that you are connecting to from a V6.0.x client. The field names are forced to lower case to be compatible with what the V6.0.x client expects. The lower case field names contradict the JMX specification and compromise interoperability with future versions. Therefore, the recommendation is that you set this property only when it is absolutely needed in a mixed version environment.
Property name jmx.serial.form
Data type string
Value 1.2.0 or 1.2.1
To access the JVM custom properties page, click:

Servers > Application Servers > server1. . Then, under Server Infrastructure, click Java and Process Management > Process Definition > Java Virtual Machine > Custom Properties




Related tasks
Using administrative programs (JMX)
Concept topic Concept topic    

Terms and conditions for information centers | Feedback

Last updatedLast updated: Aug 30, 2013 4:53:43 PM CDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&product=was-base-dist&topic=JmxInteroperability
File name: rjmx_interoperability.html