Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編


tx_set_transaction_control

〈このページの構成〉

名称

transaction_control特性の設定

形式

ANSI C ,C++ の形式

#include <tx.h>
int  tx_set_transaction_control(TRANSACTION_CONTROL  control)

K&R版 Cの形式

#include <tx.h>
int  tx_set_transaction_control(control)
TRANSACTION_CONTROL   control;

機能

関数tx_set_transaction_control()は,transaction_control特性を,controlに指定した値に設定します。transaction_control特性は,tx_commit(),tx_rollback()が呼び出し元にリターンする前に,新しいトランザクションが開始するかどうかを決定します。

関数tx_set_transaction_control()は,呼び出し元がトランザクションモードかどうかに関係なく呼び出せます。controlに設定したtransaction_control特性は,あとから呼び出されるtx_set_transaction_control()で変更されるまで引き継がれて,効力を発揮します。

transaction_control特性の初期設定は,TX_UNCHAINEDです。

『引数』

『●control』

次の二つのどちらかの値が,controlの妥当な設定です。

{TX_UNCHAINED|TX_CHAINED}
  • TX_UNCHAINED

    このフラグは,tx_commit()とtx_rollback()が呼び出し元にリターンする前に,新たなトランザクションを開始しないことを示します。呼び出し元は,新しいトランザクションを開始する際には,tx_begin()を呼び出さなければなりません。

  • TX_CHAINED

    このフラグは,tx_commit()とtx_rollback()が呼び出し元にリターンする前に,新しいトランザクションを開始することを示します。

リターン値

成功した場合,tx_set_transaction_control()はTX_OKを返します。これは,負ではないリターン値です。『0が返ります。』『transaction_control特性の設定は,controlの値に変更されました。』

エラー

次のような場合,tx_set_transaction_control()はエラーリターンして,次のうちどれか一つの値を返します。これは,負のリターン値です。負のリターン値が返った場合は,tx_set_transaction_control()はtransaction_control特性を変更しません。

リターン値

リターン値(数値)

意味

TX_PROTOCOL_ERROR

-5

関数は,適切でないコンテクストで呼ばれました(例えば,呼び出し元がまだtx_open()を呼び出していない)。

TX_FAIL

-7

トランザクションマネジャで,回復できないエラーが起こりました。トランザクションマネジャが,すでにアプリケーションに代わって作業できないことがエラーの原因です。

TX_EINVAL

-8

controlに設定した値は,TX_UNCHAINEDでも,TX_CHAINEDでもありません。

参照

tx_begin(),tx_commit(),tx_open(),tx_rollback(),tx_info()

『指定例』

『if (tx_set_transaction_return(TX_UNCHAINED) == 0 &&
                                              tx_commit() < 0 )
    fputs("cannot commit transaction\n",stderr);』

『OpenTP1で使う場合の注意事項』

  1. 『tx_set_transaction_control()とdc_trn_〜の関数は併用できません。』