orderPriority

This section describes the orderPriority process.

orderPriority enables the user to set priority on submitted orders. This information is then used by the JMS broker to deliver the high priority orders to downstream components. orderPriority is also propagated to downstream process components. The priority value ranges from 0 to 9. The priority information or priority value to process any given order is set in the JMSHeader field of the JMS message that is sent to the Orchestrator Engine in Fulfillment Order Management.

The JMS broker then delivers the order based on a priority. The process of order prioritization works at a queue level and can be controlled by the JMS broker.

Note: The orderPriority process or order prioritization cannot be controlled once the message is delivered to the orchestrator engine. The priority value can be changed before the JMS broker sends the order request to the engines.

Order Schema Changes

You can use the order schema to submit the orderPriority information with the order. The orderPriority is at the orderHeader level and the same priority is applied to all the orderLines.

The schema snippet is as follows:

<xs:element name="orderPriority" minOccurs="0" default="4">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="9" />
</xs:restriction>
</xs:simpleType>
</xs:element>

The orderPriority can take values ranging from 0 to 9 to make them consistent and map with JMSPriority message header values.

Note: The default value of the orderPriority field is 4.

Lower Priority Orders

When any order is processed based on the given priority, it results in a situation where a lower priority order may never be processed because of high priority orders.

The orders with a lower priority can be processed by a mechanism known as Flow Control.

You can use Enterprise messaging Service (EMS) to control the flow of messages to a destination. Each destination can specify a maximum target size for storing all the pending messages. When the target is reached, EMS blocks message producers when new messages are sent. This effectively slows down message producers until the message consumers can receive the pending messages.