Création d'un moniteur pour WebSphere Application Server pour les ressources WSDM (obsolètes)

La prise en charge du contrôle Web Services Distributed Management (WSDM) fourni dans la Version 6.1 du Feature Pack for Web Services utilise un logiciel de gestion externe. Il est cependant plus utile de générer un moniteur WebSphere Application Server personnalisé pour WSDM. Utilisez cette tâche pour créer un moniteur WSDM basé sur l'interface Java pour le modèle de programmation XML Web Services (JAX-WS).

Avant de commencer

Fonction obsolète Fonction obsolète: Web Services Distributed Management (WSDM) est une fonction obsolète dans le produit. Cette rubrique de tâche et les liens associés pour les rubriques WSDM ne seront pas mis à jour avant la version 7.0. Au lieu d'utiliser WSDM, vous pouvez gérer vos applications de services Web à l'aide de la console d'administration ou de scripts.depfeat
Pratiques recommandées Pratiques recommandées: IBM® WebSphere Application Server prend en charge les modèles de programmation JAX-WS (Java™ API for XML-Based Web Services) et JAX-RPC (Java API for XML-based RPC). JAX-WS représente la future génération du modèle de programmation des services Web qui étend la base du modèle JAX-RPC. L'utilisation du modèle de programmation JAX-WS stratégique simplifie le développement des services et des clients Web par la prise en charge d'un modèle d'annotations normalisé. Bien que le modèle de programmation et les applications JAX-RPC soient toujours pris en charge, vous avez tout avantage à recourir au modèle de programmation JAX-WS, facile à mettre en oeuvre, pour développer de nouvelles applications et de nouveaux clients de services Web. best-practices

Pourquoi et quand exécuter cette tâche

Procédez comme suit pour créer un moniteur WSDM :

