Monitor von WebSphere Application Server für WSDM-Ressourcen erstellen (veraltet)

Die in Feature Pack for Web Services Version 6.1 bereitgestellte Unterstützung für Web Services Distributed Management (WSDM) verwendet eine externe Managementsoftware. Es ist jedoch sinnvoller, einen angepassten Monitor von WebSphere Application Server für WSDM zu erstellen. Verwenden Sie diese Task, um einen WSDM-Monitor zu erstellen, der auf dem Programmiermodell "Java API for XML Web Services" (JAX-WS) basiert.

Vorbereitende Schritte

Veraltetes Feature Veraltetes Feature: Web Services Distributed Management (WSDM) ist ein veraltetes Feature im Produkt. Dieser Artikel und die unter "Zugehörige Links" aufgeführten WSDM-Artikel werden nach Version 7.0 nicht mehr aktualisiert. Für die Verwaltung Ihrer Web-Service-Anwendungen können Sie an Stelle von WSDM die Administrationskonsole oder Scripting verwenden.depfeat
Bewährtes Verfahren Bewährtes Verfahren: IBM® WebSphere Application Server unterstützt das Programmiermodell Java™ API for XML-Based Web Services (JAX-WS) und das Programmiermodell Java API for XML-based RPC (JAX-RPC). JAX-WS ist das Web-Service-Programmiermodell der nächsten Generation, das die vom Programmiermodell JAX-RPC bereitgestellte Grundlage erweitert. Durch die Verwendung des strategischen Programmiermodells JAX-WS, das ein auf Standards basierendes Annotationsmodell unterstützt, vereinfacht sich die Entwicklung von Web-Services und -Clients. Obwohl das Programmiermodell JAX-RPC und JAX-RPC-Anwendungen weiterhin unterstützt werden, sollten Sie das einfach zu implementierende Programmiermodell JAX-WS für die Entwicklung neuer Web-Service-Anwendungen und -Clients nutzen.best-practices

Informationen zu diesem Vorgang

Führen Sie zum Erstellen eines WSDM-Monitors die folgenden Schritte aus:

