Permanente Antwortwarteschlange für Web-Services über SOAP over JMS konfigurieren

Wenn Sie die bidirektionale Web-Service-Kommunikation über das Industriestandardprotokoll "SOAP over JMS" verwenden, können Sie durch die Konfiguration einer permanenten Antwortwarteschlange in einem JAX-WS- (Java™ API for XML Web Services) oder JAX-RPC-Web-Service-Client (Java API for XML-based RPC) verschiedene Vorteile erzielen. Die Verwendung einer permanenten Antwortwarteschlange kann die Leistung verbessern, weil diese Antwortwarteschlange verhindert, dass der Client bei jedem Aufruf einer Web-Service-Anforderung eine temporäre Antwortwarteschlange erstellen muss.

Informationen zu diesem Vorgang

Eine permanente Antwortwarteschlange kann auf die folgenden Arten in einem Web-Service-Client konfiguriert werden:
  • Geben Sie die optionale Eigenschaft replyToName im URL des JMS-Endpunkts an.
  • Definieren Sie die Antwortwarteschlange über das Programm.
    • Legen Sie für einen JAX-WS-Web-Service-Client den JNDI-Namen der Antwortwarteschlange über das Programm im RequestContext-Objekt des Clients fest. Wenn Sie den JNDI-Namen der Antwortwarteschlange im RequestContext-Objekt festlegen, wirkt sich diese Einstellung auf alle nachfolgenden Anforderungen aus, die über dieses RequestContext-Objekt aufgerufen werden.
    • Legen Sie für einen JAX-RPC-Web-Service-Client den JNDI-Namen der Antwortwarteschlange über das Programm im Stub- oder Call-Objekt des Clients fest. Wenn Sie den JNDI-Namen der Antwortwarteschlange als Stub- oder Call-Eigenschaft definieren, wirkt sich diese Einstellung auf alle Anforderungen aus, die über dieses Stub- bzw. Call-Objekt aufgerufen werden.
  • Legen Sie die Antwortwarteschlange als JVM-Systemeigenschaft (Java) fest. Wenn Sie die Antwortwarteschlange als JVM-Systemeigenschaft definiert, wirkt sich diese Einstellung auf alle Web-Service-Clients aus, die in einer bestimmten JVM ausgeführt werden. Wenn mehrere Clients in derselben JVM ausgeführt werden, die jeweils eine andere Antwortwarteschlange verwenden müssen, funktioniert diese Option nicht. Verwenden Sie stattdessen eine der beiden anderen Optionen.

Wenn Sie die permanente Antwortwarteschlange mit einer dieser Optionen definieren möchten, ist nur eine clientseitige Konfiguration erforderlich. Auf der Seite des Web-Service-Providers ist keine Konfiguration erforderlich.

Verwenden Sie die herkömmlichen Verwaltungsfunktionen des JMS-Messaging-Providers, um die permanente Antwortwarteschlange zu erstellen, bevor Sie die Antwortwarteschlange für den Web-Service-Client konfigurieren.

Vorgehensweise

Konfigurieren Sie den JNDI-Namen der permanenten Antwortwarteschlange mit einer der folgenden Methoden:
  • Geben Sie die optionale Eigenschaft replyToName im URL des JMS-Endpunkts an, z. B.:
    jms:jndi:jms/MyRequestQueue&jndiConnectionFactoryName=jms/MyCF&replyToName=jms/MyReplyQueue
  • Definieren Sie die Antwortwarteschlange über das Programm im Client.
    Der Wert der Eigenschaft ist eine Zeichenfolge und stellt den JNDI-Namen der Antwortwarteschlange dar.
    • Legen Sie für JAX-WS-Web-Service-Clients die Eigenschaft com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME im JAX-WS-Objekt "RequestContext" des Clients fest, z. B.:
      ((BindingProvider) port).getRequestContext().put
      (com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME, "jms/MyReplyQueue");
    • Legen Sie für JAX-RPC-Web-Service-Clients die Eigenschaft com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME im JAX-RPC-Objekt "Stub" oder "Call" des Clients fest, z. B.:
      ((javax.xml.rpc.Stub) stub)._setProperty(com.ibm.wsspi.webservices.Constants.JMS_REPLY_QUEUE_JNDI_NAME, 
      "jms/MyReplyQueue"); 
  • Legen Sie den JNDI-Namen der Antwortwarteschlange als JVM-Systemeigenschaft fest.
    • Geben Sie für einen Java-Clientaufruf den folgenden Code an einer Eingabeaufforderung ein:
      java -Dcom.ibm.websphere.webservices.JMSReplyQueueJndiName=jms/MyReplyQueue
    • Führen Sie für eine JVM, die im Anwendungsserver ausgeführt wird, die folgenden Aktionen aus:
      • Definieren Sie über die Administrationskonsole eine JVM-Systemeigenschaft für den Anwendungsserver, in dem die Web-Service-Clientanwendung ausführt wird.

        Wenn Sie angepasste Eigenschaften festlegen möchten, melden Sie sich an der Administrationskonsole an, und navigieren Sie zur Anzeige mit den angepassten JVM-Eigenschaften (Java Virtual Machine).

        1. Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername> Java- und Prozessverwaltung > Prozessdefinition > Java Virtual Machine > Angepasste Eigenschaften > Neu
        2. Setzen Sie die Eigenschaft Name auf com.ibm.websphere.webservices.JMSReplyQueueJndiName.
        3. Setzen Sie die Eigenschaft Wert auf jms/Permanent_Q.
        4. Klicken Sie auf "OK", um Ihre Änderungen zu speichern.
        5. Klicken Sie auf Änderungen mit Knoten synchronisieren und anschließend auf Speichern.
        6. Starten Sie den Anwendungsserver erneut.

Ergebnisse

Ihr Web-Service-Client kann jetzt SOAP-over-JMS-Nachrichten von einer permanenten Antwortwarteschlange empfangen.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jmspermreplystd
Dateiname:twbs_jmspermreplystd.html