Hitachi

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


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

〈この項の構成〉

(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

トランザクションサービスでエラーが発生したので,トランザクションを開始できませんでした。

このリターン値が返った場合は,再び実行すれば成功する可能性が高いので,再実行してください。