Vorgehensweise

  1. Rufen Sie die relativen URLs ab. Die folgende Tabelle enthält eine Liste mit URLs, die Sie verwenden können, um die WSDL-Dateien (Web Services Description Language) für jede unterstützte Ressource in diesem Produkt abzurufen.
    Tabelle 1. Relative URLs für WSDM-WSDL-Dateien. Verwenden Sie die folgende Liste mit URLS, um die WSDL-Dateien (Web Services Description Language) für jede unterstützte Ressource in diesem Produkt abzurufen.
    Ressource URL
    Servicegruppe /websphere-management/services/service-group?wsdl
    Anwendung /websphere-management/services/application?wsdl
    Anwendungsserver /websphere-management/services/applicationserver?wsdl
    Datenquelle /websphere-management/services/datasource?wsdl
    Enterprise JavaBeans /websphere-management/services/ejb?wsdl
    Java Virtual Machine (JVM) /websphere-management/services/jvm?wsdl
    Servlet /websphere-management/services/servlet?wsdl
    WebSphere-Cluster /websphere-management/services/webspherecluster?wsdl
    WebSphere-Domäne /websphere-management/services/webspheredomain?wsdl
    Web-Service /websphere-management/services/webservices?wsdl
  2. Erstellen Sie einen Entwurfscode für die Serviceendpunktschnittstellendateien für den Web-Service-Client. Nachdem Sie die relativen URLs abgerufen haben, erstellen Sie einen Entwurfscode für die Serviceendpunktschnittstellendateien, indem Sie die Tools für die Konvertierung von WSDL in Java für die WSDM-WSDL-Dateien ausführen. Sie können IBM Rational Application Developer oder das Befehlsdienstprogramm "wsimport" für diese Task verwenden. Führen Sie das Dienstprogramm "wsimport" für die abgerufene WSDL-Datei aus.
    Wichtig: Sie müssen mindestens die WSDL-Dateien für die Ressource "Servicegruppe" und die gewünschte Ressource kompilieren.
    Nach Abschluss dieses Schritts haben Sie den Clientcode erstellt, der für die Kommunikation mit dem Service-Provider, dem WSDM-Serviceendpunkt, verwendet wird.
  3. Schreiben Sie Code für den JAX-WS-WSDM-Client. Sehen Sie sich den folgenden JAX-WS-WSDM-Clientbeispielcode an, bevor Sie mit dem Schreiben des Clientcodes beginnen. Der Beispielclientcode veranschaulicht eine vollständige Implementierung eines Clients, der für die Abfrage von Statistiken für eine Ressource geeignet ist und verwendet werden kann, um die Konfiguration der WS-Addressing-Ressourcenreferenzen und der Anforderungs- und Antwortverarbeitung zu delegieren.

    Beispiel für einen WSDM-JAX-WS-Client

    import java.net.URI;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import javax.xml.bind.JAXBElement;
    import javax.xml.namespace.QName;
    import javax.xml.ws.BindingProvider;
    
    import org.oasis_open.docs.wsrf.rp_2.GetResourcePropertyResponse;
    import org.oasis_open.docs.wsrf.sg_2.EntryType;
    import org.oasis_open.docs.wsrf.sgw_2.ServiceGroupPortType;
    import org.oasis_open.docs.wsrf.sgw_2.ServiceGroupService;
    import org.w3c.dom.Element;
    
    import com.ibm.wsspi.wsaddressing.AttributedURI;
    import com.ibm.wsspi.wsaddressing.EndpointReference;
    import com.ibm.wsspi.wsaddressing.EndpointReferenceManager;
    import com.ibm.wsspi.wsaddressing.WSAConstants;
    import com.ibm.wsspi.wsaddressing.WSAddressingFactory;
    import com.ibm.xmlns.prod.websphere.management.servlet.ServletPortType;
    import com.ibm.xmlns.prod.websphere.management.servlet.ServletService;
    
    public class WsdmJaxWsClient {
    
    		static QName WAS_MBEAN_ID = new QName("http://ibm.com/2006/v1.3", "WAS_Resource_MbeanIdentifier");
    		static QName WAS_RESOURCE_ID = new QName("http://ibm.com/2006/v1.3", "WAS_Resource_MRID");
    		static QName WAS_RESOURCE_TYPE = new QName("http://ibm.com/2006/v1.3", "WAS_Resource_Type");
    		private String ServerAndHost = null;
    
    		public WsdmJaxWsClient(String serverAndHost) {
    				this.ServerAndHost = serverAndHost;
    	}
    
    	/**
    	 	 * Liste der verfügbaren Ressourcen aus der WSDM-Anwendung abrufen
    	 */
    		public List<EntryType> getResources() throws Exception {
    				// Service erstellen und Servicereferenz abrufen
    				ServiceGroupService sgs = new ServiceGroupService();
    				ServiceGroupPortType sgp = sgs.getServiceGroupPort();
    
    				// wsa:Action erstellen
    				URI actionUri = new URI(
    										"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    				AttributedURI wsaAction = WSAddressingFactory
    								.createAttributedURI(actionUri);
    
    				// wsa:To erstellen und Referenzparameter eintragen
    				String sgServicePortURI = "http://" + ServerAndHost
    								+ "/websphere-management/services/service-group";
    				QName resourceId = new QName("http://ws.apache.org/muse/addressing",
    								"ResourceId", "muse-wsa");
    		EndpointReference wsaDestinationEpr = EndpointReferenceManager
    								.createEndpointReference(new URI(sgServicePortURI));
    				wsaDestinationEpr.setReferenceParameter(resourceId, "MuseResource-1");
    
    		// requestContext füllen
    				Map<String, Object> rc = ((BindingProvider) sgp).getRequestContext();
    				rc.put(WSAConstants.WSADDRESSING_ACTION, wsaAction);
    				rc.put(WSAConstants.WSADDRESSING_DESTINATION_EPR, wsaDestinationEpr);
    				rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
    		rc
    				.put(
    												BindingProvider.SOAPACTION_URI_PROPERTY,
    												"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    				rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, sgServicePortURI);
    
    				// Liste der verfügbaren Ressourcen abrufen
    				QName entryQName = new QName("http://docs.oasis-open.org/wsrf/sg-2",
    								"Entry");
    				GetResourcePropertyResponse grpr = sgp.getResourceProperty(entryQName);
    
    				// Das zurückgegebene Element list<Objekt> muss in einen aussagefähigeren Typ konvertiert werden
    				List<Object> inputList = grpr.getAny();
    				List<EntryType> outputList = new ArrayList<EntryType>(inputList.size());
    
    				// Element durch Elementkonvertierung vervollständigen
    				for (Object obj : inputList) {
    						JAXBElement jbe = (JAXBElement) obj;
    						EntryType entry = (EntryType) jbe.getValue();
    
    						outputList.add(entry);
    		}
    
    				return outputList;
    	}
    
    	/**
    	 	 * Eigenschaft des angegebenen Eintrags lesen
    	 */
    		public Object getResourceProperty(EntryType entry, QName property)
    			throws Exception {
    				// Service erstellen und Servicereferenz abrufen
    				ServletService rs = new ServletService();
    				ServletPortType rp = rs.getServletPort();
    
    				// wsa:Action erstellen
    				URI actionUri = new URI(
    										"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    				AttributedURI wsaAction = WSAddressingFactory
    								.createAttributedURI(actionUri);
    
    				// wsa:To erstellen und Ressourcenparameter eintragen
    				String servicePortURI = getResourceAddress(entry);
    				// QName resourceId = new QName("http://ws.apache.org/muse/addressing",
    				// "ResourceId", "muse-wsa");
    				EndpointReference wsaDestinationEpr = EndpointReferenceManager
    								.createEndpointReference(new URI(servicePortURI));
    				wsaDestinationEpr.setReferenceParameter(WAS_RESOURCE_ID,
    								findListMember(entry, WAS_RESOURCE_ID));
    				wsaDestinationEpr.setReferenceParameter(WAS_MBEAN_ID, findListMember(
    								entry, WAS_MBEAN_ID));
    				wsaDestinationEpr.setReferenceParameter(WAS_RESOURCE_TYPE,
    								findListMember(entry, WAS_RESOURCE_TYPE));
    
    		// requestContext füllen
    				Map<String, Object> rc = ((BindingProvider) rp).getRequestContext();
    				rc.put(WSAConstants.WSADDRESSING_ACTION, wsaAction);
    				rc.put(WSAConstants.WSADDRESSING_DESTINATION_EPR, wsaDestinationEpr);
    				rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
    		rc
    				.put(
    												BindingProvider.SOAPACTION_URI_PROPERTY,
    												"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    				rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, servicePortURI);
    
    				// Liste der verfügbaren Ressourcen abrufen
    				GetResourcePropertyResponse response = null;
    				response = rp.getResourceProperty(property);
    
    		// Eigenschaft zurückgeben
    		if (response != null) {
    						return ((JAXBElement) response.getAny().get(0)).getValue();
    		} else {
    			return null;
    		}
    	}
    
    		public String getResourceMBeanID(EntryType entry) {
    				return findListMember(entry, WAS_MBEAN_ID);
    	}
    
    		public String getResourceMRID(EntryType entry) {
    				return findListMember(entry, WAS_RESOURCE_ID);
    	}
    
    		public String getResourceType(EntryType entry) {
    				return findListMember(entry, WAS_RESOURCE_TYPE);
    	}
    
    	/**
    	 	 * Adresse der Endpunktreferenz extrahieren
    	 */
    		public String getResourceAddress(EntryType entry) {
    				if (entry == null)
    			return null;
    		else
    						return entry.getMemberServiceEPR().getAddress().getValue();
    	}
    
    	/**
    	 	 * Endpunktreferenzen können nicht nach QName gesucht werden. Diese Methode führt eine
    	 * lineare Suche der Endpunktreferenz durch, um einen bestimmten Referenzparameter zu finden.
    	 */
    		private String findListMember(EntryType entry, QName name) {
    
    				if (name == null || entry == null) return null;
    
    				List<Object> res = entry.getMemberServiceEPR().getReferenceParameters()
    								.getAny();
    
    				for (Object ob : res) {
    						Element e = (Element) ob;
    						if (name.getLocalPart().equals(e.getNodeName()))
    								return e.getTextContent();
    		}
    
    		return null;
    	}
    }	 
  4. Erstellen Sie den WSDM-Monitor. Das folgende Beispiel veranschaulicht die Abfrage eines Servlets für mehrere Anforderungen, auf die das Servlet antwortet.

    WSDM-Monitor

    // Client instanziieren und anweisen, den Server
    // unter localhost:9080 abzufragen
    WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9080”);
    		
    // Liste aller verfügbaren Ressourcen abrufen
    List<EntryType> entries = wjc.getResources();
    
    // Die verfügbaren Ressourcen durchsuchen, bis eine Servletressource
    // gefunden wird
    EntryType servlet = null;
    for (EntryType entry: entries){
    		if ("servlet".equals(wjc.getResourceType(entry))){
    				servlet = entry;
    				System.out.println("URL " + wjc.getResourceAddress(entry));
    				System.out.println("Type " + wjc.getResourceType(entry));
    				System.out.println("MbeanID" + wjc.getResourceMBeanID(entry));
    				System.out.println("ResourceID " + wjc.getResourceMRID(entry));
    		break;
    	}
    }
    
    // PMI-Statistiken über gleichzeitige Anforderungen von diesem Servlet anfordern
    Object servletConcurrentRequests =
    		wjc.getResourceProperty(servlet, J2EEConstants.CONCURRENT_REQUESTS_QNAME);
    
    System.out.println(servletConcurrentRequests);	 
  5. Rufen Sie eine Liste der verfügbaren Ressourcen ab. Der JAX-WS-WSDM-Client aus Codebeispiel 1 zeigt eine Liste der verfügbaren Ressourcen an. Die Liste wird gefiltert, um Ressourcen und Statistiken von diesen Ressourcenobjekten abzurufen. In diesem Schritt wird der Client für einen Anwendungsserver initialisiert, der auf einer lokalen Maschine installiert ist und HTTP-Anforderungen an Port 9080 bearbeitet.

    WSDM-Client initialisieren

    // Client instanziieren und anweisen, den Server
    // unter localhost:9080 abzufragen
    WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9080”);
    		
    // Liste aller verfügbaren Ressourcen abrufen
    List<EntryType> entries = wjc.getResources();
  6. Filtern Sie die verfügbaren Ressourcen. Die Liste der von getResources zurückgegebenen Ressourcen ist umfangreich. Dieser Aufruf gibt eine Liste aller Ressourcen zurück, die derzeit verfügbar sind, und nicht unbedingt den bestimmten Ressourcentyp, an dem Sie interessiert sind.

    Ressourcen filtern

    // Die verfügbaren Ressourcen durchsuchen, bis eine Servletressource
    // gefunden wird
    EntryType servlet = null;
    for (EntryType entry: entries){
    		if ("servlet".equals(wjc.getResourceType(entry))){
    				servlet = entry;
    				System.out.println("URL " + wjc.getResourceAddress(entry));
    				System.out.println("Type " + wjc.getResourceType(entry));
    				System.out.println("MbeanID" + wjc.getResourceMBeanID(entry));
    				System.out.println("ResourceID " + wjc.getResourceMRID(entry));
    		break;
    	}
    }
    
     
    Sie können dieses Beispiel erweitern, um eine bestimmte Ressource zu suchen, anstatt nur das erste verfügbare Servlet. Für diese Aktion müssen Sie auf der Basis von getResourceMBeanID weitere Filteraktionen ausführen. Die Zeichenfolge, die die Ressource darstellt, gleicht dem folgenden Codebeispiel:

    Beispiel einer ID-Zeichenfolge für eine MBean

    WebSphere:WebModule=WSDMDemo.war,name=myServlet,process=server1,Application=wsdm-demo,platform=dynamicproxy,
    J2EEApplication=wsdmdDemo,node=demoNode01,J2EEName=wsdm-demo#WSDMDemo.war#mySelvlet,j2eeType=Servlet,
    J2EEServer=server1,Server=server1,version=6.1.0.7,type=Servlet,mbeanIdentifier=
    wsdm-demo#WSDMDemo.war#myServlet,cell=demoCell01,spec=1.0
  7. Fragen Sie Ressourcen für Statistiken ab. Jetzt können Sie die Ressourceneigenschaft abfragen. Eine Liste der verfügbaren URLS für eine bestimmte Ressource können Sie über die WSDL-Datei in Tabelle 1 abrufen. Das folgende Beispiel zeigt eine Liste mit Eigenschaften für ein Servlet:

    Verfügbare Eigenschaften für eine Servletressource

    <xsd:element name="ServletResourceProperties">
    xsd:complexType>
    		xsd:sequence>
    
    		!--  WSDM MUWS Part 1 - Identity -->
    		<xsd:element ref="muws1:ResourceId"></xsd:element>
    
    		!--  WSDM MUWS Part 1 - ManageabilityCharacteristics -->
    		<xsd:element ref="muws1:ManageabilityCapability" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    	
    		!--  WSDM MUWS Part 2 - Description -->
    		<xsd:element ref="muws2:Caption" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    		<xsd:element ref="muws2:Description" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    		<xsd:element ref="muws2:Version" minOccurs="0"></xsd:element>
    
    		!--  WSDM MUWS Part 2 - Metrics -->
    		<xsd:element ref="muws2:CurrentTime"></xsd:element>
    
    		!--  J2EE Servlet -->
    		<xsd:element ref="servlet:ConcurrentRequests"></xsd:element>
    		<xsd:element ref="servlet:TotalRequests"></xsd:element>
    		<xsd:element ref="servlet:NumberOfErrors"></xsd:element>
    		<xsd:element ref="servlet:ResponseTime"></xsd:element>
    
    	
    		!--  J2EE ManagedObject -->
    		<xsd:element ref="j2ee:ObjectName"></xsd:element>
    		<xsd:element ref="j2ee:StateManageable"></xsd:element>
    		<xsd:element ref="j2ee:EventProvider"></xsd:element>
    		<xsd:element ref="j2ee:StatisticsProvider"></xsd:element>
    
    	</xsd:sequence>
    </xsd:complexType>
    </xsd:element>
  8. Rufen Sie Statistiken ab. Sie können das folgende Codebeispiel verwenden, um die Eigenschaft für gleichzeitige Anforderungen abzufragen. Anschließend können Sie die Eigenschaft in einen QName auflösen und die Eigenschaft an den Client übergeben.

    Statistik abrufen

    // PMI-Statistiken über gleichzeitige Anforderungen von diesem Servlet anfordern
    Object servletConcurrentRequests =
    		wjc.getResourceProperty(servlet, new QName(“http://www.ibm.com/xmlns/prod/websphere/management/j2ee/servlet”, “ConcurrentRequests”));
    
    System.out.println(servletConcurrentRequests);	 

Ergebnisse

Sie haben einen angepassten WSDM-Monitor erstellt, den Sie für die Verwaltung und Steuerung von Ressourcen verwenden können.

Verwenden Sie die Codebeispiele als Unterstützung beim Erstellen Ihres angepassten Monitors, unter anderem das Codebeispiel für den SOAP-Datenaustausch.

Zusätzlich zu diesen Codebeispielen wird Produkt ein integriertes Codebeispiel bereitgestellt, das Sie verwenden können, um die Statistiken für eine Servletressource abrufen. Zum Ausführen dieses Beispiels führen Sie java –classpath wsdm-demo.jar;<JAX-WS-Thin-Client-Installationsverzeichnis>/com.ibm.jaxws.thinclient_8.5.0.jar samples.wsdm.servlet.WsdmDemo aus.

Beispiel für SOAP-Datenaustausch

Das folgende Codebeispiel veranschaulicht, wie alle verfügbaren Ressourcen angefordert werden.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
	<soap:Header>
    <wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://test.ibm.com:8080/websphere-management/services/service-group</wsa:To>
				<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">
        http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest</wsa:Action>
        <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:2f1abf03-ef3e-0837-b8e6-d34dc8e352e2</wsa:MessageID>
        <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Address>
            http://www.w3.org/2005/08/addressing/role/anonymous</wsa:Address></wsa:From>
<muse-wsa:ResourceId xmlns:muse-wsa="http://ws.apache.org/muse/addressing" xmlns:wsa="http://www.w3.org/2005/08/addressing" wsa:IsReferenceParameter=
"true">MuseResource-1</muse-wsa:ResourceId>
</soap:Header>
	<soap:Body>
		<wsrf-rp:GetResourceProperty xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2" xmlns:wsrf-sg=
"http://docs.oasis-open.org/wsrf/sg-2">wsrf-sg:Entry</wsrf-rp:GetResourceProperty>
</soap:Body>
</soap:Envelope>
Dieses Beispiel zeigt eine Antwort, die zwei verfügbare Ressoucen hat, die als XML-Element "wsrf-sg:Entry" dargestellt werden.
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
xmlns:soapenc="http:www.w3.org/2003/05/soap-encoding" 
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<env:Header>
		<wsa:To>http://www.w3.org/2005/08/addressing/role/anonymous</wsa:To>
		<wsa:Action>http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyResponse</wsa:Action>
				<wsa:MessageID>uuid:4eda30ea-c8ca-2998-2c9f-e2519175a1aa</wsa:MessageID>
				<wsa:RelatesTo RelationshipType="wsa:Reply">uuid:2f1abf03-ef3e-0837-b8e6-d34dc8e352e2</wsa:RelatesTo>
		<wsa:From>
						<wsa:Address>http://test.ibm.com:8080/websphere-management/services/service-group</wsa:Address>
						<wsa:ReferenceParameters><muse-wsa:ResourceId xmlns:muse-wsa="http://ws.apache.org/muse/addressing" IsReferenceParameter="true">
								MuseResource-1</muse-wsa:ResourceId></was:From>
						<was:RelatesTo>uuid:2f1abf03-ef3e-0837-b8e6-d34dc8e352e2</was:RelatesTo>

</env:Header>
<env:Body>
	<wsrf-rp:GetResourcePropertyResponse xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
		<wsrf-rp:Entry xmlns:wsrf-sg="http://docs.oasis-open.org/wsrf/sg-2"
		<wsrf-sg:ServiceGroupEntryEPR
		<wsa:Address>	"http://test.ibm.com:8080/websphere-management/services/service-group-entry</wsa:Address>
		<wsa:ReferenceParameters><muse-wsa:ResourceId xmlns:muse-wsa="http://ws.apache.org/muse/addressing">MuseResource-103</muse-wsa:ResourceId>
	</wsa:ReferenceParameters>
					</wsrf-sg:ServiceGroupEntryEPR>
		<wsrf-sg:MemberServiceEPR>
		<wsa:Address>http://test.ibm.com:8080/websphere-management/services/ejb</wsa:Address>
	<wsa:ReferenceParameters>
												<was-wsdm:WAS_Resource_Type>
												<was-wsdm:WAS_Resource_ManagedNodeID xmlns:was-wsdm="http://ibm.com/2006/v1.3"
												<was-wsdm:WAS_Resource_Type xmlns:was-wsdm="http://ibm.com/2006/v1.3">ejb					<was-wsdm:WAS_Resource_MbeanIdentifier
 xmlns:was-wsdm="http://ibm.com/2006/v1.3">
WebSphere:name=EjbClient,process=server1,Application=jms-client,platform=dynamicproxy,J2EEApplication=jms-client,node=
Node01,J2EEName=jms-client#jms-ejb-client.jar#EjbClient,j2eeType=StatelessSessionBean,J2EEServer=server1,Server=server1,version=
7.0.0.0,type=StatelessSessionBean,mbeanIdentifier=jms-client#jms-ejb-client.jar#EjbClient,EJBModule=jms-ejb-client.jar,cell=
Cell01,spec=1.0</was-wsdm:WAS_Resource_MbeanIdentifier>
												<was-wsdm:WAS_Resource_MRID xmlns:was-wsdm="http://ibm.com/2006/v1.3">
ejb:WebSphere:name=EjbClient,process=server1,Application=jms-client,platform=dynamicproxy,J2EEApplication=jms-client,node=
Node01,J2EEName=jms-client#jms-ejb-client.jar#EjbClient,j2eeType=StatelessSessionBean,J2EEServer=server1,Server=server1,version=
7.0.0.0,type=StatelessSessionBean,mbeanIdentifier=jms-client#jms-ejb-client.jar#EjbClient,EJBModule=jms-ejb-client.jar,cell=
Cell01,spec=1.0</was-wsdm:WAS_Resource_MRID>
				</wsa:ReferenceParameters>
									</wsrf-sg:MemberServiceEPR>
								<wsrf-sg:Content/>
								</wsrf-sg:Entry>
								<wsrf-sg:Entry xmlns:wsrf-sg="http://docs.oasis-open.org/wsrf/sg-2">
								<wsrf-sg:ServiceGroupEntryEPR><wsa:Address>http://test.ibm.com:8080/websphere-management/services/service-group-entry</wsa:Address>
								<wsa:ReferenceParameters><muse-wsa:ResourceId xmlns:mus-wsa="http://ws.apache.org/muse/addressing"<MuseResource-97</muse-wsa:
ResourceId></wsa:ReferenceParameters>				
								</wsrf-sg:ServiceGroupEntryEPR>
					<wsrf-sg:MemberServiceEPR>
								<wsa:Address>http://test.ibm.com:8080/websphere-management/services/datasource</wsa:Address>
				<wsa:ReferenceParameters>
										<was-wsdm:WAS_Resource_ManagedNodeID xmlns:was-wsdm="http://ibm.com/2006/v1.3"/>
										<was-wsdm:WAS_Resource_Type xmlns:was-wsdm="http://ibm.com/2006/v1.3">datasource</was-wsdm:WAS_Resource_Type>
										<was-wsdm:WAS_Resource_MbeanIdentifier xmlns:was-wsdm="http://ibm.com/2006/v1.3">WebSphere:name=Default Datasource,process=
server1,platform=dynamicproxy,node=Node01,JDBCProvider=Derby JDBC Provider,diagnosticProvider=true,j2eeType=JDBCDataSource,J2EEServer=
server1,Server=server1,version=7.0.0.0,type=DataSource,mbeanIdentifier=cells/Cell01/nodes/Node01/servers/server1/resources.xml#DataSource_1,
JDBCResource=Derby JDBC Provider,cell=Cell01,spec=1.0</was-wsdm:WAS_Resource_MbeanIdentifier>
										<was-wsdm:WAS_Resource_MRID xmlns:was-wsdm="http://ibm.com/2006/v1.3">datasource:WebSphere:name=Default Datasource,process=
server1,platform=dynamicproxy,node=Node01,JDBCProvider=Derby JDBC Provider,diagnosticProvider=true,j2eeType=JDBCDataSource,J2EEServer=
server1,Server=server1,version=7.0.0.0,type=DataSource,mbeanIdentifier=cells/Cell01/nodes/Node01/servers/server1/resources.xml#DataSource_1,
JDBCResource=Derby JDBC Provider,cell=Cell01,spec=1.0</was-wsdm:WAS_Resource_MRID>
					</wsa:ReferenceParameters>
										</wsrf-sg:MemberServiceEPR>
									<wsrf-sg:Content/>
									</wsrf-sg:Entry>
					</wsrf-rp:GetResourcePropertyResponse>
</env:Body>
</env:Envelope>
Dieses Beispiel veranschaulicht, wie die Metrik "concurrentRequests" von einer Servletressource angefordert wird. Die Ressource, die hier von Interesse ist, ist als Referenzparameter im SOAP-Header angegeben. Diese Parameter sind in Fettschrift hervorgehoben.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header>
        <wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://test.ibm.com:8080/websphere-management/services/servlet</wsa:To>
        <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/
GetResourcePropertyRequest</wsa:Action>
        <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:2737b4e1-31af-5b0d-cb6e-17e2c812ffbb</wsa:MessageID>
        <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
        <wsa:Address>http://www.w3.org/2005/08/addressing/role/anonymous</wsa:Address>
        </wsa:From>
        <wsa-wsdm:WAS_Resource_ManagedNodeID xmlns:wsa="http://www.w3.org/2005/08/addressing" wsa:IsReferenceParameter=
"true" xmlns:was-wsdm="http://ibm.com/2006/v1.3">
<was-wsdm:WAS_Resource_Type xmlns:wsa="http://www.w3.org/2005/08/addressing" wsa:IsReferenceParameter="true" xmlns:was-wsdm=
"http://ibm.com/2006/v1.3">
        servlet</was-wsdm:WAS_Resource_Type>

<was-wsdm:WAS_Resource_MbeanIdentifier xmlns:wsa="http://www.w3.org/2005/08/addressing" wsa:IsReferenceParameter="true"
 xmlns:was-wsdm="http://ibm.com/2006/v1.3">WebSphere:WebModule=WSDMUtil.war,name=ejb,process=server1,Application=
wsdm-util,platform=dynamicproxy,J2EEApplication=wsdm-util,node=Node01,J2EEName=wsdm-util#WSDMUtil.war#ejb,j2eeType=
Servlet,J2EEServer=server1,Server=server1,version=7.0.0.0,type=Servlet,mbeanIdentifier=wsdm-util#WSDMUtil.war#ejb,cell=
Cell01,spec=1.0</was-wsdm:WAS_Resource_MbeanIdentifier>

<was-wsdm:WAS_Resource_MRID xmlns:wsa="http://www.w3.org/2005/08/addressing" wsa:IsReferenceParameter="true" xmlns:was-wsdm=
"http://ibm.com/2006/v1.3">servlet:WebSphere:WebModule=WSDMUtil.war,name=ejb,process=server1,Application=wsdm-util,platform=
dynamicproxy,J2EEApplication=wsdm-util,node=Node01,J2EEName=wsdm-util#WSDMUtil.war#ejb,j2eeType=Servlet,J2EEServer=server1,Server=
server1,version=7.0.0.0,type=Servlet,mbeanIdentifier=wsdm-util#WSDMUtil.war#ejb,cell=Cell01,spec=1.0</was-wsdm:WAS_Resource_MRID>
    
    <soap:Body>
<wsrf-rp:GetResourceProperty xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2" xmlns:servlet=
"http://www.ibm.com/xmlns/prod/websphere/management/j2ee/servlet">servlet:ConcurrentRequests</wsrf-rp:GetResourceProperty>
    </soap:Body>
		</soap:Envelope>
Dieses Beispiel zeigt die Serverantwort. Die genaue Ressource ist im SOAP-Header angegeben, und die Metrik ist im SOAP-Hauptteil (Body) enthalten.
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
xmlns:soapenc="http://www.w3.org/2003/05/soap-encoding" 
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:xsd="http://www.w3.org/20001/XMLSchema-instance">
<env:Header>
<wsa:To>http://www.w3.org/2005/08/addressing/role/anonymous</wsa:To>
<wsa:Action>http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyResponse</wsa:Action>
<wsa:MessageID>uuid:91400c29-8c50-9f62-7df2-1bb0212083f1</wsa:MessageID>
<wsa:RelatesTo RelationshipType="wsa:Reply">uuid:2737b4e1-31af-5b0d-cb6e-17e2c812ffbb</wsa:RelatesTo>
<wsa:From>
<wsa:Address>http://test.ibm.com:8080/websphere-management/services/servlet</wsa:Address>
<wsa:ReferenceParameters>
<was-wsdm:WAS_Resource_ManagedNodID xmlns:was-wsdm="http://ibm.com/2006/v1.3" IsReferenceParameter="true"
<was-wsdm:WAS_Resource_Type xmlns:was-wsdm="http://ibm.com/2006/v1.3" IsReferenceParameter="true">servlet</was-wsdm:WAS_Resource_Type>
<was-wsdm:WAS_Resource_MbeanIdentifier xmlns:was-wsdm="http://ibm.com/2006/v1.3" IsReferenceParameter="true">
WebSphere:WebModule=WSDMUtil.war,name=ejb,process=server1,Application=wsdm-util,platform=dynamicproxy,J2EEApplication=wsdm-util,node=
Node01,J2EEName=wsdm-util#WSDMUtil.war#ejb,j2eeType=Servlet,J2EEServer=server1,Server=server1,version=7.0.0.0,type=
Servlet,mbeanIdentifier=wsdm-util#WSDMUtil.war#ejb,cell=Cell01,spec=1.0</was-wsdm:WAS_Resource_MbeanIdentifier>
<was-wsdm:WAS_Resource_MRID xmlns:was-wsdm="http://ibm.com/2006/v1.3" IsReferenceParameter="true">servlet:WebSphere:WebModule=
WSDMUtil.war,name=ejb,process=server1,Application=wsdm-util,platform=dynamicproxy,J2EEApplication=wsdm-util,node=Node01,J2EEName=
wsdm-util#WSDMUtil.war#ejb,j2eeType=Servlet,J2EEServer=server1,Server=server1,version=7.0.0.0,type=Servlet,mbeanIdentifier=
wsdm-util#WSDMUtil.war#ejb,cell=Cell01,spec=1.0</was-wsdm:WAS_Resource_MRID>
</wsa:ReferenceParameters>
</wsa:From>
<wsa:RelatesTo>uuid:2737b4e1-31af-5b0d-cb6e-17e2c812ffbb</wsa:RelatesTo>
</env:Header>
<env:Body>
<wsrf-rp:GetResourcePropertyResponse xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
<servlet:ConcurrentRequests 
xmlns:servlet="http://www.ibm.com/xmlns/prod/websphere/management/j2ee/servlet>11</servlet:ConcurrentRequests>
</wsrf-rp:GetResourcePropertyResponse>
</env:Body>
</env:Envelope>

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_wsdmresmonitor
Dateiname:twbs_wsdmresmonitor.html