3.4.5.2.2.2.1 Receiving a TXUSER_EXPORT_MTAG_CREATE Message
When the transaction manager communicating with an application facet receives a TXUSER_EXPORT_MTAG_CREATE message, the transaction manager MUST perform the following actions:
If the connection state is Idle:
Set the connection state to Processing Connection Request.
If the first 16 bytes of SourceTmAddr is equal to the binary representation of the GUID {dc85cb48-d8a5-11d2-828b-00805f0df75a}, the SourceTmAddr field MUST contain an OLETX_TM_ADDR (section 2.2.4.2) structure.
Otherwise, the SourceTmAddr field MUST contain a NAMEOBJECTBLOB (section 2.2.5.3) structure.
Override the default schema verification actions for incoming messages as specified in section 3.1.6 in the following manner:
If the SourceTmAddr field from the message contains an OLETX_TM_ADDR structure and violates the constraints specified in section 2.2.4.2 or if the SourceTmAddr field from the message contains a NAMEOBJECTBLOB structure and violates the constraints specified in section 2.2.5.3, the transaction manager MUST:
Send a TXUSER_EXPORT_MTAG_CREATE_BAD_TMADDR message using the connection.
Perform default invalid message processing, as specified in section 3.1.6.
Cease processing the message.
If the Allow Network Access flag, the Allow Network Transactions flag, or the Allow Outbound Transactions flag of the Core Transaction Manager Facet is set to false:
Send a TXUSER_EXPORT_MTAG_CREATE_BAD_TMADDR message using the connection.
Set the connection state to Ended.
Otherwise:
If the SourceTmAddr field contains an OLETX_TM_ADDR structure, convert the SourceTmAddr field from the message to a new Name object, as specified in section 3.1.1.2.
Otherwise, convert the SourceTmAddr field from the message to a new Name object, as specified in Converting a NAMEOBJECTBLOB Structure to a Name Object (section 3.1.1.4).
Store the Name object in the Connection-Specific Data field of the connection object.
Send a TXUSER_EXPORT_MTAG_CREATED message using the connection.
Set the connection state to Connection Active.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.