PROPID_MGMT_QUEUE_EOD_SOURCE_INFO

 

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

(Read-only, introduced in MSMQ 3.0.) The PROPID_MGMT_QUEUE_EOD_SOURCE_INFO property returns an array of arrays of information about the transactional messages sent from all source computers to the queue on the target computer. Each element of the overall array is, in turn, an array (vector) containing one of the following pieces of information for all the source computers.

  • Format names used to open the queue when the last messages were sent.

  • GUIDs of the sending queue managers.

  • Last sequence identifiers.

  • Sequence numbers of the last messages sent to the queue by the sending queue managers.

  • Times when the sending queue managers last accessed the queue.

  • Number of times that the last messages were rejected.

Property ID

PROPID_MGMT_QUEUE_EOD_SOURCE_INFO

Type Indicator

VT_VARIANT | VT_VECTOR

Property Value

Counted arrays of the following types:

VT_LPWSTR | VT_VECTOR

Vector of format names.

VT_CLSID | VT_VECTOR

Vector of queue manager GUIDs.

VT_UI8 | VT_VECTOR

Vector of last sequence identifier.

VT_UI4 | VT_VECTOR

Vector of sequence numbers.

VT_I4 | VT_VECTOR

Vector of last access times.

VT_UI4 | VT_VECTOR

Vector of DWORD that contains the number of times that each message was rejected before it was accepted.

Remarks

To retrieve information about the transactional messages sent from all source computers to the queue, include PROPID_MGMT_QUEUE_EOD_SOURCE_INFO in the MQMGMTPROPS structure, call MQMgmtGetInfo, and then examine the value returned.

This property can be retrieved only for an active queue. MQMgmtGetInfo will return a non-specific error (MQ_ERROR) if your application attempts to retrieve this information for a queue that does not contain messages and is not opened by an application.

When specifying PROPID_MGMT_QUEUE_EOD_SOURCE_INFO in the MQMGMTPROPS structure, set its type indicator to VT_NULL. During the function call, Message Queuing automatically changes the type indicator to VT_VARIANT | VT_VECTOR and creates all the buffers needed to receive the property values. After you no longer need the buffers created, you must free the memory allocated for them using MQFreeMemory.

Equivalent COM Property

When using COM components, you can retrieve information about the transactional messages sent from all source computers to a queue using the MSMQQueueManagement.EodGetReceiveInfo method.

Example Code

The following code fragment shows how PROPID_MGMT_QUEUE_EOD_SOURCE_INFO is specified in arrays that can be used to initialize an MQMGMTPROPS structure.

aMgmtPropID[i] = PROPID_MGMT_QUEUE_EOD_SOURCE_INFO;    // Property identifier  
aMgmtPropVar[i].vt = VT_NULL;                          // Type indicator  
i++;  

The following code fragment shows how to free the memory allocated for the array of arrays for receiving information about the transactional messages sent from all source computers to the queue on the target computer.

//Free each element for storing a format name string.  
for (j = 0; j < aMgmtPropVar[i].capropvar.pElems[0].calpwstr.cElems; j++)  
{  
    MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[0].calpwstr.pElems[j]);  
}  
  
//Free the format name array.  
MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[0].calpwstr.pElems);  
  
//Free each element for storing a GUID.  
for (j = 0; j < aMgmtPropVar[i].capropvar.pElems[1].cauuid.cElems; j++)  
{  
    MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[1].cauuid.pElems[j]);  
}  
  
//Free the GUID array.  
MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[1].cauuid.pElems);  
  
//Free the sequence identifier array.  
MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[2].cauh.pElems);  
  
//Free the sequence number array.  
MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[3].caul.pElems);  
  
//Free the last access time array.  
MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[4].cal.pElems);  
  
//Free the reject count array.  
MQFreeMemory(aMgmtPropVar[i].capropvar.pElems[5].caul.pElems);  
  
//Free the array of arrays.  
MQFreeMemory(aMgmtPropVar[i].capropvar.pElems);  

See Also

Management Properties
MQFreeMemory
MQMgmtGetInfo
MSMQQueueManagement.EodGetReceiveInfo