Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編


CBLDCRSV('MAINLOOP')

〈このページの構成〉

名称

SPPのサービス開始

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCRSV' USING 一意名1

DATA DIVISIONの指定

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

機能

SPPにあるサービスプログラムへのスケジュールを受け付けます。

CBLDCRSV('MAINLOOP')は,SPPのメインプログラムから呼び出します。プロセスで1回だけ呼び出してください。

CBLDCRSV('MAINLOOP')を呼び出してから,OpenTP1からSPPの終了が要求されるまで,CBLDCRSV('MAINLOOP')はリターンしません。OpenTP1からSPPの終了が要求されるのは,次に示す場合です。

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

●データ名A

SPPのサービス開始を示す要求コードを「VALUE 'MAINLOOP'」と設定します。

●データ名C

0を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

OpenTP1からSPPの終了が要求されました。SPPはすぐにプロセスの終了処理をして,CBLDCRPC('CLOSE ')を呼び出してから,メインプログラムをSTOP RUNで終了してください。

00301

データ名に設定した値が間違っています。要求コード(データ名A)が間違っている場合も含みます。

00302

CBLDCRSV('MAINLOOP')を呼び出す前に,CBLDCRPC('OPEN ')を呼び出していません。

CBLDCRSV('MAINLOOP')か CBLDCMCF('MAINLOOP')が,すでに呼び出されています。

00303

SPPのサービスを開始できませんでした。

注意事項

CBLDCRSV('MAINLOOP')は,OpenTP1から終了要求があるとリターンします。ただし,次に示す場合には,CBLDCRSV('MAINLOOP')がリターンしないまま,プロセスが終了します。

上記のような場合には,CBLDCRSV('MAINLOOP')が正常に終了したあとで終了処理をするようにコーディングしてあっても,その処理は実行されませんので注意してください。