6.6.1 CBLDCCLS('SEND ') − メッセージの送信
(1) 形式
(a) マルチスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLS' USING 一意名1
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'SEND '. 02 データ名B PIC X(5). 02 FILLER PIC X(3). 02 データ名C PIC S9(9) COMP VALUE ZERO. 02 データ名D PIC S9(9) COMP. 02 データ名E PIC X(64). 02 データ名F PIC 9(4) COMP. 02 FILLER PIC X(2). 02 データ名H PIC 9(9) COMP-X. 02 データ名I PIC X(n).
(b) シングルスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLT' USING 一意名1
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'SEND '. 02 データ名B PIC X(5). 02 FILLER PIC X(3). 02 データ名C PIC S9(9) COMP VALUE ZERO. 02 データ名D PIC S9(9) COMP. 02 データ名E PIC X(64). 02 データ名F PIC 9(4) COMP. 02 FILLER PIC X(2). 02 データ名G PIC 9(9) COMP. 02 データ名I PIC X(n).
(2) 機能
MHPへメッセージを送信します。
CBLDCCLS('SEND ')を実行する場合,データ名Cに4または16を指定したCBLDCRPS('OPEN ')を,あらかじめ実行しておく必要があります。
(3) UAPで値を設定するデータ領域
-
データ名A
メッセージの送信を示す要求コードを「VALUE 'SEND△△△△'」と設定します。
-
データ名C
メッセージを送信後に,コネクションを解放するかどうかを指定します。
0:メッセージ送信後,コネクションを解放しません。
1:メッセージ送信後,コネクションを解放します。
0を指定した場合,CBLDCRPS('CLOSE ')を実行するまでコネクションを解放しません。ただし,障害時は除きます。
-
データ名D
送信するメッセージの長さを設定します。
-
データ名E
コネクションが確立されていない場合,接続するノードのホスト名を指定します。文字列の最後は空白文字を指定してください。ホスト名として,10進ドット記法のIPアドレスを指定することもできます。
先頭に空白を設定すると,CBLDCRPS('OPEN ')を実行したときに取得したクライアント環境定義DCSNDHOSTの内容を参照します。
-
データ名F
コネクションが確立されていない場合,コネクションを確立して接続するノードのポート番号を指定します。
0を指定すると,CBLDCRPS('OPEN ')を実行したときに取得したクライアント環境定義DCSNDPORTの内容を参照します。
-
データ名H
CBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDを指定します。
-
データ名I
送信するメッセージを格納する領域を指定します。データ名Dで指定する長さ以上の領域を用意してください。
(4) 値が返されるデータ領域
-
データ名B
ステータスコードが,5けたの数字で返されます。
-
データ名G
OpenTP1で使用する領域です。
(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('SEND ')の次以降に発行する要求文で検知することがあります。CUPを作成するときは,このことを考慮してください。