PROPID_MGMT_QUEUE_XACT
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_XACT property indicates whether the queue is or is not transactional.
Property ID
PROPID_MGMT_QUEUE_XACT
Type Indicator
VT_LPWSTR
MQPROPVARIANT Field
pwszVal
Property Value
One of the following Unicode strings:
L"YES" (MGMT_QUEUE_TRANSACTIONAL_TYPE)
The queue is a transactional queue.
L"NO" (MGMT_QUEUE_NOT_TRANSACTIONAL_TYPE)
The queue is not a transactional queue.
L"UNKNOWN" (MGMT_QUEUE_UNKNOWN_TYPE)
Message Queuing cannot determine the transactional type of the queue. This string is returned under the following conditions:
The queue is a remote private queue.
The queue is a remote public queue, and the queue manager on the computer is operating offline.
Remarks
To retrieve a string that indicates whether the queue is transactional, include PROPID_MGMT_QUEUE_XACT in the MQMGMTPROPS structure, and then call MQMgmtGetInfo.
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_XACT in the MQMGMTPROPS structure, set its type indicator to VT_NULL. During the function call, Message Queuing automatically changes the type indicator to VT_LPWSTR and creates the string buffer needed to receive the property value. After you no longer need the string buffer, you must free the memory allocated for it using MQFreeMemory.
Equivalent COM Property
When using COM components, you can determine whether the queue is transactional using the MSMQManagement.TransactionalStatus property.
Example Code
The following code fragment shows how PROPID_MGMT_QUEUE_XACT is specified in arrays that can be used to initialize an MQMGMTPROPS structure.
aMgmtPropID[i] = PROPID_MGMT_QUEUE_XACT; // Property identifier
aMgmtPropVar[i].vt = VT_NULL; // Type indicator
i++;
The following line of code shows how to free the memory allocated for the property value.
MQFreeMemory(aMgmtPropVar[i].pwszVal);
See Also
Management Properties
MQFreeMemory
MQMgmtGetInfo
MSMQManagement.TransactionalStatus