RECEIVE - メッセージの受信(データ操作言語)
形式
DATA DIVISION(通信記述項)の指定
CD 通信記述名
FOR {INPUT|I-O}
〔STATUS KEY IS データ名1〕
〔SYMBOLIC TERMINAL IS データ名2〕
〔MESSAGE DATE IS データ名3〕
〔MESSAGE TIME IS データ名4〕
〔SYNCHRONOUS MODE IS {SYNC|データ名6}〕
〔WAITING TIME IS データ名11〕.
PROCEDURE DIVISION(通信文)の指定
機能
次に示すCALLインタフェースの機能を実現します。
通信記述項に設定する項目
●FOR 句
次のどちらかの値を指定します。
●STATUS KEY 句
ステータスコードを受け取りたい場合に指定します。省略した場合は,ステータスコードを受け取りません。
●SYMBOLIC TERMINAL 句
入力元の論理端末名称を参照するデータ項目を指定します。
●MESSAGE DATE 句
メッセージを受信した日付を参照するデータ項目を指定します。YYMMDD(YY:西暦の下2けた MM:月 DD:日)の形式で参照できます。
●MESSAGE TIME 句
メッセージを受信した時刻を参照するデータ項目を指定します。HHMMSS00(HH:時 MM:分 SS:秒 00は固定)の形式で参照できます。
●SYNCHRONOUS MODE 句
同期型メッセージの受信の場合に指定します。次のどちらかの値を指定します。
●WAITING TIME句
同期型メッセージを受信する場合の,監視時間の値を設定したデータ項目を指定します。
省略した場合は,2分を設定します。
通信文に指定する項目
●FIRST
先頭セグメントを受信する場合に指定します。
●一意名1
セグメントを受信するデータ項目を指定します。一意名1の形式を次に示します。
ステータスコード
ステータスコード | 意味 |
---|---|
00000 | 正常に終了しました。 |
71000 | 先頭セグメントを受信するRECEIVE文を,2回以上実行しています。中間セグメントまたは最終セグメントを受信する場合は,FIRSTを設定しないでRECEIVE文を実行してください。 |
71001 | メッセージの最終セグメントを受信したあとで,次のセグメントを受信するRECEIVE文を実行しています。直前に実行したRECEIVE文でメッセージはすべて受信しました。 このステータスコードが返されたあとに,再びRECEIVE文を実行した場合は,ステータスコード72000が返されます。 |
71002 | メッセージキューからの入力処理中に障害が発生しました。 |
メッセージキューが閉塞されています。 | |
メッセージキューが割り当てられていません。 | |
MCFが終了処理中のため,メッセージの受信を受け付けられません。 | |
71108 | メッセージ受信に必要な管理テーブルが確保できませんでした。 |
プロセスのローカルメモリが不足しています。 | |
72000 | <MHPの実行でリターンした場合>
|
<SPPの実行でリターンした場合> SPPではRECEIVE文を実行できません。 | |
72001 | SYMBOLIC TERMINAL 句に設定した論理端末名称が間違っています。 |
RECEIVE文を実行できない論理端末を設定しています。 | |
72013 | 一意名1のLの指定値を超えるメッセージ(セグメント)を受信しました。 一意名1のLの指定値を超える部分は切り捨てられました。 |
32763バイトを超えるメッセージ(セグメント)を受信しました。 32763バイトを超えた部分は切り捨てられました。 | |
72016 | WAITING 句に設定した値が間違っています。 |
72020 | SYNCHRONOUS MODE句に設定した値が間違っています。 |
72024 | FOR 句に設定した値が間違っています。 |
72036 | 一意名1のLが不足しています。5バイト以上の領域を確保してください。 |
73001 | 入力元の論理端末で障害が発生しました。 |
73005 | RECEIVE文が,設定した監視時間を過ぎても終了しません。 |
73010 | 入力,または出力メッセージの編集UOCでエラーが発生しました。 |
メッセージの読み込み中に障害が発生しました。 | |
73018 | RECEIVE文を実行した場合に,データ名11に設定した監視時間が間違っています。 |
73020 | RECEIVE文で指定した論理端末は停止中です。 |
77350 | サービスプリミティブの発行順が間違っています。 |
サービスプリミティブの連結数が超過しています。 | |
77433 | 相手からのメッセージによって,ダイアログが未確立になりました。 |
77436 | 相手からのメッセージによって,ダイアログを解放中です。 |
77437 | 相手からのメッセージによって,ハンドシェイクが応答待ちになりました。 |
77491 | 相手からのメッセージによって,エラー処理中です。 |
上記以外 | プログラムの破壊などによる,予期しないエラーが発生しました。 |