Esta seção descreve como assinar estatísticas de PMI do recurso de particionamento (WPF). Para obter informações adicionais que descrevem como ativar esta infra-estrutura, consulte a seção de gerenciamento. Para incluir reportTransactionComplete(…) no seu aplicativo, consulte a seção de programação do 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; /** * Cria uma entrada com escopo de nó em resource.xml para uma origem de dados XA de DB2. * A origem de dados criada é para uso de CMP. * * Você precisa do seguinte para execução com o caminho de classe * $WAS_HOME\lib\admin.jar; * $WAS_HOME\lib\wasjmx.jar; * $WAS_HOME\lib\wasx.jar */ public class PMIJMXSample { /** * método Main. * arg[0] é o tipo de conexão, como SOAP. * arg[1] é o host da conexão, como host local. * arg[2] é a porta de conexões, como 8879 * arg[3] é o processo opcional. O padrão é Deployment Manager */ public static void main(String[] args) throws MalformedObjectNameException, ConnectorException, MBeanException, ReflectionException, InstanceNotFoundException { System.out.println("Sample starts"); // Inicializar o 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)}; // chamar o 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 }; // chamar o método unsubscribeWPFPMI adminClient.invoke(wpfJMX, unsubscribeWPFPMIName, unsubscribeParams, unsubscribeSignatures); } }
# Script Jacl para mostrar como assinar e cancelar assinatura da PMI do WPF # get WPF Mbean set wpf [lindex [$AdminControl queryNames "type=WPF,process=Deployment Manager,*"] 0]puts $wpf # subscribe WPF PMI set id [$AdminControl invoke $wpf subscribeWPFPMI "WPFKeyBasedPartitionSample WPFKeyBasedPartition 0 1 5 60000"] puts $id # unsubscribe WPF PMI $AdminControl invoke $wpf unsubscribeWPFPMI $id
# Script Jython para mostrar como assinar e cancelar assinatura da PMI do WPF # get WPF Mbean strObjectName=AdminControl.queryNames("type=WPF,process=Deployment Manager,*") objectName = AdminControl.makeObjectName(strObjectName) wpf = TypedProxy.makeProxy(AdminControl, objectName, "com.ibm.websphere.wpf.jmx.WPFJMX") # subscribe WPF PMI id = wpf.subscribeWPFPMI("WPFKeyBasedPartitionSample", "WPFKeyBasedPartition", 0, 1, 5, 60000) print id # unsubscribe WPF PMI wpf.unsubscribeWPFPMI(id)
Related concepts
Programação do Recurso de Particionamento