6.7.4 CBLDCCLS('EXNCANCL') − 一方通知待ち状態のキャンセル(ホスト名長の拡張時)
(1) 形式
(a) マルチスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLS' USING 一意名1 一意名2 一意名3
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'EXNCANCL'. 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 X(n). 01 一意名2. 02 データ名F PIC S9(9) COMP. 02 データ名G PIC X(n). 01 一意名3. 02 FILLER PIC 9(9) COMP. 02 FILLER PIC 9(4) COMP. 02 FILLER PIC X(2). 02 データ名H PIC X(n).
(b) シングルスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLT' USING 一意名1 一意名2
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'EXNCANCL'. 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 X(n). 01 一意名2. 02 データ名F PIC S9(9) COMP. 02 データ名G PIC X(n).
(2) 機能
次のどれかの要求文を使用し,サーバからの一方通知待ち状態となっているCUPの,待ち状態を解除します。
-
CBLDCCLS('NOTIFY ')
-
CBLDCCLS('A-NOTIFY')
-
CBLDCCLS('EXNACPT ')
-
CBLDCCLS('EXNCACPT')
解除するときに,データ名Iに指定したメッセージを一方通知受信待ち状態のCUPに通知できます。
ホスト名長の拡張機能を使用している場合,この関数を使用してください。
(3) UAPで値を設定するデータ領域
-
データ名A
一方通知待ち状態のキャンセルを示す要求コードを「VALUE 'EXNCANCL'」と設定します。
-
データ名C
0を指定します。
-
データ名D
一方通知受信要求時に指定したポート番号を指定します。5001から65535の範囲で指定します。
-
データ名E
一方通知受信待ち状態のCUPが存在するホスト名を指定します。ホスト名として指定できる長さは,63文字※までです。文字列の最後は空白文字を指定してください。
ホスト名として,10進ドット記法のIPアドレスを指定することもできます。
- 注※
-
クライアント環境定義DCCLTOPTIONに00000008を指定した場合,ホスト名として指定できる長さは255文字までとなります。
-
データ名F
メッセージ長を指定します。0からDCRPC_MAX_MESSAGE_SIZE※の範囲で指定します。
0を指定した場合はCUPにメッセージを通知しません。
- 注※
-
クライアント環境定義DCCLTRPCMAXMSGSIZEに2以上を指定した場合,DCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,クライアント環境定義DCCLTRPCMAXMSGSIZEに指定した値になります。
-
データ名G
CUPに通知するメッセージを格納する領域を指定します。データ名Fで指定する長さ以上の領域を用意してください。
-
データ名H
クライアント環境定義ファイルへのパス名を指定します。パス名には完全パス,またはカレントドライブ・ディレクトリからの相対パスが指定できます。パス名を指定した場合のファイルの読み込み順序を次に示します。
-
TP1/Client/Pの場合
クライアント環境定義ファイルの読み込み順序は次のとおりです。
1.WindowsディレクトリのBETRAN.INIファイル
2.データ名Iに指定したクライアント環境定義ファイル
定義は,クライアント環境定義ファイルおよびBETRAN.INIファイルのどちらのファイルに指定しても有効です。
両方のファイルに同じ定義を異なる値で指定した場合は,クライアント環境定義ファイルに指定した値が有効となります。
クライアント環境定義ファイルおよびBETRAN.INIファイルのどちらにも指定がない場合は,デフォルト値で動作します。
-
TP1/Client/Wの場合
環境変数に指定されている定義は,すべて無効となります。データ名Hに指定したクライアント環境定義ファイルに指定されていない定義はデフォルト値で動作します。
また,データ名Hの先頭に空白を指定することでパス名を省略できます。省略時の動作を次に示します。
-
TP1/Client/Pの場合
WindowsディレクトリのBETRAN.INIファイルをクライアント環境定義ファイルとして動作します。BETRAN.INIファイルがない場合,または定義ファイルの内容が不正な場合はデフォルト値で動作します。
-
TP1/Client/Wの場合
環境変数の指定で動作します。環境変数が指定されていない場合は,デフォルト値で動作します。
データ名Hに指定したクライアント環境定義ファイルがない場合,または定義ファイルの内容が不正な場合の動作を次に示します。
-
TP1/Client/Pの場合
WindowsディレクトリのBETRAN.INIファイルをクライアント環境定義ファイルとして動作します。BETRAN.INIファイルがない場合,または定義ファイルの内容が不正な場合は,デフォルト値で動作します。
-
TP1/Client/Wの場合
デフォルト値で動作します。環境変数の指定は無効となります。
-
(4) 値が返されるデータ領域
-
データ名B
ステータスコードが,5けたの数字で返されます。
(5) ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常終了しました。 |
02501 |
データ名に設定した値が間違っています。要求コード(データ名A)が間違っている場合も含みます。 |
02503 |
初期化に失敗しました。または,クライアント環境定義の指定に誤りがあります。 |
02504 |
必要なバッファが確保できませんでした。 |
02506 |
ネットワーク障害が発生しました。 |
02514 |
CUPが一方通知受信待ち状態ではありません。 |
02518 |
システムエラーが発生しました。 |
02539 |
ホスト名が不正です。 |
02547 |
OSが自動的に割り当てるポート番号が不足しています。 |
(6) 注意事項
ステータスコード02518が戻る場合,CUPを終了してから開始し直してください。