bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo C リファレンス

 Previous Next Contents View as PDF  

tx_set_commit_return(3c)

名前

tx_set_commit_return()commit_return 特性の設定

形式

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

機能説明

tx_set_commit_return() は、when_return で指定されている値に commit_return 特性を設定します。この特性は、呼び出し側に制御を返すことに関する tx_commit() の動作に影響します。tx_set_commit_return() は、その呼び出し側がトランザクション・モードかどうかにかかわらず呼び出されます。この設定は、引き続き呼び出される tx_set_commit_return() で変更されるまで有効です。

この特性の初期設定は、TX_COMMIT_COMPLETED です。

when_return の有効な設定を次に示します。

TX_COMMIT_DECISION_LOGGED

このフラグは、2 フェーズ・コミット・プロトコルの 1 番目のフェーズによってコミットの意志が記録された後、2 番目のフェーズが終了する前に tx_commit() が返らなければならないことを示しています。この設定をすることにより、tx_commit() を呼び出した側へ高速に応答することができます。しかし、トランザクションにヒューリスティックな結果が発生する危険があります。この場合、呼び出し側が、tx_commit() の戻り値からこの状況を知ることはできません。正常な状態では、第 1 フェーズの間にコミットすることを約束しているパーティシパントは、第 1 フェーズでコミットします。しかし、ある異常な環境 (たとえば、応答のないネットワークまたはノード障害) においては、2 番目のフェーズが終了しない可能性があり、ヒューリスティックな結果が発生する場合があります。

TX_COMMIT_COMPLETED

このフラグは、2 フェーズのコミット・プロトコルが完全に終了した後、tx_commit() が返ることを示しています。この設定により、tx_commit() の呼び出し側は、トランザクションにヒューリスティックな結果が発生したか、または発生した可能性があるかを示す戻り値を調べることができます。

マルチスレッドのアプリケーションの場合、TPINVALIDCONTEXT 状態のスレッドは tx_set_commit_return() の呼び出しを発行できません。

戻り値

正常終了の場合、tx_set_commit_return() は、負でない戻り値 TX_OK を返します。

エラー

次の条件の場合、commit_return は、commit_return 特性の設定を変更することなく、次の 3 つの負の値のうちの 1 つを返します。

[TX_EINVAL]

when_return が、TX_COMMIT_DECISION_LOGGED または TX_COMMIT_COMPLETED のいずれでもありません。

[TX_PROTOCOL_ERROR]

この関数が不正なコンテキストで呼び出されました (たとえば、呼び出し側がまだ tx_open() を呼び出していません)。

[TX_FAIL]

トランザクション・マネージャが致命的エラーを検出しました。このエラーでは、トランザクション・マネージャは、アプリケーションのために作業を行うことができなくなります。エラーの正確な内容がログ・ファイルに書き込まれます。

関連項目

tx_commit(3c)tx_info(3c)tx_open(3c)

警告

X/Open TX インターフェイスと X-Window システムは、いずれも型 XID を定義します。同一のファイルで X-Window コールと TX コールの両方を使用することはできません。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy