Delen via


EodLastNonAck

 

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

(Introduced in MSMQ 3.0.) The EodLastNonAck element of the MSMQCollection object returned by the MSMQOutgoingQueueManagement.EodGetSendInfo method contains an inner MSMQCollection object containing sequence information about the last transactional message sent for which an order acknowledgment has not been received.

Data type: MSMQCollection
Run-time access: Read-only
Set collectionObject = outgoingqueuemanagementObject.EodGetSendInfo
()  
Set innercollectionObject = collectionObject
("EodLastNonAck")  

Parameters

collectionObject

Collection (MSMQCollection) object that is returned by the MSMQOutgoingQueueManagement.EodGetSendInfo method and contains the EodLastNonAck element along with 10 other exactly-once-delivery (EOD) information elements (in C++, a smart pointer to the IMSMQCollection interface).

outgoingqueuemanagementObject

Outgoing queue management (MSMQOutgoingQueueManagement) object that represents the state of the outgoing queue.

innercollectionObject

Collection (MSMQCollection) object that contains the SeqID, SeqNo, and PrevNo elements (in C++, a smart pointer to the IMSMQCollection interface).

Return Values

An inner MSMQCollection object that is an element of the MSMQCollection object returned and contains the following elements.

  • SeqID (Data type: Variant): The sequence identifier of the message stream being sent to the destination queue.

  • SeqNo (Data type: Long): The sequence number of the last unacknowledged message that was sent to the destination queue.

  • PrevNo (Data type: Long): The previous sequence number specified in the last unacknowledged message sent to the destination queue. The message can be delivered only if a message whose sequence number is equal to this number is present in the destination queue.

If no sequence information is available for the applicable message, a Variant containing Null is returned in this element.

Remarks

To obtain sequence information about the last transactional message sent from a computer to a queue for which no order acknowledgment has been received, use the MSMQCollection.Item method to retrieve the EodLastNonAck element of the MSMQCollection object returned by the MSMQOutgoingQueueManagement.EodGetSendInfo method. This element is, in turn, an MSMQCollection object that contains three elements: SeqID, SeqNo, and PrevNo. Then use the MSMQCollection.Item method to retrieve these elements from the inner MSMQCollection object.

Note

The Item method is the default method for the MSMQCollection object. Therefore, its name can be omitted.

Equivalent API Function Property

When using API functions, the equivalent property is PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK.

Example Code

The following code fragment shows how to display the three elements of EodLastNonAck for a destination queue on a remote computer.

Dim coll As MSMQCollection  
Dim incoll As MSMQCollection  
Dim mgmt As New MSMQManagement  
Dim outqmgmt As MSMQOutgoingQueueManagement  
mgmt.Init PathName:="remotemachine\queue"    ' Indicates outgoing queue on local computer.  
Set outqmgmt = mgmt    ' An error is returned if a destination queue is used.  
Set coll = outqmgmt.EodGetSendInfo()  
Set incoll = coll("EodLastNonAck")  
MsgBox "Sequence ID: " & incoll("SeqID") & Chr(13) & "Sequence number: " & incoll("SeqNo") & Chr(13) & "Previous number: " & coll2("PrevNo")  

Requirements

Windows NT/2000/XP: Included in Windows XP and Windows Server 2003.

Windows 95/98/Me: Unsupported.

Header: Declared in Mqoai.h.

Library: Use Mqoa.lib.

See Also

MSMQCollection
MSMQCollection.Item
MSMQOutgoingQueueManagement
MSMQOutgoingQueueManagement.EodGetSendInfo
PROPID_MGMT_QUEUE_EOD_LAST_NON_ACK