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

[目次][用語][索引][前へ][次へ]

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

形式

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

 
CD  通信記述名
     FOR OUTPUTSTATUS  KEY  IS データ名1〕
    〔SYMBOLIC  TERMINAL  IS データ名2〕
    〔SYNCHRONOUS  MODE  IS {ASYNC|データ名6}〕
    〔SWITCHING  MODE  IS {NORMAL|PRIOR|データ名7}〕
    〔DETAIL  MODE  IS データ名10〕.
 

PROCEDURE DIVISION(通信文)の指定

 
 SEND 通信記述名 FROM 一意名1WITHEMI|一意名2}〕.
 

機能

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

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

●FOR句

次の値を指定します。

OUTPUT
一方送信メッセージの送信

●STATUS KEY句

ステータスコードを受け取りたい場合に指定します。省略した場合は,ステータスコードを受け取りません。

●SYMBOLIC TERMINAL句

論理端末名称を設定したデータ項目を指定します。

●SYNCHRONOUS MODE句

メッセージ送信の型を指定します。

ASYNC
一方送信メッセージの送信
一方送信メッセージの送信の場合に設定します。
データ名6
次の値を設定したデータ項目
'0':一方送信メッセージの送信

省略した場合は,一方送信メッセージの送信(ASYNC)が設定されます。

●SWITCHING MODE句

一般か優先かを指定します。

NORMAL
一般の一方送信メッセージ
PRIOR
優先の一方送信メッセージ
データ名7
次の値を設定したデータ項目
'0'または'△':一般の一方送信メッセージ
'1':優先の一方送信メッセージ

省略した場合は,一般の一方送信メッセージ(NORMAL)が設定されます。

●DETAIL MODE句

出力通番を付けるかどうかを指定します。

データ名10
次の値を設定したデータ項目
'0'または'△':出力通番を付けます。
'1':出力通番を付けません。

省略した場合は,出力通番を付けません。

通信文に指定する項目

●一意名1

メッセージを送信するデータ項目を指定します。32000バイト(制御ヘッダを付けた場合,制御ヘッダの4バイトを含みます)まで送信できます。一意名1の形式を次に示します。

[図データ]

制御ヘッダは,MCF通信構成定義でmcftalccn -o ctlheader=useを指定したときだけ付けます。制御ヘッダの内容を次に示します。なお,制御ヘッダを使用する場合,4バイト以下のメッセージは送信しないで,出力キューから削除されます。

[図データ]

XX
予備(0)
YY
予備(0)
ZZ
27ビット:相手システムへ送信されるデータパケットのQビット
26〜20ビット:予備(0)

●WITH句

次の値で,単一セグメントのメッセージを送信するかどうかを指定します。

EMI
単一セグメントの送信
一意名2
次の値を設定したデータ項目
'2':EMI(単一セグメントの送信)

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

ステータスコード

ステータスコード 意味
00000 正常に終了しました。
71002 メッセージキューへの出力処理中に障害が発生しました。
メッセージキューが閉塞されています。
メッセージキューが割り当てられていません。
一意名1のLに32000バイトを超える値を設定しています。
MCFが終了処理中のため,メッセージの送信を受け付けられません。
71003 メッセージキューが満杯です。
71004 メッセージを格納するバッファをメモリ上に確保できませんでした。
71108 メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。
プロセスのローカルメモリが不足しています。
72000 <MHPの実行でリターンした場合>
先頭セグメントを受信するRECEIVE文を実行する前に,SEND文を実行しています。
<SPPの実行でリターンした場合>
トランザクションでないSPPの処理から,SEND文を実行しています。
72001 SYMBOLIC TERMINAL句に設定した論理端末名称が間違っています。
SEND文を実行できない論理端末を設定しています。
72005 先頭セグメントまたは中間セグメントを送信するSEND文で,長さが0バイトのセグメントを送信しています。
72008 応答メッセージを送信するSEND文を実行したあとに,再び応答メッセージを送信するSEND文を実行しています。
SEND文を実行して応答型のアプリケーションを起動させたあとに,応答メッセージを送信するSEND文を実行しています。
72013 一意名1のLの指定値を超えるセグメントを受信しました。一意名1のLの指定値を超えた部分は切り捨てられました。
32763バイトを超えるセグメントを受信しました。32763バイトを超えた部分は切り捨てられました。
72017 DETAIL MODE句に設定した値が間違っています。
72018 SWITCHING MODE句に設定した値が間違っています。
72020 SYNCHRONOUS MODE句に設定した値が間違っています。
72024 FOR句に設定した値が間違っています。
72026 WITH句に設定した値が間違っています。
72041 メッセージを送信するSEND文で,長さが4バイト以下のメッセージを送信しています。
上記以外 プログラムの破壊などによる,予期しないエラーが発生しました。