Dieser Abschnitt beschreibt, wie Sie WPF-PMI-Statistiken subskribieren. Nähere Informationen zum Aktivieren dieser Infrastruktur finden Sie im Abschnitt zur Verwaltung. Wie Sie die Methode reportTransactionComplete(...) in Ihre Anwendung einbinden, wird im Abschnitt zur Programmierung von PSSBs beschrieben.
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; /** * Erstellt einen für den Knoten gültigen resource.xml-Eintrag für eine DB2-XA-Datenquelle. * Die erstellte Datenquelle soll für CMP verwendet werden. * * Folgendes muss im Klassenpfad enthalten sein: * $WAS_HOME\lib\admin.jar; * $WAS_HOME\lib\wasjmx.jar; * $WAS_HOME\lib\wasx.jar */ public class PMIJMXSample { /** * Hauptmethode (main) * arg[0] ist der Verbindungstyp, z. B. SOAP. * arg[1] ist der Verbindungshost, z. B. localhost. * arg[2] ist der Verbindungs-Port, z. B. 8879 * arg[3] ist der optionale Prozess. Der Standardprozess ist der Deployment Manager. */ public static void main(String[] args) throws MalformedObjectNameException, ConnectorException, MBeanException, ReflectionException, InstanceNotFoundException { System.out.println("Sample starts"); // Den AdminClient initialisieren. 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)}; // Methode subscribeWPFPMI aufrufen 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 }; // Methode unsubscribeWPFPMI aufrufen adminClient.invoke(wpfJMX, unsubscribeWPFPMIName, unsubscribeParams, unsubscribeSignatures); } }
# Jacl-Script, das zeigt, wie WPF PMI subskribiert und abbestellt wird # 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
# Jython-Script, das zeigt, wie WPF PMI subskribiert und abbestellt wird # 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
Programmierumgebung des Partitionierungs-Feature