CBLDCMCF('SENDSYNC') - 同期型のメッセージの送信(COBOL言語)
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3
DATA DIVISIONの指定
01 一意名1.
02 データ名A PIC X(8) VALUE 'SENDSYNC'.
02 データ名B PIC X(5).
02 FILLER PIC X(3).
02 データ名C PIC X(4) VALUE SPACE.
02 データ名D PIC X(4) VALUE SPACE.
02 データ名E PIC 9(8).
02 データ名F PIC 9(8).
02 データ名G PIC 9(9) COMP VALUE ZERO.
02 データ名H PIC X(4).
02 データ名I PIC X(4) VALUE SPACE.
02 データ名J PIC X(4).
02 データ名K PIC X(4).
02 データ名L PIC X(8) VALUE SPACE.
02 データ名M1 PIC X(4) VALUE SPACE.
02 データ名M2 PIC X(8) VALUE SPACE.
02 データ名M3 PIC X(4) VALUE SPACE.
02 データ名M4 PIC 9(9) COMP VALUE ZERO.
02 データ名M5 PIC 9(9) COMP VALUE ZERO.
02 データ名M6 PIC X(1) VALUE SPACE.
02 データ名M7 PIC X(1).
02 データ名N PIC X(14) VALUE LOW-VALUE.
01 一意名2.
02 データ名O PIC X(4) VALUE SPACE.
02 データ名P PIC X(8).
02 データ名Q PIC X(8) VALUE SPACE.
02 データ名R PIC X(8) VALUE SPACE.
02 データ名T PIC X(28) VALUE LOW-VALUE.
01 一意名3.
02 データ名U PIC 9(x) COMP.
02 データ名V PIC X(x).
02 データ名Y PIC X(4).
02 データ名Z PIC X(n).
機能
TP1/NET/HSCでは,HSC2手順(同期モード)のメッセージの送信に使用します。
相手システムへ送る同期型のメッセージのうち,一つのセグメントを送信します。セグメントの数だけCBLDCMCF('SENDSYNC')を呼び出すと,一つの論理メッセージを送信できます。
セグメントを送信する領域(一意名3で示す領域)の形式を次に示します。
UAPで値を設定するデータ領域
●データ名A
同期型のメッセージの送信を示す要求コードを「VALUE 'SENDSYNC'」と設定します。
●データ名C,データ名D
空白を設定します。
●データ名E,データ名F
MCFで使用する領域です。
●データ名G
0を設定します。
●データ名H
メッセージの最終セグメントを送信するかどうかを設定します。次のどちらかを設定します。
●データ名I,データ名J,データ名K,データ名L,データ名M1,データ名M2,データ名M3
空白を設定します。
●データ名M4
0を設定します。
●データ名M5
このデータ領域は無効です。0を設定しておいてください。また,MCFマネジャ定義のUAP共通定義で同期送信監視時間を指定しても,時間監視をしません。
●データ名M6
空白を設定します。
●データ名M7
使用するバッファ形式を設定します。
●データ名N
MCFで使用する領域です。
●データ名O
空白を設定します。
●データ名P
出力先の論理端末名称を設定します。論理端末名称の長さは最大8バイトです。8バイトに満たない名称を設定する場合は,後ろを空白で埋めてください。
●データ名Q,データ名R
空白を設定します。
●データ名T
MCFで使用する領域です。
●データ名U
●データ名V
●データ名Y
送信するメッセージのテキスト形態を設定します。
●データ名Z
送信するセグメントの内容を設定します。送信できるセグメントの長さの最大値は,通信管理が送信する最大セグメント長にテキスト形態の4バイトを加えた値です。
OpenTP1から値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
ステータスコード
ステータスコード | 意味 |
---|---|
00000 | 正常に終了しました。 |
71002 | データ名Uに32000バイトを超える値を設定しています。 |
MCFが終了処理中のため,同期型のメッセージの送信を受け付けられません。 | |
71003 | メッセージキューが満杯です。 |
71004 | メッセージを格納するバッファをメモリ上に確保できませんでした。 |
71108 | メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。 |
プロセスのローカルメモリが不足しています。 | |
72000 | 先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に,CBLDCMCF('SENDSYNC')を呼び出しています。 |
72001 | データ名Pに設定した論理端末名称が間違っています。 |
CBLDCMCF('SENDSYNC')を呼び出せない論理端末を設定しています。 | |
72005 | バッファ形式1の先頭セグメントまたは中間セグメント送信時,データ名Uに0以下の値を設定しています。または,バッファ形式2の先頭セグメントまたは中間セグメント送信時,データ名Uに4以下の値を設定しています。 |
72016 | データ名Nまたはデータ名Tに設定した値が間違っています。 |
データ名M1またはデータ名M7に設定した値が間違っています。 | |
72017 | データ名Kに設定した値が間違っています。 |
72019 | データ名M6に設定した値が間違っています。 |
72024 | データ名Oに設定した値が間違っています。 |
72026 | データ名Hに設定した値が間違っています。 |
72028 | データ名Aに設定した値が間違っています。 |
72041 | バッファ形式1の単一セグメント送信時,データ名Uに0以下の値を設定しています。または,バッファ形式2の単一セグメント送信時,データ名Uに4以下の値を設定しています。 |
73001 | 出力先の論理端末で障害が発生しました。 |
73002 | CBLDCMCF('SENDSYNC')の処理中に,入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。 |
CBLDCMCF('SENDSYNC')が呼び出されるまでに,出力先の論理端末とMCFとの間のコネクションまたは経路が切り離されました。 | |
73003 | 同期送信要求(メッセージ)時,メッセージ出力先論理端末から,メッセージ受信要求が発生しました。 |
73008 | 出力先の論理端末は,次のコマンドで停止しています。
|
73010 | 入力または出力メッセージ編集UOCで障害が発生しました。 |
メッセージ読み込み時に障害が発生しました。 | |
73015 | 出力先の論理端末は,ほかのUAPで仕掛り中です。 |
出力先の論理端末は,該当するUAPと仕掛り中ではありません。 | |
73018 | データ名M5に設定した値が間違っています。 |
73020 | 出力先の論理端末は停止しています。 |
77901 | 同期送信要求(メッセージ)時,メッセージ出力先論理端末から,EOTを受信しました。 |
77902 | 同期送信要求(EOT)時,メッセージ出力先論理端末から,EOTを受信しました。 |
77903 | 同期送信要求(メッセージ)時,メッセージ出力先論理端末からのRVIを受理しました。メッセージの送信は正常に終了しました。 |
上記以外 | プログラムの破壊などによる,予期しないエラーが発生しました。 |