[z/OS]

Concepts de proxy dynamique JMX (Java Management Extensions)

Un proxy dynamique Java™ Management Extensions (JMX) coordonne les requêtes du MBean parmi les serveurs multiprocessus. Cette section aborde les principales expressions associées à un proxy dynamique JMX.

Processus de contrôle
Reçoit les requêtes et les distribue aux processus servants de sorte que le serveur d'applications peut travailler pour les requêtes.
Processus servant
Reçoit le travail du processus de contrôle et effectue le travail.
Option d'appel simple contre appels multiples
Utilisez l'option d'appel simple sur la méthode proxyInvocationType lorsqu'une requête appelle un processus servant arbitraire ou un processus servant. Utilisez l'option d'appels multiples sur la méthode proxyInvocationType lorsqu'une requête est émise vers plusieurs processus servants et que ces derniers renvoient des résultats différents.

L'exemple suivant présente un descripteur MBean qui a été développé pour un modèle à processus unique (avant) et modifié pour un modèle à processus multiples (après).

Avant
<?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>
Après
<?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>
Faites fonctionner le MBean utilisateur en mode proxy dynamique en spécifiant dynamicproxy dans l'attribut de plate-forme. En l'absence d'attribut de plate-forme dans le descripteur MBean, le MBean utilisateur déployé sur WebSphere Application Server for z/OS utilise automatiquement le mode proxy dynamique.
Mettez la balise XML "attribute" ou "operation" à jour, comme indiqué dans l'exemple Après, pour spécifier le comportement en appel simple ou le comportement en appels multiples dans l'environnement multiprocessus. Si aucune option proxyInvokeType ou proxySetterInvokeType n'est disponible, le comportement par défaut est l'une des valeurs suivantes :
proxyInvokeType=unicall (for the getMethod)
proxyInvokeType=multicall (for the setMethod)

Dans l'exemple Après, les méthodes getMBeanName et getState s'exécutent avec un comportement d'appel simple. Les méthodes setState et initializeState s'exécutent avec le comportement d'appels multiples.

