Der SOAPAsyncRequest-Knoten kann HTTP- oder JMS-Transport verwenden. Er ist unter Verwendung einer eindeutigen Kennung zur Korrelierung der Antwortnachrichten mit der ursprünglichen Anforderung mit einem SOAPAsyncResponse-Knoten zu einem Paar verknüpft.
Der SOAPAsyncRequest-Knoten sendet
eine Web-Service-Anforderung, wartet jedoch nicht auf den Empfang der entsprechenden
Web-Service-Antwort. Aufgrund dieser asynchronen Funktionalität können mehrere abgehende Anforderungen nahezu zeitgleich ausgeführt werden, da die abgehenden Anforderungen nicht auf eine Antwort warten müssen. Die Web-Serviceantwort wird vom SOAPAsyncResponse-Knoten empfangen, der sich in einem separaten Nachrichtenfluss befinden kann.
Bei Verwendung des HTTP-Transports unterstützt der
SOAPAsyncRequest-Knoten zwei Verfahren zur Anforderung asynchroner Operationen:
- Die Antwort wird über WS-Addressing an den paarigen
SOAPAsyncResponse-Knoten geleitet. Der
SOAPAsyncRequest-Knoten wartet vor der Fortsetzung des
Nachrichtenflusses auf die HTTP 202-Bestätigung. Erhält der
SOAPAsyncRequest-Knoten diese Bestätigung nicht,
blockiert er den Nachrichtenfluss. Der Back-End-Server stellt eine neue HTTP-Verbindung her, um dem
SOAPAsyncResponse-Knoten zu antworten. Dies
ist das Standardverhalten.
- Es wird eine asynchrone HTTP-Anforderung/Antwort verwendet. Wenn die
SOAPAsyncRequest-Eigenschaft Asynchrone
HTTP-Anforderung/Antwort verwenden ausgewählt ist, übergibt der
SOAPAsyncRequest-Knoten das HTTP-Socket an den paarigen
SOAPAsyncResponse-Knoten, damit der Back-End-Server über
dasselbe Socket antworten kann. Ist diese Option ausgewählt, werden
WS-Addressing-Header gesendet, die jedoch nicht vom Back-End-Server verstanden werden müssen. Die
WS-Addressing-Header sind nicht als 'mustUnderstand' markiert und der replyTo-Header ist auf
'anonymous' gesetzt. Der Knoten verwendet deshalb asynchrone HTTP-Socketbehandlung statt
WS-Addressing, um HTTP-Anforderungen zu stellen und eine asynchrone Antwort zu empfangen.
Normalerweise sollten Sie für Anforderungen asynchroner Operationen über den
SOAPAsyncRequest-Knoten mit HTTP-Transport das HTTP-Antwortverfahren für Anforderungen asynchroner Operationen wählen. Hierfür muss die SOAPAsyncRequest-Knoteneigenschaft Use
HTTP asynchronous request-response (HTTP-Antwort auf Anforderung einer asynchronen Operation verwenden) ausgewählt sein.
In den folgenden Fällen empfiehlt es sich allerdings unter Umständen, anstelle von Anforderungen asynchroner Operationen über den
SOAPAsyncRequest-Knoten die WS-Adressierung zu verwenden:
- Wenn über die WS-Adressierung ausdrücklich der Header 'replyTo' für die Antwortnachricht festgelegt werden soll.
- Falls der Back-End-Server eine lange Latenzzeit aufweist, ist möglicherweise die Verwendung der WS-Adressierung anstelle des HTTP-Antwortverfahrens für Anforderungen asynchroner Operationen ratsam, damit das HTTP-Socket nicht so lange geöffnet bleibt.
Wenn Sie bei Verwendung des HTTP-Transports anstelle des HTTP-Antwortverfahrens für Anforderungen asynchroner Operationen die WS-Adressierung verwenden möchten, müssen Sie darauf achten, dass die
SOAPAsyncRequest-Knoteneigenschaft
Use
HTTP asynchronous request-response nicht ausgewählt ist. Hierbei handelt es sich um das Standardverhalten des
SOAPAsyncRequest-Knotens.