Message Prioritization
TIBCO MDM allows specification of priority to various messages submitted for background messaging using JMS Queues. For example it may be desirable that workflows generated from user action takes precedence over messages received over JMS queue. Control is provided to assign priorities to various input channels, and to different types of messages. i.e import may get lower priority from record modify.
Configuration can be specified using ConfigValues.xml (category = 'Message Prioritization”) to allow fine grained control over priorities of messages sent to following queues”
- Workflow queue to prioritize which workflows should run first
- Async queue to allow notification messages to have lower priority.
Additionally, workflows initiated by other workflows using following pre-defined activities can also be assigned a priority.
- SpawnWorkflow - the activity accepts priority and assigns it to any workflow fired.
- InitiateWorkflow - the activity accepts priority and assigns it to any new workflow created. Any existing workflow restarted would use restart message priority.
- Send - the activity accepts priority for JMS messages, if send method is JMS
- InitiateSubFlow - if the subflow is being initiated as ASYNC, priority can be specified.
Message prioritization works within a queue, that is, async queue message has no impact on workflow queue and vice versa. The prioritization only works if there are more messages in the queue compared to number of listeners. Also, if prefetch (for EMS) is set as non zero, pre-fetched messages may not follow prioritization. Consult appropriate software documentation to understand how the JMS vendor implements priority handling.
Hot Deployment
The configValues.xml file is enhanced and the following properties are deprecated.
- com.tibco.cim.optimization.messagepriority.taxonomyextract
- com.tibco.cim.optimization.messagepriority.workflowrestart
- com.tibco.cim.optimization.messagepriority.utilities
For all configurations, all new properties are optional and hot deployable.