Creación de un supervisor para WebSphere Application Server para recursos WSDM (en desuso)

El soporte de supervisión de WSDM (Web Services Distributed Management) que se proporciona en la versión 6.1 Feature Pack para Web Services utiliza un software de gestión externo. No obstante, es más útil crear un supervisor personalizado de WebSphere Application Server para WSDM. Utilice esta tarea para crear un supervisor que esté basado en el modelo de programación de la API Java para servicios web XML (JAX-WS).

Antes de empezar

Deprecated feature Deprecated feature: WSDM (Web Services Distributed Management) es una característica en desuso en el producto. El tema de esta tarea y los enlaces relacionados para los temas de WSDM no se van a actualizar más allá de la versión 7.0. En vez de utilizar WSDM, puede administrar las aplicaciones de servicios web con la consola administrativa o scripts. depfeat
procedimientos recomendados: IBM® WebSphere Application Server soporta el modelo de programación JAX-WS (Java™ API for XML-Based Web Services) y el modelo de programación JAX-RPC (Java API for XML-based RPC). JAX-WS es la siguiente generación del modelo de programación de servicios que amplía la base proporcionada por el modelo de programación JAX-RPC. Con el modelo de programación JAX-WS estratégico, se simplifica el desarrollo de clientes y servicios web ya que se da soporte a un modelo de anotación basado en estándares. Aunque el modelo de programación JAX-RPC y las aplicaciones siguen recibiendo soporte, puede beneficiarse de la facilidad de implementación del modelo de programación JAX-WS para desarrollar nuevas aplicaciones y clientes de servicios web.

Acerca de esta tarea

Siga los pasos que se indican a continuación para crear un supervisor WSDM:

