6.6.2 CBLDCCLS('EXSEND ')メッセージの送信(ホスト名長の拡張時)

<この項の構成>
(1) 形式
(2) 機能
(3) UAPで値を設定するデータ領域
(4) 値が返されるデータ領域
(5) ステータスコード
(6) 注意事項

(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 S9(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.

(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で値を設定するデータ領域

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

(5) ステータスコード

ステータスコード意味
00000正常終了しました。
02501データ名に指定した値が間違っています。要求コード(データ名A)が間違っている場合も含みます。
02502次のどちらかの要因が考えられます。
  • CBLDCRPS('OPEN ')が実行されていません。
  • CBLDCRPS('OPEN ')は実行されていますが,データ名Cに4または16を指定していません。
02504メモリ不足が発生しました。
02506ネットワーク障害が発生しました。
02507コネクション確立要求時にタイムアウトになりました。
02518システムエラーが発生しました。
02538資源不足が発生しました。
02539ホスト名が誤っています。または,データ名E,およびDCSNDHOSTの両方にホスト名が指定されていません。
02541相手システムに対するコネクションの確立要求が拒絶されました。
02544データ名Hに指定したクライアントIDはCBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDと異なっています。
02547OSが自動的に割り当てるポート番号が不足しています。

(6) 注意事項

メッセージ送信時に相手システムからコネクションが解放された場合,送信するメッセージ長によっては,コネクションの解放を検知できないことがあります。この場合は,CBLDCCLS('EXSEND ')の次以降に発行する要求文で検知することがあります。CUPを作成するときは,このことを考慮してください。