3.3.2 SENDアプリケーションプログラムの起動,応答メッセージの送信,メッセージの送信,同期型メッセージの送受信

<この項の構成>
(1) 形式1(セグメントの内容を設定して送信する場合)
(2) 形式2(セグメントの内容を設定しないで,メッセージの送信の終了だけ連絡する場合)
(3) 機能
(4) 通信記述項に設定する項目
(5) 通信文に指定する項目
(6) ステータスコード

(1) 形式1(セグメントの内容を設定して送信する場合)

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

CD 通信記述名
  FOR{OUTPUT PROGRAM|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〕.

PROCEDURE DIVISION(通信文)の指定

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

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

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

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

PROCEDURE DIVISION(通信文)の指定

SEND 通信記述名 WITH EMI.

(3) 機能

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

注※
単一セグメントだけ扱えます。

(4) 通信記述項に設定する項目

(5) 通信文に指定する項目

(6) ステータスコード

ステータスコード意味
00000正常に終了しました。
71002メッセージキューへの出力処理中に障害が発生しました。
メッセージキューが閉塞されています。
メッセージキューが割り当てられていません。
一意名1のLに32000バイトを超える値を設定しています。
MCFが終了処理中のため,メッセージの送信を受け付けられません。
71003メッセージキューが満杯です。
71004メッセージを格納するバッファをメモリ上に確保できませんでした。
71108メッセージを送信しようとしましたが,送信先の管理テーブルを確保できませんでした。
プロセスのローカルメモリが不足しています。
72000FOR句にI-Oを設定していますが,SYNCHRONOUS MODE句でSYNCを設定していません。
<MHPの実行でリターンした場合>
先頭セグメントを受信するRECEIVE文を呼び出す前に,SEND文を呼び出しています。
非応答型のMHPから応答メッセージを送信しています。
<SPPの実行でリターンした場合>
トランザクションでないSPPの処理から,SEND文を呼び出しています。
SPPでは応答メッセージを送信するSEND文を呼び出せません。
72001SYMBOLIC TERMINAL句に設定した論理端末名称が間違っています。
SEND文を呼び出せない論理端末を設定しています。
設定したアプリケーション名は,MCFで定義されていません。
アプリケーション名が間違っています。
MCFマネジャ定義の通信サービス定義(mcfmcname)に,アプリケーション起動プロセス名またはMCF通信プロセス名を指定していません。
アプリケーション起動プロセス,またはMCF通信プロセスに対応するMCFアプリケーション定義の環境定義(mcfaenv -p)に,アプリケーション起動プロセス識別子を指定していません。
アプリケーション環境定義(mcfaenv -p)で指定したアプリケーション起動プロセス識別子と,アプリケーション起動プロセス,またはMCF通信プロセスのMCF通信構成定義(mcftenv -s)で指定する識別子が一致していません。
<論理端末名称を指定してアプリケーションを起動する場合>
  • 起動先アプリケーションのアプリケーション属性定義(mcfaalcap -n)のlnameオペランドに論理端末を指定していません。
  • 起動先アプリケーションのアプリケーション属性定義(mcfaalcap -n)のlnameオペランドに指定した論理端末を,MCF通信プロセスのMCF通信構成定義(mcftalcle)に定義していません。
  • 起動先アプリケーションのアプリケーション属性定義に指定した論理端末が,request型論理端末またはsend型論理端末ではありません。
  • 起動先アプリケーションのアプリケーション属性定義で指定した論理端末はアプリケーション起動を使えません。
<コネクションIDを指定してアプリケーションを起動する場合>
  • 起動先アプリケーションのアプリケーション属性定義(mcfaalcap -n)のcnameオペランドにコネクションIDを指定していません。
  • 起動先アプリケーションのアプリケーション属性定義(mcfaalcap -n)のcnameオペランドに指定したコネクションIDを,MCF通信プロセスのMCF通信構成定義(mcftalccn)に定義していません。
  • MCF通信プロセスのMCF通信構成定義(mcftalcle)に,request型論理端末を指定していません。
<SPPからアプリケーションを起動する場合>
  • アプリケーション起動プロセス識別子を起動元のUAPのユーザサービス定義,またはユーザサービスデフォルト定義のmcf_psv_idオペランドに指定していません。
  • 起動元のUAPのユーザサービス定義,またはユーザサービスデフォルト定義のmcf_psv_idオペランドに指定しているアプリケーション起動プロセス識別子が,アプリケーション起動プロセス,またはMCF通信プロセスのMCF通信構成定義(mcftenv -s),およびアプリケーション環境定義(mcfaenv -p)で指定しているアプリケーション起動プロセス識別子と一致していません。
  • 起動元のUAPのユーザサービス定義,またはユーザサービスデフォルト定義のmcf_mgridオペランドに指定しているMCFマネジャ識別子が,アプリケーション起動プロセスが属しているMCFマネジャの識別子と一致していません。
72005先頭セグメントまたは中間セグメントを送信するSEND文で,送信セグメント長に4以下の値を設定しています。
72007応答型(type=ans)のMHPで,応答メッセージを送信したあとで,応答型のMHPを起動しています。
継続問い合わせ応答型(type=cont)のMHPで,応答メッセージを送信したあとで,継続問い合わせ応答型のMHPを起動しています。
72008応答メッセージの最終セグメントを送信するSEND文を呼び出したあとに,再び応答メッセージを送信するSEND文を呼び出しています。
SEND文を呼び出して応答型(type=ans)のMHPを起動させたあとに,応答メッセージを送信するSEND文を呼び出しています。
72009応答型(type=ans)のMHPを2回以上起動しています。
継続問い合わせ応答型(type=cont)のMHPを2回以上起動しています。
72011応答型(type=ans)でないMHPから,応答型のMHPを起動させています。
継続問い合わせ応答型(type=cont)でないMHPから,継続問い合わせ応答型のMHPを起動しています。
72013一意名1のLの指定値を超えるセグメントを受信しました。一意名1のLの指定値を超えた部分は切り捨てられました。
72017DETAIL MODE句に設定した値が間違っています。
72018SWITCHING MODE句に設定した値が間違っています。
72020SYNCHRONOUS MODE句に設定した値が間違っています。
72024FOR句に設定した値が間違っています。
72026WITH句に設定した値が間違っています。
72036セグメントを受信する領域(一意名3)の長さが不足しています。5バイト以上の領域を確保してください。
72041単一セグメントを送信するSEND文で,一意名1のLに4以下の値を設定しています。
72044継続問い合わせ応答を終了したあとで,継続問い合わせ応答型(type=cont)のMHPから,SEND文で継続問い合わせ応答型のMHPを起動させています。
73001メッセージの送受信処理中に障害が発生しました。
73002論理端末が閉塞されています。
73004メッセージの送信処理中にタイムアウトが発生しました。
73005メッセージの受信処理中にタイムアウトが発生しました。
73008運用コマンドまたは障害による論理端末閉塞処理中に,SEND文を呼び出しました。
73009論理端末閉塞解除処理中に,SEND文を呼び出しました。
73010入力メッセージ編集UOCまたは出力メッセージ編集UOCで障害が発生しました。
73015出力先の論理端末は,ほかのUAPで仕掛り中です。
73018WAITING TIME 句に設定した値が間違っています。
77001起動しようとするアプリケーションに対応する論理端末は,現在仕掛り中で使用できません。または,使用できる論理端末がありません。
上記以外プログラムの破壊などによる,予期しないエラーが発生しました。