Procédure

  1. Récupérez les URL relatives. Le tableau suivant contient une liste des URL que vous pouvez utiliser pour récupérer les fichiers WSDL (Web Services Description Language) pour chaque ressource prise en charge du produit.
    Tableau 1. URL relatives aux fichiers WSDL de WSDM. Utilisez cette liste d'URL pour récupérer les fichiers WSDL (Web Services Description Language) pour chaque ressource prise en charge du produit.
    Ressource URL
    Groupe de services /websphere-management/services/service-group?wsdl
    Application /websphere-management/services/application?wsdl
    Serveur d'applications /websphere-management/services/applicationserver?wsdl
    Source de données /websphere-management/services/datasource?wsdl
    Beans EJB /websphere-management/services/ejb?wsdl
    machine virtuelle Java (JVM) /websphere-management/services/jvm?wsdl
    Servlet /websphere-management/services/servlet?wsdl
    Cluster WebSphere /websphere-management/services/webspherecluster?wsdl
    Domaine WebSphere /websphere-management/services/webspheredomain?wsdl
    Service Web /websphere-management/services/webservices?wsdl
  2. Créez un schéma directeur des fichiers de l'interface de noeud final de service (SEI) pour le client de services Web. Après avoir récupéré les URL relatives, créez un schéma directeur pour les fichiers du SEI en exécutant les outils WSDL à Java contre les fichiers WSDL de WSDM. Vous pouvez utiliser le Rational Application Developer d'IBM ou l'utilitaire de commandes wsimport à cette fin. Exécutez l'utilitaire wsimport contre le fichier WSDL récupéré.
    Important : Au minimum, les fichiers WSDL de la ressource du groupe de services et de la ressource que vous voulez doivent être compilés.
    Lorsque vous avez terminé cette étape, vous avez créé le schéma directeur utilisé pour communiquer avec le fournisseur de services, qui se trouve dans le noeud final de service WSDM.
  3. Inscrivez le schéma pour le client JAX-WS WSDM. Examinez l'exemple de code client JAX-WS WSDM suivant avant d'écrire le code client. L'exemple de code client démontre une implémentation terminée d'un client adapté aux statistiques de sondage pour une ressource. Il est utilisé pour déléguer le paramétrage des références de ressources WS-Addressing et le traitement des requêtes et réponses.

    Exemple de client WSDM JAX-WS

    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;
    	}
    
    	/**
    	 * Obtenez une liste des ressources disponibles dans l'application WSDM
    	 */
    	public List<EntryType> getResources() throws Exception {
    		// Créez un service et obtenez une référence de service
    		ServiceGroupService sgs = new ServiceGroupService();
    		ServiceGroupPortType sgp = sgs.getServiceGroupPort();
    
    		// Créez wsa:Action
    		URI actionUri = new URI(
    				"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    		AttributedURI wsaAction = WSAddressingFactory
    				.createAttributedURI(actionUri);
    
    		// Créez wsa:To et renseigner les paramètres des références
    		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");
    
    		// Remplissez 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);
    
    		// Récupérez une liste des ressources disponibles
    		QName entryQName = new QName("http://docs.oasis-open.org/wsrf/sg-2",
    				"Entry");
    		GetResourcePropertyResponse grpr = sgp.getResourceProperty(entryQName);
    
    		// L'élément list<object> renvoyé doit être converti à un type plus significatif
    		List<Object> inputList = grpr.getAny();
    		List<EntryType> outputList = new ArrayList<EntryType>(inputList.size());
    
    		// Effectuez la conversion élément par élément
    		for (Object obj : inputList) {
    			JAXBElement jbe = (JAXBElement) obj;
    			EntryType entry = (EntryType) jbe.getValue();
    
    			outputList.add(entry);
    		}
    
    		return outputList;
    	}
    
    	/**
    	 * Lire une propriété ou une entrée spécifiée
    	 */
    	public Object getResourceProperty(EntryType entry, QName property)
    			throws Exception {
    		// Créez un service et obtenez une référence de service
    		ServletService rs = new ServletService();
    		ServletPortType rp = rs.getServletPort();
    
    		// Créez wsa:Action
    		URI actionUri = new URI(
    				"http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest");
    		AttributedURI wsaAction = WSAddressingFactory
    				.createAttributedURI(actionUri);
    
    		// Créez wsa:To et renseignez les paramètres de ressources
    		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));
    
    		// Remplissez 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);
    
    		// Récupérez une liste des ressources disponibles
    		GetResourcePropertyResponse response = null;
    		response = rp.getResourceProperty(property);
    
    		// Retour de propriété
    		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);
    	}
    
    	/**
    	 * Extraire l'adresse des ERP
    	 */
    	public String getResourceAddress(EntryType entry) {
    		if (entry == null)
    			return null;
    		else
    			return entry.getMemberServiceEPR().getAddress().getValue();
    	}
    
    	/**
    	 * Les EPR ne peuvent pas être consultés selon leur QName. Cette méthode effectue une recherche linéaire
    	 * de l'EPR pour trouver un paramètre de référence particulier
    	 */
    	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. Créez le moniteur WSDM. L'exemple suivant est utilisé pour interroger un servlet sur le nombre de requêtes auxquelles le servlet répond.

    Moniteur WSDM

    // Instancier le client et lui apprendre à interroger
    // le serveur au niveau de l'hôte local :9080
    WsdmJaxWsClient wjc = nouveau WsdmJaxWsClient(“localhost:9080”);
    		
    // Obtenir une liste de toutes les ressources disponibles
    List<EntryType> entries = wjc.getResources();
    
    // Itérer parmi les ressources disponibles jusqu'à trouver
    // une ressource de servlet
    Servlet EntryType = 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;
    	}
    }
    
    // Demander des statistiques PMI de requêtes simultanées à ce servlet
    Objet servletConcurrentRequests =
    	wjc.getResourceProperty(servlet, J2EEConstants.CONCURRENT_REQUESTS_QNAME);
    
    System.out.println(servletConcurrentRequests);	 
  5. Obtenez une liste des ressources disponibles. L'exemple de client JAX-WS WSDM indiqué dans l'exemple de code 1 du schéma indique une liste de ressources disponibles. La liste est filtrée pour obtenir certaines ressources et certaines statistiques à partir des objets de ces ressources. Dans cette étape, le client est lancé pour un serveur d'applications installé sur une machine locale et révise des requêtes HTTP sur le port 9080.

    Initialisation du client WSDM

    // Instancier le client et lui apprendre à interroger
    // le serveur au niveau de l'hôte local :9080
    WsdmJaxWsClient wjc = nouveau WsdmJaxWsClient(“localhost:9080”);
    		
    // Obtenir une liste de toutes les ressources disponibles
    List<EntryType> entries = wjc.getResources();
  6. Filtrez les ressources disponibles. La liste des ressources retournées par l'appel getResources est longue. Cet appel permet de renvoyer une liste de toutes les ressources actuellement disponibles, pas forcément le type de ressource particulier auquel vous vous intéressez peut-être.

    Filtrage des ressources

    // Itérez parmi les ressources disponibles jusqu'à trouver une ressource de servlet
    Servlet EntryType = 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;
    	}
    }
    
     
    Vous voudrez peut-être étendre cet exemple pour rechercher une ressource particulière au lieu de trouver le premier servlet disponible. Pour mener cette opération à bien, vous devez filtrer à nouveau selon getResourceMBeanID. La chaîne représentant la ressource est similaire à l'exemple de code suivant :

    Exemple de chaîne d'identificateur MBean de ressource

    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. Interrogez les ressources pour les statistiques. Enfin, vous pouvez désormais demander la propriété de la ressource. Une liste des URL disponibles pour une ressource donnée est accessible dans le fichier WSDL du tableau 1. L'exemple suivant est une liste des propriétés d'un servlet :

    Propriétés disponibles pour une ressource de servlet

    <xsd:element name="ServletResourceProperties">
    xsd:complexType>
    	xsd:sequence>
    
    	!--  WSDM MUWS Partie 1 - Identity -->
    	<xsd:element ref="muws1:ResourceId"></xsd:element>
    
    	!--  WSDM MUWS Partie 1 - ManageabilityCharacteristics -->
    	<xsd:element ref="muws1:ManageabilityCapability" minOccurs="0" maxOccurs="unbounded"></xsd:element>
    	
    	!--  WSDM MUWS Partie 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 Partie 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. Obtenez des statistiques. Vous pouvez utiliser l'exemple de code suivant pour interroger la propriété des requêtes simultanées. Puis vous pouvez résoudre la propriété pour un QName et faire passer la propriété au client.

    Obtention de statistiques

    // Demander des statistiques PMI de requêtes simultanées à ce servlet
    Objet servletConcurrentRequests =
    	wjc.getResourceProperty(servlet, nouveau QName(“http://www.ibm.com/xmlns/prod/websphere/management/j2ee/servlet”, “ConcurrentRequests”));
    
    System.out.println(servletConcurrentRequests);

Résultats

Vous avez créé un moniteur WSDM personnalisé que vous pouvez utiliser pour gérer et contrôler les ressources.

Utilisez les exemples de codes pour vous aider à créer votre moniteur personnalisé, notamment l'exemple de code de conversation SOAP.

En plus de ces exemples de codes, il y a un exemple de code intégré dans le produit que vous pouvez utiliser pour récupérer les statistiques d'une ressource de servlet. Pour exécuter cet exemple, exécutez java –classpath wsdm-demo.jar;<;rép_install_client_léger_jax-ws>/com.ibm.jaxws.thinclient_8.5.0.jar samples.wsdm.servlet.WsdmDemo.

Exemple de conversation SOAP

L'exemple de code suivant démontre comment demander toutes les ressources 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>
Cet exemple est une réponse qui a deux ressources disponibles, représentées sous forme d'éléments wsrf-sg:Entry XML.
<?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>
Cet exemple montre comment demander une mesure de requêtes simultanées à partir d'une ressource de servlet. La ressource en question est indiquée sous forme de paramètres de référence dans l'en-tête SOAP. Ces paramètres apparaissent en caractères gras.
<?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>
Cet exemple est la réponse du serveur. La ressource exacte est identifiée dans l'en-tête SOAP et la mesure est disponible dans le corps 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>

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_wsdmresmonitor
Nom du fichier : twbs_wsdmresmonitor.html