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).
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); } }
# 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
# 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