SetComplete

Declares that a transaction on a transaction server should be committed.

To commit a transaction

Use

For OLETxnObject objects

Syntax 1 For OLETxnObject objects

For TransactionServer objects

Syntax 2 For TransactionServer objects


Syntax 1 For OLETxnObject objects

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

Returns

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

Example 1

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

SetAbort


Syntax 2 For TransactionServer objects

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 (  )

Argument

Description

transactionserver

Reference to the TransactionServer service instance

Returns

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:

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

Example 2

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