How to enable dynamic invocation of an endpoint with an
unwired Java™ Message Service (JMS) data
binding import, using SMO. This information also applies to MQ JMS
binding and Generic JMS binding.
Introduction
You can invoke services by
using endpoints that are different to those specified in the import.
For JMS bindings, you can specify a dynamic endpoint using a URI that
conforms to the JMS URI standard.
Figure 1. Illustration
of endpoint override by dynamic invocation using SMO, with an unwired
import
You create a mediation module that includes the dynamic
endpoint, by performing tasks in WebSphere® Integration Developer.
Representing the JMS endpoint
The JMS endpoint
used in the dynamic invocation is structured according to the JMS
URI standard.
In summary, the standard requires that JMS URIs
have the form:

>>-scheme--:--jms-variant--:--jms-dest--?--parameter-----------><
- scheme
- The scheme for a JMS URI will always be jms.
- jms-variant
- The jms-variant provides more information about the JMS connection,
for example by using the variant jndi.
- jms-dest
- This identifies the JMS destination object, and should correspond
to the jms-variant.
- parameter
- Parameter is a key value pair separated by "=". The only key supported
is "jndiConnectionFactoryName". The value of this key should be the
jndi name of the connection factory. Usage of this parameter is optional.
Managing security
The JMS Connection Factory
uses application managed security. It does not use container managed
security. This means that you must set the component managed authentication
alias.
An example of a valid JMS URI would be:
jms:jndi:MyTargetQueueName?jndiConnectionFactoryName=MyConnectionFactoryName
The
input name for the send destination, and the connection factory, must
already be defined in the server.
Creating a dynamic invocation with a JMS endpoint
To
create a mediation module that includes the dynamic endpoint, perform
the following tasks:
- Create the Mediation Module, containing an Export, a mediation
flow component, and an unwired JMS Import. The export is of any type.
- Connect the Mediation Module import to static SvcProvider 1.
- Create SvcProvider 2.
- Check that SvcProvider 1 and SvcProvider 2 have the same port
type.
- Check that the Import is configured to route messages to SvcProvider
1.
- Check that the callout node has dynamic endpoint invocation override
enabled.
- Deploy the modules to the server.
Using dynamic invocation
Dynamic invocation
takes place when the export is invoked with a message containing a
target import, and routing criteria that resolve to SvcProvider 2.
The mediation flow component extracts the endpoint from the message,
and puts it into the SMO, using a message element setting primitive.
The mediation flow component extracts the target import from the message,
and puts it into the SMO, using a message element setting primitive.
The callout uses information from the SMO to invoke SvcProvider 2.
Any response is returned by the response flow to the caller of export.
A
one-way invocation message works the same way as a two-way message,
except that no response message is returned.
A runtime exception
occurs when any one of three conditions is true:
- The URI has invalid syntax.
- The target import specified does not exist.
- SvcProvider 2 is not available.
A runtime exception thrown by the import is returned in the
response flow.