Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/TCP/IP編


RECEIVE − 一時記憶データの受け取り(データ操作言語)

〈このページの構成〉

形式

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

CD  通信記述名
    FORINPUT|I-OSTORAGESTATUS  KEY  IS  データ名1〕.

DATA DIVISION(データ記述項)の指定

01  一意名1.
    02  データ名A   PIC 9(4)  COMP.
    02  データ名B   PIC X(4).
    02  データ名C   PIC X(n).

PROCEDURE DIVISION(通信文)の指定

RECEIVE  通信記述名  {MESSAGE|SEGMENTINTO  一意名1.

機能

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

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

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

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

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

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

[図データ]

UAPで値を設定する項目

●FOR句

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

●データ名B

MCFで使用する領域です。

●MESSAGE,SEGMENT

どちらかを設定します。

OpenTP1から値が返される項目

●STATUS KEY句

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

●データ名A

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

●データ名C

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

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

72013

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

72016

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

72036

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

72042

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

72101

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

72106

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

72107

DISABLE文を呼び出したあとで,RECEIVE(一時記憶データの受け取り)文を呼び出しました。

上記以外

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