Hitachi

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


tx_set_transaction_timeout

〈このページの構成〉

名称

transaction_timeout特性の設定

形式

ANSI C ,C++ の形式

#include <tx.h>
int  tx_set_transaction_timeout(TRANSACTION_TIMEOUT  timeout)

K&R版 Cの形式

#include <tx.h>
int  tx_set_transaction_timeout(timeout)
TRANSACTION_TIMEOUT   timeout;

機能

関数tx_set_transaction_timeout()は,timeoutに指定した値にtransaction_timeout特性を設定します。transaction_timeout特性の値には,トランザクションを完了させなければならない時間,つまりトランザクションをタイムアウトする時間を設定します。ここで示す時間とは,UAPがtx_begin()を呼び出してからtx_commit()を呼び出すまで,またはtx_begin()を呼び出してからtx_rollback()を呼び出すまでの時間を示します。

tx_set_transaction_timeout()は,呼び出し元がトランザクションモードにいるかどうかに関係なく呼び出せます。tx_set_transaction_timeout()がトランザクションモードから呼び出されても,新しいタイムアウトの値は,次のトランザクションまで効果を発揮しません。

transaction_timeout特性の初期設定は,0(タイムアウトなし)です。

『システム定義のtrn_expiration_time に値を指定している場合は,その値が初期設定になります。』

『引数』

『●timeout

トランザクションがタイムアウトとなる時間を,秒数で設定します。秒数には,そのシステムで定義されたlong型の最大値までの値が設定できます。0を設定した場合は,タイムアウトとなりません。』

リターン値

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

エラー

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

リターン値

リターン値(数値)

意味

TX_PROTOCOL_ERROR

-5

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

TX_FAIL

-7

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

TX_EINVAL

-8

timeoutに設定した値が間違っています。

参照

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

『指定例』

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

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

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