WS-Addressing with the SOAPAsyncRequest and SOAPAsyncResponse nodes
The remote web service must understand WS-Addressing to be able to work with SOAPAsyncRequest and SOAPAsyncResponse nodes.
The SOAPAsyncRequest and SOAPAsyncResponse nodes require WS-Addressing; therefore, the remote web service must understand WS-Addressing to process the WS-Addressing headers that are sent from the SOAPAsyncRequest node, and to allow the response to be sent back to the corresponding SOAPAsyncResponse node, which is specified in the address
property of the ReplyTo
Message Addressing Property (MAP).
SOAPAsyncRequest node
The SOAPAsyncRequest node has a property called Use WS-Addressing that is read-only and has a default value of true, indicating that WS-Addressing is mandatory for this node. This property has the effect of permanently engaging WS-Addressing for this node and cannot be changed by the node, or by the WSDL that is used to configure this node.
Destination.SOAP.Request.WSA
folder in the local environment. If this folder is empty, the node automatically generates all required WS-Addressing MAPs in the outgoing message, using the following default values:Action
, from the WSDL configuration file. If this value is not specified explicitly, the default value is defined by the WSDL Binding specification.To
, from the Web Service URL node property.ReplyTo
, the address of the corresponding SOAPAsyncResponse node.MessageID
, a unique UUID is used.
If the Destination.SOAP.Request.WSA
folder in the local environment is not empty, any user-supplied MAPs override the default ones listed previously on a property by property basis.
However, because of the nature of the SOAP asynchronous node pair, you cannot specify the address
property of the ReplyTo
Message Exchange Program (MEP), and this property is ignored if specified.
<wmb:context>
element under the ReferenceParameters
section of the ReplyTo
endpoint reference. If these locations exist and are not empty, the following additional information is added to the <wmb:context>
:Destination.SOAP.Request.UserContext
This information is added under a subfolder called
UserContext
.Destination.SOAP.Reply.ReplyIdentifier
This information is added under a subfolder called
ReplyID
.
Use the user context to specify an arbitrary amount of data that will be sent with the message from the SOAPAsyncRequest node to the SOAPAsyncResponse node. By using the user context, you can pass state from one node to the other. Ensure that the amount of data that you send is small because this data is placed in the message.
Use the reply identifier to automatically correlate a SOAPInput node in the flow that contains the SOAPAsyncRequest node, with a SOAPReply node in the flow that contains the SOAPAsyncResponse node.
SOAPAsyncResponse node
After the response to the request is received, the SOAPAsyncResponse node can remove all WS-Addressing headers from the response message and places them in the SOAP.Response.WSA
folder so that you can query the headers, if you select the node property Place WS-Addressing headers in local environment.
If the response message contains a user context that was specified by the SOAPAsyncRequest node, the user context is placed in the SOAP.Response.UserContext
folder in the local environment.
If the response message contains a reply identifier that was specified by the SOAPAsyncRequest node, the reply identifier is placed in the Destination.SOAP.Reply.ReplyIdentifier
folder in the local environment.