6.6.2 CBLDCCLS('EXSEND ') − メッセージの送信(ホスト名長の拡張時)
(1) 形式
(a) マルチスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLS' USING 一意名1 一意名2 一意名3
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'EXSEND '. 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 データ名H PIC 9(9) COMP-X.
(b) シングルスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLT' USING 一意名1 一意名2
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'EXSEND '. 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) 機能
MHPへメッセージを送信します。
CBLDCCLS('EXSEND ')を実行する場合,データ名Cに4または16を指定したCBLDCRPS('OPEN ')を,あらかじめ実行しておく必要があります。
ホスト名長の拡張機能を使用している場合,この関数を使用してください。
(3) UAPで値を設定するデータ領域
-
データ名A
メッセージの送信を示す要求コードを「VALUE 'EXSEND△△'」と設定します。
-
データ名C
メッセージを送信後に,コネクションを解放するかどうかを指定します。
0:メッセージ送信後,コネクションを解放しません。
1:メッセージ送信後,コネクションを解放します。
0を指定した場合,CBLDCRPS('CLOSE ')を実行するまでコネクションを解放しません。ただし,障害時は除きます。
-
データ名D
コネクションが確立されていない場合,コネクションを確立して接続するノードのポート番号を指定します。
0を指定すると,CBLDCRPS('OPEN ')を実行したときに取得したクライアント環境定義DCSNDPORTの内容を参照します。
-
データ名E
コネクションが確立されていない場合,接続するノードのホスト名を指定します。ホスト名として指定できる長さは,63文字※までです。文字列の最後に空白文字を指定してください。
先頭に空白を指定すると,CBLDCRPS('OPEN ')を実行したときに取得したクライアント環境定義DCSNDHOSTの内容を参照します。
ホスト名として,10進ドット記法のIPアドレスを指定することもできます。
- 注※
-
クライアント環境定義DCCLTOPTIONに00000008を指定した場合,ホスト名として指定できる長さは255文字までとなります。
-
データ名F
送信するメッセージの長さを設定します。
-
データ名G
送信するメッセージを格納する領域を指定します。データ名Fで指定する長さ以上の領域を用意してください。
-
データ名H
CBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDを指定します。
(4) 値が返されるデータ領域
-
データ名B
ステータスコードが,5けたの数字で返されます。
(5) ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常終了しました。 |
02501 |
データ名に指定した値が間違っています。要求コード(データ名A)が間違っている場合も含みます。 |
02502 |
次のどちらかの要因が考えられます。
|
02504 |
メモリ不足が発生しました。 |
02506 |
ネットワーク障害が発生しました。 |
02507 |
コネクション確立要求時にタイムアウトになりました。 |
02518 |
システムエラーが発生しました。 |
02538 |
資源不足が発生しました。 |
02539 |
ホスト名が誤っています。または,データ名E,およびDCSNDHOSTの両方にホスト名が指定されていません。 |
02541 |
相手システムに対するコネクションの確立要求が拒絶されました。 |
02544 |
データ名Hに指定したクライアントIDはCBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDと異なっています。 |
02547 |
OSが自動的に割り当てるポート番号が不足しています。 |
(6) 注意事項
-
メッセージ送信時に相手システムからコネクションが解放された場合,送信するメッセージ長によっては,コネクションの解放を検知できないことがあります。この場合は,CBLDCCLS('EXSEND ')の次以降に発行する要求文で検知することがあります。CUPを作成するときは,このことを考慮してください。
-
ステータスコード02518が戻る場合,CUPを終了してから開始し直してください。