A Java Management Extensions (JMX) dynamic proxy coordinates MBean requests among multiprocess servers. This section discusses the main terms associated with a JMX dynamic proxy.
The following example shows an MBean descriptor that was developed for a single process model (before) and modified for a multiprocess model (after).
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd"> <MBean type="SampleStateMBean" version="6.0" description="Sample State MBean for the documentation example."> <attribute description="The name of the MBean." getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/> <attribute description="The state of the MBean."name="state" getMethod="getState" setMethod="setState" type="java.lang.String"/> <operation description="Initialize the State MBean." impact="ACTION" name="initializeState" role="operation" targetObjectType="objectReference" type="void"> <signature> <parameter description="The name of the MBean." name="mbeanName" type="java.lang.String"/> <parameter description="The initial state of the MBean." name="mbeanName" type="java.lang.String"/> </signature> </operation> </MBean>After
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd"> <MBean type="SampleStateMBean" version="6.0" platform="dynamicproxy" description="Sample State MBean for the documentation example."> <attribute description="The name of the MBean." getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/> <attribute description="The state of the MBean."name="state" getMethod="getState" setMethod="setState" type="java.lang.String"/> proxyInvokeType="unicall" proxySetterInvokeType="multicall"/> <operation description="Initialize the State MBean." impact="ACTION" name="initializeState" role="operation" targetObjectType="objectReference" type="void" proxyInvokeType="multicall"> <signature> <parameter description="The name of the MBean." name="mbeanName" type="java.lang.String"/> <parameter description="The initial state of the MBean." name="mbeanName" type="java.lang.String"/> </signature> </operation> </MBean>Make the user MBean run in dynamic proxy mode by specifying dynamicproxy on the platform attribute. If no platform attribute exists on the MBean descriptor, the user MBean deployed on WebSphere Application Server for z/OS automatically uses the dynamic proxy mode.
Update the attribute XML tag or the operation XML tag, as shown in the After example, to specify the unicall behavior or the multicall behavior in the multiprocess environment. If no proxyInvokeType option or proxySetterInvokeType option exists, the behavior defaults to unicall. In the After example, the getMBeanName method and the getState method run with unicall behavior. The setState method and the initializeState method run with multicall behavior.
All inbound and outbound requests go through the control process. Client requests arrive at the control process. The control process, with assistance from the MVS workload manager (WLM), dispatches the work to the servant processes.
The number of servant processes is managed by WLM and varies based on demand. The demand is measured against installation-specific performance goals, expressed as WLM policy. Each servant process is identical and hosts the necessary application server components to enable the J2EE application programming model. The servant processes rely on the control process for numerous services, such as communication, security, and transaction control.
The multiprocess model imposes additional demands on the Java Management Extension (JMX) infrastructure over the single process model. Administrative requests to a multiprocess server often require coordination among the processes that comprise the application server. The JMX infrastructure includes additional facilities to enable this coordination.