The SMO structure enables dynamic invocation by overriding
the endpoint address or using a target import.
Setting an endpoint address using SMO
The
SMO structure enables overriding of the endpoint address, or uses
a target import as follows:
/headers/SMOHeader/Target/address
/headers/SMOHeader/Target/@bindingType
/headers/SMOHeader/Target/@import
/headers/SMOHeader/AlternateTarget/address
/headers/SMOHeader/AlternateTarget/@bindingType
/headers/SMOHeader/AlternateTarget/@import
- address
- The address field contains the dynamic invocation target service
URI.
- bindingType
- The bindingType provides more details about the URL, indicating
the type of binding used during a dynamic invocation.
- import
- The import field provides the name of a target import to be used
for dynamic invocation.
You can set each of these fields or leave them
unchanged, depending on the dynamic invocation you required. The fields
can be inspected and set using appropriate Mediation Primitives. For
example, the endpoint address of a message might be dynamically overridden
to a service identified by a JMS-based URI, by setting the
Target/address field
to a value similar to:
jms:jndi:MyTargetQueueName?jndiConnectionFactoryName=MyConnectionFactoryName
and
the
Target/@bindingType field to the value:
BINDING_TYPE_JMS
Setting a target import using SMO
A target
import that is pre-configured with connection information can be assigned
dynamically to a reference for the duration of the remote service
invocation. For example, a mediation module might have multiple import
bindings, each with a different login credential for a remote service.
Set
the
Target/@import field to determine which import
instance to use for the service invocation. Using the field
/headers/SMOHeader/Target/@import
avoids
having to use the Custom Mediation primitive, and creating multiple
references and wires for each of the import bindings.