[z/OS]

Konzepte des dynamischen JMS-Proxys

Ein dynamischer JMX-Proxy (Java™ Management Extensions) koordiniert MBean-Anforderungen für Server mit mehreren Prozessen. Dieser Abschnitt beschreibt die Haupteigenschaften eines dynamischen JMX-Proxy.

Steuerprozess
Empfängt Anforderungen und verteilt sie an die Servant-Prozesse, damit der Anwendungsserver die Anforderungen bearbeiten kann.
Servant-Prozess
Empfängt Arbeit vom Steuerprozess und führt die Arbeit aus.
Option unicall im Vergleich zur Option multicall
Verwenden Sie die Option unicall in der Methode proxyInvocationType, wenn eine Anforderung einen beliebigen Servant-Prozess aufruft. Verwenden Sie die Option multicall in der Methode proxyInvocationType, wenn eine Anforderung an mehrere Servant-Prozesse verteilt wird und die Servant-Prozesse unterschiedliche Ergebnisse zurückgeben.

Das folgende Beispiel zeigt einen MBean-Deskriptor, der ursprünglich für ein Einzelprozessmodell entwickelt (vorher) und dann auf ein Mehrprozessmodell umgestellt wurde (nachher).

Vorher
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
<MBean type="SampleStateMBean"
  version="6.0"
  description="Status-MBean als Beispiel für die Dokumentation">

  <attribute description="Name der MBean"
    getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/>
  <attribute description="Status der MBean".name="state"
    getMethod="getState" setMethod="setState" type="java.lang.String"/>
  <operation
    description="Initialisieren der Status-MBean"
    impact="ACTION" name="initializeState" role="operation"
    targetObjectType="objectReference" type="void">
    <signature>
      <parameter description="Name der MBean"
        name="mbeanName" type="java.lang.String"/>
      <parameter description="Anfangsstatus der MBean"
        name="mbeanName" type="java.lang.String"/>
    </signature>
  </operation>
</MBean>
Nachher
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
<MBean type="SampleStateMBean"
  version="6.0"
  platform="dynamicproxy"
  description="Status-MBean als Beispiel für die Dokumentation">

  <attribute description="Name der MBean"
    getMethod="getMBeanName" name="mbeanName" type="java.lang.String"/>
  <attribute description="Status der MBean".name="state"
    getMethod="getState" setMethod="setState" type="java.lang.String"/>
    proxyInvokeType="unicall" proxySetterInvokeType="multicall"/>
  <operation
    description="Initialisieren der Status-MBean"
    impact="ACTION" name="initializeState" role="operation"
    targetObjectType="objectReference" type="void" proxyInvokeType="multicall">
    <signature>
      <parameter description="Name der MBean"
        name="mbeanName" type="java.lang.String"/>
      <parameter description="Anfangsstatus der MBean"
        name="mbeanName" type="java.lang.String"/>
    </signature>
  </operation>
</MBean>
Stellen Sie sicher, dass die User MBean im Modus für dynamischen Proxy ausgeführt wird. Geben Sie dazu im Attribut platform dynamicproxy an. Wenn der MBean-Deskriptor kein Attribut platform enthält, verwendet die in WebSphere Application Server for z/OS implementierte User MBean automatisch den Modus für dynamischen Proxy.
Aktualisieren Sie das XML-Tag attribute oder operation, wie unter "Nachher" angegeben, um in der Mehrprozessumgebung das Aufrufverhalten unicall oder multicall anzugeben. Falls keine Option proxyInvokeType oder proxySetterInvokeType vorhanden ist, wird standardmäßig einer der folgenden Werte angenommen.
proxyInvokeType=unicall (for the getMethod)
proxyInvokeType=multicall (for the setMethod)

In dem Beispiel unter "Nachher" werden die Methoden getMBeanName und getState mit dem Aufrufverhalten unicall. Die Methoden setState und initializeState werden mit dem Aufrufverhalten multicall ausgeführt.

Einzelprozessmodell
Ein Einzelprozessanwendungsserver hat eine Serverlaufzeit. Die MBean führt in der Regel Aktionen für eine Instanz jeder Hauptlaufzeitkomponente aus: einen EJB-Container (Enterprise JavaBeans), einen Web-Container, einen Java EE-Verbindungsmanager usw. Bei diesem Modell wird davon ausgegangen, dass jeder MBean-Aufruf auf dem Server innerhalb desselben Prozesses und derselben JVM (Java Virtual Machine) ausgeführt wird.
Mehrprozessmodell
Beim Mehrprozessmodell ist eine Einzelserverinstanz ein Zusammenschluss von Java Virtual Machines (JVMs), die in einem separaten Arbeitsprozess ausgeführt werden. Der Steuerprozess kontrolliert Serverfunktionen wie Kommunikationsendpunkte, Autorisierung, Ressourcenwiederherstellung und Workload-Management. Alle anderen JVMs sind Worker-JVMs, in denen Anwendungsanforderungen ausgeführt werden. Diese JVMs interagieren nur mit dem Steuerprozess und nehmen Anweisungen von diesem entgegen.

Alle eingehenden und abgehenden Anforderungen laufen über den Steuerprozess. Clientanforderungen kommen beim Steuerprozess an. Der Steuerprozess verteilt die Arbeit mit Unterstützung des MVS-Workload-Managers (WLM) auf die Servant-Prozesse.

