6.7.5 CBLDCCLS('O-NOTIFY') − 一方通知受信の開始
(1) 形式
(a) マルチスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLS' USING 一意名1
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'O-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 FILLER PIC 9(4) COMP. 02 FILLER PIC X(2). 02 データ名F PIC 9(9) COMP-X. 02 データ名G PIC X(256).
(b) シングルスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLT' USING 一意名1
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'O-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).
(2) 機能
サーバからの一方通知受信機能を使用するための環境を作成します。
この関数は,CBLDCCLS('C-NOTIFY')と対で発行します。
(3) UAPで値を設定するデータ領域
-
データ名A
一方通知受信の開始を示す要求コードを「VALUE 'O-NOTIFY'」と指定します。
-
データ名C
0を指定します。
-
データ名D
クライアントのポート番号を指定します。5001から65535の範囲で指定します。なお,同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合は,それぞれ異なるポート番号を指定してください。
-
データ名G
クライアント環境定義ファイルへのパス名を指定します。パス名には完全パス,またはカレントドライブ・ディレクトリからの相対パスが指定できます。パス名を指定した場合のファイルの読み込み順序を次に示します。
-
TP1/Client/Pの場合
クライアント環境定義ファイルの読み込み順序は次のとおりです。
1.WindowsディレクトリのBETRAN.INIファイル
2.データ名Iに指定したクライアント環境定義ファイル
定義は,クライアント環境定義ファイルおよびBETRAN.INIファイルのどちらのファイルに指定しても有効です。
両方のファイルに同じ定義を異なる値で指定した場合は,クライアント環境定義ファイルに指定した値が有効となります。
クライアント環境定義ファイルおよびBETRAN.INIファイルのどちらにも指定がない場合は,デフォルト値で動作します。
-
TP1/Client/Wの場合
環境変数に指定されている定義は,すべて無効となります。データ名Gに指定したクライアント環境定義ファイルに指定されていない定義はデフォルト値で動作します。
また,データ名Gの先頭に空白を指定することでパス名を省略できます。省略時の動作を次に示します。
-
TP1/Client/Pの場合
WindowsディレクトリのBETRAN.INIファイルをクライアント環境定義ファイルとして動作します。BETRAN.INIファイルがない場合,または定義ファイルの内容が不正な場合はデフォルト値で動作します。
-
TP1/Client/Wの場合
環境変数の指定で動作します。環境変数が指定されていない場合は,デフォルト値で動作します。
データ名Gに指定したクライアント環境定義ファイルがない場合,または定義ファイルの内容が不正な場合の動作を次に示します。
-
TP1/Client/Pの場合
WindowsディレクトリのBETRAN.INIファイルをクライアント環境定義ファイルとして動作します。BETRAN.INIファイルがない場合,または定義ファイルの内容が不正な場合は,デフォルト値で動作します。
-
TP1/Client/Wの場合
デフォルト値で動作します。環境変数の指定は無効となります。
-
(4) 値が返されるデータ領域
-
データ名B
ステータスコードが,5けたの数字で返されます。
-
データ名F
一方通知受信IDが設定されます。設定された一方通知受信IDは,CBLDCCLS('C-NOTIFY')を実行するまで破壊してはなりません。
(5) ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常終了しました。 |
02501 |
データ領域に指定した値が誤っています。 |
02502 |
すでにCBLDCCLT('O-NOTIFY')が実行されています。CBLDCCLS('O-NOTIFY')実行時,このステータスコードは返りません。 |
02503 |
初期化に失敗しました。または,クライアント環境定義の指定に誤りがあります。 |
02504 |
必要なバッファが確保できませんでした。 |
02547 |
指定したポート番号は使用されています。 |
(6) 注意事項
-
この関数が正常終了した場合は必ずCBLDCCLS('C-NOTIFY')を発行してください。CBLDCCLS('C-NOTIFY')を発行しなかった場合,リソースが残ることがあります。
-
同一マシン内で,複数のプロセス,または複数のスレッドを同時に実行する場合,データ名Dにはそれぞれ異なるポート番号を指定してください。また,データ名Dに指定できるポート番号でも,OSまたはほかのプログラムが使用するポート番号は指定しないでください。指定した場合,応答データを正しく受信できないことがあります。なお,OSが使用するポート番号は,OSごとに異なります。OSが使用するポート番号については,OSのマニュアルなどを参照してください。