3.1.7.2.1 Administration Acknowledgment

If administration acknowledgments are requested, a message is sent to the administration queue specified in the message when it is removed from a destination queue. Administration acknowledgment messages are system-generated UserMessage Packets ([MS-MQMQ] section 2.2.20). If the retrieved message is a recoverable message, the acknowledgment MUST be sent as a recoverable message. If the retrieved message is an express message, the acknowledgment MUST be sent as an express message.

This section specifies the sending of an administration acknowledgment when a message is retrieved or rejected by the application. Section 3.1.5.8.10 specifies the sending of an administration acknowledgment when a message has reached its destination queue.

If iPosition.MessageReference.AcknowledgementsRequested is one of AckPosReceive or AckFullReceive and iMessageClass is AckReceive, or if iPosition.MessageReference.AcknowledgementsRequested is one of AckNegReceive, AckNackReceive, or AckFullReceive and iMessageClass is not AckReceive, the protocol MUST send an administrative acknowledgment by raising a Send Administration Acknowledgment (section 3.1.7.15) event with the following arguments:

  • iReceivedUserMessagePacket: NULL

  • iMessageClass: the value from the following table indicated by iReason

  • iReceivedMessage: iPosition.MessageReference

    iReason

    iMessageClass (constants defined in [MS-MQMQ])

    AckReceive

    MQMSG_CLASS_ACK_RECEIVE ([MS-MQMQ] section 2.2.18.1.6)

    NackQueueDeleted

    MQMSG_CLASS_NACK_Q_DELETED ([MS-MQMQ] section 2.2.18.1.6)

    NackQueuePurged

    MQMSG_CLASS_NACK_Q_PURGED ([MS-MQMQ] section 2.2.18.1.6)

    NackReceiveTimeout

    MQMSG_CLASS_NACK_RECEIVE_TIMEOUT ([MS-MQMQ] section 2.2.18.1.6)

    NackReceiveRejected

    MQMSG_CLASS_NACK_RECEIVE_REJECTED ([MS-MQMQ] section 2.2.18.1.6)