3.1.1.11 MessagePosition

A MessagePosition ADM element represents a slot in a queue where a message can be stored. This ADM element MUST contain the following ADM attributes:

State: An enumeration that MUST contain one of the following values:

  • Available: The referenced Message ADM element instance is available for receive operations.

  • Locked: The referenced Message ADM element instance either has been received within a transaction that has not committed or has been read by a remote application and has not yet been acknowledged.

  • Deleted: The referenced Message ADM element instance has been deleted.

  • PurgePending: The referenced Message ADM element instance was in a Locked state when a Purge Queue (section 3.1.7.1.7) event was generated for the Queue (section 3.1.1.2) ADM element instance.

MessageReference: A reference to a Message ADM element instance.

If the DeliveryGuarantee ADM attribute of the Message ADM element instance that is referenced by the MessageReference ADM attribute is set to Recoverable, the preceding ADM attributes of this ADM element MUST be treated as Persistent.

Next: A reference to the next MessagePosition ADM element instance in the MessagePositionList ADM attribute of the Queue ADM element instance referenced by the QueueReference ADM attribute, or the reserved End entry defined for the MessagePositionList ADM attribute of the Queue ADM element instance referenced by the QueueReference ADM attribute.

Previous: A reference to the previous MessagePosition ADM element instance in the MessagePositionList ADM attribute of the Queue ADM element instance referenced by the QueueReference ADM attribute, or the reserved Head entry defined for the MessagePositionList ADM attribute of the Queue ADM element instance referenced by the QueueReference ADM attribute.

QueueReference: A reference to the Queue ADM element instance that contains this MessagePosition ADM element instance.

A MessagePosition ADM element instance can be removed from the system when there is no MessagePositionReference ADM attribute of a Message ADM element instance or of a TransactionalOperation ADM element instance referencing the MessagePosition ADM element instance and no pending processing against the MessagePosition ADM element instance.