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)