Create a monitor for WAS for WSDM resources (deprecated)


 

+

Search Tips   |   Advanced Search

 

Note: Web Services Distributed Management (WSDM) is a deprecated feature in WAS ND v7.0

The Web Services Distributed Management (WSDM) monitoring support provided in the V6.1 Feature Pack for Web Services uses an external management software. It is, however, more useful to build a custom WAS monitor for WSDM. Use this task to create a WSDM monitor that is based on the Java API for XML Web Services (JAX-WS) model.

The Web Services Distributed Management (WSDM) is a deprecated feature in WAS ND. This task topic and the related links for WSDM topics are not going to be updated beyond V7.0. Instead of using WSDM, we can administer the Web services applications with the admin console or scripting.

IBM WAS supports...

Complete the following steps to create a WSDM monitor:

  1. Retrieve the relative URLs.

    The following table contains a list of URLs that we can use to retrieve the WSDL files for each supported resource that is in WAS ND.


    Table 1. Relative URLs to WSDM WSDL files

    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 Java Beans /websphere-management/services/ejb?wsdl
    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

  2. 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. Use the IBM Rational Application Developer or wsimport command utility for this task. Run the wsimport utility against the retrieved WSDL file.

    At a minimum, WSDL files for the service group resource and the resource that you want must be compiled. When you finish this step, we have created the client code used to communicate with the service provider, which is the WSDM service endpoint.

  3. 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;
      }
    }   
    
    

  4. 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:9082 WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9082”);
        
    
    // 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);

  5. 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 appserver that is installed on a local machine and it is servicing HTTP requests on port 9082.

    Initialize WSDM client

    // Instantiate the client and instruct it to poll
    
    // the server at localhost:9082 
    WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9082”);
        
    
    // Get a list of all available resources 
    List<EntryType> entries = wjc.getResources();
    
    

  6. 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 we 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;
      }
    }
    
     
    
    We might want to expand this example to find a particular resource instead of finding the first available servlet. To complete this action, we 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#myServlet, 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. Poll resources for statistics. Finally, we 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>
    

  8. Obtain statistics. Use the following code example to poll for the concurrent requests property. Then, we 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

we have created a custom WSDM monitor that we can use to manage and control resources.

Use the code examples to help you in creating the custom monitor, including the SOAP conversation code example.

In addition to these code examples, there is a built-in code sample in WAS that we 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>


Web Services Distributed Management
Web Services Distributed Management resource management
WSDM manageability capabilities for WAS resource types
Web Services Distributed Management support in the appserver
Web Services Distributed Management in a standalone appserver instance
Web Services Distributed Management in an ND cell
Web Services Distributed Management in an administrative agent environment
Notifications from the appserver Web Services Distributed Management resources

 

Related information


Rational Application Developer documentation