Commit phase 2 of a two-phase transaction.
MCO_RET mco_trans_commit_phase2( /*IN*/ mco_trans_h t );
t |
The |
This function finalizes a transaction, discarding the rollback buffer and invalidating the transaction handle. Any object handles scoped to the transaction become invalid. However, calling
mco_trans_commit_phase2()
when the transaction is in an error state will cause a rollback.
MCO_S_OK | The transaction was committed successfully |
MCO_S_NOTFOUND |
Index not found when trying to remove object’s entries from index |
MCO_E_NOMEM | Out of memory, possibly during an attempt to create an index |
MCO_S_DUPLICATE |
Duplicate value in a unique index (or duplicate OID) |
MCO_E_TRANSACT |
The transaction was in an error state |
Application snippet: const char * dbname = "SimpleDb"; int main(int argc, char* argv[]) { mco_db_h db; MCO_RET rc; mco_device_t dev; mco_db_params_t db_params; mco_trans_h t; ... rc = mco_db_open_dev( dbname, simple_get_dictionary(), &dev, 1, &db_params ); if ( MCO_S_OK != rc ) { rc = mco_db_connect( dbname, &db ); ... rc = mco_trans_start(db, MCO_READ_ONLY, MCO_TRANS_FOREGROUND, &t); if ( MCO_S_OK == rc ) { ... if ( MCO_S_OK == mco_trans_commit_phase1( t ) ) { ... if ( MCO_S_OK == rc = mco_trans_commit_phase2( t ) ) { ... } else { mco_trans_rollback( t ); } ... } else { mco_trans_rollback( t ); } } } ... }