tx_set_commit_return

名称

commit_return特性の設定

形式

ANSI C ,C++ の形式

#include <tx.h>
int  tx_set_commit_return(COMMIT_RETURN  when_return)

K&R版 Cの形式

#include <tx.h>
int  tx_set_commit_return(when_return)
COMMIT_RETURN   when_return;

機能

関数tx_set_commit_return()は,commit_return特性をwhen_returnに指定した値に設定します。commit_return特性は,tx_commit()が呼び出し元に制御を戻す方法に対して影響します。

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

commit_return特性の初期設定値は,製品の仕様に依存します。『OpenTP1の場合は,TX_COMMIT_COMPLETEDです。』

『引数』

『●when_return』

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

{TX_COMMIT_DECISION_LOGGED|TX_COMMIT_COMPLETED}

リターン値

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

『リターン値が正の値で』成功した場合,tx_set_commit_return()はTX_NOT_SUPPORTEDを返します。これは,負ではないリターン値です。『when_returnに設定した値は,システムのトランザクションマネジャでは使えません。』

この場合のcommit_return特性は,変更されません。トランザクションマネジャはTX_COMMIT_COMPLETEDまたはTX_COMMIT_DECISION_LOGGEDのどちらかは,when_returnの値として使えるようにしておく必要があります。『OpenTP1の場合は,TX_COMMIT_RETURNです。』

エラー

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

リターン値リターン値(数値)意味
TX_PROTOCOL_ERROR-5関数は,適切でないコンテクストで呼ばれました(例えば,呼び出し元がtx_open()を呼び出していない)。
TX_FAIL-7トランザクションマネジャで,回復できないエラーが起こりました。トランザクションマネジャが,すでにアプリケーションに代わって作業できないことが,エラーの原因です。
TX_EINVAL-8when_returnに設定した値が,TX_COMMIT_DECISION_LOGGEDでも,TX_COMMIT_COMPLETEDでもありません。

参照

tx_commit(),tx_open(),tx_info()

『指定例』

『if (tx_set_commit_return(TX_COMMIT_COMPLETED) == 0 &&
                                           tx_commit() < 0 )
   fputs("cannot commit transaction¥n",stderr);』

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

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