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.