IProvProvider::RollbackRequest


Rolls back provider procedures. Used by Microsoft. Provisioning Framework (MPF).

Syntax

C++
HRESULT RollbackRequest  (
	IXMLDOMNode *pXML
);

Parameters

pXML
A pointer to the IXMLDOMNode object interface.

Return Codes

Zero indicates success; a non-zero value represents an error. For a list of error codes, see MPF Errors.

Remarks

RollbackRequest is the entry point for all compensating handler code for provider procedures. When a transaction fails and must be rolled back, the provisioning engine calls RollbackRequest once for every ProcessRequest call that had already succeeded prior to the error. RollbackRequest calls occur in the opposite order than the original ProcessRequest calls. 

Custom providers must implement compensating handler code in RollbackRequest for every procedure marked as type "write" or "two-phase" in the procedure definition. For more information on procedure types, see Transactions.

The procedure's executeData nodes are included in rollback only if the procedure node's saveDataForRollback attribute is set to "1" (true) in the procedure definition.

Whenever ProcessRequest returns an error code, the engine considers this a failure, although the transaction may not roll back immediately, depending on the error handling, if any, implemented in the procedure. The provider is responsible for cleaning up data and rolling back changes for the failed call because the engine will not call RollbackRequest for the failed procedure. (However, it will call RollbackRequest for all the successfully-executed procedure calls.).

Whenever RollbackRequest returns an error, it means the provider was unable to roll back changes completely, so some data may be in an inconsistent state.

See Also

CommitRequest, Developing Custom Providers, PrepareRequest, ProcessRequest


Up Top of Page
) 1999-2002 Microsoft Corporation. All rights reserved.