4.5.1.1 Phase One - Subordinate Resource Managers

If the subordinate branch is a resource manager (that is, using a CONNTYPE_TXUSER_ENLISTMENT connection), the transaction manager sends a TXUSER_ENLISTMENT_MTAG_PREPAREREQ user message with fSinglePhase set to zero.

Field

Value

Value description

MsgTag

0x00000FFF

MTAG_USER_MESSAGE

fIsMaster

0x00000000

0

dwConnectionId

0x00000002

2

dwUserMsgType

0x00001033

TXUSER_ENLISTMENT_MTAG_PREPAREREQ

dwcbVarLenData

0x00000008

8

dwReserved1

0xcd64cd64

dwReserved1: 0xcd64cd64

grfRM

0x00000000

0

fSinglePhase

0x00000000

0

When the resource manager successfully completes its preparation work, it replies to its transaction manager by using a TXUSER_ENLISTMENT_MTAG_PREPAREREQDONE user message that has the prepareReqDone value set to TXUSER_ENLISTMENT_PREPAREREQDONE_OK.

Field

Value

Value description

MsgTag

0x00000FFF

MTAG_USER_MESSAGE

fIsMaster

0x00000001

1

dwConnectionId

0x00000002

2

dwUserMsgType

0x00001036

TXUSER_ENLISTMENT_MTAG_PREPAREREQDONE

dwcbVarLenData

0x00000014

20

dwReserved1

0xcd64cd64

dwReserved1: 0xcd64cd64

prepareReqDone

0x00000000

TXUSER_ENLISTMENT_PREPAREREQDONE_OK

guidReason

0x00000000

0x00000000

0x00000000

0x00000000

00000000-0000-0000-0000-000000000000

The resource manager now waits for a TXUSER_ENLISTMENT_MTAG_ABORTREQ or TXUSER_ENLISTMENT_MTAG_COMMITREQ message from its transaction manager to determine the outcome for the transaction.