3.1.7.2.2 Message Position Available

This event MUST be generated with the following arguments:

Return Value:

  • None.

The queue manager MUST perform the following actions to process this event:

  • Increment iQueue.TotalBytes by the value of the storage space, in bytes, consumed by the headers and body of the Message (section 3.1.1.12) ADM element instance referenced by iPosition.MessageReference.

  • Set iPosition.State to Available

  • For each OpenQueueDescriptor in iQueue.OpenQueueDescriptorCollection:

    • For each iReader in OpenQueueDescriptor.WaitingMessageReadOperationCollection:

      • Generate a Waiting Message Read Satisfied (section 3.1.7.3.6) event with the following argument values:

        • iReader := iReader

        • iPosition := iPosition

      • If iReader.DestructiveRead is True:

        • Discontinue processing this event and take no further action. Any iReaders in iQueue.WaitingMessageReadOperationCollection that have not yet been processed remain blocked until another Message Position Available event is raised on the same queue.

      • Else