3.1.7.2.2 Message Position Available
This event MUST be generated with the following arguments:
iQueue: A reference to the Queue (section 3.1.1.2) ADM element instance in which the MessagePosition (section 3.1.1.11) ADM element instance has become available.
iPosition: A reference to the MessagePosition ADM element instance that has become available.
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
Wait for a Release Next Reader (section 3.1.7.3.7) event where the iReleaseOnQueue argument is equal to the iQueue argument.