Verwenden Sie die Eigenschaft enableTransactionalOneWay, um sicherzustellen,
dass unidirektionale JAX-RPC-Web-Service-Anforderungen über den
IBM® proprietären JMS-Transport
transaktionsgesteuert an die Zielwarteschlange bzw. das Zieltopic gesendet werden.
Informationen zu diesem Vorgang
Veraltetes Feature: Ab WebSphere Application Server 7.0
ist das IBM proprietäre
Protokoll "SOAP over JMS" veraltet und wird durch das aufstrebenden Industriestandardprotokoll
ersetzt. Sie können das IBM proprietäre Protokoll "SOAP over JMS" zwar für Ihre
JAX-WS- (Java™ API
for XML Web Services) oder JAX-RPC-Web-Services verwenden, aber es wird empfohlen, den Protokollstandard "SOAP over JMS" zu verwenden. Diese Task
beschreibt die Konfiguration einer permanenten Antwortwarteschlange bei der Verwendung des IBM proprietären SOAP-over-JMS-Transports.
Weitere Informationen zum Standard "SOAP over JMS§ finden Sie in der Dokumentation zur Verwendung von SOAP over JMS
für den Transport von Web-Services.
depfeat
Wenn Sie JMS für die Übertragung von Web-Service-Anforderungen 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 Web-Service-Anforderungen auftreten können.
Sie können jedoch festlegen, dass unidirektionale Anforderungen innerhalb der Transaktion
verarbeitet werden. Mit der Eigenschaft enableTransactionalOneWay
kann sichergestellt werden, dass unidirektionale Web-Service-Anforderungen, die den JMS-Transport verwenden,
transaktionsgesteuert an die Zielwarteschlange bzw. das Zieltopic gesendet werden.
Wenn die Clientanwendung die unidirektionale 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
- Sie können die Eigenschaft enableTransactionalOneWay über das Programm im
JAX-RPC-Stub oder Call-Objekt des Clients setzen.
Wenn Sie einen statischen Stub für den Aufruf der Web-Service-Operation verwenden, setzen Sie
die Eigenschaft enableTransactionalOneWay
im Stub-Objekt, bevor Sie die Web-Service-Methode aufrufen. Wenn Sie ein Call-Objekt zum Aufruf der
Web-Service-Operation verwenden, setzen Sie die Eigenschaft
enableTransactionalOneWay im Call-Objekt, bevor Sie die Methode invokeOneWay() aufrufen.
Service service = /* Gewünschten Service abrufen */
MyStub stub = service.getPort();
/* Eigenschaft enableTransactionalOneWay im Stub setzen */
stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY, new Boolean(true));
/* Unidirektionale Operation aufrufen */
stub.myOneWayOperation("Parm1");
Der Wert der Eigenschaft ist ein boolescher Wert (true/false).
- Legen Sie die Eigenschaft enableTransactionalOneWay mit dem Befehl wsadmin
als angepasste Eigenschaft in der Implementierungsdeskriptordatei ibm-webservicesclient-bnd.xmi fest.
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 so konfiguriert ist, dass unidirektionale Anforderungen transaktionsgesteuert
aufgerufen werden, wenn der JMS-Transport verwendet wird.
Nächste Schritte
Nachdem Sie die Eigenschaft
enableTransactionalOneWay aktiviert haben, führen Sie die Clientanwendung aus.