Written by

Integrations Developer at NHS Tayside
Question Colin Brough · 4 hr ago

Processing certain messages in sequence when Pool Size > 1

We have an HL7 feed that contains Lab Results. Each message contains a set of results, identified by a LabReportId. Some LabReportIds can get more than one message / set of results - these are updates, as new results become available, and must be processed in order. Results for different LabReportIds can be processed in any order.

As each message is used to build a PDF, which takes time, we want to run these through a production where the key business process has a Pool Size > 1, while still ensuring that messages for each LabReportId are processed in order. The key business process is implemented in BPL, if that's relevant.

One suggestion for doing this we've come across is to set the SessionId of the request messages going to the key business process to be the LabReportId:

  • are we right in thinking that Ensemble (we'll eventually upgrade to Iris...) will process the messages for a specific SessionId (LabReportId) in sequence?
  • are there any "gotchas" we need to watch out for in this kind of scenario?
Product version: Ensemble 2018.1
$ZV: Cache for Windows (x86-64) 2018.1 (Build 184U) Wed Sep 19 2018 09:09:22 EDT

Comments