Hitachi

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


SEND − メッセージの送信(データ操作言語)

〈このページの構成〉

形式

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

CD  通信記述名
    FOR  I-OSTATUS  KEY  IS  データ名1〕
 〔SYMBOLIC  TERMINAL  IS  データ名2〕
  SYNCHRONOUS MODE  IS {SYNC|データ名6}
 〔WAITING  TIME  IS  データ名11〕.

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

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

PROCEDURE DIVISION(通信文)の指定

SEND  通信記述名  FROM  一意名1
   〔WITH {EMI | 一意名2}〕
   〔BEFORE  RECEIVING  MESSAGE  INTO  一意名3〕.

機能

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

セグメントを送信する領域(一意名1で示す領域)の形式を次に示します。

[図データ]

同期型メッセージの送受信の場合,セグメントを受信する領域(一意名3で示す領域)も設定します。

セグメントを受信する領域の形式を次に示します。

[図データ]

UAPで値を設定する項目

●FOR 句

次の値を設定します。

I-O

同期型メッセージの送信,または同期型メッセージの送受信

●SYMBOLIC TERMINAL 句

論理端末名称を設定したデータ項目を設定します。データ名2に出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合,論理端末名称の後ろを空白で埋めてください。

●SYNCHRONOUS MODE 句

次のどちらかの値を設定します。

SYNC

同期型メッセージの送信,または同期型メッセージの送受信

データ名6

次の値を設定したデータ項目

'1':同期型メッセージの送信,または同期型メッセージの送受信

●WAITING TIME 句

SEND文を実行してから終了するまでの,最大時間を設定したデータ項目を設定します。同期型メッセージ送信または,同期型メッセージ送受信の場合に設定します。

データ名11

監視時間の値を,HHMMSS00(HH:時 MM:分 SS:秒 00は固定)の形式で設定したデータ項目を設定します。

省略した場合,またはデータ名11に'00000000'を設定した場合,同期型メッセージの送信と,同期型メッセージの送受信とでは設定される値が次のとおり異なります。

  • 同期型メッセージの送信の場合

    MCFマネジャ定義のUAP共通定義で指定した同期型送信監視時間(mcfmuap -t sndtim)が設定されます。

  • 同期型メッセージの送受信の場合

    MCFマネジャ定義のUAP共通定義で指定した同期型送受信監視時間(mcfmuap -t sndrcvtim)が設定されます。

    注意事項

    監視時間の精度は秒単位です。また,タイマ定義(mcfttim -t)のbtimオペランドで指定する時間の間隔でタイムアウトが発生したかどうかを監視しています。このため,設定した監視時間と実際にタイムアウトを検出する時間には秒単位の誤差が生じます。そのため,タイミングによっては,設定した監視時間よりも短い時間で起動することがあります。監視時間が小さくなるほど,誤差の影響を受けやすくなりますので,監視時間は3秒以上の値の設定を推奨します。

●データ名A

送信するセグメントの長さ+4を設定します。

●データ名B

MCFで使用する領域です。

●データ名C

送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。

●データ名E

MCFで使用する領域です。

●WITH句

次のどちらかの値を設定します。

EMI

単一セグメント

一意名2

次の値を設定したデータ項目

'2':EMI(単一セグメント)

省略した場合は,EMI(単一セグメント)が設定されます。

●BEFORE 句

同期型メッセージ送受信の場合に,セグメントを受信するデータ項目(一意名3)を設定します。同期型メッセージの送信の場合,BEFORE句を省略します。

OpenTP1から値が返される項目

●STATUS KEY句

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

●データ名D

受信したセグメントの長さ+4が返されます。

●データ名F

受信したセグメントの内容が返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

メッセージキューへの出力処理中に障害が発生しました。

メッセージキューが閉塞されています。

メッセージキューが割り当てられていません。

データ名Aに32004バイトを超える値を設定しています。

MCFが終了処理中のため,メッセージの送信を受け付けられません。

71003

メッセージキューが満杯です。

71004

メッセージを格納するバッファをメモリ上に確保できませんでした。

71108

メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

72000

SYNCHRONOUS MODE句が省略されています。

SYNCHRONOUS MODE句にASYNCを設定しています。

SYNCHRONOUS MODE句に0または空白を設定したデータ名6を設定しています。

<MHPの実行でリターンした場合>

先頭セグメントを受信するRECEIVE文を実行する前に,SEND文を実行しています。

72001

SYMBOLIC TERMINAL 句に設定した論理端末名称が間違っています。

SYMBOLIC TERMINAL句に設定した論理端末名称は,定義されていません。

SEND文を実行できない論理端末を設定しています。

72013

データ名Fのサイズを超えるセグメントを受信しました。

データ名Fのサイズを超えた部分は切り捨てられました。

72020

SYNCHRONOUS MODE句に設定した値が間違っています。

72024

FOR 句に設定した値が間違っています。

72036

データ名Fのサイズが不足しています。5バイト以上の領域を確保してください。

72037

BEFORE 句に設定した値が間違っています。

72041

データ名Aに0から4バイト,またはマイナス値を設定しています。

72045

継続問い合わせ応答型のアプリケーションはサポートしていません。

72047

継続問い合わせ応答型のアプリケーションはサポートしていません。

73001

データ名11に60秒を加算した時間が経過しましたが,MCF通信プロセスからの応答がありません。

送信処理中にコネクション障害が発生しました。

出力先の論理端末でMCF通信プロセスの内部障害が発生しました。

73005

データ名11に設定した時間が経過しましたが,論理端末からの応答がありません。

73010

入力または出力メッセージ編集UOCで障害が発生しました。

メッセージの読み込み時に障害が発生しました。

73015

出力先の論理端末は,ほかのUAPで仕掛り中です。

73018

WAITING TIME 句に設定した値が間違っています。

73020

出力先の論理端末は停止しています。

77001

指定したコネクショングループ内に使用できるコネクションがありません。

77301

送信メッセージ長と「制御情報+パラメタ+ユーザデータ」のサイズが一致していません。

77302

制御情報のサイズの設定が間違っています。

77303

転送手順の設定が間違っています。

77304

サービスプリミティブコードの設定が間違っています。

77310

パラメタ情報サイズの設定が間違っています。

77311

Initiating-TPSU-Titleに設定した値が間違っています。

77312

Recipient-AP-Titleに設定した値が間違っています。

77313

Recipient-TPSU-Titleに設定した値が間違っています。

77314

Functional-Unitsに設定した値が間違っています。

77315

Quality-of-Serviceに設定した値が間違っています。

77316

Application-Context-Nameに設定した値が間違っています。

77317

Confirmationに設定した値が間違っています。

77318

Resultに設定した値が間違っています。

77321

Confirmation-Urgencyに設定した値が間違っています。

77330

ユーザデータのサイズが間違っています。

77331

APDUの連結状態が間違っています。

77332

ユーザデータのサイズが設定されていません。

77333

ユーザデータが設定できません。

77350

サービスプリミティブの発行順が間違っています。

サービスプリミティブの連結数が超過しています。

77433

相手からのメッセージによって,ダイアログが未確立になりました。

77436

相手からのメッセージによって,ダイアログを解放しています。

77437

相手からのメッセージによって,ハンドシェイクが応答待ちになりました。

77491

相手からのメッセージによって,エラー処理中です。

上記以外

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