En esta sección se describe cómo suscribirse a las estadísticas PMI de WPF (WebSphere Partitioning Facility). Si desea obtener más información sobre cómo habilitar esta infraestructura, consulte la sección de gestión. Para incluir reportTransactionComplete(…) en la aplicación, consulte la sección de programación de beans de sesión sin estado particionados (PSSB).
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; /** * Crea una entrada resource.xml con un ámbito de nodo para un origen de datos * DB2 XA. * El origen de datos creado está especialmente indicado para CMP. * * Necesita lo siguiente para ejecutarse con la classpath * $WAS_HOME\lib\admin.jar; * $WAS_HOME\lib\wasjmx.jar; * $WAS_HOME\lib\wasx.jar */ public class PMIJMXSample { /** * Método principal. * arg[0] es el tipo de conexión, por ejemplo, SOAP. * arg[1] es el sistema principal de la conexión, por ejemplo, localhost. * arg[2] es el puerto de la conexión, por ejemplo, 8879 * arg[3] es el proceso opcional. El valor por omisión es Deployment Manager */ public static void main(String[] args) throws MalformedObjectNameException, ConnectorException, MBeanException, ReflectionException, InstanceNotFoundException { System.out.println("Sample starts"); // Inicializar el 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("WPF JMX MBean was not found"); 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)}; // invocar el método subscribeWPFPMI Long id = (Long) adminClient.invoke(wpfJMX, subscribeWPFPMIName, subscribeParams, subscribeSignatures); System.out.println("Subscription ID is " + id); String unsubscribeWPFPMIName = "unsubscribeWPFPMI"; String[] unsubscribeSignatures = new String[] { "java.lang.Long" }; Object[] unsubscribeParams = new Object[] { id }; // invocar el método unsubscribeWPFPMI adminClient.invoke(wpfJMX, unsubscribeWPFPMIName, unsubscribeParams, unsubscribeSignatures); } }
# Script Jacl donde se muestra cómo suscribirse y anular la suscripción de PMI WPF # obtener Mbean WPF set wpf [lindex [$AdminControl queryNames "type=WPF,process=Deployment Manager,*"] 0]puts $wpf # suscribirse a WPF PMI set id [$AdminControl invoke $wpf subscribeWPFPMI "WPFKeyBasedPartitionSample WPFKeyBasedPartition 0 1 5 60000"] puts $id # anular suscripción de WPF PMI $AdminControl invoke $wpf unsubscribeWPFPMI $id
# Script Jython donde se muestra cómo suscribirse y anular la suscripción de PMI WPF # obtener 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") # suscribirse a WPF PMI id = wpf.subscribeWPFPMI("WPFKeyBasedPartitionSample", "WPFKeyBasedPartition", 0, 1, 5, 60000) print id # anular suscripción de WPF PMI wpf.unsubscribeWPFPMI(id)
Related concepts
Programación de Partitioning Facility