TIBCO | JMS Queues configuration

In previous post we check how dynamic queues are created, in this post we will be checking how to configure JMS response queues.

We can replace JMS Queue requester activity with JMS Queue Sender and wait for JMS design pattern. As TIBCO solution is implemented for large enterprises the LOAD balancing is important part. Normally single instance of TIBCO BW application is deployed in TIBCO Admin. For production environments multiple instances of same application are run on different machines for load balancing.
As same code is running on 2 or more instances we have to ensure few points while developing TIBCO BW Project.
  • TIBCO Queue is point to point which means that it listens for only one receiver for queue at a time. If there are multiple queue receivers are present with same queue name then message is received in round-robin fashion.
  • Similarly TIBCO wait for queue message activity is always listens for one receiver at a time. If there are multiple queue receivers are present with same queue name then there are chances of Activity timeout condition. 
  • If project is using JMS Queue Sender and wait for JMS design pattern then wait for JMS reply queue should be service settable.
  • We have to provide different response queue names at PAR(Process Archive) level of deployed configuration for not using same queue names.
  • We also have to design process in such way that no wrong messages are picked by wait of JMS activity in LB configuration.

Step 1 : Create a simple Project with JMS Queue Sender and wait for JMS design pattern.



Note that we have created correlation id(unique random id) while sending message to JMS Queue sender.(As of now i have hard-coded value, we can use custom random function to generate this id)


Pass the same correlation id in input message.


Make a response Queue name service settable as below.

Step 2 : Map the created correlation id from start to Wait for JMS Queue Message.




This plays important role in correlating input message to correct response message. If this not mapped then there are chances of wrong responses are mapped to input messages.

Step 3 : In receiver side pass the same correlation id to JMS Queue sender.


Step 4 : Configure Load Balancing queues at PAR level



As you can see we service settable queues are configured at Process Archive level. This ensures only one receiver to wait for JMS queue message activity. For multi instance configuration PAR level queues should be named according to PAR Name and instance number.

Once we deployed this simple project we can see that there is only one receiver at a time to wait for JMS and correct input message is picked by wait for JMS.


Comments

Popular posts from this blog

Spring | Using TIBCO EMS with Spring framework

TIBCO | For Loop - Accumulate output

TIBCO | JNDI Server & JMS Instance creation