3.1.7.3.9 Dispatch Send Message

This event MUST be generated with the following argument:

  • None.

Return Value:

  • None.

The queue manager MUST perform the following steps in a single atomic operation:

  • If no DispatchEntry (section 3.1.1.18) ADM element instance in the LocalQueueManager.DispatchCollection has a SendInProgress ADM attribute with a value of True, the protocol MUST perform the following actions:

    • Within LocalQueueManager.DispatchCollection, find the DispatchEntry ADM element instance with the highest Priority ADM attribute for which the Queue.Active ADM attribute of the MessagePosition (section 3.1.1.11) ADM element instance referenced by DispatchEntry. MessagePositionReference equals True and for which the State ADM attribute is not Deleted. This DispatchEntry ADM element instance is referred to as nextEntryToBeDispatched.

    • Set nextEntryToBeDispatched.SendInProgress to True.

    • If nextEntryToBeDispatched.ProtocolData is not NULL, raise a Send User Message Wrapper ([MS-MQQB] section 3.1.7.16) event with the following arguments:

      • iPosition := nextEntryToBeDispatched.ProtocolData

      • iMessagePosition := nextEntryToBeDispatched.MessagePositionReference

    • Otherwise, raise a Send User Message Wrapper ([MC-MQSRM] section 3.1.7.8) event with the following arguments:

      • iPosition := NULL

      • iMessagePosition := nextEntryToBeDispatched.MessagePositionReference