What do i like Most in 11g - Sequencing of messages in HL7
By Ramesh Nittur Anantharamaiah-Oracle on Jul 16, 2009
In HealthCare vertical, it is a common practice to exchange the messages in sequence to ensure the business significance.
It is always a challenge to manage the sequencing in a multi-threaded system wherein a message produced first does not mean it will arrive at the destination first.
To ensure the sequencing B2B uses sequencer to sequence the message based on the arrival time, and dispatcher to dispatch the sequenced message.
The sequencing of message can be handled in both inbound and outbound direction.
Outbound message sequencing
To enable the sequencing for outbound message, the message should be enqueued with the below key-pair value in the actionName for AQ/JMS delivery channel.
actionName = TARGET:
For fabric composite
To dispatch the sequenced message, it is required to configure the Outbound Dispatcher, which has a value of zero by default. For a use case of sequencing without dispatching (Stacking), the dispatcher value is set to zero. Depending on the message load it is possible to configure the Dispatcher to the appropriate value.
Dispatcher can be configured in admin -> configuration page.
Inbound message sequencing
To enable the sequencing for inbound message it is required to check the "sequence" flag in the MLLP delivery channel.
Dispatcher configuration follows a similar pattern as in outbound sequencing.
Sequencing with out Dispatching
In a traditional world the Trading partner downtime is handled by stacking the messages in back end application, which requires the entire message processing in B2B after the down time. This leads to underutilizing the B2B Application during downtime and overloading when the Trading partner comes up. This affects the regular message flow, as there is a surge in message processing.
Upon Trading partner delivery failure, the corresponding messages are marked not to be picked up by Dispatcher resulting in stacking the messages in B2B instead of the back end application.
To process such messages it is required to set the below property
Auto Stack Handler = true
Auto Stack Handler Interval =
When set to true, the stacked message will be made eligible for delivery by dispatcher
during appropriate interval. It is also possible to specify the variable interval with a comma-separated value to Auto Stack Handler Interval.
Note: For AS11R1 it is a development preview feature and is applicable only for MLLP