Hitachi

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


6.7.1 CBLDCCLS('NOTIFY ') − 一方通知メッセージの受信

〈この項の構成〉

(1) 形式

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

■ PROCEDURE DIVISIONの指定

CALL 'CBLDCCLS' USING 一意名1 一意名2

■ DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8)  VALUE 'NOTIFY  '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC S9(9) COMP VALUE ZERO.
   02 データ名D  PIC 9(4)  COMP.
   02 FILLER    PIC X(2).
   02 データ名E  PIC S9(9) COMP.
   02 データ名F  PIC X(64).
   02 データ名G  PIC X(8).
   02 FILLER     PIC 9(4)  COMP.
   02 FILLER     PIC X(2).
   02 データ名I  PIC X(256).
 
01 一意名2.
   02 データ名J  PIC S9(9) COMP.
   02 データ名K  PIC X(n).

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

■ PROCEDURE DIVISIONの指定

CALL 'CBLDCCLT' USING 一意名1 一意名2

■ DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8)  VALUE 'NOTIFY  '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC S9(9) COMP VALUE ZERO.
   02 データ名D  PIC 9(4)  COMP.
   02 FILLER    PIC X(2).
   02 データ名E  PIC S9(9) COMP.
   02 データ名F  PIC X(64).
   02 データ名G  PIC X(8).
 
01 一意名2.
   02 データ名J  PIC S9(9) COMP.
   02 データ名K  PIC X(n).

(2) 機能

サーバ側の要求コード(CBLDCRPC('CLTSEND '))によって通知されるメッセージを,データ名Eで指定した値まで待ち続けます。受信した時点でCUPに制御を戻し,ステータスコード,通知メッセージ,通知元サーバのホスト名,通知元サーバのノード識別子を返します。また,この要求コードの実行前にCBLDCCLS('CLTIN '),およびCBLDCRPS('OPEN ')を実行しておく必要はありません。

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

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

(5) ステータスコード

ステータスコード

意味

00000

正常終了しました。

02501

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

02503

初期化に失敗しました。または,クライアント環境定義の指定に誤りがあります。

02504

必要なバッファが確保されませんでした。

02506

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

02507

メッセージの受信時にタイムアウトになりました。

02518

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

02535

バージョン不一致が発生しました。

02546

受信したメッセージが,CUPで用意した領域に収まりません。収まり切らないメッセージは切り捨てました。データ名F,データ名Gには,値を設定済みです。

02547

指定したポート番号は使用されています。

02548

不正なメッセージを受信しました。

02549

一方通知受信待ち状態がCBLDCCLS('CANCEL ')によって解除されました。引数データ名F,データ名J,およびデータ名Kには,値を設定済みです。

(6) 注意事項

同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合,データ名Dにはそれぞれ異なるポート番号を指定してください。また,データ名Dに指定できるポート番号でも,OSまたはほかのプログラムが使用するポート番号は指定しないでください。指定した場合,応答データを正しく受信できないことがあります。なお,OSが使用するポート番号は,OSごとに異なります。OSが使用するポート番号については,OSのマニュアルなどを参照してください。