The Reenlist method re-enlists a resource manager in a transaction.
HRESULT Reenlist( byte * pPrepInfo, ULONG cbPrepInfo, DWORD lTimeout, XACTSTAT * pXactStat );
At recovery, the resource manager reregisters with the coordinator to re-establish its relationship with it and obtains a new resource manager object representing the new relationship. After obtaining the IResourceManager interface, it starts asking the coordinator for the outcome of all transactions that are in-doubt from the resource manager's perspective. Before replying with a Prepared message on a Prepare request, the resource manager needs to obtain prepare information from the enlistment object by using the IPrepareInfo::GetPrepareInfo method. This BLOB is persisted by the resource manager in its log before it replies with a Prepared message. After the resource manager is prepared, the transaction is in-doubt until it receives an abort or a commit request from the coordinator. If a failure causes the enlistment and the resource manager objects to go away, the resource manager needs to use this method to determine the final outcome of the transaction. The prepare information is passed as a parameter to the Reenlist method call.
The outcome can be either committed or aborted. There can be no other outcome; the call times out and a XACT_E_REENLISTTIMEOUT error is returned. The DTC uses the presumed abort protocol; this protocol lets the coordinator unilaterally abort a transaction if a fault occurs prior to it having made a commit decision. A transaction is said to have been committed only when the coordinator has successfully persisted its decision to commit the transaction.
For an explanation of the requirement values, see Requirements.
Platforms: Windows 2000, Windows XP, Windows Server 2003
Header: Declared in txdtc.h