3.4.5.3.1.1 Receiving a TXUSER_GETTXDETAILS_MTAG_GET Message
When the transaction manager receives a TXUSER_GETTXDETAILS_MTAG_GET message, the transaction manager MUST perform the following actions:
If the connection state is Idle:
Set the connection state to Processing Inquiry.
Find the transaction object in the transaction table of the transaction manager by using the guidTx field from the message as the key:
If the transaction object is not found in the list, the transaction manager MUST:
Send a TXUSER_GETTXDETAILS_MTAG_TX_NOT_FOUND message using the connection.
Otherwise:
Send a TXUSER_GETTXDETAILS_MTAG_GOTIT message using the connection with the message fields set as follows:
The vszSuperiorName field MUST be set to a new OLETX_VARLEN_STRING structure that is populated with the transaction object's Superior Enlistment object's Name property.
The vszSuperiorID field MUST be set to a new OLETX_VARLEN_STRING structure that is populated with the transaction object's Superior Enlistment object's Enlistment Object.Identifier property.
The rgSubordinates field MUST be set to an array of OLETX_VARLEN_STRING structures. Each subordinate entry is represented by two adjacent structures, whose values are set as follows:
For each enlistment object in the Phase One enlistment and Phase Two enlistment lists of the transaction:
The first subordinate structure MUST be set to the Name property of the enlistment object.
The second subordinate structure MUST be set to the Enlistment Object.Identifier property of the enlistment object.
The lSubordinateCount field MUST be set to the number of enlistment objects whose values were added to the rgSubordinates array.
Set the connection state to Ended.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.