Modèle de processus unique
Le serveur d'applications à processus unique possède une phase d'exécution de serveur. Le MBean agit généralement sur une instance de chacun des principaux composants d'exécution : un conteneur d'EJB (Enterprise JavaBeans), un conteneur Web, un gestionnaire de connexions J2EE (Java 2 Platform, Enterprise Edition, etc. Ce modèle suppose que chaque appel MBean sur le serveur s'exécute dans le même processus et dans la même machine JVM (Java Virtual Machine).
Modèle multiprocessus
Le modèle multiprocessus suppose qu'une instance de serveur unique est une fédération de machines JVM (Java Virtual Machines), fonctionnant sur un processus indépendant. Le processus de contrôle est responsable des fonctions de serveur telles que les communications, les noeuds finals, les autorisations, la récupération des ressources et la gestion de la charge de travail. Toutes les autres machines JVM sont des agents JVM dans lesquels les requêtes sont exécutées. Les machines JVM dirigent et interagissent uniquement avec le processus de contrôle.

Toutes les requêtes entrantes et sortantes passent par le processus de contrôle. Les requêtes client arrivent au processus de contrôle. Le processus de contrôle, avec l'aide du WLM MVS, répartit le travail entre les processus servants.

Le nombre de processus servants est géré par WLM et varie en fonction de la demande. La demande est mesurée en fonction des objectifs de performance spécifiques à l'installation, exprimés sous forme de règle WLM. Tous les processus servants sont identiques et hébergent les composants de serveur d'applications nécessaires au modèle de programmation d'applications J2EE. Les processus servants reposent sur le processus de contrôle pour de nombreux services, comme par exemple la communication, la sécurité et le contrôle des transactions.

Le modèle multiprocessus impose des exigences supplémentaires à l'infrastructure JMX (Java Management Extension) par rapport au modèle de processus unique. Les requêtes d'administration adressées à un serveur multiprocessus exigent souvent la coordination entre les processus qui constituent le serveur d'applications. L'infrastructure JMX comprend les fonctions supplémentaires permettant cette coordination.

modèle de serveur multiprocessus
Prise en charge de l'objet d'état pour le MBean proxy dynamique
Classe com.ibm.websphere.management.dynamicproxy.StateObject: le fournisseur MBean étend la classe abstraite StateObject. Définissez les sous-classes de la classe StateObject de sorte que la phase d'exécution de JMX puisse l'instancier avant que le MBean proxy dynamique ne termine son initialisation. La phase d'exécution JMX joint la classe StateObject à l'interface du gestionnaire d'appels du proxy dynamique de manière à conserver une trace de l'état actuel du proxy dynamique avant et après l'exécution de la méthode MBean. La phase d'exécution JMX joint également la classe StateObject à l'interface Result Aggregation ainsi qu'à la classe Event Handler pour prendre en charge l'application d'agrégation adéquate.
Interface de prise en charge du gestionnaire d'agrégation des résultats
Classe com.ibm.websphere.management.dynamicproxy.AggregationHandler : l'interface de prise en charge du gestionnaire d'agrégation des événements définit la méthode utilisée par un fournisseur MBean pour gérer l'agrégation des événements dans un MBean WebSphere Application Server for z/OS configuré en proxy. Précisez l'attribut aggregationHandlerClass de la balise XML MBean MBeanDescriptor. Implémentez l'interface pour les méthodes MBean utilisant l'option proxyInvokeType avec appels multiples et renvoyant une valeur. L'interface détermine la méthode pour laquelle cette agrégation est traitée. Elle agrège ensuite convenablement tous les résultats des servants MBean que le processus servant renvoie au processus de contrôle, puis compile un unique résultat à renvoyer au demandeur.
Interface de prise en charge du gestionnaire d'agrégation des événements
Classe d'interface com.ibm.websphere.management.dynamicproxy.EventHandler : l'interface de prise en charge du gestionnaire d'agrégation des événements définit la méthode utilisée par un fournisseur MBean pour gérer l'agrégation des événements dans un MBean WebSphere Application Server for z/OS configuré en proxy. Précisez l'attribut eventHandlerClass de la balise XML MBean MBeanDescriptor. L'interface gère les événements MBean servants entrants et les agrège pour filtrer les doublons de plusieurs MBean servants. Elle renvoie un événement au programme d'écoute du MBean proxy dynamique. L'interface ajuste l'état actuel du MBean proxy dynamique en fonction des exigences du fournisseur MBean.
Interface de prise en charge du gestionnaire d'appels
Classe com.ibm.websphere.management.dynamicproxy.InvocationHandler : l'interface de prise en charge du gestionnaire d'appels définit les méthodes preInvoke et postInvoke qu'un MBean proxy dynamique WebSphere Application Server for z/OS implémente lorsqu'il demande des informations de gestion d'état. Le MBean utilise les informations pour se coordonner avec les MBeans servants lorsque le type d'appel en appel multiple est requis. Définissez l'attribut invocationHandlerClass de la balise XML MBean MBeanDescriptor. Utilisez l'interface pour les MBean proxy dynamiques qui nécessitent une gestion de l'état avant et après l'appel d'une méthode qui modifie son état.
MBean utilisateur
Le MBean utilisateur se trouve dans le processus servant et gère les requêtes par le biais de son MBean proxy créé de façon dynamique, exécuté dans le processus de contrôle. Un fournisseur MBean peut regrouper des gestionnaires avec le MBean utilisateur de sorte que le fournisseur se concentre sur ses propres traitements spécialisés dans les situations suivantes :
  • Agrégation de résultats
  • Agrégation d'événements
  • Gestion des appels
  • Gestion de l'état d'objets

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjmx_proxycon
Nom du fichier : cjmx_proxycon.html