Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編


RECEIVE − 一時記憶データの受け取り

〈このページの構成〉

名称

一時記憶データの受け取り

形式

DATA DIVISION(通信記述項)の指定

CD  通信記述名
    FOR {INPUT|I-O} STORAGESTATUS  KEY  IS データ名1〕.
 
01 一意名1.
   02 データ名2  PIC  9(4) COMP.
   02 データ名3  PIC  X(4).
   02 データ名4  PIC  X(n).

PROCEDURE DIVISION(通信文)の指定

RECEIVE 通信記述名 {MESSAGE|SEGMENT}
   INTO 一意名1.

機能

次に示すCALLインタフェースの機能を実現します。

一時記憶データ格納バッファ領域(データ名4)は,1〜32000バイトの長さを確保してください。

データ名4の長さを超える一時記憶データがある場合,超えた分については切り捨てます。

データ名4の長さと比べて一時記憶データの長さの方が短い場合,データ名4に一時記憶データを設定します。残りの領域については何も設定しません。

受け取り要求実行時,初期状態(継続問い合わせ応答開始後,SEND(一時記憶データの更新)文を1回も実行していない状態)の場合,アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドで指定した長さの(00)16の一時記憶データがあるものとして実行します。

受け取り後の一意名1の形式を次に示します。

[図データ]

通信記述項に設定する項目

FOR句

一時記憶データの受け取りであることを示す,INPUT STORAGE またはI-O STORAGE を設定します。

STATUS KEY句

ステータスコードを受け取りたい場合に設定します。省略した場合は,ステータスコードを受け取れません。データ名1にステータスコードが返されます。

通信文に指定する項目

MESSAGE,SEGMENT

どちらかを設定します。

●データ名2

前回更新した一時記憶データの長さ+6が返されます。初期状態の場合,継続問い合わせ応答用一時記憶領域の長さ(アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドの指定値)+6が返されます。

●データ名3

MCFで使用する領域です。

●データ名4

受け取った一時記憶データが返されます。初期状態の場合,継続問い合わせ応答用一時記憶領域の長さ(アプリケーション属性定義(mcfaalcap -n)のtempsizeオペランドの指定値)分だけ(00)16が埋められます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

SPPではRECEIVE(一時記憶データの受け取り)文を呼び出せません。

72013

一時記憶データ格納バッファ領域の長さ(データ名4の長さ)を超える一時記憶データを受け取りました。一時記憶データ格納バッファ領域の長さを超える一時記憶データを切り捨てました。

72016

通信文にBEFORE ERASINGが設定されています。

72036

受け取り領域の長さ(一意名1の長さ)が不足しています。7バイト以上の領域を確保してください。

72042

通信記述項にSYMBOLIC TERMINAL句の設定があり,空白以外が設定されています。

72101

継続問い合わせ応答型でないアプリケーションで,RECEIVE(一時記憶データの受け取り)文を呼び出しました。

72106

先頭セグメントを受信するRECEIVE文を呼び出す前に,RECEIVE(一時記憶データの受け取り)文を呼び出しました。

72107

DISABLE(継続問い合わせ応答の終了)文を呼び出したあとで,RECEIVE(一時記憶データの受け取り)文を呼び出しました。

上記以外

プログラムの破壊などによる,予期しないエラーが発生しました。