### DbEnv::txn_stat |

`

###

    #include <db_cxx.h>

    int
    DbEnv::txn_stat(DB_TXN_STAT **statp, u_int32_t flags);

    int
    DbEnv::txn_stat_print(u_int32_t flags);

### Description: DbEnv::txn_stat

The DbEnv::txn_stat method returns the transaction subsystem statistics.

The DbEnv::txn_stat method creates a statistical structure of type DB_TXN_STAT and copies a pointer to it into a user-specified memory location.

Statistical structures are stored in allocated memory. If application-specific allocation routines have been declared (see DbEnv::set_alloc for more information), they are used to allocate the memory; otherwise, the standard C library malloc(3) is used. The caller is responsible for deallocating the memory. To deallocate the memory, free the memory reference; references inside the returned memory need not be individually freed.

The following DB_TXN_STAT fields will be filled in:

DbLsn st_last_ckp;
  The LSN of the last checkpoint.
time_t st_time_ckp;
  The time the last completed checkpoint finished (as the number of seconds since the Epoch, returned by the IEEE/ANSI Std 1003.1 (POSIX) time function).
u_int32_t st_last_txnid;
  The last transaction ID allocated.
u_int32_t st_maxtxns;
  The maximum number of active transactions configured.
u_int32_t st_nactive;
  The number of transactions that are currently active.
u_int32_t st_nsnapshot;
  The number of transactions on the snapshot list. These are transactions which modified a database opened with DB_MULTIVERSION, and which have committed or aborted, but the copies of pages they created are still in the cache.
u_int32_t st_maxnactive;
  The maximum number of active transactions at any one time.
u_int32_t st_maxnsnapshot;
  The maximum number of transactions on the snapshot list at any one time.
u_int32_t st_nbegins;
  The number of transactions that have begun.
u_int32_t st_naborts;
  The number of transactions that have aborted.
u_int32_t st_ncommits;
  The number of transactions that have committed.
u_int32_t st_nrestores;
  The number of transactions that have been restored.
roff_t st_regsize;
  The size of the transaction region, in bytes.
u_int32_t st_region_wait;
  The number of times that a thread of control was forced to wait before obtaining the transaction region mutex.
u_int32_t st_region_nowait;
  The number of times that a thread of control was able to obtain the transaction region mutex without waiting.
DB_TXN_ACTIVE *st_txnarray;
  A pointer to an array of st_nactive DB_TXN_ACTIVE structures, describing the currently active transactions. The following fields of the DB_TXN_ACTIVE structure will be filled in:
  u_int32_t txnid;
    The transaction ID of the transaction.
  u_int32_t parentid;
    The transaction ID of the parent transaction (or 0, if no parent).
  pid_t pid;
    The process ID of the originator of the transaction.
  uintmax_t tid;
    The thread of control ID of the originator of the transaction.
  DbLsn lsn;
    The current log sequence number when the transaction was begun.
  DbLsn read_lsn;
    The log sequence number of reads for snapshot transactions.
  u_int32_t mvcc_ref;
    The number of buffer copies created by this transaction that remain in cache.
  u_int32_t status;
    One of the following list of constants: TXN_ABORTED, TXN_COMMITTED, TXN_PREPARED, TXN_RUNNING.
  u_int32_t xa_status;
    If the transaction is an XA transaction, the xa_status of the transaction will be one of the following list of constants: TXN_XA_ABORTED, TXN_XA_DEADLOCKED, TXN_XA_ENDED, TXN_XA_PREPARED, TXN_XA_STARTED, or TXN_XA_SUSPENDED. Otherwise, the xa_status will be 0.
  u_int8_t xid[DB_XIDDATASIZE];
    If the transaction is an XA transaction, the transaction's XA ID. If the transaction was prepared separately from the XA interfaces, the transaction's Global ID. Otherwise, the xid contents are undefined.
  char name[];
    If a name was specified for the transaction, up to the first 50 bytes of that name, followed by a nul termination byte.

The DbEnv::txn_stat method may not be called before the DbEnv::open method has been called.

The DbEnv::txn_stat method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

### Parameters

flags
  The flags parameter must be set to 0 or the following value:
  DB_STAT_CLEAR
    Reset statistics after returning their values.
statp
  The statp parameter references memory into which a pointer to the allocated statistics structure is copied.

### Errors

The DbEnv::txn_stat method may fail and throw DbException, encapsulating one of the following non-zero errors, or return one of the following non-zero errors:

EINVAL
  An invalid flag value or parameter was specified.

### Description: DbEnv::txn_stat_print

The DbEnv::txn_stat_print method displays the transaction subsystem statistical information, as described for the DbEnv::txn_stat method. The information is printed to a specified output channel (see the DbEnv::set_msgfile method for more information), or passed to an application callback function (see the DbEnv::set_msgcall method for more information).

The DbEnv::txn_stat_print method may not be called before the DbEnv::open method has been called.

The DbEnv::txn_stat_print method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

### Parameters

flags
  The flags parameter must be set to 0 or by bitwise inclusively OR'ing together one or more of the following values:
  DB_STAT_ALL
    Display all available information.
  DB_STAT_CLEAR
    Reset statistics after displaying their values.

### Class

DbEnv, DbTxn

### See Also

Transaction Subsystem and Related Methods`

Copyright (c) 1996,2007 Oracle. All rights reserved.