Verwenden Sie die Eigenschaft enableTransactionalOneWay, um sicherzustellen,
dass unidirektionale und bidirektionale asynchrone Web-Service-Anforderungen, die gemäß Branchenstandard
den Transport "SOAP over JMS" nutzen, transaktionsgesteuert an die Zielwarteschlange bzw. das Zieltopic gesendet werden.
Informationen zu diesem Vorgang
Wenn Sie JMS für die Übertragung von JAX-WS- (Java™ API for XML Web Services) oder JAX-RPC-Web-Service-Anforderungen (Java API
for XML-based RPC) verwenden, wird die
SOAP-Nachricht der Zielwarteschlange bzw. dem Zieltopic standardmäßig ohne Transaktionsunterstützung bzw. außerhalb der
Transaktion der Clientanwendung hinzugefügt.
Die SOAP-Nachricht wird der Zielwarteschlange bzw. dem Zieltopic außerhalb der Transaktion hinzugefügt, um
Synchronisationsprobleme zu vermeiden, die bei bidirektionalen synchronen Web-Service-Anforderungen auftreten können.
Sie können jedoch festlegen, dass unidirektionale und bidirektionale synchrone Anforderungen innerhalb einer Transaktion
verarbeitet werden. Sie können die Eigenschaft enableTransactionalOneWay verwenden, um sicherzustellen, dass unidirektionale und bidirektionale
asynchrone Web-Service-Anforderungen, die den JMS-Transport verwenden, transaktionsgesteuert an die Zielwarteschlange bzw. das Zieltopic gesendet werden.
Wenn die Clientanwendung die Web-Service-Anforderung aufruft,
wird die daraus resultierende SOAP-Anforderungsnachricht innerhalb der Transaktion der Clientanwendung der Zielwarteschlange bzw. dem Zieltopic
hinzugefügt.
Sie können die Eigenschaft enableTransactionalOneWay mit einer der folgenden Methoden aktivieren.
Vorgehensweise
- Setzen Sie die Eigenschaft enableTransactionalOneWay über das Programm. Der Wert der Eigenschaft ist ein boolescher Wert.
- Setzen Sie für JAX-WS-Clients die Eigenschaft im JAX-WS-Clientobjekt RequestContext.
Beispiel:
((BindingProvider) port).getRequestContext().put
(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY,
new Boolean(true));
- Setzen Sie für JAX-RPC-Clients die Eigenschaft im JAX-RPC-Client-Stub- oder -Call-Objekt.
Beispiel:
stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY,
new Boolean(true));
- Setzen Sie für JAX-RPC-Clients die Eigenschaft enableTransactionalOneWay mit dem Befehl wsadmin
als angepasste Eigenschaft in der Implementierungsdeskriptordatei ibm-webservicesclient-bnd.xmi.
Weitere Informationen zu den Optionen für das Tool "wsadmin" finden Sie in den Beschreibungen der Optionen
für die Befehle "install", "installInteractive", "edit",
"editInteractive", "update" und "updateInteractive" des Objekts "AdminApp".
Verwenden Sie das Objekt $AdminApp mit der Option -WebServicesClientCustomProperty, um den Wert der
Eigenschaft in der Clientbindungsdatei ibm-webservicesclient-bnd.xmi zu setzen.
Der Wert der angepassten Eigenschaft enableTransactionalOneWay muss
true oder false sein.
- Mit Jacl:
$AdminApp edit MyApplication {-WebServicesClientCustomProperty
{{MyEJBJar.jar MyEJB service/MyServiceRef MyPort enableTransactionalOneWay
true}}}
- Mit Jython:
AdminApp.edit('MyApplication', ['-WebServicesClientCustomProperty',
[['MyEJBJar.jar', 'MyEJB', 'service/MyServiceRef ', 'MyPort', 'enableTransactionalOneWay',
'true']]])
Ergebnisse
Sie haben eine Web-Service-Clientanwendung, die für den transaktionsgesteuerten Aufruf unidirektionaler und bidirektionaler asynchroner Anforderungen
konfiguriert ist, wenn der JMS-Transport verwendet wird.
Nächste Schritte
Nachdem Sie die Eigenschaft
enableTransactionalOneWay aktiviert haben, führen Sie die Clientanwendung aus.