Declares that a transaction on a transaction server should be committed.
Description
Declares that the current transaction should be committed.
Applies to
OLETxnObject objects
Syntax
oletxnobject.SetComplete ( )
Argument |
Description |
---|---|
oletxnobject |
The name of the OLETxnObject variable that is connected to the COM object |
Return value
Integer.
Returns 1 if it succeeds and -1 if an error occurs.
Usage
Call the SetComplete function from a client to allow a COM+ transaction to be completed if all participants in the transaction on the COM+ server have called SetComplete or EnableCommit. If any participant in the transaction has called DisableCommit or SetAbort, the transaction is not completed.
Examples
The following example shows the use of SetComplete in a component method that performs database updates:
integer li_rc OleTxnObject lotxn_obj lotxn_obj = CREATE OleTxnObject li_rc = lotxn_obj.ConnectToNewObject("pbcom.n_test") IF li_rc <> 0 THEN Messagebox( "Connect Error", string(li_rc) ) // handle error END IF lotxn_obj.f_dowork() lotxn_obj.f_domorework() lotxn_obj.SetComplete() lotxn_obj.DisconnectObject()
See also
Description
Declares that the transaction in which a component is participating should be committed and the component instance should be deactivated.
Applies to
TransactionServer objects
Syntax
transactionserver.SetComplete ( )
Return value
Integer.
Returns 1 if it succeeds and -1 if an error occurs.
Usage
The SetComplete function corresponds to the completeWork transaction primitive in EAServer.
Any component that participates in a transaction can roll back the transaction by calling the rollbackWork primitive. Only the action of the root component (the component instance that began the transaction) determines when EAServer commits the transaction.
The transaction is committed if either of the following occurs:
-
The root component returns with a state of completeWork and no participating component has set a state of disallowCommit.
-
The root component is deactivated due to an explicit destroy from the client and no participating component has set a state of disallowCommit. (A client disconnect that is not preceded by an explicit destroy request always causes a rollback.)
You can use the transaction state primitives in any component; the component does not have to be declared transactional. Calling completeWork or rollbackWork from methods causes early deactivation.
Examples
The following example shows the use of SetComplete in a component method that performs database updates:
// Instance variables: // DataStore ids_datastore // TransactionServer ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer", ts) IF li_rc <> 1 THEN // handle the error END IF ... ll_rv = ids_datastore.Update() IF ll_rv = 1 THEN ts.SetComplete() ELSE ts.SetAbort() END IF
See also