17 Oct Sequencing in Tibco BW
Processing messages in a sequence can be a common requirement in day to day scenarios.
Let’s consider various scenarios in for this requirement
- Critical Section
- Sequencing Key
- Using Number of Sessions in JMS Queue RCVR
- Max Jobs in TIBCO Administrator
Critical Section for Sequencing:-
One of the solutions to achieve sequencing in TIBCO BW. Basically Critical section is used to synchronize process instances so that only one process instances executes the activities inside the group but if the whole implementation is inside the group it pushes all the processes instances to execute in a sequential manner.
Business Works allows you to specify a sequencing key on process starters and control sequential process execution. Process instances with sequencing keys that evaluate to the same value are executed in an order they are received. Process instances with different sequencing key values can be executed concurrently or parallelly
For example: considering an Account number as sequencing key then all the Transactions related to a single value of Account Number will be executed in sequence and unique Account Numbers will be executed In parallel.
Using Number of sessions in JMS Queue RCVR
With various Acknowledgment modes available in JMS Pallete in Business works, one of the acknowledgement mode allows to control the number of sessions to be created concurrently. With having number of sessions as 1 it creates only one job at a time.
Considering a scenario where there are 5 messages on a queue and then each messages is received at a time and processed. The next message is only received when the earlier one is completed processing.
Max Jobs in TIBCO Administrator
Once the application or ear is deployed TIBCO Administrator allows to control the maximum number of process instances in memory as well as the maximum number of concurrently executing process instances.
One way of achieving sequencing is by using these settings to make sure they are sequentially executed in the order created.
Set the Max Jobs = 1 and check the Use Activation Limit
Having the max jobs set to one ensures only one job for the process instance is created in memory.