Hitachi

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


6.5.1 CBLDCTRS('BEGIN ') − トランザクションの開始

〈この項の構成〉

(1) 形式

(a) マルチスレッド環境の場合

■ PROCEDURE DIVISIONの指定

CALL 'CBLDCTRS' USING 一意名1

■ DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'BEGIN   '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC 9(9) COMP-X.

(b) シングルスレッド環境の場合

■ PROCEDURE DIVISIONの指定

CALL 'CBLDCTRN' USING 一意名1

■ DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'BEGIN   '.
   02 データ名B  PIC X(5).

(2) 機能

グローバルトランザクションを,CBLDCTRS('BEGIN ')を実行するCUPのプロセスから開始します。

CBLDCTRS('BEGIN ')は,CBLDCRPS('OPEN ')を実行したあとに発行してください。

CBLDCTRS('BEGIN ')を実行してから,トランザクションの同期点(コミットの要求)までが一つのグローバルトランザクションとなります。

また,グローバルトランザクション中では,CBLDCTRS('BEGIN ')を重複して発行できません(SPPでのCBLDCTRS('BEGIN ')を含みます)。発行した場合はエラーリターンします。

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

(3) UAPで値を設定するデータ領域

(4) 値が返されるデータ領域

(5) ステータスコード

ステータスコード

意味

00000

正常終了しました。

02501

要求コード(データ名A)に指定した値が間違っています。

02502

誤ったコンテクスト(例 すでにトランザクション内にいる)からプログラムを発行しています。

または,次の条件が重なった環境下から関数を呼び出しています。

  • クライアント環境定義DCUTOKEYを指定しています。

  • rapサーバとの常設コネクションが確立中です。

02504

メモリ不足が発生しました。

02506

ネットワーク障害が発生しました。

02507

CBLDCTRS('BEGIN ')の処理時間で時間切れ(タイムアウト)が発生しました。

02510

クライアント拡張サービスが起動されていません。システムサービス構成定義clt_confの指定が正しいか見直してください。または,トランザクショナルRPC実行プロセスが起動されていません。クライアントサービス定義clt_trn_confの指定が正しいか見直してしてください。

02515

OpenTP1が起動されていません。

02517

トランザクションプロセス内でメモリ不足が発生しました。

02518

システムエラーが発生しました。

02542

CUP実行プロセス側から常設コネクションが解放されました。

02544

データ名Cに指定したクライアントIDはCBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDと異なっています。

02545

サーバのトランザクション処理に負荷が掛かり過ぎているため,トランザクションを開始できません。

このステータスコードが戻った場合は,再び実行すれば成功する可能性が高いので,再実行してください。

02547

指定したポート番号は使用されています。または,OSが自動的に割り当てるポート番号が不足しています。

03406

リソースマネジャ(RM)でエラーが発生しました。トランザクションは発生できませんでした。

03407

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

このステータスコードが戻った場合は,再び実行すれば成功する可能性が高いので,再び実行してください。