3.9.4.1.2 Commit (Opnum 8)
The Commit method is received by the server in an RPC_REQUEST packet. In response, the server MUST commit the underlying internal transaction or external transaction.
-
HRESULT Commit( [in, optional] VARIANT* fRetaining, [in, optional] VARIANT* grfTC, [in, optional] VARIANT* grfRM );
fRetaining: A pointer to a VARIANT that contains a VARIANT_BOOL. This flag specifies whether to retain the transaction when it is finished. If this parameter is not specified by the client, the server MUST use the default value of False.
grfTC: A pointer to a VARIANT that contains a VT_I4 integer that corresponds to the XACTTC enumeration (section 2.2.2.21).
If this parameter is not specified by the client, the server MUST use the default value XACTTC_SYNC (0x00000002).
grfRM: A pointer to a VARIANT that contains a long. For more details about this input parameter, refer to [MS-DTCO] section 2.2.7.1. If this parameter is not specified by the client, the server MUST use the default value of 0 in place of the unspecified value.
Return Values: The method MUST return S_OK (0x00000000) to indicate success or an implementation-specific error HRESULT on failure.
When the server processes this call, it MUST follow these guidelines:
If the Transaction instance variable is NULL:
Return E_INVALIDARG (0x80070057), and take no further action.
Commit the transaction by invoking the Commit method (ITransaction::Commit section 3.8.4.1.1) on the Transaction instance variable, passing the input parameters fRetaining, grfTC, and grfRM.