Retrieving Exactly-Once-Delivery (EOD) Information
Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista
Several of the new read-only management properties returned by MQMgmtGetInfo provide exactly-once-delivery (EOD) information about transactional messages sent from the computer specified to the destination queue specified. These properties and the equivalent COM properties, which are elements of the MSMQCollection object returned by the MSMQOutgoingQueueManagement.EodGetSendInfo method, include:
PROPID_MGMT_QUEUE_EOD_LAST_ACK_COUNT or EodLastAckCount
Returns the number of times that the last order acknowledgment for a message sent from the computer to the queue was received.
PROPID_MGMT_QUEUE_EOD_LAST_ACK_TIME or EodLastAckTime
Returns the date and time when the last order acknowledgment for a message sent from the computer to the queue was received.
PROPID_MGMT_QUEUE_EOD_NO_ACK_COUNT or EodNoAckCount
Returns the number of messages sent from the computer to the queue for which no order acknowledgment has been received.
PROPID_MGMT_QUEUE_EOD_NO_READ_COUNT or EodNoReadCount
Returns the number of messages sent from the computer to the queue for which an order acknowledgment has been received, but a receive acknowledgment message has not been received.
PROPID_MGMT_QUEUE_EOD_RESEND_COUNT or EodResendCount
Returns the number of times that the last message in the corresponding outgoing queue on the computer was sent.
PROPID_MGMT_QUEUE_EOD_RESEND_INTERVAL or EodResendInterval
Returns the resend interval for the messages in the outgoing queue for which no order acknowledgment has been received.
PROPID_MGMT_QUEUE_EOD_RESEND_TIME or EodResendTime
Returns the time when Message Queuing will attempt to send a message from the computer to the queue again.
Several other read-only management properties returned by MQMgmtGetInfo provide the sequence information for specific messages sent from an outgoing queue in a newly introduced SEQUENCE_INFO structure. The sequence information includes the sequence identifier of the message stream being sent to the destination queue, the sequence number of the message in the stream, and the previous sequence number specified in the message. A message can be delivered only if a message whose sequence number is equal to the previous sequence number specified in the message is present in the destination queue. Each of the equivalent COM properties is an element of the MSMQCollection object returned by the MSMQOutgoingQueueManagement.EodGetSendInfo method. Each such element is, in turn, an "inner" MSMQCollection object that contains the following three elements: SeqID, SeqNo, and PrevNo. These API properties and their COM equivalents include:
PROPID_MGMT_QUEUE_EOD_FIRST_NON_ACK or EodFirstNonAck
Returns the sequence information about the first message sent from the computer to the queue for which no order acknowledgment has been received.
PROPID_MGMT_QUEUE_EOD_LAST_ACK or EodLastAck
Returns the sequence information about the last message sent from the computer to the queue for which an order acknowledgment was received.
PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK or EodLastNonAck
Returns the sequence information about the last message sent from the computer to the queue for which no order acknowledgment has been received.
PROPID_MGMT_QUEUE_EOD_NEXT_SEQ or EodNextSeq
Returns the sequence information about the next message to be sent from the computer to the queue.
PROPID_MGMT_QUEUE_EOD_SOURCE_INFO is a read-only management property returned by the MQMgmtGetInfo API function that provides an array of arrays containing information about the transactional messages sent from all source computers to the specified queue on the specified target computer. The elements of the overall array are, in turn, arrays (vectors) containing the following information for all source computers: the format names used to open the queue when the last messages were sent, the GUIDs of the sending queue managers, the last sequence identifiers, the sequence numbers of the last messages sent to the queue by the sending queue managers, the times when the sending queue managers last accessed the queue, and the number of times that the last messages were rejected. The MSMQQueueManagement.EodGetReceiveInfo COM method returns the same information in an array of MSMQCollection objects, with each array element representing a source computer.