WS-Addressing information in the local environment

WS-Addressing header information can be placed in the local environment tree where it is visible to a message flow. WS-Addressing header information is only processed by the SOAP nodes.

Inbound messages

Inbound information is placed in the local environment by the SOAP node only if addressing is engaged on the node and you select the Place WS-Addressing Headers into LocalEnvironment property on the SOAPInput, SOAPAsyncResponse, or SOAPRequest nodes.

The following table describes the node specific WS-Addressing information in the local environment tree.

Node Populates local environment property
SOAPInput LocalEnvironment.SOAP.Input.WSA.type
SOAPAsyncResponse LocalEnvironment.SOAP.Response.WSA.type
SOAPRequest LocalEnvironment.SOAP.Request.WSA.type

Where type is the structure of the subsection of the local environment WS-Addressing XML schema. For details about how type maps to the WS-Addressing properties defined by the WS-Addressing specification, see the Local environment property type section of this topic.

The local environment information for inbound messages is for your information only. If you engage addressing on the node, and select the Place WS-Addressing Headers into LocalEnvironment property on the node, WS-Addressing information is available for you to look at and use in your flow. The WS-Addressing properties are placed in the local environment after processing by the node. Note that the WS-Addressing folder and all its children are owned by an XMLNSC parser, therefore you can copy elements directly into any other tree that is owned by an XMLNSC parser. However, be aware that if you copy this folder (or any of its children) to a tree that is not owned by an XMLNSC parser, information in the tree is discarded unless you create an XMLNSC parser in the target tree first. This behavior can occur if you, for example, copy from the InputLocalEnvironment tree to the OutputLocalEnvironment tree.

Outbound messages

You can place outbound WS-Addressing header information in the local environment; however, this practice is necessary only to override the defaults that are generated by the node automatically . Outbound addressing headers are created only if WS-Addressing is enabled on the node.

The following table describes the node specific WS-Addressing information in the local environment tree that can be used to override the defaults for outbound messages.

Node Populates local environment property
SOAPReply LocalEnvironment.Destination.SOAP.Reply.WSA.type
SOAPRequest LocalEnvironment.Destination.SOAP.Request.WSA.type
SOAPAsyncRequest LocalEnvironment.Destination.SOAP.Request.WSA.type

Where type is the structure of the subsection of the local environment WS-Addressing XML schema. For details about how the type maps to the WS-Addressing properties defined by the WS-Addressing specification, see the Local environment property type section of this topic.

You can modify local environment information for outbound messages. The SOAPReply, SOAPRequest, and SOAPAsyncRequest nodes generate default local environment settings that you can override. One exception to this table is that any attempt to override the WS-Addressing ReplyTo address on the SOAPAsyncRequest node is ignored.

For example, the following code shows how to set WS-Addressing information in the local environment for the SOAPRequest node. The WS-Addressing ReplyTo.Address and FaultTo.Address values should be entered as a single string, without line breaks.
	SET OutputRoot = InputRoot;
	SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.To.Address = 'jms:jndi:INPUTQ';
	SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.ReplyTo.Address = 'jms:jndi:RESPONSEQ?jndiConnectionFactoryName=QCF&
jndiInitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory&
jndiURL=file://C:/SOAPJNDIBindings';
	SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.From.Address = 'jms:jndi:INPUTQ';
	SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.FaultTo.Address = 'jms:jndi:RESPONSEQ?jndiConnectionFactoryName=QCF&
jndiInitialContextFactory=com.sun.jndi.fscontext.RefFSContextFactory&
jndiURL=file://C:/SOAPJNDIBindings';
	SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.Action = 'http://WMB_BankImport/NewOperation';
	SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.MessageID = 'test:my:msg:ID:1234578';
	SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.Version = 'Submission-2004/08';

Local environment property type

The local environment property type in the preceding tables corresponds to the WS-Addressing part of the local environment XML schema. The following table shows the corresponding message addressing properties (MAPs) of the WS-Addressing local environment schema for all nodes.
Element Corresponds to abstract WS-Addressing MAP name
To [destination endpoint]
From [source endpoint]
ReplyTo [reply endpoint]
FaultTo [fault endpoint]
Action [action]
MessageId [message id]
RelatesTo [relationship]
ReferenceParameters [reference parameters]
Version This element does not correspond to a MAP, but it is used to identify the version of WS-Addressing. The two main versions of WS-Addressing are Submission and Final. The default version that is used by all nodes is Final. Therefore, for outbound messages, set this element only if you want the version to be Submission. In the code example, the version is set to Submission by the inclusion of 'Submission-2004/08' in the element. For incoming messages, this element is populated automatically with the version of the WS-Addressing headers that the inbound message used.

For more details about the message addressing properties defined by the WS-Addressing specification, see What is WS-Addressing?.

For outbound WS-Addressing, you can set an additional local environment property.

Element Description
AddMustUnderstandAttribute This element places the SOAP mustUnderstand attribute on each WS-Addressing header before the message is sent.