WebSphere Extended Deployment, Version 6.0.x     Systèmes d'exploitation : AIX, HP-UX, Linux, Solaris, Windows

Programmation du client PMI de la fonction de partitionnement

La présente section explique comment s'abonner aux statistiques PMI WPF de la fonction de partitionnement. Pour plus d'informations sur l'activation de cette infrastructure, voir la section relative à la gestion. Pour inclure reportTransactionComplete(…) dans l'application, voir la section relative à la programmation du bean PSSB (Partitioned Stateless Session Bean).

Abonnement aux statistiques PMI de la fonction de partitionnement à l'aide du MBean WPFJMX

Au lieu d'utiliser l'outil wpfadmin, vous pouvez faire appel au MBean WPFJMX pour vous abonner au composant PMI de la fonction de partitionnement. La section suivante indique comment obtenir l'instance du Mbean :

Abonnement aux statistiques PMI de la fonction de partitionnement à l'aide du code Java

Cet exemple explique comment s'abonner ou se désabonner des statistiques PMI de la fonction de partitionnement à l'aide du code Java. Vous pouvez le modifier pour redéfinir les types et les plages de statistiques, etc.
package com.ibm.websphere.wpf.jmx;

import java.util.Properties;
import java.util.Set;

import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;

import com.ibm.websphere.management.AdminClient;
import com.ibm.websphere.management.AdminClientFactory;
import com.ibm.websphere.management.exception.ConnectorException;

/**
 * Crée une entrée resource.xml au niveau du noeud pour une source de données DB2 XA.
 * La source de données créée est pour une utilisation CMP.
 * 
 * Vous devez indiquer les éléments suivants pour lancer l'exécution avec le chemin d'accès aux classes 
 * $WAS_HOME\lib\admin.jar;
 * $WAS_HOME\lib\wasjmx.jar;
 * $WAS_HOME\lib\wasx.jar
 */
public class PMIJMXSample {

    /**
     *Méthode Main.
     * arg[0] est le type de connexion, tel que SOAP.
     * arg[1] est l'hôte de connexion, tel que localhost.
     * arg[2] est le port de connexion, tel que 8879
     * arg[3] est le processus facultatif. La valeur par défaut est Deployment Manager
     */
    public static void main(String[] args)
        throws
            MalformedObjectNameException,
            ConnectorException,
            MBeanException,
            ReflectionException,
            InstanceNotFoundException {

        System.out.println("Début de l'exemple");

        // Initialisation d'AdminClient.
        String connectorType = args[0];
        String connectorHost = args[1];
        String connectorPort = args[2];

        String jmxServer = "Deployment Manager";
        if (args.length >= 4) {
            jmxServer = args[3];
        }

        Properties adminProps = new Properties();
        adminProps.setProperty(AdminClient.CONNECTOR_TYPE, connectorType);
        adminProps.setProperty(AdminClient.CONNECTOR_HOST, connectorHost);
        adminProps.setProperty(AdminClient.CONNECTOR_PORT, connectorPort);
        AdminClient adminClient = AdminClientFactory.createAdminClient(adminProps);

        ObjectName queryName = new ObjectName("WebSphere:type=WPF,process=" 
        + jmxServer + ",*");

        ObjectName wpfJMX = null;
        Set s = adminClient.queryNames(queryName, null);
        if (!s.isEmpty()) {
            wpfJMX = (ObjectName) s.iterator().next();
        }
        else {
            System.out.println("MBean WPF JMX introuvable");
            System.exit(0);
        }

        String subscribeWPFPMIName = "subscribeWPFPMI";
        String[] subscribeSignatures =
            new String[] {
                "java.lang.String",
                "java.lang.String",
                "java.lang.Integer",
                "java.lang.Integer",
                "java.lang.Integer",
                "java.lang.Integer" };
        Object[] subscribeParams =
            new Object[] {
                "WPFKeyBasedPartitionSample",
                "WPFKeyBasedPartition",
                new Integer(0),
                new Integer(1),
                new Integer(5),
                new Integer(60000)};

        // Appel de la méthode subscribeWPFPMI
        Long id = (Long) adminClient.invoke(wpfJMX, subscribeWPFPMIName, 
        subscribeParams, subscribeSignatures);

        System.out.println("ID abonnement " + id);

        String unsubscribeWPFPMIName = "unsubscribeWPFPMI";
        String[] unsubscribeSignatures = new String[] { "java.lang.Long" };
        Object[] unsubscribeParams = new Object[] { id };

        // Appel de la méthode unsubscribeWPFPMI

        adminClient.invoke(wpfJMX, unsubscribeWPFPMIName, unsubscribeParams, 
        unsubscribeSignatures);

    }

}

Abonnement aux statistiques PMI de la fonction de partitionnement à l'aide du code Jacl

Les utilisateurs peuvent écrire un script jacl et lancer la commande wsamdin –f fichier_JACL pour s'abonner aux statistiques PMI de la fonction de partitionnement. L'exemple suivant indique comment s'abonner et de désabonner du composant PMI de la fonction de partitionnement :
# Script Jacl indiquant comment s'abonner et de désabonner du composant PMI WPF

# Extraction du MBean WPF
set wpf [lindex [$AdminControl queryNames "type=WPF,process=Deployment Manager,*"] 
0]puts $wpf

# Abonnement à PMI WPF
set id [$AdminControl invoke $wpf subscribeWPFPMI "WPFKeyBasedPartitionSample 
WPFKeyBasedPartition 0 1 5 60000"]
puts $id		

# Désabonnement de PMI WPF
$AdminControl invoke $wpf unsubscribeWPFPMI $id

Abonnement aux statistiques PMI de la fonction de partitionnement à l'aide du code Jython

Les utilisateurs peuvent créer un script jython et lancer la commande wsamdin –lang jython –f JYTHON_FILE pour s'abonner aux statistiques PMI de la fonction de partitionnement. L'exemple de script jython suivant indique comment s'abonner et de désabonner du composant PMI de la fonction de partitionnement.
# Script Jython indiquant comment s'abonner et de désabonner de PMI WPF

# Extraction du MBean WPF
strObjectName=AdminControl.queryNames("type=WPF,process=Deployment Manager,*")
objectName = AdminControl.makeObjectName(strObjectName)
wpf = TypedProxy.makeProxy(AdminControl, objectName, 
"com.ibm.websphere.wpf.jmx.WPFJMX")

# Abonnement à PMI WPF
id = wpf.subscribeWPFPMI("WPFKeyBasedPartitionSample", "WPFKeyBasedPartition",
0, 1, 5, 60000)
print id		

# Désabonnement de PMI WPF
wpf.unsubscribeWPFPMI(id)



Related concepts
Programmation de la fonction de partitionnement

Rubrique Référence    

Conditions d'utilisation | Commentaires Dernière mise à jour le : Mar 16, 2006 10:01:30 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/WPF51/rwpfclientprog.html

© Copyright IBM 2005, 2006. All Rights Reserved.
Ce centre de documentation s'appuie sur la technologie Eclipse. (http://www.eclipse.org)