PROPID_M_FIRST_IN_XACT

 

Updated: July 19, 2016

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_FIRST_IN_XACT property indicates whether the message was the first message sent in a transaction.

Property ID

PROPID_M_FIRST_IN_XACT

Type Indicator

VT_UI1

MQPROPVARIANT Field

bVal

One of the following:

MQMSG_FIRST_IN_XACT

The message was the first message sent in the transaction.

MQMSG_NOT_FIRST_IN_XACT

The message was not the first 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 first message sent in a single transaction to a single queue.

You can use PROPID_M_FIRST_IN_XACT along with two other properties to verify transaction boundaries. The PROPID_M_LAST_IN_XACT property is used for identifying the last message sent in the 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_XACT and PROPID_M_LAST_XACT are set.

To retrieve this property, include PROPID_M_FIRST_IN_XACT in the MQMSGPROPS structure. Then call MQReceiveMessage 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 first message in a transaction is MSMQMessage.IsFirstInTransactionansaction.

For information onSee
How transaction boundaries can be usedChecking for Transaction Boundaries when Receiving Messages
Identifying the last message in the transactionPROPID_M_LAST_IN_XACT
Retrieving the identifier of the transactionPROPID_M_XACTID

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

aMsgPropId[i] = PROPID_M_FIRST_IN_XACT; // Property ID  
aMsgPropVar[i].vt = VT_NULL;            // Type indicator  
i++;  

The following example is included in Using Message Queuing.

For an example ofSee
Identifying the first and last messages in a transactionC/C++ Code Example: Checking Transaction Boundaries

Message Properties
MQMSGPROPS
MQReceiveMessage
MQReceiveMessageByLookupId
MQSendMessage
PROPID_M_LAST_IN_XACT
PROPID_M_XACTID

Show: