OCILIB (C and C++ Driver for Oracle)  4.9.0
Open source and cross platform Oracle Driver delivering efficient access to Oracle databases.
Loading...
Searching...
No Matches
Managing transactions

Detailed Description

OcilibCApiPools

OCILIB supports both local and global transactions.

Local transactions are implicit within connection objects and require no specific API call or programming step to use.

To control changes made in the database:

OCILIB also supports an 'Auto Commit' mode that performs an implicit commit after every statement execution.

Note
Commit and rollback operations are executed within a connection context, not directly on a transaction object.
Warning
Global transactions are optional and are designed for distributed or global transaction environments.

OCILIB supports them by:

Functions

OCI_SYM_PUBLIC boolean OCI_API OCI_Commit (OCI_Connection *con)
 Commit current pending changes.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_Rollback (OCI_Connection *con)
 Roll back current pending changes.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_SetAutoCommit (OCI_Connection *con, boolean enable)
 Enable or disable auto-commit mode.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_GetAutoCommit (OCI_Connection *con)
 Return the current auto-commit mode status.
 
OCI_SYM_PUBLIC OCI_Transaction *OCI_API OCI_TransactionCreate (OCI_Connection *con, unsigned int timeout, unsigned int mode, OCI_XID *pxid)
 Create a new global transaction or a serializable/read-only local transaction.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionFree (OCI_Transaction *trans)
 Free a transaction object.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionStart (OCI_Transaction *trans)
 Start a global transaction.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionStop (OCI_Transaction *trans)
 Stop a global transaction.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionResume (OCI_Transaction *trans)
 Resume a stopped global transaction.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionPrepare (OCI_Transaction *trans)
 Prepare a global transaction for two-phase commit validation.
 
OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionForget (OCI_Transaction *trans)
 Cancel a previously prepared global transaction validation.
 
OCI_SYM_PUBLIC unsigned int OCI_API OCI_TransactionGetMode (OCI_Transaction *trans)
 Return the global transaction mode.
 
OCI_SYM_PUBLIC unsigned int OCI_API OCI_TransactionGetTimeout (OCI_Transaction *trans)
 Return the global transaction timeout.
 

Function Documentation

◆ OCI_Commit()

OCI_SYM_PUBLIC boolean OCI_API OCI_Commit ( OCI_Connection con)

#include <api.h>

Commit current pending changes.

Parameters
con- Connection handle
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Connection::Commit().

◆ OCI_Rollback()

OCI_SYM_PUBLIC boolean OCI_API OCI_Rollback ( OCI_Connection con)

#include <api.h>

Roll back current pending changes.

Parameters
con- Connection handle
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Connection::Rollback().

◆ OCI_SetAutoCommit()

OCI_SYM_PUBLIC boolean OCI_API OCI_SetAutoCommit ( OCI_Connection con,
boolean  enable 
)

#include <api.h>

Enable or disable auto-commit mode.

When enabled, all pending changes are automatically committed after every successful statement execution.

Parameters
con- Connection handle
enable- TRUE to enable auto-commit, FALSE to disable it
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Connection::SetAutoCommit().

◆ OCI_GetAutoCommit()

OCI_SYM_PUBLIC boolean OCI_API OCI_GetAutoCommit ( OCI_Connection con)

#include <api.h>

Return the current auto-commit mode status.

Parameters
con- Connection handle
Returns
TRUE if auto-commit mode is enabled, otherwise FALSE.

Referenced by ocilib::Connection::GetAutoCommit().

◆ OCI_TransactionCreate()

OCI_SYM_PUBLIC OCI_Transaction *OCI_API OCI_TransactionCreate ( OCI_Connection con,
unsigned int  timeout,
unsigned int  mode,
OCI_XID *  pxid 
)

#include <api.h>

Create a new global transaction or a serializable/read-only local transaction.

Parameters
con- Connection handle
timeout- Time (in seconds) that a transaction stays inactive after being stopped
mode- Transaction mode
pxid- Pointer to a global transaction identifier structure (XID)
Note
Possible values for parameter 'mode':
  • Global transactions:
    • OCI_TRS_NEW : Start a new, tightly coupled and migratable branch (default).
    • OCI_TRS_TIGHT : Explicitly specify a tightly coupled branch.
    • OCI_TRS_LOOSE : Specify a loosely coupled branch.
  • Global and local transactions:
    • OCI_TRS_READONLY : Start a read-only transaction.
    • OCI_TRS_READWRITE : Start a read-write transaction.
    • OCI_TRS_SERIALIZABLE : Start a serializable transaction.
Note
For local transactions, pass NULL for the 'pxid' parameter.
Returns
Transaction handle on success, or NULL on failure.

Referenced by ocilib::Transaction::Transaction().

◆ OCI_TransactionFree()

OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionFree ( OCI_Transaction trans)

#include <api.h>

Free a transaction object.

Parameters
trans- Transaction handle
Returns
TRUE on success, otherwise FALSE.

◆ OCI_TransactionStart()

OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionStart ( OCI_Transaction trans)

#include <api.h>

Start a global transaction.

Parameters
trans- Transaction handle
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Transaction::Start().

◆ OCI_TransactionStop()

OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionStop ( OCI_Transaction trans)

#include <api.h>

Stop a global transaction.

Parameters
trans- Transaction handle
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Transaction::Stop().

◆ OCI_TransactionResume()

OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionResume ( OCI_Transaction trans)

#include <api.h>

Resume a stopped global transaction.

Parameters
trans- Transaction handle
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Transaction::Resume().

◆ OCI_TransactionPrepare()

OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionPrepare ( OCI_Transaction trans)

#include <api.h>

Prepare a global transaction for two-phase commit validation.

Parameters
trans- Transaction handle
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Transaction::Prepare().

◆ OCI_TransactionForget()

OCI_SYM_PUBLIC boolean OCI_API OCI_TransactionForget ( OCI_Transaction trans)

#include <api.h>

Cancel a previously prepared global transaction validation.

Parameters
trans- Transaction handle
Returns
TRUE on success, otherwise FALSE.

Referenced by ocilib::Transaction::Forget().

◆ OCI_TransactionGetMode()

OCI_SYM_PUBLIC unsigned int OCI_API OCI_TransactionGetMode ( OCI_Transaction trans)

#include <api.h>

Return the global transaction mode.

Parameters
trans- Transaction handle
Note
See OCI_TransactionCreate() for possible values.
Returns
The transaction mode, or OCI_UNKNOWN if the input handle is NULL.

Referenced by ocilib::Transaction::GetFlags().

◆ OCI_TransactionGetTimeout()

OCI_SYM_PUBLIC unsigned int OCI_API OCI_TransactionGetTimeout ( OCI_Transaction trans)

#include <api.h>

Return the global transaction timeout.

Parameters
trans- Transaction handle
Returns
The transaction timeout in seconds, or 0 if the input handle is NULL.

Referenced by ocilib::Transaction::GetTimeout().