IBM Integration Bus, Version 9.0.0.8 Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

See information about the latest product version

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.

The node first looks at the 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.

When the main MAPs are generated, the node looks in several places to obtain various pieces of context information to send in a <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.


ac64530_.htm | Last updated Friday, 21 July 2017