Die Anzahl der von WLM verwalteten Servant-Prozesse ist vom jeweiligen Bedarf abhängig. Der Bedarf wird anhand installationsspezifischer Durchsatzziele, die in der WLM-Richtlinie definiert sind, ermittelt. Alle Servant-Prozesse sind gleich und stellen die erforderlichen Anwendungsserverkomponenten für das J2EE-Anwendungsprogrammiermodell bereit. Die Servant-Prozesse sind auf zahlreiche Services des Steuerprozesses angewiesen, z. B. für Kommunikation, Sicherheit und Transaktionssteuerung.

Das Mehrprozessmodell stellt gegenüber dem Einzelprozessmodell zusätzliche Forderungen an die JMX-Infrastruktur (Java Management Extension). Verwaltungsanforderungen an einen Mehrprozessserver erfordern oft eine Koordinierung der Anwendungsserverprozesse. Die JMX-Infrastruktur stellt für diese Koordinierung zusätzliche Einrichtungen bereit.

Mehrprozessservermodell
StateObject-Unterstützung für dynamische Proxy-MBean
Klasse com.ibm.websphere.management.dynamicproxy.StateObject: Der MBean-Provider erweitert die abstrakte Klasse StateObject. Geben Sie die Unterklasse der Klasse StateObject an, damit sie von der JMX-Laufzeit instanziert werden kann, bevor die Initialisierung der dynamischen Proxy-MBean abgeschlossen ist. Die JMX-Laufzeit ordnet die Klasse StateObject der Invocation-Handler-Schnittstelle des dynamischen Proxys zu, um den aktuellen Status des dynamischen Proxys vor und nach Ausführung der MBean-Methode verfolgen zu können. Außerdem ordnet die JMX-Laufzeit das StateObject der Schnittstellenklasse für Ergebnisaggregation und der Schnittstelle für Ereignishandler zu, um die entsprechende Aggregationsanwendung zu unterstützen.
Unterstützungsschnittstelle für Ergebnisaggregationshandler
Klasse com.ibm.websphere.management.dynamicproxy.AggregationHandler: Die Unterstützungsschnittstelle für den Ergebnisaggregationshandler definiert die Methode, mit der ein MBean-Provider in einer dynamischen Proxy-MBean in WebSphere Application Server for z/OS die Ergebnisaggregation ausführen kann. Geben Sie das Attribut "aggregationHandlerClass" im XML-Tag "MBeanDescriptor" der MBean an. Implementieren Sie die Schnittstelle für MBean-Methoden, die die proxyInvokeType-Option multicall verwenden und einen Wert zurückgeben. Die Schnittstelle bestimmt die Methode, für die diese Aggregation verarbeitet wird. Anschließend führt es die Aggregation für alle Servant-MBean-Ergebnisse aus, die der Servant-Prozess an den Steuerprozess zurückgibt, und kompiliert sie zu einem Ergebnis, das an den Aufrufer zurückgegeben wird.
Unterstützungsschnittstelle für Ereignisaggregationshandler
Klasse com.ibm.websphere.management.dynamicproxy.EventHandler: Die Unterstützungsschnittstelle für den Ereignisaggregationshandler definiert die Methode, mit der ein MBean-Provider in einer dynamischen Proxy-MBean in WebSphere Application Server for z/OS die Ereignisaggregation ausführen kann. Geben Sie das Attribut "eventHandlerClass" im XML-Tag "MBeanDescriptor" der MBean an. Die Schnittstelle bearbeitet alle eingehenden Servant-MBean-Ereignisse und fasst sie zusammen, um doppelte Ereignisse von mehreren Servant-MBeans herauszufiltern. An den Listener der dynamischen Proxy-MBean wird ein Ergebnis zurückgesendet. Die Schnittstelle passt den aktuellen Status der dynamischen Proxy-MBean an die Anforderungen des MBean-Providers an.
Unterstützungsschnittstelle für Aufrufhandler
Klasse "com.ibm.websphere.management.dynamicproxy.InvocationHandler": Die Unterstützungsschnittstelle für Aufrufhandler definiert die Methoden preInvoke und postInvoke, die eine dynamische Proxy-MBean in WebSphere Application Server for z/OS implementiert, wenn sie Informationen zur Statusverwaltung benötigt. Wenn der Aufruftyp "multicall" erforderlich ist, verwendet die MBean diese Informationen für die Koordinierung mit den Servant-MBeans. Geben Sie das Attribut "invocationHandlerClass" im XML-Tag "MBeanDescriptor" der MBean an. Verwenden Sie die Schnittstelle für dynamische Proxy-MBeans, für die vor und nach dem Aufrufen einer Methode, die den MBean-Status ändert, eine Statusverwaltung erforderlich ist.
User MBean
Die User MBean ist im Servant-Prozess enthalten und bearbeitet Anforderungen über ihre dynamisch erstellte Proxy-MBean, die im Steuerprozess ausgeführt wird. Ein MBean-Provider kann Handler mit der Benutzer-MBean so packen, dass der Provider sine eigene spezielle Verarbeitung für die folgenden Situationen einfügen kann:
  • Egebnisaggregation
  • Ereignisaggregation
  • Aufrufbearbeitung
  • Statusverwaltung von Objekten

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjmx_proxycon
Dateiname:cjmx_proxycon.html