分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編

[目次][索引][前へ][次へ]

4.5.1 dc_trn_begin_sトランザクションの開始

<この項の構成>
(1) 形式
(2) 機能
(3) UAPで値を設定する引数
(4) リターン値

(1) 形式

(a) _s付き関数の場合
 
#include <dcvtrn.h>
DCLONG dc_trn_begin_s(DCCLT_ID cltid)
 
(b) _s無し関数の場合
 
#include <dcvtrn.h>
DCLONG dc_trn_begin()
 

(2) 機能

グローバルトランザクションを,dc_trn_begin_s関数を実行するCUPのプロセスから開始します。

dc_trn_begin_s関数は,dc_rpc_open_s関数のあとに実行してください。

dc_trn_begin_s関数を実行してから,トランザクションの同期点(コミットの要求)までが一つのグローバルトランザクションとなります。また,グローバルトランザクションの中では,dc_trn_begin_s関数は重複して実行できません(SPPでのdc_trn_begin_s関数を含みます)。実行した場合はエラーリターンします。

SPPのトランザクション属性は,ユーザサービス定義のatomic_updateの指定に従います。

(3) UAPで値を設定する引数

(4) リターン値

リターン値 数値
(10進数)
意味
DC_OK 0 正常終了しました。
DCCLTER_PROTO -2502 誤ったコンテクスト(例 すでにトランザクション内にいる)から関数を呼び出しています。
または,次の条件が重なった環境下から関数を呼び出しています。
  • クライアント環境定義DCUTOKEYを指定しています。
  • rapサーバとの常設コネクションが確立中です。
DCCLTER_NO_BUFS -2504 メモリ不足が発生しました。または,リソース不足が発生しました。
DCCLTER_NET_DOWN -2506 ネットワーク障害が発生しました。
DCCLTER_TIMED_OUT -2507 dc_trn_begin_s関数の処理時間で時間切れ(タイムアウト)が発生しました。
DCCLTER_NO_SUCH_SERVICE_GROUP -2510 クライアント拡張サービスが起動されていません。システムサービス構成定義clt_confの指定が正しいか見直してください。または,トランザクショナルRPC実行プロセスが起動されていません。クライアントサービス定義clt_trn_confの指定が正しいか見直してしてください。
DCCLTER_OLTF_NOT_UP -2515 OpenTP1が起動されていません。
DCCLTER_NO_BUFS_AT_SERVER -2517 トランザクションプロセス内でメモリ不足が発生しました。
DCCLTER_SYSERR -2518 システムエラーが発生しました。
DCCLTER_CONNFREE -2542 常設コネクションが解放されました。
DCCLTER_INVALID_CLTID -2544 cltidに指定したクライアントIDは,dc_clt_cltin_s関数で受け取ったクライアントIDと異なっています。
DCCLTER_BUSY_AT_SERVER -2545 サーバのトランザクション処理に負荷が掛かり過ぎているため,トランザクションを開始できません。
このリターン値が戻った場合は,再び実行すれば成功する可能性が高いので,再実行してください。
DCCLTER_PORT_IN_USE -2547 指定したポート番号は使用されています。または,OSが自動的に割り当てるポート番号が不足しています。
DCTRNER_RM -3406 リソースマネジャ(RM)でエラーが発生しました。
トランザクションは発生できませんでした。
DCTRNER_TM -3407 トランザクションサービスでエラーが発生したので,トランザクションを開始できませんでした。
このリターン値が返った場合は,再び実行すれば成功する可能性が高いので,再実行してください。