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

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

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 一意名1WITH {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 メッセージを送信しようとしましたが,送信先の管理テーブルを確保できませんでした。
プロセスのローカルメモリが不足しています。
72000 FOR句にI-Oを設定していますが,SYNCHRONOUS MODE句でSYNCを設定していません。
<MHPの実行でリターンした場合>
先頭セグメントを受信するRECEIVE文を呼び出す前に,SEND文を呼び出しています。
非応答型のMHPから応答メッセージを送信しています。
<SPPの実行でリターンした場合>
トランザクションでないSPPの処理から,SEND文を呼び出しています。
SPPでは応答メッセージを送信するSEND文を呼び出せません。
72001 SYMBOLIC 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の指定値を超えた部分は切り捨てられました。
72017 DETAIL MODE句に設定した値が間違っています。
72018 SWITCHING MODE句に設定した値が間違っています。
72020 SYNCHRONOUS MODE句に設定した値が間違っています。
72024 FOR句に設定した値が間違っています。
72026 WITH句に設定した値が間違っています。
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で仕掛り中です。
73018 WAITING TIME 句に設定した値が間違っています。
77001 起動しようとするアプリケーションに対応する論理端末は,現在仕掛り中で使用できません。または,使用できる論理端末がありません。
上記以外 プログラムの破壊などによる,予期しないエラーが発生しました。