4.2.2 Unmarshaling the Transaction

To begin the unmarshaling process, the receiving application initiates a connection over its transport session with its transaction manager.

CONNTYPE_TXUSER_ASSOCIATE: The packet sequence starts when the receiving application initiates a connection by using CONNTYPE_TXUSER_ASSOCIATE.

Field

Value

Value description

MsgTag

0x00000005

MTAG_CONNECTION_REQ

fIsMaster

0x00000001

1

dwConnectionId

0x00000001

1

dwUserMsgType

0x00000011

CONNTYPE_TXUSER_ASSOCIATE

dwcbVarLenData

0x00000000

0

dwReserved1

0xcd64cd64

dwReserved1: 0xcd64cd64

The receiving application then sends a TXUSER_ASSOCIATE_MTAG_ASSOCIATE user message with the information transmitted to the receiver in the Propagation Token.

Field

Value

Value description

MsgTag

0x000000FF

MTAG_USER_MESSAGE

fIsMaster

0x00000001

1

dwConnectionId

0x00000001

1

dwUserMsgType

0x00002031

TXUSER_ASSOCIATE_MTAG_ASSOCIATE

dwcbVarLenData

0x0000007C

124

dwReserved1

0xcd64cd64

dwReserved1: 0xcd64cd64

guidTx

0x4046037E

0x46C99722

0x06999883

0x35CB4123

4046037e-9722-46c9-9883-99062341cb35

isoLevel

0x00100000

ISOLATIONLEVEL_SERIALIZABLE

isoFlags

0x00000005

ISOFLAG_RETAIN_DONTCARE

cbSourceTmAddr

0x00000038

56

szDesc

0x706D6173

0x7420656C

0x736E6172

0x69746361

0x00006E6F

0x00000000

0x00000000

0x00000000

0x00000000

0x00000000

"sample transaction"

guidSignature

0xDC85CB48

0x11d2D8A5

0x8000828B

0x5AF70D5F

DC85CB48-D8A5-11d2-828B-00805F0DF75A

guidEndpoint

0xBAA04775

0x4F498F43

0x1B5AADEF

0x0B195121

BAA04775-8F43-4F49-ADEF-5A1B2151190B

grbComProtsSupported

0x00000021

PROT_IP_TCP | PROT_LRPC

wszHostName

0x0061004d

0x00680063

0x006e0069

0x005f0065

0x00000031

L"Machine_1"

When the receiver's transaction manager receives the TXUSER_ASSOCIATE_MTAG_ASSOCIATE message, that transaction manager attempts to locate the transaction in its list of transaction objects by using the transaction identifier. If the transaction object is not found locally, the transaction manager attempts to pull the transaction from the sender's transaction manager by using information received from the TXUSER_ASSOCIATE_MTAG_ASSOCIATE message (compare Branching the Transaction).

If the receiver's transaction manager can successfully locate the transaction object or if the requested transaction is successfully pulled to the receiver's transaction manager, it replies to the receiver with a TXUSER_ASSOCIATE_MTAG_ASSOCIATED user message.

Field

Value

Value description

MsgTag

0x00000FFF

MTAG_USER_MESSAGE

fIsMaster

0x00000000

0

dwConnectionId

0x00000001

1

dwUserMsgType

0x00002032

TXUSER_ASSOCIATE_MTAG_ASSOCIATED

dwcbVarLenData

0x00000000

0

dwReserved1

0xcd64cd64

dwReserved1: 0xcd64cd64

After the receiving application gets the TXUSER_ASSOCIATE_MTAG_ASSOCIATED response from its transaction manager (or if it receives an error response), no more user messages can be sent on this connection and the receiver initiates the disconnect sequence.

Show: