WSO2 EI Reliable Messaging Part 1

Jenananthan
2 min readFeb 8, 2019

--

Reliable messaging is crucial in many enterprise integration scenarios. This post will illustrate how WSO2 EI can be used achieve guaranteed delivery using a Sample scenario. Here ESB and Broker profile of EI will be used.

Scenario :

Source system will produce messages daily and publish to a queue. There are two target systems which should be integrated with source system. One target system expose a rest API and other target system is capable of consuming the message from its own queue. There can by multiple target system in future which can consume the messages of source system.

There should be a middleware integration to cater this requirement with reliable messaging.

Solution :

  • Inbound Adapter :
    Implementation which will consume the messages produced by the source system and place them in to a topic. Message transformation can be done if necessary, before publishing to the topic.
  • Outbound Adapter :
    This implementation will consume the messages published to the topic by the inbound integration. One outbound integration will consume the message and publish to the target system by calling its rest API and other outbound integration will publish the consumed message to the target system’s queue. Any message transformation needed can be done before calling the target systems.

In future if there a new system to be integrated with the source system , simply new outbound integration can be subscribed to the topic and do the seamless integration with new target system.

Setup (Ubuntu , EI 6.4.0)

  • Enable JMS sender in <EI_HOME>/conf/axis2/axis2.xml to publish to topic and queue from mediation.
  • Make sure <EI_HOME>/conf/jndi.properties has Queue and Topic connection factories configured to Broker profile. This will be used in jms inbound endpoint and jms endpoints in mediation
  • Start the Broker profile
    Navigate to <EI_HOME>/wso2/broker/bin and execute the command sh wso2server.sh
  • Start the ESB profile
    Navigate to <EI_HOME>/bin execute the command sh integrator.sh

--

--