RollbackTransaction (obsolete)

Description

Rolls back the EAServer transaction associated with the calling thread.

Obsolete function

RollbackTransaction is obsolete, because EAServer is no longer supported since PowerBuilder 2017.

Applies to

CORBACurrent objects

Syntax

CORBACurrent.RollbackTransaction (  )

Argument

Description

CORBACurrent

Reference to the CORBACurrent service instance


Return value

Integer. Returns 0 if it succeeds and one of the following negative values if an error occurs:

-1 -- Failed for unknown reason

-2 -- No transaction is associated with the calling thread

-3 -- The calling thread does not have permission to commit the transaction

-4 -- The HeuristicCommit exception was raised

Usage

The RollbackTransaction function rolls back the transaction associated with the calling thread. The call fails if the HeuristicCommit exception is raised. Heuristic decisions are usually made when normal processing cannot continue, such as when a communications failure occurs. The HeuristicCommit exception is raised when all relevant updates have been committed.

RollbackTransaction can be called by a client or a component that is marked as OTS style. EAServer must be using the two-phase commit transaction coordinator (OTS/XA).

Examples

This example shows the use of RollbackTransaction to roll back a transaction when an update does not succeed:

// Instance variables:
// CORBACurrent corbcurr
int li_rc1, li_rc2
long ll_rc

this.GetContextService("CORBACurrent", corbcurr)
li_rc1 = corbcurr.Init()
IF li_rc1 <> 1 THEN
    // handle the error
ELSE
    ll_rc = CreateInstance(mycomp)
    // invoke methods on the instantiated component
    // test return values and roll back 
    // if unsatisfactory
    IF li_rc2 = 1 THEN
      corbcurr.CommitTransaction()
    ELSE
      corbcurr.RollbackTransaction()
    END IF
END IF

See also

BeginTransaction (obsolete)

CommitDocking

GetContextService

GetStatus (obsolete)

GetTransactionName (obsolete)

Init (obsolete)

ResumeTransaction (obsolete)

RollbackOnly (obsolete)

SetTimeout (obsolete)

SuspendTransaction (obsolete)