WebSphere Enterprise Service Bus, Version 6.2.0 Operating Systems: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


Dynamic invocation with wired JMS import, using SMO

How to enable dynamic invocation of an endpoint with a wired 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 URL that conforms to the JMS URI standard.
Figure 1. Illustration of endpoint override by dynamic invocation using SMO, with wired import
A message flows through a module and through the import binding to a Web service. Information in the message can override the endpoint dynamically.

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:
Read syntax diagramSkip visual syntax diagram
>>-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:
  1. Create Mediation Module 1, containing an Export, a mediation flow component, and a JMS Import. The export is of any type.
  2. Connect the Mediation Module import to static SvcProvider 1.
  3. Create SvcProvider 2.
  4. Check that SvcProvider 1 and SvcProvider 2 have the same port type.
  5. Check that the callout node has dynamic endpoint invocation override enabled.
  6. Deploy the modules to the server.

Using dynamic invocation

Dynamic invocation takes place when the export is invoked with a message containing routing criteria that resolve to SvcProvider 2. The mediation flow component identifies the routing criteria in the message. The mediation flow component uses the Message Element Setter primitive to set the new target address in the SMO, using the incoming message content and routing criteria. Alternatively, the mediation flow component might use the Business Object Map or XSL Transformation primitives to set the new target address. 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 if an invalid target address is set in the SMO header. The exception is thrown by the import, and returned in the response flow.


reference Reference topic

Terms of use | Feedback


Timestamp icon Last updated: 21 June 2010


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/ref/rwesb_dynamicroutingwithwiredJMSimportUsingSMO.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
This information center is powered by Eclipse technology (http://www.eclipse.org).