PROPID_M_LAST_IN_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 2.0.) The PROPID_M_LAST_IN_XACT property indicates whether the message was the last message sent in a transaction.
Property ID
PROPID_M_LAST_IN_XACT
Type Indicator
VT_UI1
MQPROPVARIANT Field
bVal
One of the following:
MQMSG_LAST_IN_XACT
The message was the last message sent in the transaction.
MQMSG_NOT_LAST_IN_XACT
The message was not the last message sent in the transaction.
This property is available for MSMQ 2.0 and later. It is used by receiving applications to verify that a message was the last message sent from a single transaction to a single queue.
You can use PROPID_M_LAST_IN_XACT along with two other properties to verify transaction boundaries. The PROPID_M_FIRST_IN_XACT property is used for identifying the first message in a transaction, and the PROPID_M_XACTID property is used for retrieving the identifier of the transaction.
If only one message is sent in a transaction, both PROPID_M_FIRST_IN_XACT and PROPID_M_LAST_IN_XACT are set.
To retrieve this property, include PROPID_M_LAST_IN_XACT in the MQMSGPROPS structure. Then call MQReceiveMessagee or MQReceiveMessageByLookupId and test the returned value. When retrieving this property, the type indicator can be set to VT_UI1 or VT_NULL. If you set the type indicator to VT_NULL, Message Queuing automatically changes the type indicator to VT_UI1 during the function call.
Equivalent COM Property
With COM components, the equivalent property for ascertaining whether a message is the last message in a transaction is MSMQMessage.IsLastInTransaction.
For information on | See |
---|---|
How transaction boundaries can be used | Checking for Transaction Boundaries when Receiving Messages |
Identifying the first message in the transaction | PROPID_M_FIRST_IN_XACT |
Retrieving the identifier of the transaction | PROPID_M_XACTID |
The following code fragment shows how PROPID_M_LAST_IN_XACT is specified in arrays that can be used to initialize an MQMSGPROPS structure.
aMsgPropId[i] = PROPID_M_LAST_IN_XACT; // Property ID
aMsgPropVar[i].vt = VT_NULL; // Type indicator
i++;
The following example is included in Using Message Queuing.
For an example of | See |
---|---|
Identifying the first and last messages in a transaction | C/C++ Code Example: Checking Transaction Boundaries |
Message Properties
MQMSGPROPS
MQReceiveMessage
MQReceiveMessageByLookupId
PROPID_M_FIRST_IN_XACT
PROPID_M_XACTID