dc_trn_begin
形式
ANSI C ,C++ の形式
#include <dctrn.h> int dc_trn_begin(void)
K&R版 C の形式
#include <dctrn.h> int dc_trn_begin()
機能
グローバルトランザクションを,この関数を呼び出したプロセスから開始します。dc_trn_begin関数を呼び出したプロセスは,グローバルトランザクションのルートトランザクションブランチになります。
dc_trn_begin関数を呼び出したUAPは,実行環境の設定でトランザクション属性を指定しておいてください。また,すでにdc_trn_begin関数を呼び出しているグローバルトランザクションの中では,どのトランザクションブランチからも再びdc_trn_begin関数を呼び出せません。一つのグローバルトランザクション中で重複して呼び出した場合はエラーリターンします。
リターン値
リターン値 |
リターン値(数値) |
意味 |
---|---|---|
DC_OK |
0 |
正常に終了しました。グローバルトランザクションが開始して,dc_trn_begin関数を呼び出したプロセスはその範囲に含まれています。 |
DCTRNER_PROTO |
-905 |
dc_trn_begin関数を正しくないコンテクスト(例えば,すでにトランザクション内にいる)から呼び出しています。 または,実行環境がジャーナルファイルレスモードのため,トランザクションは開始できませんでした。 |
DCTRNER_RM |
-906 |
リソースマネジャ(RM)でエラーが起こりました。トランザクションは開始できませんでした。 |
DCTRNER_TM |
-907 |
トランザクションサービスでエラーが起こったので,トランザクションは開始できませんでした。トランザクションサービス定義のtrn_tran_process_countオペランドの指定値が不足している可能性があります。 このリターン値が戻った場合は,再び実行すれば成功する可能性が高いので,再実行してください。 |
指定例
if(!dc_trn_info(NULL) && dc_trn_begin() < 0) fputs("cannot begin transaction\n", stderr);