分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/XMAP3編
形式
DATA DIVISION(通信記述項)の指定
CD 通信記述名
FOR {INPUT|I-O}
〔STATUS KEY IS データ名1〕
〔SYMBOLIC TERMINAL IS データ名2〕
〔MESSAGE DATE IS データ名3〕
〔MESSAGE TIME IS データ名4〕
〔MAP NAME IS データ名5〕
〔SYNCHRONOUS MODE IS {ASYNC|データ名6}〕.
DATA DIVISION(データ記述項)の指定
01 一意名1.
02 データ名A PIC 9(4) COMP.
02 データ名B PIC X(2).
02 データ名C PIC X(n).
PROCEDURE DIVISION(通信文)の指定
RECEIVE 通信記述名
〔FIRST〕 SEGMENT
INTO 一意名1.
機能
次に示すCALLインタフェースの機能を実現します。
受信できる一つのセグメントの最大長は,32763バイトまでです。
セグメントを受信する領域(一意名1で示す領域)の形式を次に示します。
UAPで値を設定する項目
受信するメッセージが,一方送信メッセージか問い合せメッセージかを設定します。
MCFで使用する領域です。
先頭セグメントを受信するときに指定します。
非同期型でのメッセージ受信を示す,次のどちらかの値を指定してください。
指定を省略した場合は,非同期型のメッセージの受信が設定されます。
OpenTP1から値が返される項目
ステータスコードを受け取りたい場合に設定します。省略した場合は,ステータスコードを受け取れません。データ名1にステータスコードが返されます。
メッセージ入力元の論理端末名称を参照するためのデータ項目を設定します。データ名2にメッセージ入力元の論理端末名称が返されます。
メッセージ入力日付を参照するためのデータ項目を設定します。データ名3にメッセージ入力日付がYYMMDD(YY:西暦下2けた MM:月 DD:日)の形式で返されます。
メッセージ入力時刻を参照するためのデータ項目を設定します。データ名4にメッセージ入力時刻がHHMMSS00(HH:時 MM:分 SS:秒 00は固定)の形式で返されます。
XMAP3のドローで指定した次画面名(マップ名),またはパネル定義のNEXTオペランドで指定した次画面名(マップ名)を参照するためのデータ項目を設定します。データ名5に次画面名が返されます。次画面名の最大長は6文字です。ただし,次の場合は,空白が返されます。
受信したセグメントの長さ+4が返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合,受信した入力論理マップの長さ(論理マップ固定部の長さ+論理マップ可変部・定数部の長さ)が返されます。
受信したセグメントが返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合,論理マップ可変部・定数部に設定されるデータが返されます。一つのセグメントで32763バイトまで受信できます。
ステータスコード
| ステータスコード | 意味 |
|---|---|
| 00000 | 正常に終了しました。 |
| 71000 | 先頭セグメントを受信するRECEIVE文を2回以上呼び出しました。中間セグメントおよび最終セグメントを受信する場合は,FIRSTの指定を省略してRECEIVE文を呼び出してください。 |
| 71001 | メッセージの最終セグメントを受信したあとで,次のセグメントを受信するRECEIVE文を呼び出しました。直前に呼び出したRECEIVE文でメッセージをすべて受信しました。このステータスコードが返されたあとに,再びRECEIVE文を呼び出した場合は,ステータスコード72000が返されます。 |
| 71002 | メッセージキューからの入力処理中に障害が発生しました。 |
| メッセージキューが閉塞されています。 | |
| メッセージキューが割り当てられていません。 | |
| MCF終了処理中のため,メッセージの受信を受け付けられません。 | |
| 71108 | メッセージの受信に必要な管理テーブルを確保できませんでした。 |
| プロセスのローカルメモリが不足しています。 | |
| 72000 | <MHPの実行でリターンした場合>
|
| <SPPの実行でリターンした場合> SPPではRECEIVE文を呼び出せません。 |
|
| 72001 | 設定した論理端末名称が間違っています。 |
| 設定した論理端末名称は,定義されていません。 | |
| SYNCHRONOUS MODE句にSYNCが設定されているか,データ名6に'1'が設定されています。 | |
| 72013 | 受信領域の長さを超えるセグメントを受信しました。受信領域の長さを超えた部分は切り捨てられました。 |
| 72016 | 通信文にWAITING句が設定されています。 |
| 72020 | SYNCHRONOUS MODE句に設定した値が間違っています。 |
| 72024 | FOR句に設定した値が間違っています。 |
| 72036 | 一意名1に指定した,セグメントを受信する領域の長さが不足しています。5バイト以上の領域を確保してください。 |
| 上記以外 | プログラムの破壊などによる,予期しないエラーが発生しました。 |
All Rights Reserved. Copyright (C) 2006, 2011, Hitachi, Ltd.