CBLDCMCF('RECVSYNC') - 同期型メッセージの受信(COBOL言語)
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3
DATA DIVISIONの指定
01 一意名1.
02 データ名A PIC X(8) VALUE 'RECVSYNC'.
02 データ名B PIC X(5).
02 FILLER PIC X(3).
02 データ名C PIC X(4).
02 データ名D PIC X(4) VALUE SPACE.
02 データ名E PIC 9(8).
02 データ名F PIC 9(8).
02 データ名G PIC 9(9) COMP.
02 データ名H PIC X(4) VALUE SPACE.
02 データ名I PIC X(4) VALUE SPACE.
02 データ名J PIC X(4) VALUE SPACE.
02 データ名K PIC X(4) VALUE SPACE.
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.
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(n).
機能
相手システムから同期型でメッセージを受信します。相手システムから送信されるメッセージは,常に一つのセグメントで構成されます。
セグメントを受信する領域(一意名3で示す領域)の形式を次に示します。
UAPで値を設定するデータ領域
●データ名A
同期型メッセージの受信を示す要求コード「VALUE 'RECVSYNC'」を設定します。
●データ名C
「VALUE 'FRST'」を設定します。
●データ名D
空白を設定します。
●データ名G
セグメントを受信する領域の長さを設定します。
●データ名H,データ名I,データ名J,データ名K,データ名L,データ名M1,データ名M2,データ名M3
空白を設定します。
●データ名M4
0を設定します。
●データ名M5
CBLDCMCF('RECVSYNC')を呼び出してから終了するまでの,監視時間を設定します。0を設定した場合は,MCFマネジャ定義のUAP共通定義(mcfmuap -t)で指定した同期受信監視時間が設定されます。
負の値を設定した場合は,時間監視をしません。
●データ名M6
空白を設定します。
●データ名M7
使用するバッファ形式を指定します。
●データ名N
MCFで使用する領域です。
●データ名O
空白を設定します。
●データ名P
入力元の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない名称を設定する場合は,後ろを空白で埋めてください。
●データ名Q,データ名R
空白を設定します。
●データ名T
MCFで使用する領域です。
●データ名V
OpenTP1から値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
●データ名E
メッセージを受信した日付がYYYYMMDD(YYYY:西暦年 MM:月 DD:日)の形式で返されます。
●データ名F
メッセージを受信した時刻がHHMMSS00(HH:時 MM:分 SS:秒 00は固定)の形式で返されます。
●データ名U
●データ名Y
受信したセグメントの内容が返されます。
相手システムから送信されるセグメントの最大長は32763バイトです。
ステータスコード
ステータスコード | 意味 |
---|---|
00000 | 正常に終了しました。 |
71001 | メッセージのセグメントを受け取ったあとで,次のメッセージ(セグメント)を受信するCBLDCMCF('RECVSYNC')を呼び出しています。 直前に呼び出したCBLDCMCF('RECVSYNC')でセグメントは受信済みです。 このステータスコード値を受け取ったあとに,再びCBLDCMCF('RECVSYNC')を呼び出した場合は,ステータスコード72000が返ります。 |
71002 | MCFが終了処理中のため,CBLDCMCF('RECVSYNC')を受け付けられません。 |
71108 | メッセージ受信に必要な管理テーブルが確保できませんでした。 |
プロセスのローカルメモリが不足しています。 | |
72000 | CBLDCMCF('RECVSYNC')を呼び出した位置が間違っています。MHPでセグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に,CBLDCMCF('RECVSYNC')を呼び出しています。 |
ステータスコード71001を受け取ったあとに,再びCBLDCMCF('RECVSYNC')を呼び出しています。 | |
72001 | 設定した論理端末名称は,MCFで定義していません。 |
設定した論理端末名称が間違っています。 | |
CBLDCMCF('RECVSYNC')を呼び出せない論理端末を設定しています。 | |
72013 | データ名Gの指定値を超えるメッセージ(セグメント)を受信しました。 データ名Gの指定値を超えた部分は切り捨てられました。 |
<バッファ形式2の場合> 32763バイトを超えるメッセージ(セグメント)を受信しました。 32763バイトを超えた部分は切り捨てられました。 | |
72016 | データ名Nまたはデータ名Tに設定した値が間違っています。 |
データ名Qに設定した値が間違っています。 | |
データ名M7に設定した値が間違っています。 | |
72024 | データ名Oに設定した値が間違っています。 |
72025 | データ名Cに設定した値が間違っています。 |
72028 | データ名Aに設定した値が間違っています。 |
72036 | データ名Gの指定値が不足しています。バッファ形式1の場合は9バイト以上,バッファ形式2の場合は5バイト以上の領域を設定してください。 |
73001 | 入力元の論理端末で,障害が発生しました。 |
73005 | 同期受信処理中,設定した監視時間を過ぎているのに,論理端末からのメッセージが受信されません。 |
73010 | 入力,および出力メッセージ編集UOCで障害が発生しました。 |
73015 | 入力元の論理端末は,ほかのUAPで仕掛り中です。 |
73018 | データ名M5に設定した監視時間の値が間違っています。 |
73020 | CBLDCMCF('RECVSYNC')で指定した論理端末は停止しています。 |
77350 | サービスプリミティブの発行順が間違っています。 |
サービスプリミティブの連結数が超過しています。 | |
77433 | 相手からのメッセージによって,ダイアログが未確立になりました。 |
77436 | 相手からのメッセージによって,ダイアログを解放しています。 |
77437 | 相手からのメッセージによって,ハンドシェイクが応答待ちになりました。 |
77491 | 相手からのメッセージによって,エラー処理中です。 |
上記以外 | プログラムの破壊などによる,予期しないエラーが発生しました。 |