6.3.1 CBLDCRPS('OPEN ') − UAPの開始
(1) 形式
(a) マルチスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCRPS' USING 一意名1 一意名2 一意名3
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'OPEN '. 02 データ名B PIC X(5). 02 FILLER PIC X(3). 02 データ名C PIC S9(9) COMP VALUE ZERO. 02 データ名D PIC 9(9) COMP-X. 01 一意名2. 02 FILLER PIC X(1). 01 一意名3. 02 FILLER PIC X(1).
(b) シングルスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCRPC' USING 一意名1
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'OPEN '. 02 データ名B PIC X(5). 02 FILLER PIC X(3). 02 データ名C PIC S9(9) COMP VALUE ZERO.
(2) 機能
OpenTP1のSPPを呼び出すための環境,またはTCP/IP通信機能を使用するための環境を初期化します。
CBLDCRPS('OPEN ')は,RPC,トランザクション制御,トランザクション制御の各種プログラムを発行する前に実行してください。
(3) UAPで値を設定するデータ領域
-
データ名A
UAPの開始を示す要求コードを「VALUE 'OPEN△△△△'」と設定します。
-
データ名C
初期化する環境を指定します。
0:SPPを呼び出すための環境
4:メッセージを一方送信するための環境
8:メッセージを一方受信するための環境
16:メッセージを送受信するための環境
0を指定した場合は,TCP/IP通信機能を使用できません。
0以外を指定した場合でも,RPCの機能は使用できます。
-
データ名D
CBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDを指定します。
(4) 値が返されるデータ領域
-
データ名B
ステータスコードが,5けたの数字で返されます。
(5) ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常終了しました。 |
02401 |
データ名に設定した値が間違っています。要求コード(データ名A)が間違っている場合も含みます。 |
02402 |
CBLDCRPS('OPEN ')はすでに実行されています。 |
02403 |
次のどれかの要因で,このステータスコードが戻りました。
|
02415 |
設定したサービスが存在するノードのOpenTP1が実行されていません。 |
02447 |
指定したポート番号は使用されています。 |
02544 |
データ名Dに指定したクライアントIDはCBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDと異なっています。 |
(6) 注意事項
次に示す場合は,CBLDCRPS('CLOSE ')を実行した直後に,再びデータ名Cに8を指定したCBLDCRPS('OPEN ')は実行できません。この場合,15秒から20秒後にCBLDCRPS('OPEN ')を実行してください。
-
データ名Cに8を指定したCBLDCRPS('OPEN ')実行したあと,CBLDCCLS('RECEIVE ')を実行してメッセージを受信している場合で,相手システムがコネクションを解放する前にCUP側でCBLDCRPS('CLOSE ')を実行してコネクションを解放した場合