The Web Services Distributed Management (WSDM) monitoring
support provided in the Version 6.1 Feature Pack for Web Services
uses an external management software. It is, however, more useful
to build a custom WebSphere® Application Server monitor
for WSDM. Use this task to create a WSDM monitor that is based on
the Java API for XML Web Services (JAX-WS) programming model.
- Retrieve the relative URLs.
Table 1. Relative URLs to WSDM WSDL files. Use
this list of URLS to retrieve the Web Services Description Language
(WSDL) files for each supported resource that is in the product.
Resource |
URL |
Service group |
/websphere-management/services/service-group?wsdl |
Application |
/websphere-management/services/application?wsdl |
Application server |
/websphere-management/services/applicationserver?wsdl |
Data source |
/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 domain |
/websphere-management/services/webspheredomain?wsdl |
Web service |
/websphere-management/services/webservices?wsdl |
- Create a skeleton code for the service endpoint interface
(SEI) files for the Web services client. After retrieving
the relative URLs, create a skeleton code for the SEI files by running
the WSDL to Java tooling against the WSDM WSDL files. You can use
the IBM Rational Application Developer or wsimport command utility
for this task. Run the wsimport utility against the retrieved WSDL
file.
Important: At a minimum, WSDL files for the service
group resource and the resource that you want must be compiled.
When
you finish this step, you have created the client code that is used
to communicate with the service provider, which is the WSDM service
endpoint.
- Write the code for the JAX-WS WSDM client. Review
the following JAX-WS WSDM client sample code before you start writing
the client code. The sample client code demonstrates a complete implementation
of a client suitable for polling statistics for a resource. It is
used to delegate the setting up of WS-Addressing resource references,
request and response processing.
Sample 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;
}
/**
* Get a list of available resources from WSDM application
*/
public List<EntryType> getResources() throws Exception {
// Create service and obtain service reference
ServiceGroupService sgs = new ServiceGroupService();
ServiceGroupPortType sgp = sgs.getServiceGroupPort();
// Create wsa:Action
URI actionUri = new URI(
"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
AttributedURI wsaAction = WSAddressingFactory
.createAttributedURI(actionUri);
// Create wsa:To and populate reference parameters
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");
// Populate requestContext
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);
// Retrieve a list of available resources
QName entryQName = new QName("http://docs.oasis-open.org/wsrf/sg-2",
"Entry");
GetResourcePropertyResponse grpr = sgp.getResourceProperty(entryQName);
// The returned list<object> must be converted to a more meaningful type
List<Object> inputList = grpr.getAny();
List<EntryType> outputList = new ArrayList<EntryType>(inputList.size());
// Complete the element by element conversion
for (Object obj : inputList) {
JAXBElement jbe = (JAXBElement) obj;
EntryType entry = (EntryType) jbe.getValue();
outputList.add(entry);
}
return outputList;
}
/**
* Read a property of specified entry
*/
public Object getResourceProperty(EntryType entry, QName property)
throws Exception {
// Create service and obtain service reference
ServletService rs = new ServletService();
ServletPortType rp = rs.getServletPort();
// Create wsa:Action
URI actionUri = new URI(
"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
AttributedURI wsaAction = WSAddressingFactory
.createAttributedURI(actionUri);
// Create wsa:To and populate resource parameters
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));
// Populate requestContext
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);
// Retrieve a list of available resources
GetResourcePropertyResponse response = null;
response = rp.getResourceProperty(property);
// Return the property
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);
}
/**
* Extract the ERPs address
*/
public String getResourceAddress(EntryType entry) {
if (entry == null)
return null;
else
return entry.getMemberServiceEPR().getAddress().getValue();
}
/**
* EPRs cannot be looked up by their QName. This method does a linear search
* of the EPR to find a particular reference parameter
*/
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;
}
}
- Create the WSDM monitor. The following example
is used for polling a servlet for the number of requests that the
servlet is responding to.
WSDM monitor
// Instantiate the client and instruct it to poll
// the server at localhost:9080
WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9080”);
// Get a list of all available resources
List<EntryType> entries = wjc.getResources();
// Iterate through available resources until you find
// a servlet resource
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;
}
}
// Request Concurrent Requests PMI statistics from this servlet
Object servletConcurrentRequests =
wjc.getResourceProperty(servlet, J2EEConstants.CONCURRENT_REQUESTS_QNAME);
System.out.println(servletConcurrentRequests);
- Obtain a list of available resources. The sample
JAX-WS WSDM client provided in code example 1 shows a list of available
resources. The list is filtered to obtain some resources and statistics
from these resource objects. In this step, the client is initialized
for an application server that is installed on a local machine and
it is servicing HTTP requests on port 9080.
Initialize WSDM client
// Instantiate the client and instruct it to poll
// the server at localhost:9080
WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9080”);
// Get a list of all available resources
List<EntryType> entries = wjc.getResources();
- Filter the available resources. The list of
resources returned by getResources call is lengthy. This call returns
a list of all resources that are currently available, not necessarily
the particular resource type that you might be interested in.
Filter
resources
// Iterate through available resources until you find a servlet resource
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;
}
}
You might want to expand this example to find a particular
resource instead of finding the first available servlet. To complete
this action, you need to do further filtering based on getResourceMBeanID.
The string representing the resource is similar to the following code
example: Sample resource MBean identifier string
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
- Poll resources for statistics. Finally, you
can now request the resource property. A list of available URLs for
a given resource can be obtained from the WSDL file in Table 1. The
following example is a list of properties for a servlet:
Available
properties for a servlet resource
<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>
- Obtain statistics. You can use the following
code example to poll for the concurrent requests property. Then, you
can resolve the property to a QName and pass the property onto the
client.
Obtain statistics
// Request Concurrent Requests PMI statistics from this servlet
Object servletConcurrentRequests =
wjc.getResourceProperty(servlet, new QName(“http://www.ibm.com/xmlns/prod/websphere/management/j2ee/servlet”, “ConcurrentRequests”));
System.out.println(servletConcurrentRequests);
Results
You have created a custom WSDM monitor that you can use to
manage and control resources.
Use the code examples to help you
in creating your custom monitor, including the SOAP conversation code
example.
In addition to these code examples, there is a built-in
code sample in the product that you can use to retrieve the statistics
for a servlet resource. To execute this sample, run java –classpath
wsdm-demo.jar;<install_root>/runtimes/com.ibm.jaxws.thinclient_7.0.0.jar
samples.wsdm.servlet.WsdmDemo.
Example
SOAP conversation example
Requesting available
resources
The following code example demonstrates how to
request for all available resources.
<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>
Available resources
This
example is a response that has two available resources that are represented
as wsrf-sg:Entry XML elements.
<?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>
Request for concurrentRequests
performance metrics from a servlet resource
This example
shows how to request concurrentRequests metrics from a servlet resource.
The resource that is of interest here is specified as reference parameters
in the SOAP header. These parameters appear in bold font.
<?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>
Number of concurrentRequests response
This
example is the server response. The exact resource is identified in
SOAP header and the metric is available in SOAP body.
<?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>