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

形式1(セグメントの内容を設定して送信する場合,または回線接続要求を送信する場合)

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

CD 通信記述名
  FOR {OUTPUT | I-O}
 〔STATUS KEY IS データ名1〕
 〔SYMBOLIC TERMINAL IS データ名2〕
 〔SYNCHRONOUS MODE IS {SYNC | ASYNC | データ名6}〕
 〔SWITCHING MODE IS {NORMAL | PRIOR | データ名7}〕
 〔DETAIL MODE IS データ名10〕
 〔WAITING TIME IS データ名11〕.

PROCEDURE DIVISION(通信文)の指定

SEND 通信記述名 FROM 一意名1
  〔WITH {ESI | EMI | 一意名2}〕.

形式2(セグメントの内容を設定しないで,メッセージの送信の終了だけ連絡する場合)

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

CD 通信記述名
  FOR {OUTPUT | I-O}
 〔STATUS KEY IS データ名1〕
 〔SYMBOLIC TERMINAL IS データ名2〕
 〔SWITCHING MODE IS {NORMAL | PRIOR | データ名7}〕.

PROCEDURE DIVISION(通信文)の指定

SEND 通信記述名  WITH EMI.

機能

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

【HSC1手順またはHSC2手順(非同期モード)の場合】
一方送信メッセージの送信 CBLDCMCF('SEND△△△△')
【HSC2手順(同期モード)の場合】
回線接続要求の送信 CBLDCMCF('SEND△△△△')
同期型のメッセージの送信 CBLDCMCF('SENDSYNC')

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

●FOR句

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

OUTPUT
一方送信メッセージ,または回線接続要求の送信の送信
I-O
同期型のメッセージの送信

●STATUS KEY句

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

●SYMBOLIC TERMINAL句

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

●SYNCHRONOUS MODE句

メッセージ送信が同期型か非同期型かを指定します。

SYNC
同期型のメッセージ送信
同期型のメッセージの送信の場合に設定します。
ASYNC
非同期型のメッセージ送信
一方送信メッセージ,または回線接続要求の送信の場合に設定します。
データ名6
次の値を設定したデータ項目
'0'…非同期型のメッセージ送信
'1'…同期型のメッセージ送信

指定を省略した場合は,非同期型のメッセージ送信(ASYNC)が設定されます。

●SWITCHING MODE句

一方送信メッセージの場合に,一般か優先かを指定します。

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

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

●DETAIL MODE句

一方送信メッセージの場合に,出力通番を付けるかどうかを指定します。

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

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

●WAITING TIME句

この句の指定は無効です。0を指定しておいてください。また,MCFマネジャ定義のUAP共通定義で同期送信監視時間を指定しても,時間監視をしません。

通信文に指定する項目

●一意名1

セグメントを送信するデータ項目を指定します。送信できるセグメントの最大長は,通信管理が送信する最大セグメント長にテキスト形態の4バイトを加えた値です。一意名1の形式を次に示します。

[図データ]

テキスト形態の次に続く領域には,次に示す内容を設定します。

【HSC1手順またはHSC2手順(非同期モード)の場合】
送信するセグメントの内容
【HSC2手順(同期モード)でIDを交換する場合】
相手ターミナルID
【HSC2手順(同期モード)でIDを交換しない場合】
相手ダイヤル番号

また,MCFで使用する領域の24ビット目に,送信完了通知イベントまたは送信障害通知イベントを通知させるかどうかを指定してください。

一意名1のMCFで使用する領域とビットの設定位置の関係を次に示します。

[図データ]

●WITH句

メッセージの最終セグメントを送信するかどうかを指定します。非同期型のメッセージ送信(一方送信メッセージ)または回線接続要求の送信の場合に指定します。

ESI
先頭セグメントまたは中間セグメントの送信
EMI
最終セグメントまたは単一セグメントの送信
一意名2
次の値を設定したデータ項目
'1'…ESI(先頭セグメントまたは中間セグメントの送信)
'2'…EMI(最終セグメント,単一セグメント,または回線接続要求の送信)

省略した場合は,EMI(最終セグメント,単一セグメント,または回線接続要求の送信)が設定されます。

ステータスコード

ステータスコード意味
00000正常に終了しました。
71002メッセージキューへの出力処理中に障害が発生しました。
メッセージキューが閉塞されています。
メッセージキューが割り当てられていません。
一意名1のLに32000バイトを超える値を設定しています。
MCFが終了処理中のため,メッセージの送信を受け付けられません。
71003メッセージキューが満杯です。
71004メッセージを格納するバッファをメモリ上に確保できませんでした。
71108メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。
プロセスのローカルメモリが不足しています。
72000<MHPの実行でリターンした場合>
  • 先頭セグメントを受信するRECEIVE文を実行する前に,SEND文を実行しています。
  • 非応答型のMHPから応答メッセージを送信しています。
<SPPの実行でリターンした場合>
  • トランザクションでないSPPの処理から,SEND文を実行しています。
  • SPPでは,応答メッセージを送信するSEND文を実行できません。
72001SYMBOLIC TERMINAL句に設定した論理端末名称が間違っています。
SEND文を実行できない論理端末を設定しています。
72005先頭セグメントまたは中間セグメント送信時,一意名1のLに4以下の値を設定しています。
72008応答メッセージの最終セグメントを送信するSEND文を実行したあとに,再び応答メッセージを送信するSEND文を実行しています。
SEND文を実行して応答型のアプリケーションを起動させたあとに,応答メッセージを送信するSEND文を実行しています。
72011MAP NAME句は設定できません。
72013一意名3のLの指定値を超えるセグメントを受信しました。一意名3のLの指定値を超えた部分は切り捨てられました。
72017DETAIL MODE句に設定した値が間違っています。
72018SWITCHING MODE句に設定した値が間違っています。
72020SYNCHRONOUS MODE句に設定した値が間違っています。
72024FOR句に設定した値が間違っています。
72026WITH句に設定した値が間違っています。
72036一意名3のLの指定値が不足しています。5バイト以上の領域を確保してください。
72037BEFORE句に設定した値が間違っています。
72041単一セグメント送信時,一意名1のLに4以下の値を設定しています。
73001出力先の論理端末で障害が発生しました。
73002MCF通信サービスで障害が発生しました。
73003同期送信要求(メッセージ)時,メッセージ出力先論理端末から,メッセージ受信要求が発生しました。
73008論理端末が閉塞中,またはMCFが終了処理中に,UAPからSEND文が呼び出されました。
73010入力,または出力メッセージ編集UOCで障害が発生しました。
メッセージ編集エラーが発生しました。
メッセージの読み込み時に障害が発生しました。
73015メッセージ出力先の論理端末は,ほかのUAPで仕掛り中です。
メッセージ出力先の論理端末は,該当するUAPと仕掛り中ではありません。
73018同期型のメッセージ送信を発行したときに,データ名11に設定した監視時間が間違っています。
73020出力先の論理端末は停止しています。
77901同期送信要求(メッセージ)時,メッセージ出力先論理端末から,EOTを受信しました。
77902同期送信要求(EOT)時,メッセージ出力先論理端末から,EOTを受信しました。
77903同期送信要求(メッセージ)時,メッセージ出力先論理端末からのRVIを受理しました。メッセージの送信は正常に終了しました。
上記以外プログラムの破壊などによる,予期しないエラーが発生しました。