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.
Informationen zu diesem Vorgang
Führen Sie zum Erstellen eines WSDM-Monitors die folgenden Schritte aus:
- 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 |
- 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.
- 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;
}
}
- 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);
- 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();
- 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
- 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>
- 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>