Procedimiento

  1. Recupere los URL relativos. La tabla siguiente contiene una lista de URL que puede utilizar para recuperar los archivos del lenguaje Web Services Description Language (WSDL) para todo recurso con soporte que esté en este soporte.
    Tabla 1. URL relativos a archivos WSDL WSDM. Utilice esta lista de URL para recuperar archivos WSDL (Web Services Description Language - lenguaje de descripción de servicios web) para todos los recursos con soporte que estén en el producto.
    Resource URL
    Grupo de servicio /websphere-management/services/service-group?wsdl
    Application /websphere-management/services/application?wsdl
    Servidor de aplicaciones /websphere-management/services/applicationserver?wsdl
    Origen de datos /websphere-management/services/datasource?wsdl
    Enterprise JavaBeans /websphere-management/services/ejb?wsdl
    Máquina virtual Java (JVM) /websphere-management/services/jvm?wsdl
    Servlet /websphere-management/services/servlet?wsdl
    Clúster de WebSphere /websphere-management/services/webspherecluster?wsdl
    Dominio de WebSphere /websphere-management/services/webspheredomain?wsdl
    Servicio Web /websphere-management/services/webservices?wsdl
  2. Cree un código de esqueleto para los archivos de la interfaz de punto final de servicio (SEI) para el cliente de servicios web. Tras recuperar los URL relativos, cree un código de esqueleto para los archivos SEI ejecutando las herramientas WSDL en Java contra los archivos WSDM WSDL. Puede utilizar IBM Rational Application Developer o el programa de utilidad de mandatos wsimport para esta tarea. Ejecute el programa de utilidad wsimport contra el archivo WSDL recuperado.
    Importante: Como mínimo, los archivos WSDL para el recurso de grupo de servicio y el recurso que quiera debe estar compilados.
    Cuando termine este paso, habrá creado el código de cliente que se utiliza para comunicar con el proveedor de servicios, que es el punto final de servicio de WSDM.
  3. Escriba el código para el cliente JAX-WS WSDM. Revise el código de ejemplo de cliente JAX-WS WSDM siguiente antes de empezar a escribir el código de cliente. El código de cliente de ejemplo muestra una implementación completa de un cliente adecuado para estadísticas de sondeo para un recurso. Se utiliza para delegar la configuración de referencias de recursos de WS-Addressing, procesamiento de solicitudes y respuestas.

    Cliente WSDM JAX-WS de ejemplo

    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;
    	}
    
    	/**
    	 	 * Obtener una lista de recursos disponibles desde la aplicación WSDM
    	 */
    		public List<EntryType> getResources() throws Exception {
    				// Crear servicio y obtener referencia de servicio
    				ServiceGroupService sgs = new ServiceGroupService();
    				ServiceGroupPortType sgp = sgs.getServiceGroupPort();
    
    				// Crear wsa:Action
    				URI actionUri = new URI(
    										"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    				AttributedURI wsaAction = WSAddressingFactory
    								.createAttributedURI(actionUri);
    
    				// Crear wsa:To y rellenar los parámetros de referencia
    				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");
    
    		// Rellenar 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);
    
    				// Recuperar una lista de recursos disponibles
    				QName entryQName = new QName("http://docs.oasis-open.org/wsrf/sg-2",
    								"Entry");
    				GetResourcePropertyResponse grpr = sgp.getResourceProperty(entryQName);
    
    				// El list<object> devuelto se debe convertir a un tipo con más sentido
    				List<Object> inputList = grpr.getAny();
    				List<EntryType> outputList = new ArrayList<EntryType>(inputList.size());
    
    				// Completar el elemento por conversión de elemento
    				for (Object obj : inputList) {
    						JAXBElement jbe = (JAXBElement) obj;
    						EntryType entry = (EntryType) jbe.getValue();
    
    						outputList.add(entry);
    		}
    
    				return outputList;
    	}
    
    	/**
    	 	 * Leer una propiedad de la entrada especificada
    	 */
    		public Object getResourceProperty(EntryType entry, QName property)
    			throws Exception {
    				// Crear servicio y obtener referencia de servicio
    				ServletService rs = new ServletService();
    				ServletPortType rp = rs.getServletPort();
    
    				// Crear wsa:Action
    				URI actionUri = new URI(
    										"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    				AttributedURI wsaAction = WSAddressingFactory
    								.createAttributedURI(actionUri);
    
    				// Crear wsa:To y rellenar parámetros de recursos
    				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));
    
    		// Rellenar 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);
    
    				// Recuperar una lista de recursos disponibles
    				GetResourcePropertyResponse response = null;
    				response = rp.getResourceProperty(property);
    
    				// Devolver la propiedad
    		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);
    	}
    
    	/**
    	 	 * Extraer la dirección de los ERP
    	 */
    		public String getResourceAddress(EntryType entry) {
    				if (entry == null)
    			return null;
    		else
    						return entry.getMemberServiceEPR().getAddress().getValue();
    	}
    
    	/**
    	 	 * EPRs no se puede buscar por su nombre QName. Este método hace una búsqueda lineal
    	 	 * de EPR para encontrar un parámetro de referencia concreto
    	 */
    		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. Crear el supervisor WSDM. El ejemplo siguiente se utiliza para el sondeo de una servlet para una serie de solicitudes a las que está respondiendo el servlet.

    Supervisor WSDM

    // Instanciar el cliente y hacer que sondee
    // el servidor en localhost:9080
    WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9080”);
    		
    // Obtener una lista de todos los recursos disponibles
    List<EntryType> entries = wjc.getResources();
    
    // Iterar por los recursos disponibles hasta que se encuentre
    // un recurso servlet
    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;
    	}
    }
    
    // Solicitar estadísticas de PMI de solicitudes concurrentes desde este servlet
    Object servletConcurrentRequests =
    		wjc.getResourceProperty(servlet, J2EEConstants.CONCURRENT_REQUESTS_QNAME);
    
    System.out.println(servletConcurrentRequests);	 
  5. Obtener una lista de los recursos disponibles. El cliente JAX-WS WSDM proporcionado en el primer ejemplo de código muestra una lista de recursos disponibles. La lista se filtra para obtener algunos recursos y estadísticas de estos objetos de recurso. En este paso, el cliente se inicializa para un servidor de aplicaciones que esté instalado en una máquina local y que de servicio a solicitudes HTTP en el puerto 9080.

    Inicializar el cliente WSDM

    // Instanciar el cliente y hacer que sondee
    // el servidor en localhost:9080
    WsdmJaxWsClient wjc = new WsdmJaxWsClient(“localhost:9080”);
    		
    // Obtener una lista de todos los recursos disponibles
    List<EntryType> entries = wjc.getResources();
  6. Filtre los recursos disponibles. La lista de recursos devueltos por la llamada getResources es muy larga. Esta llamada devuelve una lista de todos los recursos que están actualmente disponibles, no necesariamente el tipo de recurso concreto en el que esté interesado.

    Recursos de filtro

    // Iterar por los recursos disponibles hasta que se encuentre un recurso de servlet
    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;
    	}
    }
    
     
    Es posible que desee ampliar este ejemplo para buscar un recurso concreto en vez de buscar el primer servlet disponible. Para completar esta acción, tiene que filtrar más en base a getResourceMBeanID. La serie que representa el recurso es parecida al ejemplo de código siguiente:

    Serie del identificador de MBean de recurso de ejemplo

    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. Sondear recursos para estadísticas. Finalmente, ahora puede solicitar la propiedad del recurso. Desde el archivo WSDL de la tabla 1 se puede obtener una lista de los URL disponibles para un recurso dado. El ejemplo siguiente es una lista de propiedades para un servlet:

    Propiedades disponibles para un recurso de servlet

    <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. Obtener estadísticas. Puede utilizar el ejemplo de código siguiente para sondear la propiedad de solicitudes concurrentes. A continuación, puede resolver la propiedad QName y pasar la propiedad al cliente.

    Obtener estadísticas

    // Solicitar estadísticas de PMI de solicitudes concurrentes desde este servlet
    Object servletConcurrentRequests =
    		wjc.getResourceProperty(servlet, new QName(“http://www.ibm.com/xmlns/prod/websphere/management/j2ee/servlet”, “ConcurrentRequests”));
    
    System.out.println(servletConcurrentRequests);	 

Resultados

Ha creado un supervisor WSDM personalizado que puede utilizar para gestionar y controlar recursos.

Utilice los ejemplos de código como ayuda para crear su supervisor personalizado, incluyendo el ejemplo de código de conversación de SOAP.

Además de estos ejemplos de código, hay un ejemplo de código incorporado en el producto que puede utilizar para recuperar las estadísticas para un recurso de servlet. Para ejecutar este ejemplo, ejecute java –classpath wsdm-demo.jar;<directorio_instalación_cliente_ligero_jax-ws>/com.ibm.jaxws.thinclient_8.5.0.jar samples.wsdm.servlet.WsdmDemo.

Ejemplo de conversación SOAP

El siguiente ejemplo de código demuestra cómo hacer una solicitud de todos los recursos disponibles:
<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>
Este ejemplo es una respuesta que tiene dos recursos disponibles que están representados como elementos XML wsrf-sg:Entry.
<?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>
Este ejemplo muestra cómo realizar una solicitud de las medidas de concurrentRequests desde un recurso de servlet. El recurso de interés aquí está especificado como parámetros de referencia en la cabecera SOAP. Estos parámetros aparecen en negrita.
<?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>
Este ejemplo es la respuesta del servidor. El recurso exacto se identifica en la cabecera SOAP y la métrica está disponible en el cuerpo de SOAP.
<?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>

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_wsdmresmonitor
File name: twbs_wsdmresmonitor.html