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

解説・手引・文法・操作書

3000-3-D74-32

前書き

対象製品

・適用OS：AIX V6.1，AIX V7.1，AIX V7.2

P-1M64-3141 uCosminexus TP1/Message Control 07-51

P-1M64-3241 uCosminexus TP1/NET/Library 07-51

P-F1M64-32415 uCosminexus TP1/NET/XMAP3 07-50

・適用OS：HP-UX 11i V3 (IPF)

P-1J64-3171 uCosminexus TP1/Message Control 07-51

P-1J64-3271 uCosminexus TP1/NET/Library 07-51

P-F1J64-32715 uCosminexus TP1/NET/XMAP3 07-51

・適用OS：Windows 7，Windows 7 x64 Edition，Windows 8，Windows 8 x64 Edition，Windows 8.1，Windows 8.1 x64 Edition，Windows 10，Windows 10 x64 Edition，Windows Server 2008 R2，Windows Server 2012，Windows Server 2012 R2，Windows Server 2016，Windows Server 2019

P-2464-3164 uCosminexus TP1/Message Control 07-51

P-2464-3264 uCosminexus TP1/NET/Library 07-50

P-F2464-32645 uCosminexus TP1/NET/XMAP3 07-51

これらのプログラムプロダクトのほかにも，このマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。

輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

HITACHI，DCCM，OpenTP1，SEWB，uCosminexus，VOS1，VOS3，XDM，XMAPは，株式会社 日立製作所の商標または登録商標です。

AIXは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

IBMは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

Itaniumは，Intel Corporation またはその子会社の商標です。

Microsoftは，マイクロソフト 企業グループの商標です。

UNIXは，The Open Groupの登録商標です。

Windowsは，マイクロソフト 企業グループの商標です。

Windows Serverは，マイクロソフト 企業グループの商標です。

その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。

発行

2022年4月　3000-3-D74-32

著作権

All Rights Reserved. Copyright (C) 2006, 2022, Hitachi, Ltd.

変更内容

変更内容（3000-3-D74-32） uCosminexus TP1/Message Control 07-51，uCosminexus TP1/NET/Library 07-51，uCosminexus TP1/NET/XMAP3 07-51

追加・変更内容

変更個所

コンパイラオプション -VOSCBL,DataCommを指定した場合の説明を追加した。

4.　COBOL-UAP作成用プログラムインタフェース

COBOL-UAP作成用プログラムインタフェースの一覧

マッピングサービス属性定義のヌルクリアコード，データ有無コード，初期設定値の先頭「0x」指定の説明を追加した。

6.　OpenTP1マッピングサービス機能

マッピングサービス属性定義

単なる誤字・脱字などはお断りなく訂正しました。

変更内容（3000-3-D74-31） uCosminexus TP1/Message Control 07-51，uCosminexus TP1/NET/Library 07-51，uCosminexus TP1/NET/XMAP3 07-51

追加・変更内容

マニュアル訂正の内容を反映した。

マッピングサービスホスト名の説明にIPアドレスとのマッピングが必要であることを追加した。これに伴い，複数のマッピングサービスを使用する場合の定義例を追加した。

出力形式のddddに，ほかのステータスが出力されたときの説明を追加した。

変更内容（3000-3-D74-30） uCosminexus TP1/Message Control 07-50，uCosminexus TP1/NET/Library 07-50，uCosminexus TP1/NET/XMAP3 07-50

追加・変更内容

マニュアル訂正の内容を反映した。

変更内容（3000-3-D74-20） uCosminexus TP1/Message Control 07-50，uCosminexus TP1/NET/Library 07-50，uCosminexus TP1/NET/XMAP3 07-50

追加・変更内容

コネクションの確立の動作モードを指定できるようにした。これに伴い，XMAP3共通定義（mcftxp）に-cオプションを追加した。

論理端末画面の閉じるボタンを有効化する場合の留意事項を追加した。

問い合わせ応答形態の説明を追加した。

継続問い合わせ応答形態の説明を追加した。

強制確定キーの動作の注意事項を追加した。

NULLまたはヌル文字列設定時のコーディング例を追加した。

リターン値DCMCFRTN_NOMSGおよびステータスコード70904の説明を変更した。

初期状態での受け取り領域の説明を追加した。

アプリケーション属性定義との関連について説明を追加した。

ERREVT3に設定するトランザクションブランチIDの形式の説明を追加した。

次のオペランドの指定値の上限を拡張した。

システムサービス共通情報定義

max_socket_descriptors

max_open_fds

MCF性能検証用トレースの説明を追加した。

定義オブジェクトファイルの出力先に読み取り権限を持つファイルがすでに存在する場合，定義オブジェクトファイルを上書きするかどうかを指定できるようにした。

OpenTP1システムを変更する場合に，見直しが必要な定義と，変更手順について説明を追加した。

アプリケーション起動サービスに関する説明を追加した。

スタート関数を呼び出したあとの注意事項を追加した。

次に示すバージョンの変更点を記載した。

TP1/NET/XMAP3 07-50

バージョン6以前から移行する場合のインタフェースの変更一覧を追加した。

メッセージを送受信するときのデータの流れ，ジャーナルの取得タイミングなどの説明を追加した。

変更内容（3000-3-D74-10） uCosminexus TP1/Message Control 07-03，uCosminexus TP1/NET/Library 07-04，uCosminexus TP1/NET/XMAP3 07-01

追加・変更内容

コネクションの確立，解放，および状態表示を，ライブラリ関数およびCOBOL-UAP作成用プログラムインタフェースでできるようにした。

これに伴い，次の関数を追加した。

dc_mcf_tactcn

dc_mcf_tdctcn

dc_mcf_tlscn

CBLDCMCF('TACTCN△△')

CBLDCMCF('TDCTCN△△')

CBLDCMCF('TLSCN△△△')

論理端末の閉塞，閉塞解除，および状態表示を，ライブラリ関数およびCOBOL-UAP作成用プログラムインタフェースでできるようにした。

これに伴い，次の関数を追加した。

dc_mcf_tactle

dc_mcf_tdctle

dc_mcf_tlsle

CBLDCMCF('TACTLE△△')

CBLDCMCF('TDCTLE△△')

CBLDCMCF('TLSLE△△△')

論理端末画面の閉じるボタンを有効化できるようにした。

これに伴い，XMAP3共通定義（mcftxp）に-gオプションとclosebuttonオペランドを追加した。

送受信できる一つのセグメントの最大長について説明を追加した。

アプリケーション名の決定について説明を追加した。

システムサービス情報定義に，環境変数XPCLOSEWAITTIMEを追加した。

リターン値（数値）の説明を追加した。

TP1/NET/XMAP3の論理端末画面で入出力されたメッセージを送受信する場合の説明を追加した。

マップ名を引き継がない場合の説明を追加した。

出力通番の設定に関する説明を追加した。

データ操作言語の通信文とC言語のライブラリ関数の対応の説明を追加した。

UAPで値を設定するデータ領域，およびOpenTP1から値が返されるデータ領域について，説明を追加した。また，送信するセグメントを設定する領域，およびセグメントを受信する領域の形式とその内容を追加した。

次のデータ操作言語の通信文の通信記述項に，SYNCHRONOUS MODE句を追加した。

RECEIVE − メッセージの受信

SEND − メッセージの送信

ステータスコード「72016」および「72042」を追加した。

送信メッセージ通番編集UOCインタフェースを追加した。

MCFイベントのVCLSEVT，およびVERREVTが起動される条件の説明を追加した。

MCFイベント情報のマップ名に関する説明を追加した。

マッピングサービス属性定義のPADCHRオペランドの初期設定値について説明を追加した。

注意事項の，バッファグループ定義（mcftbuf）でコネクションごとに割り当てる資源の量について，説明を変更した。

システムサービス情報定義の環境変数XRESPONSETIMEの指定範囲を変更し，デフォルト値を明記した。

MCF定義オブジェクトの解析コマンドを追加した。

MCFトレースファイルの見積もり式の説明を追加した。

マッピングサービス定義ファイルとプロトコル固有定義のファイルの制約事項について，説明を追加した。

出力形式のSYNCおよびIOに，未処理送信メッセージに関する説明を追加した。

オンラインコマンド使用時の注意事項，入力形式の説明を追加した。

バージョンアップ時の，定義，関数，コマンドおよびデフォルト値の変更点を追加した。

MCF性能検証用トレースの出力情報，取得タイミング，および取得量の説明を追加した。

第2版では，第1版の目次の構成を変更しました。第1版との対応は次のようになっています。

第1版

第2版

1.　概要

1.　概要

1.1　対話オンライン処理の概要

1.1　対話オンライン処理の概要

1.2　対話オンライン処理の通信形態

1.2　対話オンライン処理の通信形態

1.3　ソフトウェアの構成

削除

1.3.1　前提プログラム

削除

1.3.2　ソフトウェア構成の例

1.3　ソフトウェア構成の例

2.　機能

2.　機能

2.1　TP1/NET/XMAP3の論理端末構成

1.2.1　コネクションと論理端末の関係

2.2　オンラインの開始と終了

2.1(1)　オンラインの開始形態と終了形態

2.3　対話オンライン処理の仕組み

削除

2.3.1　表示印刷サービスとの接続と切り離し

2.2　コネクションに関する機能

2.2.1　コネクションの確立

2.2.2　コネクションの解放

2.3.2　論理端末の起動と閉塞

2.3　論理端末に関する機能

2.3.2　論理端末のキュー状態の閉塞と閉塞解除

2.3.3　論理端末の端末状態の閉塞と閉塞解除

2.3.3　論理端末とアプリケーションの属性との関係

2.3.1　論理端末とアプリケーションの型の関係

2.3.4　メッセージの分割と組み立て

2.4.5　メッセージの分割と組み立て

2.4　対話オンライン処理のメッセージ送受信

2.4　メッセージ送受信に関する機能

2.4.1　マッピングによるメッセージの編集

2.4.6　マッピングによるメッセージの編集

2.4.2　通信形態とメッセージの流れ

2.4.1　非問い合わせ応答形態のメッセージ

2.4.2　分岐送信形態のメッセージ

2.4.3　問い合わせ応答形態のメッセージ

2.4.4　継続問い合わせ応答形態のメッセージ

2.5　メッセージグループ送信機能

2.4.8　メッセージグループ送信機能

2.5.1　メッセージグループ送信の流れ

2.5.2　プリンタの連続使用

2.6　ページ制御機能

2.4.9　ページ制御機能（XMAP3/PRINTER UTILITY）の利用

2.6.1　ページ制御機能の概要

2.7　代行送信

2.4.10　メッセージの代行送信

2.8　XP/Wを使用する場合の他システムとの接続

2.2.4　XP/Wを使用する場合の他システムとの接続

2.9　キー入力サービス

2.4.11　キー入力サービス

2.9.1　送信要求発生時の処理

2.9.2　印刷キー処理

2.9.3　キーボード状態の変更

2.10　システムコマンド

2.4.12　オンラインコマンド

2.11　オペレータインジケータ表示メッセージ

2.4.13　オペレータインジケータのメッセージ表示

2.12　クライアントPC/WS応答時間タイムアウト発生時の障害メッセージ出力

2.4.14　クライアントPC/WS応答時間タイムアウト発生時の障害メッセージ出力

2.12.1　機能の説明

2.12.2　環境変数

2.13　注意事項

削除

2.13.1　XMAP3サーバの起動に関する注意事項

2.1(2)　XMAP3サーバの起動

2.13.2　旧製品からの移行に関する注意事項

付録B　旧製品からの移行に関する注意事項

3.　メッセージ送受信インタフェース

3.　C言語のライブラリ関数

4.　COBOL-UAP作成用プログラムインタフェース

2.4.7　アプリケーションの決定

付録G　ユーザアプリケーションプログラムの作成例

4.　ユーザオウンコーディング，MCFイベントインタフェース

5.　ユーザオウンコーディング，MCFイベントインタフェース

5.　OpenTP1マッピングサービス機能

6.　OpenTP1マッピングサービス機能

6.　システム定義

7.　システム定義

7.　運用コマンド

8.　運用コマンド

8.　オンラインコマンド

9.　オンラインコマンド

9.　組み込み方法

10.　組み込み方法

10.　障害対策

11.　障害対策

付録A　XMAP3 Serverサービス名との関係

付録D　XMAP3 Serverサービス名との関係

付録B　表示印刷サービスの起動でコネクション確立をするための環境設定

付録E　表示印刷サービスの起動でコネクション確立をするための環境設定

付録C　OpenTP1マッピングサービス機能の定義例（PAGEC機能を使用する場合）

付録F　OpenTP1マッピングサービス機能の定義例（PAGEC機能を使用する場合）

付録D　オペレータインジケータ表示メッセージ一覧

付録H　オペレータインジケータ表示メッセージ一覧

付録E　理由コード一覧

付録I　理由コード一覧

付録F　マッピングサービスの障害コードの詳細

付録J　マッピングサービスの障害コードの詳細

付録G　用語解説

付録K　用語解説

はじめに

このマニュアルは，TP1/NET/XMAP3を使用した対話オンライン処理システムの概要，機能，作成方法，および操作・運用方法について説明したものです。

本文中に記載されている製品のうち，このマニュアルの対象製品ではない製品については，OpenTP1 Version 7対応製品の発行時期をご確認ください。

対象読者

システム管理者，システム設計者，およびプログラマを対象としています。次のマニュアルを理解していることを前提としています。

OpenTP1 解説（3000-3-D50）

OpenTP1 プログラム作成の手引（3000-3-D51）

OpenTP1 システム定義（3000-3-D52）

OpenTP1 運用と操作（3000-3-D53）

OpenTP1 プログラム作成リファレンス C言語編（3000-3-D54）

OpenTP1 プログラム作成リファレンス COBOL言語編（3000-3-D55）

OpenTP1 使用の手引 Windows(R)編（3000-3-D64）

また，XMAP3の知識をお持ちであることを前提としています。

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　概要

TP1/NET/XMAP3の概要について説明しています。

第2章　機能

TP1/NET/XMAP3の機能について説明しています。

第3章　C言語のライブラリ関数

TP1/NET/XMAP3で使用できる，C言語のライブラリ関数について説明しています。

第4章　COBOL-UAP作成用プログラムインタフェース

TP1/NET/XMAP3で使用できる，COBOL-UAP作成用プログラムインタフェースについて説明しています。

第5章　ユーザオウンコーディング，MCFイベントインタフェース

ユーザオウンコーディング，およびMCFイベントインタフェースについて説明しています。

第6章　OpenTP1マッピングサービス機能

OpenTP1マッピングサービス機能について説明しています。

第7章　システム定義

TP1/NET/XMAP3のシステム定義について説明しています。

第8章　運用コマンド

TP1/NET/XMAP3の運用コマンドについて説明しています。

第9章　オンラインコマンド

TP1/NET/XMAP3のオンラインコマンドについて説明しています。

第10章　組み込み方法

TP1/NET/XMAP3の組み込み方法について説明しています。

第11章　障害対策

TP1/NET/XMAP3の障害時の処理について説明しています。

付録A　バージョンアップ時の変更点

各バージョンでの関数，定義およびコマンドの変更点について説明しています。

付録B　旧製品からの移行に関する注意事項

バージョン6以前からバージョン7へ移行する場合の注意事項について説明しています。

付録C　インタフェースの変更一覧（バージョン6以前から移行する場合）

バージョン6以前からバージョン7に移行する場合のインタフェースの変更一覧について説明しています。

付録D　MCF性能検証用トレースの取得

MCF性能検証用トレースのMCF固有情報の出力情報，取得タイミング，および取得量について説明しています。

付録E　メッセージ送受信の流れ

メッセージを送受信するときのデータの流れ，ジャーナル取得のタイミングについて説明しています。

付録F　XMAP3 Serverサービス名との関係

TP1/NET/XMAP3の定義とXMAP3 Serverサービス名との関係について説明しています。

付録G　表示印刷サービスの起動でコネクション確立をするための環境設定

表示印刷サービスの起動でコネクション確立をするための環境設定について説明しています。

付録H　ユーザアプリケーションプログラムの作成例

TP1/NET/XMAP3のユーザアプリケーションプログラムの作成例について説明しています。

付録I　オペレータインジケータ表示メッセージ一覧

オペレータインジケータ表示メッセージについて説明しています。

付録J　理由コード一覧

障害通知イベントが発生した場合の理由コードについて説明しています。

付録K　マッピングサービスの障害コードの詳細

マッピングサービスの障害コードの詳細について説明しています。

付録L　用語解説

TP1/NET/XMAP3で使用する用語について説明しています。

関連マニュアル

●OpenTP1 Version 7

●サービスプログラム

COBOL2002 使用の手引 手引編（3000-3-D08）

XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド（3020-7-512）

XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド（3020-7-513）

XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド（3020-7-514）

読書手順

このマニュアルは，利用目的に合わせて章を選択して読むことができます。利用目的別に，次の流れに従ってお読みいただくことをお勧めします。

図中で使用する記号

このマニュアルの図中で使用する記号を，次のように定義します。

文法の記号

このマニュアルで使用する各種の記号を説明します。

（1）文法記述記号

文法の記述形式について説明する記号です。

文法記述記号

意味

〔　〕

この記号で囲まれている項目は省略できることを示します。

（例）〔-s　MCF通信プロセス識別子〕

-sオプションとそのオペランドを指定するか，何も指定しないことを示します。

｜

（ストローク）

この記号で仕切られた項目は選択できることを示します。

（例）-t reply｜request

-tオプションにreplyまたはrequestを指定できることを示します。

ただし，C言語のインタフェースの説明でこの記号を使用した場合は，C言語の文法規則に従います。

{　}

この記号で囲まれている複数の項目のうちから一つを選択できることを示します。

（例）{DCMCFESI｜DCMCFEMI}

DCMCFESIとDCMCFEMIのうち，どちらかを指定できることを示します。

＿

（下線）

この記号で示す項目は，オペランド，オプションまたはコマンド引数を省略した場合の省略時解釈値を示します。

（例）-i auto｜manual

-iオプションを省略した場合，manualを省略時解釈値とすることを示します。

ただし，データ操作言語の説明の場合，この下線記号で示す予約語は，必要語なので省略できないことを示します。

下線がない予約語は，補助語なので書いても書かなくてもかまいません。

…

この記号で示す直前の一つの項目を繰り返し指定できることを示します。

ただし，項目が括弧で囲まれている場合，括弧全体が一つの項目となります。

△

（白三角）

空白を示します。

（例）コネクションID1△コネクションID2

コネクションID1とコネクションID2の間に，空白を1個入力することを示します。

（2）属性表示記号

ユーザ指定値の範囲などを説明する記号です。

属性表示記号

意味

〜

この記号のあとにユーザ指定値の属性を示します。

《　　》

ユーザが指定を省略したときの省略時解釈値を示します。

〈　　〉

ユーザ指定値の構文要素を示します。

((　　))

ユーザ指定値の指定範囲を示します。

（3）構文要素記号

ユーザ指定値の内容を説明する記号です。

構文要素記号

意味

英字

アルファベット（A〜Z，a〜z）と_（アンダスコア）

英字記号

アルファベット（A〜Z，a〜z）と#，@，¥

英数字

英字と数字（0〜9）

英数字記号

英字記号と数字（0〜9）

符号なし整数

数字列（0〜9）

10進数字

数字（0〜9）

16進数字

数字（0〜9）と（A〜F，a〜f）

識別子

先頭がアルファベットの英数字列

記号名称

先頭が英字記号の英数字記号列

文字列

任意の文字の配列

パス名

記号名称，／，および.（ピリオド）

（ただし，パス名は使用するOSに依存）

このマニュアルでの表記

（1）製品名

このマニュアルで使用する製品名称の略称を次に示します。

製品名称

略称

AIX V6.1

AIX

AIX V7.1

AIX V7.2

COBOL2002

COBOL

COBOL85

HP-UX 11i V2（IPF）

HP-UX

HP-UX 11i V3（IPF）

Itanium Processor Family

IPF

Solaris 8

Solaris

Solaris 9

Solaris 10

uCosminexus TP1/Message Control

TP1/Message Control

uCosminexus TP1/NET/Library

TP1/NET/Library

uCosminexus TP1/NET/XMAP3

TP1/NET/XMAP3

uCosminexus TP1/Server Base

TP1/Server Base

Windows 7 Enterprise (x86)

Windows 7 x86

Windows 7

Windows 7 Professional (x86)

Windows 7 Ultimate (x86)

Windows 7 Enterprise (x64)

Windows 7 x64

Windows 7 Professional (x64)

Windows 7 Ultimate (x64)

Windows 8 Enterprise (x86)

Windows 8 x86

Windows 8

Windows 8 Pro (x86)

Windows 8 Enterprise (x64)

Windows 8 x64

Windows 8 Pro (x64)

Windows 8.1 Enterprise (x86)

Windows 8.1 x86

Windows 8.1

Windows 8.1 Pro (x86)

Windows 8.1 Enterprise (x64)

Windows 8.1 x64

Windows 8.1 Pro (x64)

Windows 10 Enterprise (x86)

Windows 10 x86

Windows 10

Windows 10 Pro (x86)

Windows 10 Enterprise (x64)

Windows 10 x64

Windows 10 Pro (x64)

Windows Server 2008 R2 Datacenter

Windows Server 2008 R2

Windows Server 2008 R2 Enterprise

Windows Server 2008 R2 Standard

Windows Server 2012 Datacenter

Windows Server 2012

Windows Server 2012 Standard

Windows Server 2012 R2 Datacenter

Windows Server 2012 R2

Windows Server 2012 R2 Standard

Windows Server 2016 Datacenter

Windows Server 2016

Windows Server 2016 Standard

Windows Server 2019 Datacenter

Windows Server 2019

Windows Server 2019 Standard

Extended Mapping Service 3

XMAP3

Windows 7，Windows 8，Windows 8.1，Windows 10，Windows Server 2008 R2，Windows Server 2012，Windows Server 2012 R2，およびWindows Server 2016で機能差がない場合，Windowsと表記しています。

AIX，HP-UX，およびSolarisを総称してUNIXと表記しています。

（2）適用OSによる違いについて

Windows版の製品をご使用になる場合，マニュアルの記述を次のように読み換えてください。

項目

マニュアルの表記

読み換え

環境変数の表記

$aaaaaa

例　$DCDIR

%aaaaaa%

例　%DCDIR%

複数のパス名を列挙するときの区切り文字

:

;

ディレクトリの区切り文字

/

¥

完全パス名

ルートディレクトリから指定します。

例　/tmp

先頭にドライブ文字を付加して，ルートディレクトリから指定します。

例　C:¥tmp

実行形式ファイル名

ファイル名だけを指定します。

例　mcfmngrd

ファイル名に拡張子を付加して指定します。

例　mcfmngrd.exe

makeコマンド

make

nmake

（3）JISコード配列のキーボードとASCIIコード配列のキーボードとの違いについて

JISコード配列とASCIIコード配列では，次に示すコードで入力文字の違いがあります。このマニュアルの文字入力例（コーディング例）の表記は，JISコード配列（日本語のキーボード）に従った文字に統一しています。

コード

JISコード配列

ASCIIコード配列

(5c)₁₆

'¥'（円記号）

'＼'（バックスラッシュ）

(7e)₁₆

'￣'（オーバライン）

'~'（チルダ）

（4）C言語の関数とCOBOL-UAP作成用プログラムの表記について

このマニュアルでは，C言語の関数とCOBOL-UAP作成用プログラムとで説明に差異がない場合，C言語の関数名に統一して説明しています。

略語一覧

このマニュアルで使用する英略語の一覧を次に示します。

英略語

英字での表記

CUI

Character User Interface

GUI

Graphical User Interface

LAN

Local Area Network

LRU

Least Recently Used

MCF

Message Control Facility

MHP

Message Handling Program

OS

Operating System

PC

Personal Computer

SPP

Service Providing Program

UAP

User Application Program

UOC

User Own Coding

WAN

Wide Area Network

WS

Workstation

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

謝辞

COBOL言語仕様は，CODASYL（the Conference on Data Systems Languages：データシステムズ言語協議会）によって，開発された。OpenTP1のアプリケーションプログラムのインタフェース仕様のうち，データ操作言語（DML　Data Manipulation Language）の仕様は，CODASYL　COBOL（1981）の通信節，RECEIVE文，SEND文，COMMIT文，及びROLLBACK文を参考にし，それに日立製作所独自の解釈と仕様を追加して開発した。原開発者に対し謝意を表すとともに，CODASYLの要求に従って以下の謝辞を掲げる。なお，この文章は，COBOLの原仕様書「CODASYL COBOL JOURNAL OF DEVELOPMENT 1984」の謝辞の一部を再掲するものである。

いかなる組織であっても，COBOLの原仕様書とその仕様の全体又は一部分を複製すること，マニュアルその他の資料のための土台として原仕様書のアイデアを利用することは自由である。ただし，その場合には，その刊行物のまえがきの一部として，次の謝辞を掲載しなければならない。書評などに短い文章を引用するときは，"COBOL"という名称を示せば謝辞全体を掲載する必要はない。

COBOLは産業界の言語であり，特定の団体や組織の所有物ではない。

CODASYL　COBOL委員会又は仕様変更の提案者は，このプログラミングシステムと言語の正確さや機能について，いかなる保証も与えない。さらに，それに関連する責任も負わない。

次に示す著作権表示付資料の著作者及び著作権者

FLOW-MATIC（Sperry Rand Corporationの商標），

Programming for the Univac（R）I and II，Data Automation Systems，

Sperry Rand Corporation　著作権表示1958年，1959年；

IBM Commercial Translator Form No.F 28-8013，IBM著作権表示1959年;

FACT，DSI 27A5260-2760，Minneapolis-Honeywell，著作権表示1960年

は，これら全体又は一部分をCOBOLの原仕様書中に利用することを許可した。この許可は，COBOL原仕様書をプログラミングマニュアルや類似の刊行物に複製したり，利用したりする場合にまで拡張される。

1　概要

TP1/NET/XMAP3は，OpenTP1システムを構成するプログラムの一つです。TP1/NET/XMAP3は，XMAP3 Serverを使って，OpenTP1システム内のUAPから論理的な画面入出力をする対話オンライン処理機能を提供します。

この章では，TP1/NET/XMAP3の概要を説明します。

1.1　対話オンライン処理の概要

TP1/NET/XMAP3は，XMAP3 Serverを使って，OpenTP1システム内のUAPから論理的な画面入出力ができる対話オンライン処理機能を提供するプログラムです。

XMAP3 Serverとは，ワークステーション上で物理マッピング処理（表示・印刷）を支援するプログラムです。XMAP3 Serverは，論理データ（画面・帳票メッセージ）と，画面・帳票定義情報※によって，物理マッピング処理をします。XMAP3 Serverは，UAPとのインタフェースを提供する画面・帳票用のライブラリと，実際に帳票を印刷する印刷サービスと，サービスを制御するサーバ機能に分かれます。これに対して，パーソナルコンピュータ上で物理マッピング処理を支援するプログラムを，XMAP3と呼びます。実際に画面表示をする表示サービスが追加されています。

以降，このマニュアルでは，表示サービスと印刷サービスを総称して表示印刷サービスと呼びます。また，サーバ機能をXMAP3サーバと呼びます。

注

画面・帳票定義情報は，画面や帳票の固定データ（固定文字，けい線など）や入力領域を定義しています。

TP1/NET/XMAP3を使用したネットワーク構成の例を，次の図に示します。

図1‒1　TP1/NET/XMAP3を使用したネットワーク構成の例

1.2　対話オンライン処理の通信形態

ここでは，コネクションと論理端末の関係，およびメッセージ送受信の形態について説明します。

1.2.1　コネクションと論理端末の関係

TP1/NET/XMAP3では，一つのコネクションが一つの表示印刷サービスに対応します。コネクションとは，TP1/NET/XMAP3と表示印刷サービスの間に確立された論理的な通信路です。

コネクションと論理端末の対応はコネクションの属性によって異なります。論理端末とは，TP1/NET/XMAP3とOpenTP1システム内のUAPとのインタフェースです。表示サービスの場合，一つのコネクションには複数の論理端末を対応づけられます。この場合，論理端末と論理端末画面は1対1で対応します。印刷サービスの場合，一つのコネクションには一つの論理端末しか対応づけられません。

これらの論理端末構成は，ユーザがMCF通信構成定義で定義します。

コネクションと論理端末の関係を，次の図に示します。

図1‒2　コネクションと論理端末の関係

複数のコネクションが一つの表示印刷サービスに対応する構成を作成する場合，一つの表示印刷サービスに対応できるコネクション数は15までです。

1.2.2　メッセージ送受信の形態

TP1/NET/XMAP3では，UAPと表示印刷サービスとの間でメッセージを送受信します。TP1/NET/XMAP3を使用したメッセージ送受信の形態には，非問い合わせ応答形態，分岐送信形態，問い合わせ応答形態，および継続問い合わせ応答形態の四つがあります。

四つの通信形態のうち，MHPで扱えるのは，非問い合わせ応答形態，問い合わせ応答形態，継続問い合わせ応答形態の三つです。分岐送信形態は，この三つの通信形態の中で使用し，単独では使用できません。また，SPPで扱う形態は，分岐送信形態だけです。

TP1/NET/XMAP3を使用したメッセージ送受信の例を，次の図に示します。

図1‒3　TP1/NET/XMAP3を使用したメッセージ送受信の例

(1)　非問い合わせ応答形態

非問い合わせ応答形態とは，UAPが表示印刷サービスから一方送信メッセージを受信する通信形態です。

(2)　分岐送信形態

分岐送信形態とは，UAPが表示印刷サービスに対して一方送信メッセージを送信する通信形態です。

(3)　問い合わせ応答形態

問い合わせ応答形態とは，UAPが表示印刷サービスから問い合わせメッセージを受信し，UAPで処理したあと，表示印刷サービスに対して応答メッセージを送信する通信形態です。一つの問い合わせメッセージに対して，複数の応答メッセージを送信できます。

(4)　継続問い合わせ応答形態

継続問い合わせ応答形態とは，複数のUAPが，表示印刷サービスからの問い合わせメッセージの受信，および応答メッセージの送信を継続して行う通信形態です。

1.3　ソフトウェア構成の例

TP1/NET/XMAP3は，OpenTP1システムに組み込まれて動作するプログラムです。OpenTP1のメッセージ送受信機能（TP1/Message Control，TP1/NET/Library）と連携して，メッセージ制御機能（MCF）を実現します。

TP1/NET/XMAP3を組み込んだソフトウェア構成の例を，次の図に示します。

図1‒4　TP1/NET/XMAP3を組み込んだソフトウェア構成の例

注※1

表示印刷サービスと画面・帳票メッセージを送受信する機能を提供します。

注※2

TP1/NET/XMAP3で扱うUAPは，MHPとSPPです。UAPについては，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

2　機能

TP1/NET/XMAP3は，対話オンライン処理機能を提供し，メッセージの送受信をします。

この章では，TP1/NET/XMAP3で使用できるコネクションに関する機能，論理端末に関する機能，およびメッセージ送受信に関する機能について説明します。

2.1　オンラインの開始と終了

TP1/NET/XMAP3は，オンライン開始時，システム定義の指定に従って表示印刷サービスにサービス開始要求や論理端末画面の生成などをします。

2.1.1　オンラインの開始形態と終了形態

TP1/NET/XMAP3で対応しているオンラインの開始形態を，次の表に示します。

表2‒1　オンラインの開始形態

開始形態

前回の終了形態

TP1/NET/XMAP3の処理

正常開始

システム構築時

正常終了

強制正常終了

MCF定義ファイルに従ってオンライン環境を構築します。

表示印刷サービスにサービス開始要求，論理端末画面の生成

再開始

計画停止A，B

強制停止

MCF定義ファイルに従ってオンライン環境を構築します。

ただし，前回のオンラインの入力キュー，出力キューに残っているメッセージは引き継がれます。

また，継続問い合わせ応答形態の情報は引き継がれません。

表示印刷サービスにサービス開始要求，論理端末画面の生成

また，TP1/NET/XMAP3で対応しているオンラインの終了形態を，次の表に示します。

表2‒2　オンラインの終了形態

終了形態

TP1/NET/XMAP3の処理

正常終了

強制正常終了

出力キュー内の未処理送信メッセージをすべて送信します。

ただし，一定時間内に出力キュー内の全メッセージを送信できなかった場合は，UAPに未処理送信メッセージ廃棄イベント（ERREVTA）を通知します。

論理端末画面を廃棄し，表示印刷サービスにサービス終了要求をします。

オンラインを終了します。

計画停止A，B

送信中のメッセージを送信完了まで処理します（出力キュー内の未処理送信メッセージは次回の再開始時に処理します）。

論理端末画面を廃棄し，表示印刷サービスにサービス終了要求をします。

オンラインを終了します。

強制停止

直ちにオンラインを終了します。

このとき，表示印刷サービス側の資源は解放され，論理端末画面は廃棄されます。そのため，次回のオンライン開始時には表示印刷サービスのサービス開始要求から処理します。

2.1.2　XMAP3サーバの起動

XMAP3サーバは，OpenTP1システムを開始する前に起動してください。

XMAP3サーバの起動については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

2.2　コネクションに関する機能

TP1/NET/XMAP3では，コネクションの確立と解放によって，論理端末と表示印刷サービスとの接続，および切り離しをします。

ここでは，コネクションに関する機能について説明します。

2.2.1　コネクションの確立

TP1/NET/XMAP3では，コネクションを確立して，論理端末と表示印刷サービスとを接続します。

コネクションは，次のどれかの方法で確立します。

オンライン開始時の自動確立

ユーザがあらかじめ，自動確立させるコネクションをMCF通信構成定義で指定しておきます。TP1/NET/XMAP3は，オンラインを開始するとき，指定されたコネクションを確立します。自動確立の指定がないコネクションは，オンライン開始後，解放状態となります。

コネクションの確立コマンド（mcftactcn）による確立

ユーザが運用コマンドで，コネクションの確立を指示します。TP1/NET/XMAP3は，指示されたコネクションを確立します。

コネクションの確立API（dc_mcf_tactcn関数）による確立

UAPからdc_mcf_tactcn関数を発行することで，コネクションの確立を指示します。TP1/NET/XMAP3は，指示されたコネクションを確立します。

コネクションを確立するとき，TP1/NET/XMAP3は，表示印刷サービスに要求を出してそのコネクションに対応するサービスを開始させます。該当するコネクションに自動起動指定の論理端末がある場合は，その論理端末を起動します。

コネクションの確立の流れを，次の図に示します。

図2‒1　コネクションの確立の流れ

表示印刷サービスの起動でコネクション確立をすることができます。詳細については「付録G　表示印刷サービスの起動でコネクション確立をするための環境設定」を参照してください。

(1)　コネクションの確立の動作モード

コネクションの確立の動作モードをXMAP3共通定義（mcftxp -c）のactcnactionオペランドで指定できます。動作モードにはコネクション確立要求を逐次処理する形態とコネクション確立要求を並行処理する形態があります。

(a)　コネクション確立要求を逐次処理する場合

逐次処理する指定をした場合，TP1/NET/XMAP3はコネクション確立要求が完了するまで次の運用コマンドまたはAPIによるコネクション確立要求を待ち合わせます。

コネクション確立要求を行う運用コマンドまたはAPIがリターンしたとき，TP1/NET/XMAP3がコマンドまたはAPIを正常に受け付けた場合，コネクションは確立状態となっていますが，運用コマンドを多数入力する場合には，順番待ちが発生して，入力数が増えるほど，待ち時間が拡大します。

(b)　コネクション確立要求を並行処理する場合

並行処理する指定をした場合，TP1/NET/XMAP3はコネクション確立要求の処理中に，次の運用コマンドまたはAPIによるコネクション確立要求を受け付けることができます。画面表示を行うシステムにおいて，表示印刷サービスの起動でコネクション確立をするための環境設定を行っている場合，この指定をすることを推奨します。

ただし，コネクション確立要求を並行処理する場合，次の点に注意してください。

コネクション確立要求を行う運用コマンドまたはAPIがリターンしたとき，TP1/NET/XMAP3で正常に受け付けられていたとしても，コネクションの状態が確立状態とは限りません。コネクション確立要求を行う運用コマンドまたはAPIがリターンしたあとに，コネクションが確立していることを前提とした処理がある場合は，コネクションの状態確認を行う運用コマンドまたはAPIで，コネクションの状態を確認してください。

すべてのコネクションの確立要求処理が完了する時間は，最大処理多重度定義の最大処理多重度（mcfttred -m）に依存します。最大処理多重度は，負荷試験を実施したうえで最適な値を指定するようにしてください。多重処理状況は運用コマンド（mcftlstrd）で確認できます。運用コマンドの詳細については，マニュアル「OpenTP1 運用と操作」を参照してください。

(c)　逐次処理と並行処理の動作差異

逐次処理と並行処理の動作差異を次の表に示します。

表2‒3　逐次処理と並行処理の動作差異

定義内容

コネクション確立要求を行う運用コマンドまたはAPIがリターンしたとき，TP1/NET/XMAP3がコマンドまたはAPIを正常に受け付けた場合のコネクション状態

全コネクションの確立要求処理が完了するまでに要する時間

コネクション確立要求を逐次処理する場合

確立状態

各コネクションの確立処理に要した時間の総和

（コネクション数が多いほど，時間を要します）

コネクション確立要求を並行処理する場合

確立状態とはかぎらない

（通信障害が発生したとき，解放状態または解放処理中状態の場合もあります）

各コネクションのコネクション確立処理に要した時間のうちの最大値

（実際の所要時間は最大処理多重度に依存します）

2.2.2　コネクションの解放

TP1/NET/XMAP3では，コネクションを解放して，論理端末と表示印刷サービスとを切り離します。

コネクションは，次の場合に解放されます。

表示印刷サービス終了時

TP1/NET/XMAP3は，対応するコネクションを解放します。

コネクションの強制解放コマンド（mcftdctcn）入力時

ユーザが運用コマンドで，コネクションの強制解放を指示します。TP1/NET/XMAP3は，指示されたコネクションを解放します。

コネクションの解放API（dc_mcf_tdctcn関数）発行時

UAPからdc_mcf_tdctcn関数を発行することで，コネクションの解放を指示します。TP1/NET/XMAP3は，指示されたコネクションを解放します。

オンライン終了時（正常終了，強制正常終了，計画停止A，および計画停止B）

オンラインを終了するとき，TP1/NET/XMAP3は，すべてのコネクションを解放します。

コネクションを解放するとき，TP1/NET/XMAP3は，そのコネクションに対応するすべての論理端末を閉塞します。それから，表示印刷サービスに要求を出して，そのコネクションに対応するサービスを終了させます。

コネクションの解放の流れを，次の図に示します。

図2‒2　コネクションの解放の流れ

2.2.3　コネクションの状態表示

コネクションが確立状態か解放状態かといったコネクションの状態や，コネクションID，プロトコル種別などを表示できます。コネクションの状態を表示するには，運用コマンド（mcftlscn）を入力するか，またはAPI（dc_mcf_tlscn関数）を発行します。

運用コマンド（mcftlscn）を使用した場合，コネクションの状態は，標準出力に表示されます。一方，API（dc_mcf_tlscn関数）を使用した場合，コネクションの状態はUAP中で指定した領域に格納されます。

運用コマンド（mcftlscn）のオプションの指定によっては，コネクションに対応する論理端末の情報も表示できます。

2.3　論理端末に関する機能

論理端末とは，TP1/NET/XMAP3とOpenTP1システム内のUAPとのインタフェースです。TP1/NET/XMAP3の論理端末には，入力キューおよび出力キューを管理するキュー状態と，表示印刷サービスを管理する端末状態があります。

ここでは，論理端末に関する機能について説明します。

2.3.1　論理端末とアプリケーションの型の関係

TP1/NET/XMAP3で扱う論理端末の端末タイプはany（任意型）です。MCF通信構成定義の論理端末定義（mcftalcle）で，この端末タイプを指定してください。

次に，MCFアプリケーション定義のアプリケーション属性定義（mcfaalcap）で指定するアプリケーションの型を示します。

応答型（ans）

非応答型（noans）

継続問い合わせ応答型（cont）

アプリケーションは，ユーザがMHPで作成して提供する業務サービスです。その通信形態に合わせて，上記のどれかの型をアプリケーション属性定義（mcfaalcap）で指定してください。論理端末の端末タイプ，アプリケーションの型，通信形態，メッセージの種類，およびUAPインタフェースの関係を次の表に示します。

表2‒4　論理端末の端末タイプ，アプリケーションの型，通信形態，メッセージの種類，およびUAPインタフェースの関係

論理端末の端末タイプ

アプリケーションの型

通信形態

メッセージの種類

UAPインタフェース

any

ans

問い合わせ応答

問い合わせメッセージ

dc_mcf_receive

応答メッセージ

dc_mcf_reply

分岐送信

一方送信メッセージ

dc_mcf_send

noans

非問い合わせ応答

一方送信メッセージ

dc_mcf_receive

分岐送信

一方送信メッセージ

dc_mcf_send

cont

継続問い合わせ応答

問い合わせメッセージ

dc_mcf_receive

応答メッセージ

dc_mcf_reply

分岐送信

一方送信メッセージ

dc_mcf_send

それぞれのアプリケーションの型での，dc_mcf_reply，dc_mcf_send呼び出しの可否を次の表に示します。

表2‒5　reply，send呼び出しの可否

アプリケーションの型

UAPインタフェース

送信先の論理端末

入力元

入力元以外

ans

dc_mcf_reply

◎

×

dc_mcf_send

○

○

noans

dc_mcf_reply

○※

×

dc_mcf_send

○

○

cont

dc_mcf_reply

◎

×

dc_mcf_send

○

○

（凡例）

◎：次の場合は，必ず呼び出してください。

dc_mcf_execap関数を呼び出してほかのアプリケーションに応答の権利を譲渡しない場合

応答メッセージを送信したかどうかをチェックする（アプリケーション属性定義（mcfaalcap -n）のreplychkオペランドを省略，またはyesを指定）応答型のアプリケーションの場合

dc_mcf_execap関数を呼び出して，応答の権利をほかのアプリケーションに譲渡した場合は呼び出せません。

○：

呼び出せます。

×：

呼び出せません。

注※

非応答型のアプリケーションからの問い合わせ応答をする（UAP共通定義（mcfmuap）の-cオプションのnoansreplyオペランドにyesを指定）場合に呼び出せます。

一方送信メッセージとして送信します。

2.3.2　論理端末のキュー状態の閉塞と閉塞解除

ここでは，入力キューおよび出力キューを管理するキュー状態の閉塞と閉塞解除について説明します。

TP1/NET/XMAP3は，閉塞されているキューに対応するUAPへの送信メッセージを破棄します。また，閉塞されているキューに対応するUAPから表示印刷サービスへの送信メッセージは，表示印刷サービスへ送信されないで，出力キューに蓄えられます。

キュー状態は，コネクションが確立しているかどうかに関係なく，閉塞したり，閉塞解除したりできます。

オンライン開始時にTP1/NET/XMAP3が管理するすべてのキュー状態は，閉塞解除状態になります。

オンライン中に運用コマンド（mcftdctle）で閉塞した場合は，運用コマンド（mcftactle）で閉塞解除できます。オンライン中に状態が閉塞解除のときは，運用コマンド（mcftdctle）で閉塞できます。

なお，UAPからAPI（dc_mcf_tdctle関数，dc_mcf_tactle関数）を発行すれば，論理端末のキュー状態と端末状態をまとめて閉塞したり閉塞解除したりできます。APIの詳細については，「3.　C言語のライブラリ関数」，または「4.　COBOL-UAP作成用プログラムインタフェース」を参照してください。

2.3.3　論理端末の端末状態の閉塞と閉塞解除

ここでは，表示印刷サービスを管理する端末状態の閉塞と閉塞解除について説明します。

画面属性の論理端末の端末状態が閉塞されている場合は，論理端末画面は表示されません。また，プリンタ属性の論理端末の端末状態が閉塞されている場合は，送信メッセージはプリンタに出力されません。

TP1/NET/XMAP3は，閉塞されている表示印刷サービスへの送信メッセージをOpenTP1の出力キューに蓄えます。

(1)　端末状態の閉塞解除

端末状態は，次のどれかの方法で閉塞解除します。

コネクション確立時の自動閉塞解除

コネクションを確立するとき，TP1/NET/XMAP3が端末状態を閉塞解除します。

ユーザは，自動閉塞解除する論理端末をMCF通信構成定義で指定しておきます。

自動閉塞解除の指定がない論理端末は，コネクション確立時に端末状態が閉塞状態になります。

論理端末の閉塞解除コマンド（mcftactle）による閉塞解除

ユーザが運用コマンドで，論理端末の閉塞解除を指示します。TP1/NET/XMAP3は，閉塞解除を指示された論理端末の端末状態を閉塞解除します。この場合，論理端末に対応するコネクションが確立されている必要があります。

論理端末の閉塞解除API（dc_mcf_tactle関数）による閉塞解除

UAPからdc_mcf_tactle関数を発行して論理端末の閉塞解除を指示します。TP1/NET/XMAP3は，閉塞解除を指示された論理端末の端末状態を閉塞解除します。この場合，論理端末に対応するコネクションが確立されている必要があります。なお，APIで閉塞解除する場合は，論理端末のキュー状態もあわせて閉塞解除されます。

論理端末の閉塞解除処理は，該当する論理端末の属性が画面かプリンタかによって異なります。論理端末の属性は，コネクション定義（mcftalccn -S）のtypeオペランドで指定します。

(a)　画面属性の端末状態の閉塞解除処理

画面属性の端末状態の閉塞解除処理を，次の図に示します。

図2‒3　画面属性の端末状態の閉塞解除処理

次に，図に示した流れの詳細について説明します。番号は，図中の番号と対応しています。

端末状態を，次のどれかによって閉塞解除します。

コネクション確立時の自動閉塞解除

運用コマンド（mcftactle）の入力

API（dc_mcf_tactle関数）の発行

論理端末画面を生成します。

論理端末定義（mcftalcle -p）でinitmapオペランドの指定がある場合，初期画面を表示します。

論理端末定義（mcftalcle -p）でinitmapオペランドの指定がない場合，状態通知イベント（VOPNEVT）で起動されるUAPからsend関数を呼び出して表示できます（reply関数は呼び出せません）。初期画面表示のsend関数を呼び出さないと論理端末画面は表示されないため注意してください。

UAPに状態通知イベント（VOPNEVT）を発行します。

(b)　プリンタ属性の端末状態の閉塞解除処理

プリンタ属性の端末状態の閉塞解除処理を，次の図に示します。

図2‒4　プリンタ属性の端末状態の閉塞解除処理

次に，図に示した流れの詳細について説明します。番号は，図中の番号と対応しています。

端末状態を，次のどれかによって閉塞解除します。

コネクション確立時の自動閉塞解除

運用コマンド（mcftactle）の入力

API（dc_mcf_tactle関数）の発行

UAPに状態通知イベント（VOPNEVT）を発行します。

(2)　端末状態の閉塞

端末状態は，次の場合に閉塞されます。

コネクション解放時

コネクションを解放するとき，TP1/NET/XMAP3は，それに対応するすべての端末状態を閉塞します。

論理端末の閉塞コマンド（mcftdctle）入力時

ユーザが運用コマンドで，端末状態の閉塞を指示します。TP1/NET/XMAP3は，指示された端末状態を閉塞します。

論理端末の閉塞API（dc_mcf_tdctle関数）発行時

UAPからdc_mcf_tdctle関数を発行して端末状態の閉塞を指示します。TP1/NET/XMAP3は，指示された端末状態を閉塞します。なお，APIで閉塞する場合は，論理端末のキュー状態もあわせて閉塞されます。

端末状態の閉塞処理は，該当する論理端末の属性が画面かプリンタかによって異なります。論理端末の属性は，コネクション定義（mcftalccn -S）のtypeオペランドで指定します。

(a)　画面属性の端末状態の閉塞処理

画面属性の端末状態の閉塞処理を，次の図に示します。

図2‒5　画面属性の端末状態の閉塞処理

次に，図に示した流れの詳細について説明します。番号は，図中の番号と対応しています。

端末状態を，次のどれかによって閉塞します。

コネクション解放時

運用コマンド（mcftdctle）の入力

API（dc_mcf_tdctle関数）の発行

UAPに状態通知イベント（VCLSEVT）を発行します。

論理端末画面を破棄します。

(b)　プリンタ属性の端末状態の閉塞処理

プリンタ属性の端末状態の閉塞処理を，次の図に示します。

図2‒6　プリンタ属性の端末状態の閉塞処理

次に，図に示した流れの詳細について説明します。番号は，図中の番号と対応しています。

端末状態を，次のどれかによって閉塞します。

コネクション解放時

運用コマンド（mcftdctle）の入力

API（dc_mcf_tdctle関数）の発行

UAPに状態通知イベント（VCLSEVT）を発行します。

2.3.4　論理端末の状態表示

論理端末の状態は，運用コマンド（mcftlsle）の入力，またはAPI（dc_mcf_tlsle関数）の発行によって表示できます。表示できる内容は，MCF識別子，論理端末名称，論理端末状態（閉塞状態，または閉塞解除状態）などです。

運用コマンド（mcftlsle）を使用した場合，論理端末の状態は，標準出力に表示されます。一方，API（dc_mcf_tlsle関数）を使用した場合，論理端末の状態はUAP中で指定した領域に格納されます。

2.3.5　論理端末画面の閉じるボタンの有効化

論理端末画面の閉じるボタン（ウィンドウ右上隅の閉じるボタン）を押した場合，通常はXMAP3クライアント端末側で無効となります（入力エラーとしてブザーを鳴らします）。XMAP3共通定義（mcftxp -g）のclosebuttonオペランドにonを指定することで，この閉じるボタンを有効にできます。

この機能を使用して閉じるボタンを押すと，ほかのキー入力と同様に，アプリケーション決定後にUAPが起動されます。UAPからコネクションを解放したり，論理端末を閉塞したりして論理端末画面を閉じてください。閉じるボタンによる論理端末画面の破棄を，次の図に示します。

図2‒7　閉じるボタンによる論理端末画面の破棄

この機能を使用する場合の留意事項を次に示します。

XMAP3 Server表示・印刷環境ファイルまたはXMAP3の表示・印刷セットアップダイアログで，閉じるボタンを表示しておく必要があります。

閉じるボタンを押すと，「割込」（オンライン用キー）または「Break Ctrl+Pause」（AIX仕様キー）として通知されます。閉じるボタンを押したときの処理と割込キーを押したときの処理は使い分けられません。

送信要求の発生イベントについては，「2.4.10(1)　送信要求発生時の処理」を参照してください。

次のアプリケーションの実行中は，キーボード操作で論理端末画面のキーボードロックを解除したあとに閉じるボタンを押しても，KFCA17800-EまたはKFCA13664-Eメッセージを出力して，アプリケーションは起動されません。論理端末画面のキーボードロックが長時間解除されないときに論理端末画面を閉じる場合は，XMAP3クライアントを終了させてください。

noans型アプリケーション（論理端末定義（mcftalcle -K）でkeyboardオペランドにaplockを指定し，かつunlockオペランドにautoを指定または省略した場合）

ans型アプリケーション

cont型アプリケーション

継続問い合わせ応答形態でこの機能を使用する場合は，次の点に留意してください。

継続問い合わせ応答中に閉じるボタンを押した場合，XMAP3のドローの隠しフィールドなどの設定値にかかわらず，予約されている次起動アプリケーション名でUAPが起動されます。すべての継続問い合わせ応答型のアプリケーションに閉じるボタンを押したときの処理を追加するか，入力メッセージ編集UOCで閉じるボタンに対応するアプリケーションを指定してください。

継続問い合わせ応答中の場合，継続問い合わせ応答を終了するまで論理端末を閉塞できません。継続問い合わせ応答中に閉じるボタンを押して起動したUAPでは，contend関数で継続問い合わせ応答を終了してから論理端末を閉塞するか，コネクションを解放するようにしてください。

2.4　メッセージ送受信に関する機能

ここでは，メッセージ送受信に関する機能について説明します。

2.4.1　非問い合わせ応答形態のメッセージ

TP1/NET/XMAP3では，非応答型（noans）アプリケーションに発生したメッセージを一方送信メッセージとして入力キューに登録して，UAPを起動します。

起動されたUAPでは，receive関数を呼び出して一方送信メッセージを受け取ります。

非問い合わせ応答形態を，次の図に示します。

図2‒8　非問い合わせ応答形態

非応答型のアプリケーションからの問い合わせ応答をする（UAP共通定義（mcfmuap）の-cオプションのnoansreplyオペランドにyesを指定）場合，非応答型のアプリケーションからreply関数を呼び出して一方送信メッセージを送信できます。この一方送信メッセージは，出力通番を付けない一般の一方送信メッセージとして扱います。

2.4.2　分岐送信形態のメッセージ

send関数によって指定されたメッセージを一方送信メッセージとして出力キューに登録します。TP1/NET/XMAP3は，この一方送信メッセージを取り出して表示印刷サービスに送信します。

入力元論理端末へメッセージを送信する場合，応答メッセージを優先します。一方送信メッセージは，応答メッセージをすべて送信したあとに送信します。

画面に対するメッセージの場合は，一方送信メッセージが送信済みであることを出力キューに連絡します。これを送信完了処理と呼びます。プリンタに対するメッセージの場合は，TP1/NET/XMAP3は表示印刷サービスからの送信後印刷完了イベントを待ちます。そのイベントを受け取ったあと，プリンタの排他を解除してから一方送信メッセージが送信済みであることを出力キューに連絡します。UAPは，表示印刷サービスの属性を意識しないで送信要求できます。

次の場合，その論理端末に対する一方送信メッセージの送信が抑止されます。

論理端末からcont型，ans型のアプリケーションに対するメッセージを受信した場合

論理端末定義（mcftalcle -K）のkeyboardオペランドでaplockを指定し，かつunlockオペランドでautoを指定した論理端末からnoans型のアプリケーションに対するメッセージを受信した場合

画面に対する分岐送信形態を次の図に示します。

図2‒9　画面に対する分岐送信形態

プリンタに対する分岐送信形態を次の図に示します。

図2‒10　プリンタに対する分岐送信形態

プリンタに対する分岐送信形態の場合，send関数で送信完了通知イベント（SCMPEVT）および送信障害通知イベント（SERREVT）を通知することを指定すると，送信完了および送信障害を通知します。送信が正常に終了したとき，SCMPEVTを通知します。また，一方送信メッセージ取り出しから印刷完了イベント受信までの間で障害となった場合，SERREVTを通知します。

送信完了および送信障害を通知する場合の注意事項を次に示します。

本来は，すべての送信メッセージに対するイベント通知の指定が必要ですが，イベントスケジュール処理集中の原因となりますので，次のように運用してください。

グループ送信で，論理端末定義（mcftalcle）の-yオプションの指定値が1グループの最大送信メッセージ数以上で，かつ-xオプションでexcnt=0を指定した場合，グループ最終メッセージでイベント通知を指定すれば，SCMPEVTで全メッセージの送信完了を知ることができます。

ただし，SERREVTは通知されない場合があります。

グループ先頭メッセージにもイベント通知を指定すれば，SERREVTで送信障害の発生を知ることができます。この場合，SCMPEVTは先頭と最終のメッセージに対応して二つ通知されます。また，SERREVTも二つ通知される場合があります。

再送要求のとき，イベント通知の有無は変更できません。

オンライン終了中は，イベントは通知されません。

イベント通知順は，必ずしもsend関数の発行順になるとは限りません。

メッセージセグメントは設定されません。イベントを処理するMHPでは，イベント情報内の出力通番を参照して処理を行ってください。

出力通番は，送信メッセージ通番編集UOCであらかじめ取得しておく必要があります。なお，出力通番はsend関数の発行順に採番されるため，グループ送信時でもグループ内で連番になるとは限りません。

送信障害通知されたメッセージも，障害回復によって正常に印刷されることがあります。また，プリンタによっては，正常に印刷されても送信障害通知となることがあります。

代行送信した場合，メッセージ受信関数の入力元論理端末名称には，代行先論理端末名称が設定されます。また，イベント情報の出力先論理端末名称およびコネクション名は，代行先論理端末名称になります。

画面属性の論理端末に対するイベント通知の指定は無効になります。

2.4.3　問い合わせ応答形態のメッセージ

TP1/NET/XMAP3では，応答型（ans）アプリケーションに発生したメッセージを問い合わせメッセージとして入力キューに登録して，UAPの起動をします。起動されたUAPでは，receive関数を呼び出して問い合わせメッセージを受け取ります。また，UAPからreply関数によって指定されたメッセージを応答メッセージとして出力キューに登録します。TP1/NET/XMAP3は，この応答メッセージを取り出して表示印刷サービスに送信します。

その後，応答メッセージが送信済みであることを出力キューに連絡します。

問い合わせ応答形態を，次の図に示します。

図2‒11　問い合わせ応答形態

以降，問い合わせ応答形態の詳細を説明します。

(1)　問い合わせ応答の開始と終了

問い合わせ応答は，表示印刷サービスから問い合わせメッセージを受信し，応答型のアプリケーションを起動することで開始します。そして，UAPから応答メッセージを受け付け，表示印刷サービスへの応答メッセージの送信が完了すると問い合わせ応答を終了します。また，障害などによるコネクションの解放および論理端末の閉塞となった場合にも問い合わせ応答を終了します。

問い合わせ応答の開始から問い合わせ応答の終了までを問い合わせ応答中と呼びます。

(2)　問い合わせ応答中のアプリケーション起動

問い合わせ応答中にアプリケーション起動要求をする場合，非応答型または応答型のアプリケーション名を指定できます。ただし，応答型のアプリケーションを起動できるのは一つのサービスで1回だけです。

応答型のアプリケーションを起動した場合，そのサービスでは応答メッセージを送信できません。起動先の応答型アプリケーションで応答メッセージを送信してください。

使用方法の詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

(3)　問い合わせ応答中の論理端末へのメッセージ受信

問い合わせ応答中の論理端末が表示印刷サービスからメッセージを受信した場合，TP1/NET/XMAP3はメッセージログ（KFCA13664-E）を出力し，メッセージを破棄します。

(4)　問い合わせ応答中の論理端末へのメッセージ送信

問い合わせ応答中の論理端末に対して一方送信メッセージを送信した場合，一方送信メッセージは出力キューに登録され，APIは正常にリターンします。登録された一方送信メッセージは，TP1/NET/XMAP3の取り出しを待ちます。応答メッセージの送信完了後に出力キューから読み出し，表示印刷サービスに送信します。

2.4.4　継続問い合わせ応答形態のメッセージ

TP1/NET/XMAP3では，継続問い合わせ応答型（cont）アプリケーションに発生したメッセージによって継続問い合わせ応答の開始を認識します。

起動されたUAPでは，receive関数を呼び出して問い合わせメッセージを受け取ります。また，UAPからreply関数によって指定されたメッセージを応答メッセージとして出力キューに登録します。TP1/NET/XMAP3は，この応答メッセージを取り出して表示印刷サービスに送信します。

継続問い合わせ応答は，UAPがcontend関数（データ操作言語：DISABLE文）を呼び出すか，または運用コマンド（mcftendct）が入力されることによって終了します。

継続問い合わせ応答形態を，次の図に示します。

図2‒12　継続問い合わせ応答形態

以降，継続問い合わせ応答形態の詳細を説明します。

(1)　継続問い合わせ応答の開始

継続問い合わせ応答は，継続問い合わせ応答中でないときに表示印刷サービスから問い合わせメッセージを受信し，継続問い合わせ応答型のアプリケーションを起動することで開始します。

問い合わせ応答と異なり，継続問い合わせ応答では表示印刷サービスへの応答メッセージの送信が完了しても継続問い合わせ応答を終了しません。

継続問い合わせ応答の開始から継続問い合わせ応答の終了までを継続問い合わせ応答中と呼びます。また，継続問い合わせ応答中にUAPを起動してから送信メッセージを読み出すまでを継続問い合わせ応答のUAP実行中と呼びます。

(2)　次起動アプリケーションの予約

応答メッセージ送信要求時，次に起動する継続問い合わせ応答型のアプリケーション（次起動アプリケーション）を予約できます。

次起動アプリケーションの指定を省略した場合，実行中のアプリケーション名が指定されたものとします。ただし，エラーイベントで次に起動するアプリケーション名の指定を省略した場合は，継続問い合わせ応答を終了します。詳細については，「2.4.4(6)　エラーイベント」を参照してください。

次起動アプリケーションの予約を次の図に示します。

使用方法の詳細については，「3.　C言語のライブラリ関数」または「4.　COBOL-UAP作成用プログラムインタフェース」を参照してください。

図2‒13　次起動アプリケーションの予約

(3)　継続問い合わせ応答中のアプリケーション起動

継続問い合わせ応答中にアプリケーション起動要求をする場合，非応答型または継続問い合わせ応答型のアプリケーション名を指定できます。ただし，継続問い合わせ応答型のアプリケーションを起動できるのは一つのサービスで1回だけです。

継続問い合わせ応答型のアプリケーションを起動した場合，そのサービスでは応答メッセージを送信できません。また，継続問い合わせ応答の終了要求もできません。起動先の継続問い合わせ応答型アプリケーションで応答メッセージを送信したり，継続問い合わせ応答の終了要求をしてください。

使用方法の詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

(4)　継続問い合わせ応答用一時記憶データ

継続問い合わせ応答用一時記憶データ（以降，一時記憶データと呼びます）を使用して，次起動アプリケーションへデータの引き継ぎができます。データの引き継ぎを，次の図に示します。

図2‒14　一時記憶データの引き継ぎ

一時記憶データを格納する継続問い合わせ応答用一時記憶領域は論理端末ごとに確保するため，複数の論理端末で同時に一つのアプリケーションを使用して継続問い合わせ応答ができます。論理端末と一時記憶データの関係を次の図に示します。

図2‒15　論理端末と一時記憶データの関係

(a)　継続問い合わせ応答用一時記憶領域の確保

一時記憶データを格納する継続問い合わせ応答用一時記憶領域は，更新用領域と回復用領域の2面を共有メモリに確保します。

アプリケーション属性定義（mcfaalcap）でアプリケーションごとに継続問い合わせ応答用一時記憶領域のサイズを定義できます。

ただし，実際に確保する継続問い合わせ応答用一時記憶領域のサイズは，継続問い合わせ応答を開始したあと最初に一時記憶データの更新要求をしたアプリケーションのアプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値となります。確保済みの継続問い合わせ応答用一時記憶領域のサイズが，一時記憶データの更新要求を行う場合のデータ長よりも小さいとき，実行中のアプリケーションのアプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値のサイズで，継続問い合わせ応答用一時記憶領域を再確保します。したがって，継続問い合わせ応答で使用する各アプリケーションの更新する一時記憶データの領域長が異なる場合，最初に起動するアプリケーションのアプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドにデータ長の最大値を指定すると，途中で再確保をしないため，性能が向上します。

(b)　一時記憶データの受け渡し

一時記憶データの受け渡しには「受け取り要求」と「更新要求」があります。

一時記憶データの受け取り要求

指定したデータ長の一時記憶データを受け取れます。初期値は，アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで指定したサイズ分の初期値(00)₁₆が渡されます。指定した受け取り領域長が一時記憶データより小さい場合，指定した領域長の長さだけ受け取り，残りは切り捨てられます。

一時記憶データの更新要求

指定したデータ長のデータを用いて一時記憶データを更新します。最大でアプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで指定した領域長の更新ができます。

使用方法の詳細については，「3.　C言語のライブラリ関数」または「4.　COBOL-UAP作成用プログラムインタフェース」を参照してください。

(c)　継続問い合わせ応答用一時記憶領域の解放

継続問い合わせ応答を終了すると継続問い合わせ応答用一時記憶領域を解放します。

(d)　障害発生時の一時記憶データ

障害発生時の一時記憶データの扱いについて次に示します。

OpenTP1システム障害による全面回復の場合

一時記憶データは失われます。

UAP障害による部分回復の場合

異常終了したUAPでの一時記憶データの更新要求が取り消され，異常終了したUAPが一時記憶データの受け取り要求を行ったときの状態に戻ります。

(5)　継続問い合わせ応答の終了

継続問い合わせ応答は次のどれかで終了します。

(a)　MHPからの終了要求（contend関数）

MHPからAPI（contend関数）を発行して継続問い合わせ応答の終了を要求します。

ただし，次に示す条件に該当する場合はエラーリターンします。

次起動アプリケーションを予約して，応答メッセージの送信を要求している。

継続問い合わせ応答型のアプリケーションの起動を要求している。

使用方法の詳細については，「3.　C言語のライブラリ関数」または「4.　COBOL-UAP作成用プログラムインタフェース」を参照してください。

(b)　運用コマンドによる終了要求（mcftendct）

運用コマンド（mcftendct）で論理端末名称を指定して，その論理端末に対する継続問い合わせ応答を強制終了できます。また，継続問い合わせ応答を行っていないUAPからも運用コマンドを発行できます。詳細については，「8.　運用コマンド」を参照してください。

継続問い合わせ応答のUAP実行中に継続問い合わせ応答を即時強制終了する場合，-fオプションの指定が必要です。

なお，-fオプションを指定したmcftendctコマンドの実行後にMHPが次に示す処理をしたとき，MHPが異常終了します。このとき，エラーイベントは起動しません。

TP1/Message Control以外のリソースマネジャにもアクセスするMHPのサービス終了時

継続問い合わせ用一時記憶領域アクセス時（dc_mcf_tempget関数，dc_mcf_tempput関数発行時）

ロールバック要求時（dc_mcf_rollback関数発行時（action：DCMCFRTRY，またはDCMCFNRTNの場合））

(c)　コネクション解放および論理端末の閉塞

障害などによるコネクションの解放および論理端末の閉塞となった場合に，継続問い合わせ応答を終了します。

相手からのコネクション解放，または運用コマンド（mcftdctcn）や障害によってコネクションを解放する場合，継続問い合わせ応答を処理しているMHPが実行中であればMHPのサービス完了を待ち合わせます。MHPのサービスが完了したあとに継続問い合わせ応答を終了し，コネクションは解放状態となります。

なお，継続問い合わせ応答中の論理端末は，運用コマンド（mcftdctle）による閉塞はできません。

(6)　エラーイベント

MHPの処理中に障害が発生した場合，MCFイベント処理用MHPにエラーイベントを通知します。継続問い合わせ応答中に障害が発生した場合，エラーイベントを継続問い合わせ応答型として起動します。

(a)　エラーイベントを定義した場合

MCFイベント処理用MHPで次のどちらかを行うことで継続問い合わせを続行できます。

次起動アプリケーションを指定して，応答メッセージの送信要求をする。

継続問い合わせ応答型のアプリケーションの起動要求をする。

MCFイベント処理用MHPで継続問い合わせ応答型のアプリケーションの起動要求を行わない，かつ，次起動アプリケーションを指定しないで応答メッセージの送信要求をした場合，継続問い合わせ応答処理は終了します。

ただし，MCFイベント処理用MHPで継続問い合わせ応答型のアプリケーションを起動し，起動先のアプリケーションで次に起動するアプリケーション名を指定しないで応答メッセージの送信要求をした場合，継続問い合わせ応答を終了することなく，MCFイベント処理用MHPから起動した継続問い合わせ応答型のアプリケーションを次のメッセージ受信時に再び起動します。

(b)　エラーイベントを定義しない場合

継続問い合わせ応答処理は終了します。

(7)　継続問い合わせ応答中の論理端末へのメッセージ受信

継続問い合わせ応答中の論理端末が表示印刷サービスからメッセージを受信した場合，応答型と同様にTP1/NET/XMAP3はメッセージログ（KFCA13664-E）を出力し，メッセージを破棄します。

(8)　継続問い合わせ応答中の論理端末へのメッセージ送信

継続問い合わせ応答中の論理端末に対して一方送信メッセージを送信した場合，一方送信メッセージは出力キューに登録され，APIは正常にリターンします。登録された一方送信メッセージは，TP1/NET/XMAP3の取り出しを待ちます。継続問い合わせ応答の終了後に出力キューから読み出し，表示印刷サービスに送信します。

2.4.5　メッセージの分割と組み立て

UAPがTP1/NET/XMAP3との間で扱うメッセージの形式を，論理セグメント群形式と呼びます。この形式では，一つのメッセージが，一つまたは複数のセグメントで構成されます。ただし，複数のセグメントは，MCFイベントまたはアプリケーション起動で渡されたメッセージを受信する場合だけです。表示印刷サービスから受信するメッセージおよび表示印刷サービスに送信するメッセージは，一つのセグメントで構成されます。

1回のメッセージ送受信では，一つのセグメントの受信や送信をします。したがって，1論理メッセージが複数のセグメントに分割されている場合，UAPでは1論理メッセージの送受信に複数回メッセージ関数を呼び出さなければなりません。

メッセージ送信では，１論理メッセージの長さを32000バイト以内にする必要があります。

メッセージ送受信関数の使用方法を，次の図に示します。

図2‒16　メッセージ送受信関数の使用方法

2.4.6　マッピングによるメッセージの編集

表示印刷サービスからTP1/NET/XMAP3に送られるメッセージは，EBCDIK/KEISのコード体系を持つ，XPデータストリーム形式のメッセージです。XPデータストリーム形式のメッセージを物理メッセージと呼びます。一方，OpenTP1システム内のUAPではプロセスの環境に応じて，JIS8/シフトJIS，またはEUCのコード体系を持つ，論理セグメント群形式のメッセージを扱います。論理セグメント群形式とは，マップ定義に従って生成された論理マップの形式です。

TP1/NET/XMAP3では，XMAP3マッピング機能を使って，物理メッセージと論理セグメント群形式のメッセージとの相互変換，および編集をします。メッセージの形式を変換し，メッセージを編集することをマッピングと呼びます。TP1/NET/XMAP3は，表示印刷サービスからの物理メッセージを論理セグメント群形式のメッセージにマッピングして，OpenTP1システム内のUAPに渡します。同様に，OpenTP1システム内のUAPからの論理セグメント群形式のメッセージを，物理メッセージにマッピングして表示印刷サービスに渡します。

マッピングによるメッセージ編集の流れを，次の図に示します。

図2‒17　マッピングによるメッセージ編集の流れ

注※1

入力物理メッセージ（EBCDIK/KEIS）

注※2

入力論理セグメント群（JIS8/シフトJISまたはEUC）※5

注※3

出力論理セグメント群（JIS8/シフトJISまたはEUC）※5

注※4

出力物理メッセージ（EBCDIK/KEIS）

注※5

マップ定義で，入力マッピング後の論理セグメント群のメッセージがなくなるようなマップを定義しないでください。定義した場合は，TP1/NET/XMAP3の動作を保証しません。したがって，入力メッセージ編集UOCでは入力マッピング後の論理セグメント群のメッセージがなくなることを意識する必要はありません。

また，UAPからのreply，またはsend関数によるメッセージなしの送信はできません。

出力メッセージ編集UOCでは出力マッピング前の論理セグメント群のメッセージがなしの場合を意識する必要はありません。

2.4.7　アプリケーションの決定

TP1/NET/XMAP3では，メッセージを受信するとアプリケーションを決定してUAPを起動します。TP1/NET/XMAP3でのアプリケーション決定の流れを次の図に示します。

図2‒18　アプリケーション決定の流れ

初回を除く継続問い合わせ応答中のメッセージ受信時のアプリケーション名は，前回起動されたUAPが発行したreply関数で指定した次起動アプリケーション名になります。この時，UOCで次起動アプリケーション名を更新した場合は，更新後のアプリケーション名が有効となります。

(1)　ユーザ任意のアプリケーション名

受信メッセージの先頭にアプリケーション名が設定されるようにしたり，入力メッセージ編集UOCでアプリケーション名を決定したりすることで，ユーザ任意のアプリケーション名でUAPを起動できます。

アプリケーション名は，受信メッセージの先頭から最初に空白が現れるまでの8けた以内の識別子です。先頭から9バイト目までに空白がない場合，または先頭に空白がある場合はアプリケーション名不正とし，ERREVT1を起動します。文字コードは該当する動作マシンの文字コードで識別します。

OpenTP1が受信するメッセージの形式は，XMAP3のドローのデータ名編集ダイアログで決定します。データ名編集ダイアログの最上位のデータが，OpenTP1が受信する入力メッセージの先端になります。

また，XMAP3のドローの画面属性ダイアログで，隠しフィールドを設定すると，隠しフィールドで設定した値が自動的にデータ名編集ダイアログの最上位となります。

詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。

(2)　システムで使用するアプリケーション名

システムで使用するアプリケーション名を次の表に示します。

このアプリケーション名はユーザのアプリケーション名としては使用できません。

表2‒6　システムで使用するアプリケーション名

アプリケーション名

目的

"C"，"c"

"C"または"c"のアプリケーション名（入力メッセージの先端が"C△"または"c△"で始まるアプリケーション名）は，オンラインコマンドの入力として扱います。

例えば，XMAP3のドローで，"C△"または"c△"を入力できるフィールドを用意し，それをデータ名編集ダイアログで最上位に配置すれば，オンラインコマンドを実行できるマップの生成ができます。

2.4.8　メッセージグループ送信機能

UAPからの複数の一方送信メッセージを，トランザクションブランチ単位で一まとまりのメッセージとして扱えます。これをメッセージグループ送信機能と呼びます。ユーザはメッセージグループ送信するかどうかを，論理端末ごとに論理端末定義（mcftalcle）の-Gオプションで指定します。

メッセージグループ送信機能を使用しない場合，一方送信メッセージはsend関数の発行順に出力キューに登録され，表示印刷サービスに送信されます。そのため，複数のUAPから同一の論理端末に対して同時に分岐送信を行うと，帳票が混ざって印刷されます。また，複数のUAPから一方送信メッセージを送信する場合，先に一方送信メッセージを送信したUAPがコミットまたは終了するまでの間は，別のUAPの一方送信メッセージは取り出されません。

メッセージグループ送信機能を使用しない場合の印刷結果を次の図に示します。

図2‒19　メッセージグループ送信機能を使用しない場合の印刷結果

この図に示すように，複数のUAPからの一方送信メッセージが混ざって印刷されます。また，UAP2およびUAP3の一方送信メッセージは，UAP1が終了するまで出力キューから取り出されません。

一方，メッセージグループ送信機能を使用すると，UAPのコミットまたは終了順に出力キューに登録されます。次の図に示すように，帳票はトランザクション単位に一まとまりで印刷されます。

図2‒20　メッセージグループ送信機能を使用する場合の印刷結果

注意事項

同一プリンタに複数の論理端末が対応づけられた構成で複数枚の帳票を出力する場合，グループ送信機能を使用しても複数枚の帳票の間に別のトランザクションの帳票が混ざることがあります。また，複数枚の帳票を一つのPDFファイルに出力する場合，PDFファイルが分割されたり，上書きによるページ抜けが発生したりすることがあります。

このような問題を解決するために，メッセージグループ送信機能を使用した上で，XMAP3で次の対応を実施してください。

適用OSがUNIXの場合

XMAP3 Serverの「LPスプールシステムでの帳票一括出力機能」を有効にしてください。「LPスプールシステムでの帳票一括出力機能」の詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

適用OSがWindowsの場合

XMAP3の表示・印刷セットアップダイアログで，スプール書き出し単位に「アプリケーション毎」を指定してください。表示・印刷セットアップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

(1)　メッセージグループ送信の流れ

メッセージグループ送信の流れについて説明します。UAPは，メッセージグループ送信をすると，定義した論理端末に対する一方送信メッセージを出力キューに登録します。TP1/NET/XMAP3は，UAPのトランザクションブランチがコミットまたは終了すると，最初のメッセージを出力キューから取り出し，プリンタを排他します。そして，メッセージの出力キューからの取り出しとプリンタへの送信を繰り返します。送信後，TP1/NET/XMAP3はプリンタからの印刷完了イベントを待ちます。印刷完了イベントを受け取ると，プリンタの排他を解除します。

メッセージグループ送信の流れを次の図に示します。

図2‒21　メッセージグループ送信の流れ

(2)　プリンタの連続使用

論理端末定義（mcftalcle -x）のexcntオペランドで，プリンタの排他を解除するタイミングを，送信メッセージの数で指定できます。指定されたメッセージ数に達するまでプリンタの排他を続けるため，複数のメッセージグループを連続して印刷できます。excntオペランドに0を設定すると，個々のメッセージグループごとにプリンタの排他を解除します。

excntオペランドに0以外の値を設定している場合，両面印刷の指定をすると，グループの先頭ページが直前のグループの最終ページの裏面に印刷されることがあります。グループの先頭メッセージで改ページするなどの対処をしてください。

プリンタの連続使用を次の図に示します。

図2‒22　プリンタの連続使用

この図では，OpenTP1システム内のUAPが送信する7番目のメッセージ（send7）を含むメッセージグループ2の送信が完了したとき，プリンタの排他が解除されます。

2.4.9　メッセージの代行送信

メッセージの代行送信とは，メッセージ送信先論理端末の端末状態が閉塞，またはメッセージ送信先のプリンタが障害の場合に，ほかのプリンタに送信することです。

代行送信は，同じMCF通信構成定義で定義したプリンタ属性の論理端末同士の場合にできます。TP1/NET/XMAP3では，メッセージ送信の代行を依頼する論理端末を代行元論理端末，メッセージ送信を代行する論理端末を代行先論理端末と呼びます。メッセージグループ送信機能，またはページ制御機能を使用している場合，TP1/NET/XMAP3では代行送信によるプリンタ出力の結果を保証しません。

(1)　代行送信の開始

オンラインコマンド（ACT ALTSEND），または運用コマンド（mcftstalt）を入力して開始します。

代行先論理端末の端末状態が閉塞していると代行送信できません。また，代行先のプリンタが障害中の場合は，代行送信できません。

代行元論理端末は端末状態が閉塞，またはプリンタ障害中でなければなりません。

代行元論理端末がプリンタ排他再試行の間は，代行送信できません。プリンタ排他再試行の終了を待つか，運用コマンドで端末状態を閉塞してから再度コマンドを入力してください。

(2)　代行送信の終了

代行送信の終了には，次の五つの場合があります。

運用コマンド（mcftedalt）を入力して，代行送信を終了します。

オンラインコマンド（DEACT ALTSEND）を入力して，代行送信を終了します。

代行元論理端末の端末状態が閉塞解除になると，TP1/NET/XMAP3が代行送信を終了します。

代行先論理端末のプリンタが障害になると，TP1/NET/XMAP3が代行送信を終了します。

代行先論理端末の端末状態が閉塞になると，TP1/NET/XMAP3が代行送信を終了します。

2.4.10　キー入力サービス

TP1/NET/XMAP3では，XMAP3 Serverの機能によって論理端末画面からのキー入力サービスを提供しています。

(1)　送信要求発生時の処理

TP1/NET/XMAP3での送信要求発生（論理端末画面からの画面確定キー入力）時の処理を，次の表に示します。

表2‒7　送信要求発生時の処理

項番

キー

TP1/NET/XMAP3の処理

XMAP3 Serverのキーシンボル名称

（マクロ値）

オンライン用キー

AX仕様キー

1

実行

Enter

（テンキー部）

アプリケーション決定後UAP起動

TX_MKLNFED

2

PA1

PageUp

TX_MKPA1

3

PA2

PageDown

TX_MKPA2

4

PA3

Ctrl+PageDown

TX_MKPA3

5

スクリーン

Ctrl+Delete

TX_MKSCREN

6

中断

Ctrl+S

TX_MKBREAK

7

割込

Break

Ctrl+Pause

TX_MKINTER

8

印刷

Ctrl+P

印刷キー処理（論理ハードコピーの出力）

TX_MKPRINT

9

PF1

F1

アプリケーション決定後UAP起動

TX_MKF1

10

PF2

F2

TX_MKF2

11

PF3

F3

TX_MKF3

12

PF4

F4

TX_MKF4

13

PF5

F5

TX_MKF5

14

PF6

F6

TX_MKF6

15

PF7

F7

TX_MKF7

16

PF8

F8

TX_MKF8

17

PF9

F9

TX_MKF9

18

PF10

F10

TX_MKF10

19

PF11

F11

TX_MKF11

20

PF12

F12

TX_MKF12

21

コントロール+PF1

Shift+F1

TX_MKF13

22

コントロール+PF2

Shift+F2

TX_MKF14

23

コントロール+PF3

Shift+F3

TX_MKF15

24

コントロール+PF4

Shift+F4

TX_MKF16

25

コントロール+PF5

Shift+F5

TX_MKF17

26

コントロール+PF6

Shift+F6

TX_MKF18

27

コントロール+PF7

Shift+F7

TX_MKF19

28

コントロール+PF8

Shift+F8

TX_MKF20

29

コントロール+PF9

Shift+F9

TX_MKF21

30

コントロール+PF10

Shift+F10

TX_MKF22

31

コントロール+PF11

Shift+F11

TX_MKF23

32

コントロール+PF12

Shift+F12

TX_MKF24

その他の画面確定キーの入力については表示印刷サービスが処理しますが，入力エラーとなってブザーが鳴ります。

次メッセージ要求キーとして使用しているキーは，UAP起動や論理ハードコピーの出力をするキーとしては使用できません。

注意事項

XMAP3のドローの画面属性ダイアログで隠しフィールドを設定している場合，XMAP3 Server表示・印刷環境ファイルまたはXMAP3の表示・印刷セットアップダイアログで，強制確定キーの動作の「入力済みデータを送らない」をオフにしてください。

強制確定キーの動作の「入力済みデータを送らない」をオンにした場合，隠しフィールドに設定した値がTP1/NET/XMAP3に通知されません。

(2)　印刷キー処理

TP1/NET/XMAP3では，表示印刷サービスから印刷キーの入力を受け付けると，表示印刷サービスに対して論理ハードコピーの要求をします。

論理ハードコピーの出力先プリンタは，XMAP3 Server表示・印刷環境ファイルの表示サービス名（DCPSNM）の指定に従います。ここで指定する表示サービス名と，コネクション定義（mcftalccn -S）のsvnameオペランドで指定する接続対象の表示印刷サービス名とは，重ならないように注意してください。二重に指定した場合，論理ハードコピーが正しく行われないことがあります。

XMAP3 Server表示・印刷環境ファイルに表示サービス名の指定がない場合は，印刷キーを入力しても論理ハードコピーは取得できません。

また，エラーなどによって論理ハードコピーの取得ができない場合は，オペレータインジケータに表示します。

(3)　キーボード状態の変更

論理端末からのメッセージをOpenTP1システムが受信すると，TP1/NET/XMAP3は論理端末定義（mcftalcle）とUAPの型に応じて，論理端末画面のキーボードロックを解除するかどうかを決定します。論理端末画面のキーボード状態を次の表に示します。

表2‒8　論理端末画面のキーボード状態

論理端末定義（mcftalcle）

アプリケーションの型※1

メッセージ入力時のキーボード状態

キーボードロックを解除するタイミング

keyboard

オペランド

unlock

オペランド

aplock

send

cont

ロック状態

応答メッセージ送信時※2※3※4

ans

ロック状態

応答メッセージ送信時※2※3※4

noans（MHP）

ロック状態

一方送信メッセージ送信時

noans（SPP）

ロック解除状態

−

auto

cont

ロック状態

応答メッセージ送信時※2※3※4

ans

ロック状態

応答メッセージ送信時※2※3※4

noans（MHP）

ロック状態

MHP（正常，異常）終了時※5

noans（SPP）

ロック解除状態

−

aptype

定義不可

cont

ロック状態

応答メッセージ送信時※3※4

ans

ロック状態

応答メッセージ送信時※3※4

noans（MHP）

ロック解除状態

−

noans（SPP）

ロック解除状態

−

（凡例）

−：該当しません。

注※1

論理端末からのメッセージを処理するために起動されるアプリケーションの型です。

注※2

keyboardオペランドの指定は無効になります。この場合には，aptypeが指定されたものとして扱います。

注※3

アプリケーション起動によって応答権をほかのUAPに委譲した場合，キーボードロック解除のタイミングは，応答権を委譲されたアプリケーションが応答メッセージを送信したときになります。

注※4

起動されたアプリケーション（MHP）の障害などによってエラーイベントが起動された場合，このエラーイベントに応答権が委譲されます。キーボードロック解除のタイミングはエラーイベントが応答メッセージを送信したときになります。ただし，エラーイベント未定義時はアプリケーション（MHP）終了時にキーボードロックが解除されます。

注※5

起動されたアプリケーション（MHP）の障害などによってエラーイベントが起動された場合，キーボードロックはエラーイベントが終了するまで解除されません。

なお，キーボードロック解除のタイミングがメッセージ送信時の場合，ロックを解除するかどうかは，メッセージ送信時に指定したマップのマップ定義に従います。ロックを解除する場合のマップ定義には，PHSEG文のCNTRLオペランドにFRKBを指定してください。PHSEG文のCNTRLオペランドを省略した場合，またはPHSEG文のCNTRLオペランドにNOFRを指定した場合は，ロックが解除されません。

キーボードロックを［取消］キーなどで解除して，新たなメッセージを入力した場合には，入力された新たなメッセージは破棄されます。ただし，次の場合には入力された新たなメッセージは破棄されず，正常に受け付けられます。

論理端末定義（mcftalcle -K）のkeyboardオペランドでaplockを指定し，かつunlockオペランドでsendを指定した論理端末からの，非応答型アプリケーションに対するメッセージ入力によって，キーボードがロック状態になっていた場合。

2.4.11　オンラインコマンド

TP1/NET/XMAP3では，論理端末画面からオンラインコマンドを入力できます。アプリケーション名が"C"または"c"の受信メッセージをオンラインコマンドの入力と判断して処理します。

オンラインコマンドの詳細については，「9.　オンラインコマンド」を参照してください。

2.4.12　オペレータインジケータのメッセージ表示

TP1/NET/XMAP3は，次の場合，画面にメッセージを表示します。

オンラインコマンドの処理を終了した場合（途中で処理を打ち切った場合を含む）

論理ハードコピーの取得に失敗した場合

システム終了中や，論理端末のキュー状態が閉塞中のため，入力メッセージの受け付けを拒否した場合

運用コマンドによって，継続問い合わせ応答を強制終了した場合

メッセージは，CUI画面，またはGUI画面のオペレータインジケータ※に表示されます。なお，オペレータインジケータ表示メッセージは，次の操作で消去されます。

画面からメッセージを入力した場合

次メッセージ要求キーを押した場合

印刷キーを押した場合

GUI画面で複数ウィンドウを開いている場合は，すべてのウィンドウにメッセージを表示します。

オペレータインジケータ表示メッセージの詳細については，「付録I　オペレータインジケータ表示メッセージ一覧」を参照してください。

注※

オペレータインジケータの45けたから80けたまでの36けたを使用します。なお，画面のサイズによっては，メッセージが最後まで表示されないことがあります。

2.4.13　クライアントPC/WS応答時間タイムアウト発生時の障害メッセージ出力

XMAP3 Serverでは，クライアントPC/WSの応答時間の監視ができます。この機能によって，クライアントPCの異常終了，およびTCP/IPドライバのデータ破壊による，無限待ちの状態を回避できます。

TP1/NET/XMAP3では，この監視時間のタイムアウトの発生を，TP1/NET/XMAP3の障害メッセージの出力によって通知できます。

クライアント応答時間監視機能を使用する場合，TP1/NET/XMAP3通信サービスのシステムサービス情報定義で，環境変数XRESPONSETIMEまたは環境変数XPCLOSEWAITTIMEを指定する必要があります。システムサービス情報定義の詳細については，「7.　システム定義」の「システムサービス情報定義」を参照してください。

クライアントPC/WS応答時間タイムアウト発生時に障害メッセージを出力させるには，XMAP3共通定義（mcftxp -m）のtimeoutlogオペランドにyesを指定します。mcftxp定義コマンドの詳細については，「7.　システム定義」の「mcftxp（XMAP3共通定義）」を参照してください。

3　C言語のライブラリ関数

この章では，TP1/NET/XMAP3で使用できる，C言語のライブラリ関数について説明します。

C言語のライブラリ関数の一覧

TP1/NET/XMAP3で使用するC言語のライブラリ関数の一覧を，次の表に示します。

表3‒1　C言語のライブラリ関数の一覧

関数名

機能

dc_mcf_contend

継続問い合わせ応答の終了

dc_mcf_receive

メッセージの受信

dc_mcf_reply

応答メッセージの送信

dc_mcf_resend

メッセージの再送

dc_mcf_send

メッセージの送信

dc_mcf_tactcn

コネクションの確立

dc_mcf_tactle

論理端末の閉塞解除

dc_mcf_tdctcn

コネクションの解放

dc_mcf_tdctle

論理端末の閉塞

dc_mcf_tempget

一時記憶データの受け取り

dc_mcf_tempput

一時記憶データの更新

dc_mcf_tlscn

コネクションの状態取得

dc_mcf_tlsle

論理端末の状態取得

なお，UAP作成の詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。その他の関数については，マニュアル「OpenTP1 プログラム作成リファレンス C言語編」を参照してください。

NULLまたはヌル文字列設定時のコーディング例

C言語のライブラリ関数の引数にNULLまたはヌル文字列を設定する場合のコーディング例を示します。

NULLを設定する場合

char *resv01=NULL;
dc_mcf_receive(..., resv01, ...);

ヌル文字列を設定する場合

char resv01[1]="¥0";
dc_mcf_receive(..., resv01, ...);

注

resv01以外のdc_mcf_receive関数の引数は省略しています。

dc_mcf_contend − 継続問い合わせ応答の終了（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_contend (DCLONG  action,char  *resv01)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_contend (action,resv01)
DCLONG          action;
char            *resv01;

機能

継続問い合わせ応答を終了します。継続問い合わせ応答を終了させるときは，そのMHPで呼び出したdc_mcf_reply関数のnextapがヌル文字列であること，および継続問い合わせ応答型のアプリケーションを起動させるdc_mcf_execap関数を呼び出していないことが前提です。次起動アプリケーションをdc_mcf_reply関数のnextapに設定している場合，または継続問い合わせ応答型のアプリケーションを起動させるdc_mcf_execap関数を呼び出している場合は，dc_mcf_contend関数はエラーリターンします。

dc_mcf_contend関数を呼び出したあとは，一時記憶データにアクセスする関数（dc_mcf_tempget関数，dc_mcf_tempput関数）は使用できません。

UAPで値を設定する引数

●action

DCNOFLAGSを設定します。

●resv01

ヌル文字列を設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_72000

-13000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，dc_mcf_contend関数を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではdc_mcf_contend関数を呼び出せません。

DCMCFRTN_72016

-13016

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

resv01に設定した値がヌル文字列になっていません。

DCMCFRTN_72101

-13101

継続問い合わせ応答型でないアプリケーションで，dc_mcf_contend関数を呼び出しています。

DCMCFRTN_72107

-13107

dc_mcf_contend関数を2回以上呼び出しています。

DCMCFRTN_72111

-13111

次起動アプリケーション（nextap）を設定してdc_mcf_reply関数を呼び出したあと，dc_mcf_contend関数を呼び出しています。

継続問い合わせ応答型のアプリケーション名を設定してdc_mcf_execap関数を呼び出したあと，dc_mcf_contend関数を呼び出しています。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_receive − メッセージの受信（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_receive(DCLONG action,DCLONG commform,
                    char *termnam, char *mapname,
                    char *recvdata, DCLONG *rdataleng,
                    DCLONG inbufleng, DCLONG *time)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_receive(action,commform,termnam,mapname,recvdata,
                   rdataleng,inbufleng,time)
DCLONG    action;
DCLONG    commform;
char      *termnam;
char      *mapname;
char      *recvdata;
DCLONG    *rdataleng;
DCLONG    inbufleng;
DCLONG    *time;

機能

論理端末に届いたメッセージのうち，一つのセグメントを受信します。セグメントの数だけdc_mcf_receive関数を呼び出すと，一つの論理メッセージを受信できます。

受信できるメッセージの一つのセグメントの最大長は，32763バイトまでです。

dc_mcf_receive関数で受信できるメッセージの種類を次に示します。

相手システムから送信されたメッセージ

MCFイベント

アプリケーション起動で渡されたメッセージ

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

TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信する場合

XMAP3で作成した入力論理マップ（拡張子が「.h」のファイル）を#includeで取り込み，入力論理マップの先頭アドレスをrecvdataに指定します。入力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

その他のメッセージを受信する場合

UAPで値を設定する引数

●action

受信する論理メッセージのセグメントと，使用するバッファ形式を次の形式で指定します。

{DCMCFFRST|DCMCFSEG}|DCMCFBUF2

DCMCFFRST

先頭セグメントを受信する場合や，論理メッセージが単一セグメントの場合に設定します。

DCMCFSEG

中間セグメントまたは最終セグメントを受信する場合に設定します。

DCMCFBUF2

バッファ形式2のバッファを示すDCMCFBUF2を設定します。

●commform

DCNOFLAGSを設定します。

●termnam

先頭セグメントまたは単一セグメントを受信する場合は，メッセージ入力元の論理端末名称を受け取る領域を設定します。

処理終了後，termnamにはOpenTP1から値が返されます。

中間セグメントまたは最終セグメントを受信する場合は，先頭セグメントの受信時に返されたメッセージ入力元の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

中間セグメントまたは最終セグメントを受信した場合，値は返されません。

●recvdata

セグメントを受信する領域を設定します。最大セグメントより4バイト大きい領域を確保しておく必要があります。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受け取る場合は，入力論理マップの先頭アドレスを設定します。

処理終了後，recvdataにはOpenTP1から値が返されます。

●inbufleng

セグメントを受信する領域の長さを設定します。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受け取る場合は，入力論理マップの長さを設定します。

OpenTP1から値が返される引数

●termnam

先頭セグメントまたは単一セグメントを受信する場合，入力元の論理端末名称が返されます。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字が付けられます。中間セグメントおよび最終セグメントを受信する場合，ここで返された論理端末名称をtermnamに設定します。

●mapname

XMAP3のドローで指定した次画面名（マップ名）が返されます。次画面名は最大6バイトの長さです。最後にはヌル文字が付けられます。ただし，次の場合は，ヌル文字列が返されます。

次画面名を指定していない場合

アプリケーション起動機能（dc_mcf_execap関数）で起動されたMHPから，dc_mcf_receive関数を発行する場合

●recvdata

受信したセグメントの内容が返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合，論理マップ可変部・定数部に設定されるデータが返されます。

●rdataleng

受信したセグメントの長さが返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合，論理マップ可変部・定数部の長さが返されます。

●time

メッセージを受信した時刻が，1970年1月1日0時0分0秒からの通算の秒数で返されます。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71000

-12000

先頭セグメントを受信するdc_mcf_receive関数を2回以上呼び出しています。中間セグメントまたは最終セグメントを受信する場合は，actionにDCMCFSEGを設定してdc_mcf_receive関数を呼び出してください。

DCMCFRTN_71001

-12001

メッセージの最終セグメントを受信したあとで，次のセグメントを受信するdc_mcf_receive関数を呼び出しています。直前に呼び出したdc_mcf_receive関数でメッセージはすべて受信しました。

このリターン値が返されたあとに，再びdc_mcf_receive関数を呼び出した場合は，リターン値DCMCFRTN_72000が返されます。

DCMCFRTN_71002

-12002

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

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

DCMCFRTN_72000

-13000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，中間セグメントまたは最終セグメントを受信するdc_mcf_receive関数を呼び出しています。先頭セグメントを受信する場合は，actionにDCMCFFRSTを設定してdc_mcf_receive関数を呼び出してください。

リターン値DCMCFRTN_71001が返されたあとに，再びdc_mcf_receive関数を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではdc_mcf_receive関数を呼び出せません。

DCMCFRTN_72001

-13001

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

DCMCFRTN_72013

-13013

inbuflengの指定値を超えるセグメントを受信しました。inbuflengの指定値を超えた部分は切り捨てられました。

DCMCFRTN_72016

-13016

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

引数に設定した値に間違いがあります。

DCMCFRTN_72024

-13024

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

DCMCFRTN_72025

-13025

actionに設定したセグメント種別（DCMCFFRSTまたはDCMCFSEG）の値が間違っています。

DCMCFRTN_72036

-13036

inbuflengの指定値が不足しています。5バイト以上の領域を確保してください。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_reply − 応答メッセージの送信（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_reply(DCLONG action, DCLONG commform, char *resv01,
                  char *mapname, char *senddata, DCLONG sdataleng,
                  char *nextap, DCLONG opcd)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_reply(action, commform, resv01, mapname, senddata,
                 sdataleng, nextap, opcd)
DCLONG    action;
DCLONG    commform;
char      *resv01;
char      *mapname;
char      *senddata;
DCLONG    sdataleng;
char      *nextap;
DCLONG    opcd;

機能

メッセージを入力した論理端末に応答メッセージを送信します。応答メッセージは，一つのセグメントで構成されます。

送信できるメッセージの一つのセグメントの最大長は，32000バイトまでです。

継続問い合わせ応答の処理形態で，nextapの指定は，最初のセグメントだけ有効です。また，dc_mcf_contend関数を呼び出す場合，nextapはヌル文字を指定してください。

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

TP1/NET/XMAP3の論理端末に応答する場合は，XMAP3で作成した出力論理マップ（拡張子が「.h」のファイル）を#includeで取り込み，出力論理マップの先頭アドレスをsenddataに指定します。出力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

UAPで値を設定する引数

●action

送信する論理メッセージのセグメントと，使用するバッファ形式などを次の形式で指定します。

{DCMCFESI|DCMCFEMI}〔|{DCMCFSEQ|DCMCFNSEQ}〕|DCMCFBUF2〔|DCMCFLMAP〕

DCMCFESI

先頭セグメントを応答送信する場合に設定します。

DCMCFEMI

単一セグメントを応答送信する場合や，先頭セグメントの応答送信後に応答メッセージの送信の終了を連絡する場合に設定します。

DCMCFSEQ

出力通番を付ける場合に設定します。

ただし，非応答型のアプリケーションの場合，出力通番を付けません。

DCMCFNSEQ

出力通番を付けない場合に設定します。

DCMCFBUF2

バッファ形式2のバッファを示すDCMCFBUF2を設定します。

DCMCFLMAP

論理マップの情報だけを使用してマッピングをする場合に設定します。論理マップと物理マップの両方の情報を使用する場合は設定しません。

●commform

DCNOFLAGSを設定します。

●resv01

ヌル文字列を設定します。

●mapname

マップ名を設定します。マップ名は最大6バイトの長さです。マップ名の最後にはヌル文字を付けてください。

NULLまたはヌル文字列を設定した場合，論理端末定義（mcftalcle -p）のdflmapオペランドで指定したデフォルトマップ名を使用します。

●senddata

応答送信領域を設定します。TP1/NET/XMAP3の論理端末画面に応答送信する場合は，出力論理マップの先頭アドレスを設定します。先頭セグメントの応答送信後，応答メッセージの送信の終了を連絡する場合にも必ず設定してください。

●sdataleng

応答送信するセグメント長を設定します。TP1/NET/XMAP3の論理端末画面に応答送信する場合は，応答送信する論理マップ可変部・定数部の長さを設定します。先頭セグメントの応答送信後，応答メッセージの送信の終了を連絡する場合には，0を設定してください。

●nextap

＜継続問い合わせ応答形態の場合＞

次起動アプリケーションを設定します。次起動アプリケーションは最大8バイトの長さです。次起動アプリケーションの最後にはヌル文字を付けてください。

ヌル文字列を設定した場合，実行中のアプリケーションを次のメッセージ受信時に再び起動します。

dc_mcf_reply関数を呼び出すサービスでdc_mcf_contend関数を呼び出す場合，nextapにはヌル文字列を設定してください。

継続問い合わせ応答を引き継いだエラーイベントで，dc_mcf_reply関数を呼び出す際に，nextapにヌル文字列を設定した場合，継続問い合わせ応答を終了します。ただし，継続問い合わせ応答を引き継いだエラーイベントで，dc_mcf_execap関数を呼び出して継続問い合わせ応答型のアプリケーションを起動し，起動先のアプリケーションでdc_mcf_reply関数を呼び出す際に，nextapにヌル文字列を設定した場合，継続問い合わせ応答を終了しないで，dc_mcf_execap関数を呼び出したときに設定した継続問い合わせ応答型のアプリケーションを次のメッセージ受信時に再び起動します。

＜継続問い合わせ応答形態以外の場合＞

ヌル文字列を設定してください。

●opcd

DCNOFLAGSを設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71002

-12002

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

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

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

sdatalengに32000バイトを超える値を設定しています。

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

DCMCFRTN_71003

-12003

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

DCMCFRTN_71004

-12004

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

DCMCFRTN_71108

-12108

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

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

DCMCFRTN_72000

-13000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，dc_mcf_reply関数を呼び出しています。

非応答型のアプリケーションからの問い合わせ応答をしない（UAP共通定義（mcfmuap -c）のnoansreplyオペランドにnoを指定）場合に，非応答型のアプリケーションからdc_mcf_reply関数を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではdc_mcf_reply関数を呼び出せません。

DCMCFRTN_72001

-13001

入力元論理端末は，応答メッセージの送信をサポートしていません。

DCMCFRTN_72005

-13005

＜actionでDCMCFESIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

DCMCFRTN_72008

-13008

応答型のアプリケーションからdc_mcf_execap関数を呼び出して応答型のアプリケーションを起動したあとで，dc_mcf_reply関数を呼び出しています。

継続問い合わせ応答型のアプリケーションからdc_mcf_execap関数を呼び出して継続問い合わせ応答型のアプリケーションを起動したあとで，dc_mcf_reply関数を呼び出しています。

DCMCFRTN_72011

-13011

継続問い合わせ応答型でないアプリケーションが，次起動アプリケーションを設定して，dc_mcf_reply関数を呼び出しています。

DCMCFRTN_72016

-13016

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

mapnameに設定したマップ名が8文字を超えています。

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

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

引数に設定した値に間違いがあります。

DCMCFRTN_72026

-13026

actionに設定したセグメント種別（DCMCFESIまたはDCMCFEMI）の値が間違っています。

DCMCFRTN_72041

-13041

＜actionでDCMCFEMIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

actionにDCMCFESIを設定したdc_mcf_reply関数を呼び出さないで，メッセージの送信の終了を連絡しています。

DCMCFRTN_72044

-13044

dc_mcf_contend関数を呼び出したあとで，次起動アプリケーションを設定してdc_mcf_reply関数を呼び出しています。

DCMCFRTN_72045

-13045

nextapに，継続問い合わせ応答型でないアプリケーションのアプリケーション名を設定してdc_mcf_reply関数を呼び出しています。

DCMCFRTN_72046

-13046

nextapに設定したアプリケーション名が異なるdc_mcf_reply関数を，2回以上呼び出しています。

DCMCFRTN_72047

-13047

nextapに，アプリケーション属性定義（mcfaalcap）に定義されていないアプリケーション名を設定してdc_mcf_reply関数を呼び出しています。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_resend − メッセージの再送（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_resend(DCLONG action, DCLONG commform, char *rtermnam,
                   char *resv01, DCLONG oseqid, DCLONG orgseq,
                   char *otermnam, char *resv02, char *resv03,
                   char *resv04, DCLONG opcd)

K&R版Cの形式

#include <dcmcf.h>
int  dc_mcf_resend(action, commform, rtermnam, resv01, oseqid,
                   orgseq, otermnam, resv02, resv03, resv04, opcd)
DCLONG  action;
DCLONG  commform;
char    *rtermnam;
char    *resv01;
DCLONG  oseqid;
DCLONG  orgseq;
char    *otermnam;
char    *resv02;
char    *resv03;
char    *resv04;
DCLONG  opcd;

機能

以前に送信したメッセージを，再び送信します。再送するメッセージは，以前に送信したメッセージとは別の，新しいメッセージとして扱います。どのメッセージを再送するかは，次に示す送信済みメッセージの情報で選択できます。

出力先の論理端末名称

メッセージ出力通番

メッセージ種別（一般の一方送信，優先の一方送信）

対象としたメッセージが以前に送信されていない場合は，dc_mcf_resend関数はリターン値DCMCFRTN_NOMSGを返します。また，メッセージキュー（ディスクキュー）内に対象のメッセージがない場合も，リターン値DCMCFRTN_NOMSGを返します。このため，使用するメッセージキューの種別ではディスクキューを指定して，メッセージキューの大きさの定義は余裕を持った値を指定してください。

マップ名は，以前に送信した場合の名称を引き継ぎます。

UAPで値を設定する引数

●action

再送するメッセージに出力通番を付け直すかどうか，一般か優先か，および最終出力通番のメッセージを再送するかどうかを，次の形式で設定します。

{DCMCFSEQ|DCMCFNSEQ}〔|{DCMCFNORM|DCMCFPRIO}〕〔|DCMCFLMAP〕
〔|DCMCFLAST〕

DCMCFSEQ

再送するメッセージに出力通番を付け直す場合に設定します。

DCMCFNSEQ

再送するメッセージに出力通番を付け直さない場合に設定します。

DCMCFNORM

一般の一方送信メッセージとして再送する場合に設定します。

DCMCFPRIO

優先の一方送信メッセージとして再送する場合に設定します。

DCMCFLMAP

論理マップの情報だけで，マッピングする場合に設定します。論理マップと物理マップの両方の情報でマッピングする場合は設定しません。

DCMCFLAST

再送する対象のメッセージを検索するキーとして，最終出力通番を持つメッセージを再送する場合に設定します。この値を設定した場合は，orgseqに設定した値は無効となります。

●commform

分岐送信を示す，DCMCFOUTを設定します。

●rtermnam

出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●resv01

NULLを設定します。

●oseqid

再送するメッセージを検索するキーとして，以前に送信したメッセージの送信種別を設定します。

DCMCFRID_NORM

一般の一方送信メッセージを対象とする場合に設定します。

DCMCFRID_PRIO

優先の一方送信メッセージを対象とする場合に設定します。

省略した場合は，DCMCFRID_NORM（一般の一方送信メッセージを対象）が設定されます。

●orgseq

再送するメッセージを検索するキーとして，以前に送信したメッセージの出力通番を設定します。actionでDCMCFLASTを設定した場合は，ここに設定した値は無効となります。

●otermnam

再送するメッセージを検索するキーとして，以前に送信したメッセージの出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●resv02，resv03，resv04

NULLを設定します。

●opcd

DCNOFLAGSを設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_NOMSG

-11904

出力通番使用論理端末数（MCFマネジャ共通定義（mcfmcomn）の-nオプション）を省略，または0を指定しています。

otermnam，oseqid，またはorgseqに設定した値が間違っています。

再送するメッセージは次に示す理由によって，再送できるメッセージの条件を満たしていません。

再送対象とするメッセージの送信時に出力通番を付けていません。

出力メッセージの割り当て先にメモリキューを使用しています（論理端末定義（mcftalcle -k）のquekindオペランドを省略，またはmemoryを指定）。

論理端末が閉塞しているなどの要因によって，送信メッセージが送信済みになっていません。

送信済みのメッセージがディスクキューに保持されていません（保持メッセージ数はメッセージキューサービス定義のquegrpコマンドの-mオプションで指定します）。

otermnamで指定した論理端末に割り当てられているメッセージキューは，システム開始時に障害が発生したため，メモリキューを代用して縮退運転をしています。

DCMCFRTN_BUF_SHORT

-11905

再送するメッセージのセグメントの長さが，UAP共通定義（mcfmuap -e）で指定した値を超えています。

DCMCFRTN_71002

-12002

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

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

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

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

DCMCFRTN_71003

-12003

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

DCMCFRTN_71004

-12004

メッセージキューから取り出したメッセージを格納するバッファ（作業領域）を，メモリ上に確保できませんでした。

DCMCFRTN_71108

-12108

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

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

DCMCFRTN_72000

-13000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，dc_mcf_resend関数を呼び出しています。

非トランザクション属性のMHPから，dc_mcf_resend関数を呼び出しています。

＜SPPの実行でリターンした場合＞

トランザクションでないSPPの処理から，dc_mcf_resend関数を呼び出しています。

DCMCFRTN_72001

-13001

rtermnamまたはotermnamに設定した論理端末名称が間違っています。

rtermnamに設定した論理端末名称は，定義されていません。

該当する論理端末には，メッセージを再送できません。

DCMCFRTN_72016

-13016

actionに設定した一方送信メッセージの種別（DCMCFNORMまたはDCMCFPRIO）の値が間違っています。

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

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

resv01，resv02，resv03，またはresv04に設定した値が間違っています。

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

引数に設定した値に間違いがあります。

DCMCFRTN_72017

-13017

actionに設定した出力通番の要否（DCMCFSEQまたはDCMCFNSEQ）の値が間違っています。

DCMCFRTN_72024

-13024

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

上記以外

−

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

（凡例）

−：該当しません。

注意事項

メッセージの再送時には，MCFマネジャ定義のUAP共通定義（mcfmuap）の-eオプションと-lオプションの指定値に注意してください。

-eオプション

-eオプションでは，dc_mcf_resend関数で使用する作業領域の大きさを指定します。再送するメッセージのセグメントがこの作業領域より大きい場合，dc_mcf_resend関数はメッセージを再送しないで，リターン値DCMCFRTN_BUF_SHORTを返します。このため，-eオプションでは，セグメントの最大長よりも大きな値を設定しておいてください。

-lオプション

-lオプションでは，出力通番に関して指定します。この内容によっては，メッセージキューファイル内に同じ出力通番を持つメッセージが同時に存在する場合があります。この場合は，どのメッセージを再送するか保証できません。

dc_mcf_send − メッセージの送信（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_send(DCLONG action, DCLONG commform, char *termnam,
                 char *mapname, char *senddata, DCLONG sdataleng,
                 char *pagecdat, DCLONG opcd)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_send(action, commform, termnam, mapname, senddata,
                sdataleng, pagecdat, opcd)
DCLONG    action;
DCLONG    commform;
char      *termnam;
char      *mapname;
char      *senddata;
DCLONG    sdataleng;
char      *pagecdat;
DCLONG    opcd;

機能

論理端末に一方送信メッセージを送信します。一方送信メッセージは，一つのセグメントで構成されます。

送信できるメッセージの一つのセグメントの最大長は，32000バイトまでです。

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

TP1/NET/XMAP3の論理端末に送信する場合は，XMAP3で作成した出力論理マップ（拡張子が「.h」のファイル）を#includeで取り込み，出力論理マップの先頭アドレスをsenddataに指定します。出力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

UAPで値を設定する引数

●action

送信するセグメント，優先か一般か，出力通番を付けるかどうか，使用するバッファ形式，および通知イベントを通知させるかどうかを，次の形式で設定します。

{DCMCFESI|DCMCFEMI}〔|{DCMCFNORM|DCMCFPRIO}〕〔|{DCMCFSEQ|DCMCFNSEQ}〕
|DCMCFBUF2〔|DCMCFLMAP〕〔|DCMCFSEVT〕

DCMCFESI

先頭セグメントを送信する場合に設定します。

DCMCFEMI

単一セグメントを送信する場合に設定します。

メッセージの送信の終了を連絡するために，最後は必ずこの値を設定してください。

DCMCFNORM

一般の一方送信メッセージとして送信する場合に設定します。

DCMCFPRIO

優先の一方送信メッセージとして送信する場合に設定します。

DCMCFSEQ

出力通番を付ける場合に設定します。

DCMCFNSEQ

出力通番を付けない場合に設定します。

DCMCFBUF2

バッファ形式2のバッファを示すDCMCFBUF2を設定します。

DCMCFLMAP

論理マップの情報だけを使用してマッピングをする場合に設定します。論理マップと物理マップの両方を使用する場合は設定しません。

DCMCFSEVT

送信完了通知イベントおよび送信障害通知イベントを通知させるときに設定します。ただし，これらのイベントを処理するMHPをアプリケーション属性定義（mcfaalcap）で指定していない場合は無効です。メッセージが複数のセグメントで構成される場合，先頭セグメントの送信時の指定が有効になります。

●commform

分岐送信を示す，DCMCFOUTを設定します。

●termnam

出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●mapname

マップ名を設定します。マップ名は最大6バイトの長さです。マップ名の最後にはヌル文字を付けてください。

NULLまたはヌル文字列を設定した場合，論理端末定義（mcftalcle -p）のdflmapオペランドで指定したデフォルトマップ名を使用します。

●senddata

送信するセグメントの内容を設定した領域を設定します。TP1/NET/XMAP3の論理端末に送信する場合は，出力論理マップの先頭アドレスを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合にも，必ず設定してください。

●sdataleng

送信するセグメントの長さを設定します。TP1/NET/XMAP3の論理端末画面に送信する場合は，送信する論理マップ可変部・定数部の長さを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合には，0を設定してください。

●pagecdat

NULLまたはヌル文字列を設定します。

●opcd

DCNOFLAGSを設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71002

-12002

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

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

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

sdatalengに32000バイトを超える値を設定しています。

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

DCMCFRTN_71003

-12003

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

DCMCFRTN_71004

-12004

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

DCMCFRTN_71108

-12108

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

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

DCMCFRTN_72000

-13000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，dc_mcf_send関数を呼び出しています。

＜SPPの実行でリターンした場合＞

トランザクションでないSPPの処理から，dc_mcf_send関数を呼び出しています。

DCMCFRTN_72001

-13001

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

termnamに設定した論理端末名称は，定義されていません。

dc_mcf_send関数を呼び出せない論理端末を設定しています。

DCMCFRTN_72005

-13005

＜actionでDCMCFESIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

DCMCFRTN_72016

-13016

actionに設定したメッセージ種別（DCMCFNORMまたはDCMCFPRIO）の値が間違っています。

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

mapnameで設定したマップ名が8文字を超えています。

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

引数に設定した値に間違いがあります。

DCMCFRTN_72017

-13017

actionに設定した出力通番の要否（DCMCFSEQまたはDCMCFNSEQ）の値が間違っています。

DCMCFRTN_72024

-13024

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

DCMCFRTN_72026

-13026

actionに設定したセグメント種別（DCMCFESI，DCMCFEMI）の値が間違っています。

DCMCFRTN_72041

-13041

＜actionでDCMCFEMIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

actionにDCMCFESIを設定したdc_mcf_send関数を呼び出さないで，メッセージの送信の終了を連絡しています。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_tactcn − コネクションの確立（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int dc_mcf_tactcn (DCLONG action, dcmcf_tactcnopt *cnopt,
                    char *proinf, DCLONG *resv02, char *resv03,
                    char *resv04)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tactcn (action, cnopt, proinf, resv02, resv03, resv04)
DCLONG             action;
dcmcf_tactcnopt    *cnopt;
char               *proinf;
DCLONG             *resv02;
char               *resv03;
char               *resv04;

機能

コネクションを確立します。

なお，dc_mcf_tactcn関数の正常終了は，コネクション確立要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，相手システムとのコネクションの確立が正常に完了したことを示すものではありません。

dc_mcf_tactcn関数の呼び出し後にコネクションに関する何らかの処理をする場合は，dc_mcf_tlscn関数を用いてコネクションの状態を確認してください。

UAPで値を設定する引数

●action

確立するコネクションの指定方法を次の形式で設定します。

｛DCMCFLE｜DCMCFCN｝

DCMCFLE

確立するコネクションを論理端末名称で指定するときに設定します。

DCMCFCN

確立するコネクションをコネクションIDで指定するときに設定します。

●cnopt

この関数の対象となったコネクションの情報を，構造体dcmcf_tactcnoptに設定します。

構造体の形式を次に示します。

typedef struct {
                DCLONG    mcfid;         …MCF通信プロセス識別子
                char      resv01[4];     …予備領域
                char      idnam[9];      …論理端末名称，コネクションID
                char      resv02[7];     …予備領域
                char      resv03[112];   …予備領域
                char      scnnam[9];     …MCF使用領域
                char      resv04[7];     …予備領域
                char      yournam[9];    …MCF使用領域
                char      resv05[7];     …予備領域
                char      hostnam[143];  …MCF使用領域
                char      resv06[17];    …予備領域
                char      resv07[184];   …予備領域
                } dcmcf_tactcnopt;

mcfid

処理対象のコネクションを持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

論理端末名称を使用してコネクションの確立を要求する場合は，無効となります。

0を指定すると，該当するコネクションIDが属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの関数を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

resv01

領域をヌル文字で埋めます。

idnam

確立するコネクションの論理端末名称，またはコネクションIDを設定します。論理端末名称，またはコネクションIDは最大8バイトの長さです。論理端末名称，またはコネクションIDの最後にはヌル文字を付けてください。

resv02，resv03，scnnam，resv04，yournam，resv05，hostnam，resv06，resv07

領域をヌル文字で埋めます。

●proinf，resv02，resv03，resv04

NULLを設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71001

-12001

MCFが開始処理中のため，dc_mcf_tactcn関数が受け付けられません。

DCMCFRTN_71002

-12002

MCFが終了処理中のため，dc_mcf_tactcn関数が受け付けられません。

DCMCFRTN_71004

-12004

dc_mcf_tactcn関数の処理中にメモリ不足が発生しました。

DCMCFRTN_71005

-12005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71006

-12006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71007

-12007

指定されたコネクションIDは登録されていません。

DCMCFRTN_71008

-12008

指定された論理端末名称は登録されていません。

DCMCFRTN_71009

-12009

dc_mcf_tactcn関数が，該当するMCF通信プロセスではサポートされていません。

DCMCFRTN_71010

-12010

MCF通信プロセスにコネクションの確立を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71011

-12011

コネクションが削除されているため，dc_mcf_tactcn関数が受け付けられません。

DCMCFRTN_71014

-12014

TP1/NET/NCSB，またはTP1/NET/X25-Extendedの論理端末名称を指定しています。またはTP1/NET/OSI-TPのコネクショングループ名を指定しています。

DCMCFRTN_72050

-13050

actionに未サポートのフラグを設定しています。

DCMCFRTN_72051

-13051

cnoptにNULLが設定されています。

DCMCFRTN_72052

-13052

proinfにNULLが設定されていません。

DCMCFRTN_72053

-13053

resv02にNULLが設定されていません。

DCMCFRTN_72054

-13054

resv03にNULLが設定されていません。

DCMCFRTN_72055

-13055

resv04にNULLが設定されていません。

DCMCFRTN_72060

-13060

actionにはDCMCFLEとDCMCFCNを同時に設定できません。

DCMCFRTN_72061

-13061

dcmcf_tactcnoptのmcfidに0未満または240以上の値が設定されています。

DCMCFRTN_72062

-13062

dcmcf_tactcnoptのresv01がヌル文字で埋められていません。

DCMCFRTN_72063

-13063

dcmcf_tactcnoptのidnamの先頭がヌル文字です。

DCMCFRTN_72064

-13064

dcmcf_tactcnoptのresv02がヌル文字で埋められていません。

DCMCFRTN_72065

-13065

dcmcf_tactcnoptのresv03がヌル文字で埋められていません。

DCMCFRTN_72066

-13066

dcmcf_tactcnoptのscnnamがヌル文字で埋められていません。

DCMCFRTN_72067

-13067

dcmcf_tactcnoptのresv04がヌル文字で埋められていません。

DCMCFRTN_72068

-13068

dcmcf_tactcnoptのyournamがヌル文字で埋められていません。

DCMCFRTN_72069

-13069

dcmcf_tactcnoptのresv05がヌル文字で埋められていません。

DCMCFRTN_72070

-13070

dcmcf_tactcnoptのhostnamがヌル文字で埋められていません。

DCMCFRTN_72071

-13071

dcmcf_tactcnoptのresv06がヌル文字で埋められていません。

DCMCFRTN_72072

-13072

dcmcf_tactcnoptのresv07がヌル文字で埋められていません。

DCMCFRTN_72073

-13073

dcmcf_tactleoptのidnamに設定された文字数が9以上です。

DCMCFRTN_72074

-13074

dcmcf_tactcnoptのidnamに設定された文字列中に不正な文字があります。

dc_mcf_tactle − 論理端末の閉塞解除（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int dc_mcf_tactle (DCLONG action, dcmcf_tactleopt *leopt,
                    char *proinf, DCLONG *resv02,
                    char *resv03, char *resv04)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tactle (action, leopt, proinf, resv02, resv03, resv04)
DCLONG             action;
dcmcf_tactleopt    *leopt;
char               *proinf;
DCLONG             *resv02;
char               *resv03;
char               *resv04;

機能

論理端末の閉塞を解除します。

なお，dc_mcf_tactle関数の正常終了は，論理端末の閉塞解除要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，論理端末の閉塞解除が正常に完了したことを示すものではありません。

dc_mcf_tactle関数の呼び出し後に論理端末に関する何らかの処理をする場合は，dc_mcf_tlsle関数を用いて論理端末の状態を確認してください。

UAPで値を設定する引数

●action

閉塞解除する論理端末の指定方法を次の形式で設定します。

DCMCFLE

DCMCFLE

閉塞解除する論理端末を論理端末名称で指定するときに設定します。

●leopt

この関数の対象となった論理端末の情報を，構造体dcmcf_tactleoptに設定します。

構造体の形式を次に示します。

typedef struct {
                DCLONG    mcfid;          …MCF通信プロセス識別子
                char      resv01[4];      …予備領域
                char      idnam[9];       …論理端末名称
                char      resv02[7];      …予備領域
                char      resv03[112];    …予備領域
                char      resv04[376];    …予備領域
                } dcmcf_tactleopt;

mcfid

処理対象の論理端末を持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

0を指定すると，該当する論理端末名称が属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの関数を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

resv01

領域をヌル文字で埋めます。

idnam

閉塞解除する論理端末の名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

resv02，resv03，resv04

領域をヌル文字で埋めます。

●proinf，resv02，resv03，resv04

NULLを設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71001

-12001

MCFが開始処理中のため，dc_mcf_tactle関数が受け付けられません。

DCMCFRTN_71002

-12002

MCFが終了処理中のため，dc_mcf_tactle関数が受け付けられません。

DCMCFRTN_71004

-12004

dc_mcf_tactle関数の処理中にメモリ不足が発生しました。

DCMCFRTN_71005

-12005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71006

-12006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71008

-12008

指定された論理端末名称は登録されていません。

DCMCFRTN_71009

-12009

dc_mcf_tactle関数が，該当するMCF通信プロセスではサポートされていません。

DCMCFRTN_71010

-12010

MCF通信プロセスに論理端末の閉塞の解除を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71011

-12011

論理端末が削除されているため，dc_mcf_tactle関数が受け付けられません。

DCMCFRTN_72050

-13050

actionに未サポートのフラグを設定しています。

actionにDCMCFLEが指定されていません。

DCMCFRTN_72051

-13051

leoptにNULLが設定されています。

DCMCFRTN_72052

-13052

proinfにNULLが設定されていません。

DCMCFRTN_72053

-13053

resv02にNULLが設定されていません。

DCMCFRTN_72054

-13054

resv03にNULLが設定されていません。

DCMCFRTN_72055

-13055

resv04にNULLが設定されていません。

DCMCFRTN_72061

-13061

dcmcf_tactleoptのmcfidに0未満または240以上の値が設定されています。

DCMCFRTN_72062

-13062

dcmcf_tactleoptのresv01がヌル文字で埋められていません。

DCMCFRTN_72063

-13063

dcmcf_tactleoptのidnamの先頭がヌル文字です。

DCMCFRTN_72064

-13064

dcmcf_tactleoptのresv02がヌル文字で埋められていません。

DCMCFRTN_72065

-13065

dcmcf_tactleoptのresv03がヌル文字で埋められていません。

DCMCFRTN_72067

-13067

dcmcf_tactleoptのresv04がヌル文字で埋められていません。

DCMCFRTN_72073

-13073

dcmcf_tactleoptのidnamに設定された文字数が9以上です。

DCMCFRTN_72074

-13074

dcmcf_tactleoptのidnamに設定された文字列中に不正な文字があります。

dc_mcf_tdctcn − コネクションの解放（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int dc_mcf_tdctcn (DCLONG action, dcmcf_tdctcnopt *cnopt,
                    char *proinf, DCLONG *resv02, char *resv03,
                    char *resv04)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tdctcn (action, cnopt, proinf, resv02, resv03, resv04)
DCLONG               action;
dcmcf_tdctcnopt      *cnopt;
char                 *proinf;
DCLONG               *resv02;
char                 *resv03;
char                 *resv04;

機能

コネクションを解放します。

なお，dc_mcf_tdctcn関数の正常終了は，コネクション解放要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，相手システムとのコネクションの解放が正常に完了したことを示すものではありません。

dc_mcf_tdctcn関数の呼び出し後にコネクションに関する何らかの処理をする場合は，dc_mcf_tlscn関数を用いてコネクションの状態を確認してください。

UAPで値を設定する引数

●action

解放するコネクションの指定方法を次の形式で設定します。

｛DCMCFLE｜DCMCFCN｝｜DCMCFFRC

DCMCFLE

解放するコネクションを論理端末名称で指定するときに設定します。

DCMCFCN

解放するコネクションをコネクションIDで指定するときに設定します。

DCMCFFRC

コネクションを強制的に解放するときに設定します。

●cnopt

この関数の対象となったコネクションの情報を，構造体dcmcf_tdctcnoptに設定します。

構造体の形式を次に示します。

typedef struct {
                DCLONG    mcfid;         …MCF通信プロセス識別子
                char      resv01[4];     …予備領域
                char      idnam[9];      …論理端末名称，コネクションID
                char      resv02[7];     …予備領域
                char      resv03[112];   …予備領域
                char      scnnam[9];     …MCF使用領域
                char      resv04[7];     …予備領域
                char      resv05[360];   …予備領域
                } dcmcf_tdctcnopt;

mcfid

処理対象のコネクションを持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

論理端末名称を使用してコネクションの解放を要求する場合は，無効となります。

0を指定すると，該当するコネクションIDが属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの関数を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

resv01

領域をヌル文字で埋めます。

idnam

解放するコネクションの論理端末名称，またはコネクションIDを設定します。論理端末名称，またはコネクションIDは最大8バイトの長さです。論理端末名称，またはコネクションIDの最後にはヌル文字を付けてください。

resv02，resv03，scnnam，resv04，resv05

領域をヌル文字で埋めます。

●proinf，resv02，resv03，resv04

NULLを設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71001

-12001

MCFが開始処理中のため，dc_mcf_tdctcn関数が受け付けられません。

DCMCFRTN_71002

-12002

MCFが終了処理中のため，dc_mcf_tdctcn関数が受け付けられません。

DCMCFRTN_71004

-12004

dc_mcf_tdctcn関数の処理中にメモリ不足が発生しました。

DCMCFRTN_71005

-12005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71006

-12006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71007

-12007

指定されたコネクションIDは登録されていません。

DCMCFRTN_71008

-12008

指定された論理端末名称は登録されていません。

DCMCFRTN_71009

-12009

dc_mcf_tdctcn関数が，該当するMCF通信プロセスではサポートされていません。

DCMCFRTN_71010

-12010

MCF通信プロセスにコネクションの解放を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71011

-12011

コネクションが削除されているため，dc_mcf_tdctcn関数が受け付けられません。

DCMCFRTN_71014

-12014

TP1/NET/NCSB，またはTP1/NET/X25-Extendedの論理端末名称を指定しています。またはTP1/NET/OSI-TPのコネクショングループ名を指定しています。

DCMCFRTN_72050

-13050

actionに未サポートのフラグを設定しています。

DCMCFRTN_72051

-13051

cnoptにNULLが設定されています。

DCMCFRTN_72052

-13052

proinfにNULLが設定されていません。

DCMCFRTN_72053

-13053

resv02にNULLが設定されていません。

DCMCFRTN_72054

-13054

resv03にNULLが設定されていません。

DCMCFRTN_72055

-13055

resv04にNULLが設定されていません。

DCMCFRTN_72060

-13060

actionにはDCMCFLEとDCMCFCNを同時に設定できません。

DCMCFRTN_72061

-13061

dcmcf_tdctcnoptのmcfidに0未満または240以上の値が設定されています。

DCMCFRTN_72062

-13062

dcmcf_tdctcnoptのresv01がヌル文字で埋められていません。

DCMCFRTN_72063

-13063

dcmcf_tdctcnoptのidnamの先頭がヌル文字です。

DCMCFRTN_72064

-13064

dcmcf_tdctcnoptのresv02がヌル文字で埋められていません。

DCMCFRTN_72065

-13065

dcmcf_tdctcnoptのresv03がヌル文字で埋められていません。

DCMCFRTN_72066

-13066

dcmcf_tdctcnoptのscnnamがヌル文字で埋められていません。

DCMCFRTN_72067

-13067

dcmcf_tdctcnoptのresv04がヌル文字で埋められていません。

DCMCFRTN_72069

-13069

dcmcf_tdctcnoptのresv05がヌル文字で埋められていません。

DCMCFRTN_72073

-13073

dcmcf_tdctcnoptのidnamに設定された文字数が9以上です。

DCMCFRTN_72074

-13074

dcmcf_tdctcnoptのidnamに設定された文字列中に不正な文字があります。

dc_mcf_tdctle − 論理端末の閉塞（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int dc_mcf_tdctle (DCLONG action, dcmcf_tdctleopt *leopt,
                    char *proinf, DCLONG *resv02,
                    char *resv03, char *resv04)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tdctle (action, leopt, proinf, resv02, resv03, resv04)
DCLONG             action;
dcmcf_tdctleopt    *leopt;
char               *proinf;
DCLONG             *resv02;
char               *resv03;
char               *resv04;

機能

論理端末を閉塞します。

なお，dc_mcf_tdctle関数の正常終了は，論理端末の閉塞要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，論理端末の閉塞が正常に完了したことを示すものではありません。

dc_mcf_tdctle関数の呼び出し後に論理端末に関する何らかの処理をする場合は，dc_mcf_tlsle関数を用いて論理端末の状態を確認してください。

UAPで値を設定する引数

●action

閉塞する論理端末の指定方法を次の形式で設定します。

DCMCFLE

DCMCFLE

閉塞する論理端末を論理端末名称で指定するときに設定します。

●leopt

この関数の対象となった論理端末の情報を，構造体dcmcf_tdctleoptに設定します。

構造体の形式を次に示します。

typedef struct {
                DCLONG    mcfid;         …MCF通信プロセス識別子
                char      resv01[4];     …予備領域
                char      idnam[9];      …論理端末名称
                char      resv02[7];     …予備領域
                char      resv03[112];   …予備領域
                char      resv04[376];   …予備領域
                } dcmcf_tdctleopt;

mcfid

処理対象の論理端末を持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

0を指定すると，該当する論理端末名称が属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの関数を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

resv01

領域をヌル文字で埋めます。

idnam

閉塞する論理端末の名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

resv02，resv03，resv04

領域をヌル文字で埋めます。

●proinf，resv02，resv03，resv04

NULLを設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71001

-12001

MCFが開始処理中のため，dc_mcf_tdctle関数が受け付けられません。

DCMCFRTN_71002

-12002

MCFが終了処理中のため，dc_mcf_tdctle関数が受け付けられません。

DCMCFRTN_71004

-12004

dc_mcf_tdctle関数の処理中にメモリ不足が発生しました。

DCMCFRTN_71005

-12005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71006

-12006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71008

-12008

指定された論理端末名称は登録されていません。

DCMCFRTN_71009

-12009

dc_mcf_tdctle関数が，該当するMCF通信プロセスではサポートされていません。

DCMCFRTN_71010

-12010

MCF通信プロセスに論理端末の閉塞を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71011

-12011

論理端末が削除されているため，dc_mcf_tdctle関数が受け付けられません。

DCMCFRTN_72050

-13050

actionに未サポートのフラグを設定しています。

actionにDCMCFLEが指定されていません。

DCMCFRTN_72051

-13051

leoptにNULLが設定されています。

DCMCFRTN_72052

-13052

proinfにNULLが設定されていません。

DCMCFRTN_72053

-13053

resv02にNULLが設定されていません。

DCMCFRTN_72054

-13054

resv03にNULLが設定されていません。

DCMCFRTN_72055

-13055

resv04にNULLが設定されていません。

DCMCFRTN_72061

-13061

dcmcf_tdctleoptのmcfidに0未満または240以上の値が設定されています。

DCMCFRTN_72062

-13062

dcmcf_tdctleoptのresv01がヌル文字で埋められていません。

DCMCFRTN_72063

-13063

dcmcf_tdctleoptのidnamの先頭がヌル文字です。

DCMCFRTN_72064

-13064

dcmcf_tdctleoptのresv02がヌル文字で埋められていません。

DCMCFRTN_72065

-13065

dcmcf_tdctleoptのresv03がヌル文字で埋められていません。

DCMCFRTN_72067

-13067

dcmcf_tdctleoptのresv04がヌル文字で埋められていません。

DCMCFRTN_72073

-13073

dcmcf_tdctleoptのidnamに設定された文字数が9以上です。

DCMCFRTN_72074

-13074

dcmcf_tdctleoptのidnamに設定された文字列中に不正な文字があります。

dc_mcf_tempget − 一時記憶データの受け取り（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_tempget (DCLONG action, char *getdata, DCLONG gtempleng,
                     DCLONG *gdataleng, char *resv01)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tempget (action, getdata, gtempleng, gdataleng, resv01)
DCLONG    action;
char      *getdata;
DCLONG    gtempleng;
DCLONG    *gdataleng;
char      *resv01;

機能

継続問い合わせ応答用一時記憶領域に格納されている一時記憶データを受け取ります。

gtemplengの長さ（7〜32006バイト）を超える一時記憶データがある場合，超えた部分については切り捨てます。

dc_mcf_tempget実行時，gtemplengから6を減算した値と比べて一時記憶データ長が短い場合，一時記憶データを受け取り領域に設定します。残りの受け取り領域については何も設定しません。

dc_mcf_tempget実行時，初期状態（継続問い合わせ応答開始後，dc_mcf_tempputを1回も実行していない状態）の場合，アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで指定した長さの(00)₁₆の一時記憶データがあるものとして，dc_mcf_tempgetを実行します。

受け取り領域の形式を次に示します。

UAPで値を設定する引数

●action

DCMCFBUF2を設定します。

●getdata

受け取り領域を設定します。

処理終了後，getdataにはOpenTP1から値が返されます。

●gtempleng

受け取り領域長を7〜32006バイトで設定します。

●resv01

ヌル文字列を設定します。

OpenTP1から値が返される引数

●getdata

受け取った一時記憶データが返されます。初期状態の場合，継続問い合わせ応答用一時記憶領域の長さ（アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値）分だけ(00)₁₆が埋められます。

●gdataleng

前回更新した一時記憶データの長さが返されます。初期状態の場合，継続問い合わせ応答用一時記憶領域の長さ（アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値）が返されます。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_72000

-13000

SPPではdc_mcf_tempget関数を呼び出せません。

DCMCFRTN_72013

-13013

gtemplengの設定値を超える一時記憶データを受け取りました。gtemplengの設定値を超えた部分は切り捨てられました。

DCMCFRTN_72016

-13016

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

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

引数に設定した値に間違いがあります。

DCMCFRTN_72036

-13036

gtemplengの設定値が不足しています。7バイト以上の領域を確保してください。

DCMCFRTN_72101

-13101

継続問い合わせ応答型でないアプリケーションで，dc_mcf_tempget関数を呼び出しています。

DCMCFRTN_72106

-13106

先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，dc_mcf_tempget関数を呼び出しています。

DCMCFRTN_72107

-13107

dc_mcf_contend関数を呼び出したあとで，dc_mcf_tempget関数を呼び出しています。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_tempput − 一時記憶データの更新（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_tempput(DCLONG action, char *putdata, DCLONG pdataleng,
                    char *resv01)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tempput(action, putdata, pdataleng, resv01)
DCLONG    action;
char      *putdata;
DCLONG    pdataleng;
char      *resv01;

機能

継続問い合わせ応答用一時記憶領域に格納されている一時記憶データを更新します。

更新要求をする前に，必ず受け取り要求をしてください。

アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドには，更新する一時記憶データ長（pdataleng）以上の値を指定してください。

更新する領域の形式を次に示します。

UAPで値を設定する引数

●action

DCMCFBUF2を設定します。

●putdata

一時記憶データの更新データが格納されている領域を設定します。

●pdataleng

一時記憶データの更新データ長を設定します。

●resv01

ヌル文字列を設定します。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71103

-12103

一時記憶データを更新するための領域をメモリ上に確保できませんでした。

DCMCFRTN_72000

-13000

SPPではdc_mcf_tempput関数を呼び出せません。

DCMCFRTN_72016

-13016

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

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

引数に設定した値に間違いがあります。

DCMCFRTN_72035

-13035

pdatalengに設定した更新データの長さが，アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで定義した長さを超えています。

pdatalengに0バイト，またはマイナス値を設定しています。

DCMCFRTN_72101

-13101

継続問い合わせ応答型でないアプリケーションで，dc_mcf_tempput関数を呼び出しています。

DCMCFRTN_72105

-13105

dc_mcf_tempget関数を呼び出す前に，dc_mcf_tempput関数を呼び出しています。

DCMCFRTN_72106

-13106

先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，dc_mcf_tempput関数を呼び出しています。

DCMCFRTN_72107

-13107

dc_mcf_contend関数を呼び出したあとで，dc_mcf_tempput関数を呼び出しています。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_tlscn − コネクションの状態取得（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int dc_mcf_tlscn (DCLONG action, dcmcf_tlscnopt *cnopt,
                  char *resv01, DCLONG *resv02,
                  char *resv03, DCLONG *infcnt,
                  dcmcf_cninf *inf, char *resv04)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tlscn (action, cnopt, resv01, resv02, resv03, infcnt,
                  inf, resv04)
DCLONG            action;
dcmcf_tlscnopt    *cnopt;
char              *resv01;
DCLONG            *resv02;
char              *resv03;
DCLONG            *infcnt;
dcmcf_cninf       *inf;
char              *resv04;

機能

コネクションの状態を取得します。

UAPで値を設定する引数

●action

状態を取得するコネクションの指定方法を次の形式で設定します。

｛DCMCFLE｜DCMCFCN｝

DCMCFLE

状態を取得するコネクションを論理端末名称で指定するときに設定します。

DCMCFCN

状態を取得するコネクションをコネクションIDで指定するときに設定します。

●cnopt

この関数の対象となったコネクションの情報を，構造体dcmcf_tlscnoptに設定します。

構造体の形式を次に示します。

typedef struct {
                DCLONG    mcfid;        …MCF通信プロセス識別子
                char      resv01[4];    …予備領域
                char      idnam[9];     …論理端末名称，コネクションID
                char      resv02[7];    …予備領域
                char      resv03[112];  …予備領域
                char      resv04[376];  …予備領域
                } dcmcf_tlscnopt;

mcfid

処理対象のコネクションを持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

論理端末名称を使用してコネクションの状態取得を要求する場合は，無効となります。

0を指定すると，該当するコネクションIDが属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの関数を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

resv01

領域をヌル文字で埋めます。

idnam

状態を取得するコネクションの論理端末名称，またはコネクションIDを設定します。論理端末名称，またはコネクションIDは最大8バイトの長さです。論理端末名称，またはコネクションIDの最後にはヌル文字を付けてください。

resv02，resv03，resv04

領域をヌル文字で埋めます。

●resv01，resv02，resv03

NULLを設定します。

●infcnt

コネクション状態を格納する領域dcmcf_cninfの個数として，1を設定します。

処理終了後は，該当するコネクションの個数が返されます。

●inf

コネクション状態を格納する領域dcmcf_cninfを設定します。

「構造体dcmcf_cninfのサイズ×infcnt」バイト数分の領域が必要です。

●resv04

NULLを設定します。

OpenTP1から値が返される引数

●infcnt

この関数の対象となったコネクションの個数が返されます。

●inf

この関数の対象となったコネクションの情報が，構造体dcmcf_cninfで返されます。

構造体の形式を次に示します。

typedef struct {
                char      idnam[9];     …コネクションID
                char      resv01[7];    …予備領域
                char      pnam[4];      …プロトコル種別
                DCLONG    status;       …コネクション状態
                char      resv02[40];   …予備領域
                } dcmcf_cninf;

idnam

要求したコネクションのコネクションIDが設定されます。コネクションIDは最大8バイトの長さです。コネクションIDの最後にはヌル文字が付けられます。

resv01

領域をヌル文字で埋めます。

pnam

要求したコネクションのプロトコル種別が設定されます。プロトコル種別の最後にはヌル文字が付けられます。

XP△

TP1/NET/XMAP3プロトコル

status

要求したコネクションの状態として，次の値が設定されます。

DCMCF_CNST_ACT

確立状態

DCMCF_CNST_ACT_B

確立処理中状態

DCMCF_CNST_DCT

解放状態

DCMCF_CNST_DCT_B

解放処理中状態

resv02

領域をヌル文字で埋めます。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71001

-12001

MCFが開始処理中のため，dc_mcf_tlscn関数が受け付けられません。

DCMCFRTN_71004

-12004

dc_mcf_tlscn関数の処理中にメモリ不足が発生しました。

DCMCFRTN_71005

-12005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71006

-12006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71007

-12007

指定されたコネクションIDは登録されていません。

DCMCFRTN_71008

-12008

指定された論理端末名称は登録されていません。

DCMCFRTN_71009

-12009

dc_mcf_tlscn関数が，該当するMCF通信プロセスではサポートされていません。

DCMCFRTN_71010

-12010

MCF通信プロセスにコネクションの状態取得を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71011

-12011

コネクションが削除されているため，dc_mcf_tlscn関数が受け付けられません。

DCMCFRTN_71014

-12014

TP1/NET/NCSB，またはTP1/NET/X25-Extendedの論理端末名称を指定しています。またはTP1/NET/OSI-TPのコネクショングループ名を指定しています。

DCMCFRTN_72050

-13050

actionに未サポートのフラグを設定しています。

DCMCFRTN_72051

-13051

cnoptにNULLが設定されています。

DCMCFRTN_72052

-13052

resv01にNULLが設定されていません。

DCMCFRTN_72053

-13053

resv02にNULLが設定されていません。

DCMCFRTN_72054

-13054

resv03にNULLが設定されていません。

DCMCFRTN_72055

-13055

resv04にNULLが設定されていません。

DCMCFRTN_72056

-13056

infcntにNULLが設定されています。

DCMCFRTN_72057

-13057

infにNULLが設定されています。

DCMCFRTN_72060

-13060

actionにはDCMCFLEとDCMCFCNを同時に設定できません。

DCMCFRTN_72061

-13061

dcmcf_tlscnoptのmcfidに0未満または240以上の値が設定されています。

DCMCFRTN_72062

-13062

dcmcf_tlscnoptのresv01がヌル文字で埋められていません。

DCMCFRTN_72063

-13063

dcmcf_tlscnoptのidnamの先頭がヌル文字です。

DCMCFRTN_72064

-13064

dcmcf_tlscnoptのresv02がヌル文字で埋められていません。

DCMCFRTN_72065

-13065

dcmcf_tlscnoptのresv03がヌル文字で埋められていません。

DCMCFRTN_72067

-13067

dcmcf_tlscnoptのresv04がヌル文字で埋められていません。

DCMCFRTN_72073

-13073

dcmcf_tlscnoptのidnamに設定された文字数が9以上です。

DCMCFRTN_72074

-13074

dcmcf_tlscnoptのidnamに設定された文字列中に不正な文字があります。

DCMCFRTN_72076

-13076

infcntに1が設定されていません。

dc_mcf_tlsle − 論理端末の状態取得（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int dc_mcf_tlsle (DCLONG action, dcmcf_tlsleopt *leopt,
                  char *resv01, DCLONG *resv02,
                  char *resv03, DCLONG *infcnt,
                  dcmcf_leinf2 *inf, char *resv04)

K&R版Cの形式

#include <dcmcf.h>
int dc_mcf_tlsle (action, leopt, resv01, resv02, resv03, infcnt,
                  inf, resv04)
DCLONG            action;
dcmcf_tlsleopt    *leopt;
char              *resv01;
DCLONG            *resv02;
char              *resv03;
DCLONG            *infcnt;
dcmcf_leinf2      *inf;
char              *resv04;

機能

論理端末の状態を取得します。

UAPで値を設定する引数

●action

状態を取得する論理端末の指定方法を次の形式で設定します。

DCMCFLE

DCMCFLE

状態を取得する論理端末を論理端末名称で指定するときに設定します。

●leopt

この関数の対象となった論理端末の情報を，構造体dcmcf_tlsleoptに設定します。

構造体の形式を次に示します。

typedef struct {
                DCLONG    mcfid;        …MCF通信プロセス識別子
                char      resv01[4];    …予備領域
                char      idnam[9];     …論理端末名称
                char      resv02[7];    …予備領域
                char      resv03[112];  …予備領域
                char      resv04[376];  …予備領域
                } dcmcf_tlsleopt;

mcfid

処理対象の論理端末を持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

0を指定すると，該当する論理端末名称が属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの関数を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

resv01

領域をヌル文字で埋めます。

idnam

状態を取得する論理端末の名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

resv02，resv03，resv04

領域をヌル文字で埋めます。

●resv01，resv02，resv03

NULLを設定します。

●infcnt

論理端末の状態を格納する領域dcmcf_leinf2の個数として，1を設定します。

処理終了後は，該当する論理端末の個数が返されます。

●inf

論理端末の状態を格納する領域dcmcf_leinf2を設定します。

「構造体dcmcf_leinf2のサイズ×infcnt」バイト数分の領域が必要です。

●resv04

NULLを設定します。

OpenTP1から値が返される引数

●infcnt

この関数の対象となった論理端末の個数が返されます。

●inf

この関数の対象となった論理端末の情報が構造体dcmcf_leinf2で返されます。

構造体の形式を次に示します。

typedef struct {
                char      idnam[9];     …論理端末名称
                char      resv01[7];    …予備領域
                char      resv02[4];    …予備領域
                DCLONG    status;       …論理端末状態
                char      resv03[40];   …予備領域
                } dcmcf_leinf2;

idnam

要求した論理端末の名称が設定されます。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字が付けられます。

resv01，resv02

領域をヌル文字で埋めます。

status

要求した論理端末の状態として，次の値が設定されます。

DCMCF_LEST_ACT

閉塞解除状態

DCMCF_LEST_DCT

閉塞状態

resv03

領域をヌル文字で埋めます。

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71001

-12001

MCFが開始処理中のため，dc_mcf_tlsle関数が受け付けられません。

DCMCFRTN_71004

-12004

dc_mcf_tlsle関数の処理中にメモリ不足が発生しました。

DCMCFRTN_71005

-12005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71006

-12006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71008

-12008

指定された論理端末名称は登録されていません。

DCMCFRTN_71009

-12009

dc_mcf_tlsle関数が，該当するMCF通信プロセスではサポートされていません。

DCMCFRTN_71010

-12010

MCF通信プロセスに論理端末の状態取得を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

DCMCFRTN_71011

-12011

論理端末が削除されているため，dc_mcf_tlsle関数が受け付けられません。

DCMCFRTN_72050

-13050

actionに未サポートのフラグを設定しています。

actionにDCMCFLEが指定されていません。

DCMCFRTN_72051

-13051

leoptにNULLが設定されています。

DCMCFRTN_72052

-13052

resv01にNULLが設定されていません。

DCMCFRTN_72053

-13053

resv02にNULLが設定されていません。

DCMCFRTN_72054

-13054

resv03にNULLが設定されていません。

DCMCFRTN_72055

-13055

resv04にNULLが設定されていません。

DCMCFRTN_72056

-13056

infcntにNULLが設定されています。

DCMCFRTN_72057

-13057

infにNULLが設定されています。

DCMCFRTN_72061

-13061

dcmcf_tlsleoptのmcfidに0未満または240以上の値が設定されています。

DCMCFRTN_72062

-13062

dcmcf_tlsleoptのresv01がヌル文字で埋められていません。

DCMCFRTN_72063

-13063

dcmcf_tlsleoptのidnamの先頭がヌル文字です。

DCMCFRTN_72064

-13064

dcmcf_tlsleoptのresv02がヌル文字で埋められていません。

DCMCFRTN_72065

-13065

dcmcf_tlsleoptのresv03がヌル文字で埋められていません。

DCMCFRTN_72067

-13067

dcmcf_tlsleoptのresv04がヌル文字で埋められていません。

DCMCFRTN_72073

-13073

dcmcf_tlsleoptのidnamに設定された文字数が9以上です。

DCMCFRTN_72074

-13074

dcmcf_tlsleoptのidnamに設定された文字列中に不正な文字があります。

DCMCFRTN_72076

-13076

infcntに1が設定されていません。

4　COBOL-UAP作成用プログラムインタフェース

この章では，TP1/NET/XMAP3で使用できる，COBOL-UAP作成用プログラムインタフェースについて説明します。

COBOL-UAP作成用プログラムインタフェースの一覧

TP1/NET/XMAP3で使用するCOBOL-UAP作成用プログラムインタフェースについて，COBOL言語，およびデータ操作言語に分けて説明します。

なお，UAP作成の詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

COBOL言語のプログラムインタフェース

COBOL言語でUAPを作成する場合，OpenTP1システムの関数に対応しているプログラムを，CALL文で呼び出してUAPを作成します。

COBOL言語のプログラムインタフェースの一覧を，次の表に示します。

表4‒1　COBOL言語のプログラムインタフェースの一覧

プログラム名

データ名

機能

CBLDCMCF

'CONTEND△'

継続問い合わせ応答の終了

'RECEIVE△'

メッセージの受信

'REPLY△△△'

応答メッセージの送信

'RESEND△△'

メッセージの再送

'SEND△△△△'

メッセージの送信

'TACTCN△△'

コネクションの確立

'TACTLE△△'

論理端末の閉塞解除

'TDCTCN△△'

コネクションの解放

'TDCTLE△△'

論理端末の閉塞

'TEMPGET△'

一時記憶データの受け取り

'TEMPPUT△'

一時記憶データの更新

'TLSCN△△△'

コネクションの状態取得

'TLSLE△△△'

論理端末の状態取得

その他のプログラムについては，マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。

データ操作言語のプログラムインタフェース

データ操作言語（DML）を使用した，通信文について説明します。データ操作言語の形式の詳細については，マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。

データ操作言語のプログラムインタフェースの一覧を，次の表に示します。

表4‒2　データ操作言語のプログラムインタフェースの一覧

通信文

機能

対応するC言語のライブラリ関数

データコミュニケーション機能

RECEIVE

メッセージの受信

「表4-4　RECEIVE文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応」，および「表4-5　SEND文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応」を参照してください。

SEND

メッセージの送信

応答メッセージの送信

サービス機能

DISABLE

継続問い合わせ応答の終了

dc_mcf_contend

RECEIVE

一時記憶データの受け取り

dc_mcf_tempget

SEND

一時記憶データの更新

dc_mcf_tempput

注

dc_mcf_resend（メッセージの再送）に対応するデータ操作言語のインタフェースはありません。

その他の通信文については，マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。

通信記述項について

TP1/NET/XMAP3のメッセージ送受信の通信文で，通信記述項に指定できる句の指定要否を，次の表に示します。

表4‒3　通信記述項に指定できる句の指定要否

データ名を指定する句

データ領域の値の設定元

1.

2.

3.

4.

5.

6.

7.

8.

9.

STATUS KEY

B

B

B

B

B

B

B

B

B

SYMBOLIC TERMINAL

B

U₁※

U₁

U₁

−

−

×

×

×

MESSAGE DATE

B

B

−

−

−

−

−

−

−

MESSAGE TIME

B

B

−

−

−

−

−

−

−

MAP NAME

B

B

U₂

U₂

U₂

U₂

−

−

−

SYNCHRONOUS MODE

U₂

U₂

U₂

U₂

U₂

U₂

−

−

−

SWITCHING MODE

−

−

U₂

U₂

−

−

−

−

−

NEXT TRANSACTION

−

−

−

−

U₂

U₂

−

−

−

ACTIVE INTERVAL/TIME

−

−

−

−

−

−

−

−

−

DETAIL MODE

−

−

U₂

U₂

U₂

U₂

−

−

−

WAITING TIME

−

−

−

−

−

−

−

−

−

（凡例）

1.：先頭セグメントの非同期受信（RECEIVE）

2.：中間，最終セグメントの非同期受信（RECEIVE）

3.：一方送信メッセージの先頭セグメントの非同期送信（SEND）

4.：一方送信メッセージの単一セグメントの非同期送信（SEND）

5.：応答メッセージの先頭セグメントの非同期送信（SEND）

6.：応答メッセージの単一セグメントの非同期送信（SEND）

7.：継続問い合わせ応答の終了（DISABLE）

8.：一時記憶データの受け取り（RECEIVE）

9.：一時記憶データの更新（SEND）

B：OpenTP1から値が返されます。省略できます。

U1：UAPで値を設定します。省略できません。

U2：UAPで値を設定します。省略できます。

−：該当しません。設定しても無効です。

×：空白以外の値を設定するとエラーリターンします。

注※

先頭メッセージ受信時のRECEIVE文と同一のCD句を用いた場合は省略できます。

コンパイラオプション -VOSCBL,DataCommを指定した場合の通信記述項

次のどちらかを行った場合，通信記述項の初期値は，メインフレーム（VOS3/VOS1）のXDM/DCCMデータコミュニケーション機能を使用するときの値となります。

通信記述項の句の指定を省略している

通信文の実行前に，通信記述項の句に指定されたデータ名に初期値を設定していない

コンパイラオプションについては，マニュアル「COBOL2002 使用の手引 手引編」を参照してください。

データコミュニケーション機能とC言語のライブラリ関数の対応

RECEIVE文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応を，次の表に示します。

表4‒4　RECEIVE文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応

FOR句

SYNCHRONOUS MODE句

対応するC言語のライブラリ関数

INPUT

I-O

SYNC，または'1'

ASYNC，'0'，'△'，または省略

○

−

−

○

dc_mcf_receive

−

○

−

○

−

○

○

−

dc_mcf_recvsync※

（凡例）

○：指定あり

−：指定なし

注※

TP1/NET/XMAP3ではサポートしていない関数です。

SEND文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応を，次の表に示します。

表4‒5　SEND文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応

FOR句

SYNCHRONOUS MODE句

BEFORE句

対応するC言語のライブラリ関数

OUTPUT

I-O

SYNC，または'1'

ASYNC，'0'，'△'，または省略

○

−

−

○

−

dc_mcf_send

−

○

−

○

−

dc_mcf_reply

−

○

○

−

−

dc_mcf_sendsync※

−

○

○

−

○

dc_mcf_sendrecv※

（凡例）

○：指定あり

−：指定なし

注※

TP1/NET/XMAP3ではサポートしていない関数です。

CBLDCMCF('CONTEND ') − 継続問い合わせ応答の終了（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'CONTEND '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(16) VALUE LOW-VALUE.

機能

継続問い合わせ応答を終了します。継続問い合わせ応答を終了するときは，そのMHPから呼び出したCBLDCMCF('REPLY△△△')のデータ名Rが空白であること，および継続問い合わせ応答型のアプリケーションを起動するCBLDCMCF('EXECAP△△')を呼び出していないことが前提です。次起動アプリケーションをCBLDCMCF('REPLY△△△')のデータ名Rに設定したり，継続問い合わせ応答型のアプリケーションを起動するCBLDCMCF('EXECAP△△')を呼び出したりした場合は，CBLDCMCF('CONTEND△')はエラーリターンします。

CBLDCMCF('CONTEND△')を呼び出したあとは，一時記憶データにアクセスするプログラム（CBLDCMCF('TEMPGET△')，CBLDCMCF('TEMPPUT△')）は使用できません。

UAPで値を設定するデータ領域

●データ名A

継続問い合わせ応答の終了を示す要求コード「VALUE 'CONTEND△'」を設定します。

●データ名C

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('CONTEND△')を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではCBLDCMCF('CONTEND△')を呼び出せません。

72016

データ名Cに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72101

継続問い合わせ応答型でないアプリケーションで，CBLDCMCF('CONTEND△')を呼び出しています。

72107

CBLDCMCF('CONTEND△')を2回以上呼び出しています。

72111

次起動アプリケーションを設定してCBLDCMCF('REPLY△△△')を呼び出したあと，CBLDCMCF('CONTEND△')を呼び出しています。

継続問い合わせ応答型のアプリケーション名を設定してCBLDCMCF('EXECAP△△')を呼び出したあと，CBLDCMCF('CONTEND△')を呼び出しています。

上記以外

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

CBLDCMCF('RECEIVE ') − メッセージの受信（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'RECEIVE '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(4).
   02 データ名D  PIC X(4) VALUE SPACE.
   02 データ名E  PIC 9(8).
   02 データ名F  PIC 9(8).
   02 データ名G  PIC 9(9) COMP.
   02 データ名H  PIC X(4) VALUE SPACE.
   02 データ名I  PIC X(4) VALUE SPACE.
   02 データ名J  PIC X(4) VALUE SPACE.
   02 データ名K  PIC X(4) VALUE SPACE.
   02 データ名L  PIC X(8) VALUE SPACE.
   02 データ名M1 PIC X(4) VALUE SPACE.
   02 データ名M2 PIC X(8) VALUE SPACE.
   02 データ名M3 PIC X(4) VALUE SPACE.
   02 データ名M4 PIC 9(9) COMP VALUE ZERO.
   02 データ名M5 PIC 9(9) COMP VALUE ZERO.
   02 データ名M6 PIC X(1) VALUE SPACE.
   02 データ名M7 PIC X(1) VALUE '2'.
   02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4) VALUE SPACE.
   02 データ名P  PIC X(8).
   02 データ名Q  PIC X(8).
   02 データ名R  PIC X(8) VALUE SPACE.
   02 データ名T  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名U  PIC 9(4) COMP.
   02 データ名W1 PIC X(1).
   02 データ名X  PIC X(1).
   02 データ名Y  PIC X(n).

機能

論理端末に届いたメッセージのうち，一つのセグメントを受信します。セグメントの数だけCBLDCMCF('RECEIVE△')を呼び出すと，一つの論理メッセージを受信できます。

受信できるメッセージの一つのセグメントの最大長は，32763バイトまでです。

CBLDCMCF('RECEIVE△')で受信できるメッセージの種類を次に示します。

相手システムから送信されたメッセージ

MCFイベント

アプリケーション起動で渡されたメッセージ

セグメントを受信する領域（一意名3で示す領域）の形式を次に示します。

TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信する場合

TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信する場合，XMAP3で作成した入力論理マップをCOPY文で取り込み，一意名3として指定します。入力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

その他のメッセージを受信する場合

UAPで値を設定するデータ領域

●データ名A

メッセージの受信を示す要求コード「VALUE 'RECEIVE△'」を設定します。

●データ名C

論理メッセージの先頭セグメントを受信するかどうかを設定します。次のどちらかを設定してください。

VALUE 'FRST'

先頭セグメントを受信する場合や，論理メッセージが単一セグメントの場合に設定します。

VALUE 'SEG△'

中間セグメントまたは最終セグメントを受信する場合に設定します。

●データ名D

空白を設定します。

●データ名G

セグメントを受信する領域の長さを設定します。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信する場合，入力論理マップの長さを設定します。

●データ名H，データ名I，データ名J，データ名K，データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用する送受信バッファの形式を示す「VALUE '2'」を設定します。

●データ名N

MCFで使用する領域です。

●データ名O

空白を設定します。

●データ名P

中間セグメントまたは最終セグメントを受信する場合，入力元の論理端末名称を設定します。先頭セグメントの受信時に返された論理端末名称を設定してください。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

先頭セグメントまたは単一セグメントの受信処理終了後，データ名PにはOpenTP1から値が返されます。

●データ名R

空白を設定します。

●データ名T，データ名W1，データ名X

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

●データ名E

メッセージを受信した日付がYYYYMMDD（YYYY：西暦年　MM：月　DD：日）の形式で返されます。

●データ名F

メッセージを受信した時刻がHHMMSS00（HH：時　MM：分　SS：秒　00は固定）の形式で返されます。

●データ名P

先頭セグメントまたは単一セグメントを受信する場合，入力元の論理端末名称が返されます。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろが空白で埋められます。

中間セグメントまたは最終セグメントを受信する場合，ここで返された論理端末名称をデータ名Pに設定します。

●データ名Q

XMAP3のドローで指定した次画面名（マップ名）が返されます。次画面名は最大6バイトの長さです。次画面名の後ろは空白で埋められます。

ただし，次の場合は，空白が返されます。

次画面名を指定していない場合

アプリケーション起動機能（dc_mcf_execap関数）で起動されたMHPから，CBLDCMCF('RECEIVE△')を発行する場合

●データ名U

受信したセグメントの長さ＋4が返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合，受信した入力論理マップの長さ（論理マップ固定部の長さ＋論理マップ可変部・定数部の長さ）が返されます。

●データ名Y

受信したセグメントの内容が返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合，論理マップ可変部・定数部に設定されるデータが返されます。一つのセグメントで32763バイトまで受信できます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71000

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を2回以上呼び出しています。中間セグメントまたは最終セグメントを受信する場合は，データ名Cに「VALUE 'SEG△'」を設定してCBLDCMCF('RECEIVE△')を呼び出してください。

71001

メッセージの最終セグメントを受信したあとで，次のセグメントを受信するCBLDCMCF('RECEIVE△')を呼び出しています。直前に呼び出したCBLDCMCF('RECEIVE△')でメッセージはすべて受信しました。このステータスコードが返されたあとに，再びCBLDCMCF('RECEIVE△')を呼び出した場合は，ステータスコード72000が返されます。

71002

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

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

71108

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

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，中間セグメントまたは最終セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出しています。先頭セグメントを受信する場合は，データ名Cに「VALUE 'FRST'」を設定してCBLDCMCF('RECEIVE△')を呼び出してください。

ステータスコード71001が返されたあとに，再びCBLDCMCF('RECEIVE△')を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではCBLDCMCF('RECEIVE△')を呼び出せません。

72001

データ名Pに設定した論理端末名称が間違っています。

72013

データ名Gに設定した値を超えるセグメントを受信しました。データ名Gに設定した値を超えた部分は切り捨てられました。

32763バイトを超えるセグメントを受信しました。32763バイトを超えた部分は切り捨てられました。

72016

データ名Dに設定した値が間違っています。

データ名Nまたはデータ名Tに設定した値が間違っています。

データ名M7に設定した値が間違っています。

72024

データ名Oに設定した値が間違っています。

72025

データ名Cに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72036

データ名Gに設定した値が不足しています。5バイト以上の領域を確保してください。

上記以外

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

CBLDCMCF('REPLY ') − 応答メッセージの送信（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'REPLY   '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(4) VALUE SPACE.
   02 データ名D  PIC X(4) VALUE SPACE.
   02 データ名E  PIC 9(8).
   02 データ名F  PIC 9(8).
   02 データ名G  PIC 9(9) COMP VALUE ZERO.
   02 データ名H  PIC X(4).
   02 データ名I  PIC X(4) VALUE SPACE.
   02 データ名J  PIC X(4) VALUE SPACE.
   02 データ名K  PIC X(4) VALUE SPACE.
   02 データ名L  PIC X(8) VALUE SPACE.
   02 データ名M1 PIC X(4) VALUE SPACE.
   02 データ名M2 PIC X(8) VALUE SPACE.
   02 データ名M3 PIC X(4) VALUE SPACE.
   02 データ名M4 PIC 9(9) COMP VALUE ZERO.
   02 データ名M5 PIC 9(9) COMP VALUE ZERO.
   02 データ名M6 PIC X(1).
   02 データ名M7 PIC X(1) VALUE '2'.
   02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4) VALUE SPACE.
   02 データ名P  PIC X(8) VALUE SPACE.
   02 データ名Q  PIC X(8).
   02 データ名R  PIC X(8).
   02 データ名T  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名U  PIC 9(4) COMP.
   02 データ名V  PIC X(2) VALUE LOW-VALUE.
   02 データ名W  PIC X(n).

機能

メッセージを入力した論理端末に対して応答メッセージを送信します。応答メッセージは，一つのセグメントで構成されます。

送信できるメッセージの一つのセグメントの最大長は，32000バイトまでです。

継続問い合わせ応答の処理形態で，データ名Rの指定は，最初のセグメントだけ有効です。また，継続問い合わせ応答の終了要求をする場合，データ名Rを空白で埋めてください。

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

TP1/NET/XMAP3の論理端末に応答する場合は，XMAP3で作成した出力論理マップをCOPY文で取り込み，一意名3として指定します。出力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

UAPで値を設定するデータ領域

●データ名A

応答メッセージの送信を示す要求コード「VALUE 'REPLY△△△'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名E，データ名F

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H

送信する応答メッセージのセグメント種別を設定します。

VALUE 'ESI△'

先頭セグメントを応答送信する場合に設定します。

VALUE 'EMI△'

次のどれかの場合に設定します。

論理メッセージが単一セグメントの場合

先頭セグメントの応答送信後に応答メッセージの送信の終了を連絡する場合

●データ名I，データ名J

空白を設定します。

●データ名K

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

VALUE 'SEQ△'

出力通番を付ける場合に設定します。

ただし，非応答型のアプリケーションの場合，出力通番を付けません。

VALUE 'NSEQ'

出力通番を付けない場合に設定します。

空白

省略されたものとして，「VALUE 'NSEQ'」（出力通番を付けない）が設定されます。

●データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

マッピングモードを設定します。

VALUE '0'

論理マップと物理マップをマージしてマッピングする場合に設定します。

VALUE '1'

論理マップだけでマッピングする場合に設定します。

空白

省略されたものとして，「VALUE '0'」（論理マップと物理マップをマージしてマッピングする）が設定されます。

●データ名M7

使用する送受信バッファの形式を「VALUE '2'」と設定します。

●データ名N

MCFで使用する領域です。

●データ名O，データ名P

空白を設定します。

●データ名Q

マップ名を設定します。マップ名は最大6バイトの長さです。マップ名の後ろを空白で埋めて，8文字になるように設定してください。

空白を設定した場合，論理端末定義（mcftalcle -p）のdflmapオペランドで指定したデフォルトマップ名を使用します。

●データ名R

＜継続問い合わせ応答形態の場合＞

次起動アプリケーションを設定します。次起動アプリケーションは最大8バイトの長さです。8バイトに満たない場合，次起動アプリケーションの後ろを空白で埋めてください。

空白を設定した場合，実行中のアプリケーションを次のメッセージ受信時に再び起動します。

CBLDCMCF('REPLY△△△')を呼び出すサービスでCBLDCMCF('CONTEND△')を呼び出す場合はデータ名Rに空白を設定してください。

継続問い合わせ応答を引き継いだエラーイベントでCBLDCMCF('REPLY△△△')を呼び出す際に，データ名Rに空白を設定した場合，継続問い合わせ応答を終了します。ただし，継続問い合わせ応答を引き継いだエラーイベントで，CBLDCMCF('EXECAP△△')を呼び出して継続問い合わせ応答型のアプリケーションを起動し，起動先のアプリケーションでCBLDCMCF('REPLY△△△')を呼び出す際に，データ名Rに空白を設定した場合，継続問い合わせ応答を終了しないで，CBLDCMCF('EXECAP△△')を呼び出したときに設定した継続問い合わせ応答型のアプリケーションを次のメッセージ受信時に再び起動します。

＜継続問い合わせ応答形態以外の場合＞

空白を設定します。

データ名Rの設定は，最初のセグメントだけ有効です。継続問い合わせ応答の処理形態で，終了要求をする場合は空白で埋めてください。

●データ名T

MCFで使用する領域です。

●データ名U

応答送信する出力論理マップの長さ（論理マップ固定部の長さ＋論理マップ可変部・定数部の長さ）を設定します。先頭セグメントの応答送信後，応答メッセージの送信の終了を連絡する場合には，4を設定してください。

●データ名V

MCFで使用する領域です。

●データ名W

送信する応答メッセージのセグメントの内容（論理マップ可変部・定数部に出力する内容）を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

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

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

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

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

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

71003

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

71004

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

71108

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

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

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('REPLY△△△')を呼び出しています。

非応答型のアプリケーションからの問い合わせ応答をしない（UAP共通定義（mcfmuap -c）のnoansreplyオペランドにnoを指定）場合に，非応答型のアプリケーションからCBLDCMCF('REPLY△△△')を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではCBLDCMCF('REPLY△△△')を呼び出せません。

72001

入力元論理端末は，応答メッセージの送信をサポートしていません。

72005

＜データ名HでVALUE 'ESI△'を設定した場合＞

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

72008

応答型のアプリケーションから，CBLDCMCF('EXECAP△△')を呼び出して応答型のアプリケーションを起動したあとで，CBLDCMCF('REPLY△△△')を呼び出しています。

継続問い合わせ応答型のアプリケーションから，CBLDCMCF('EXECAP△△')で継続問い合わせ応答型のアプリケーションを起動したあとで，CBLDCMCF('REPLY△△△')を呼び出しています。

72011

継続問い合わせ応答型でないアプリケーションが，次起動アプリケーションを設定して，CBLDCMCF('REPLY△△△')を呼び出しています。

72016

データ名N，データ名Tに設定した値が間違っています。

データ名M7に設定した値が間違っています。

72017

データ名Kに設定した値が間違っています。

72019

データ名M6に設定した値が間違っています。

72020

データ名Iに設定した値が間違っています。

72026

データ名Hに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72041

＜データ名HでVALUE 'EMI△'を設定した場合＞

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

データ名HにVALUE 'ESI△'を設定したCBLDCMCF('REPLY△△△')を呼び出さないで，メッセージの送信の終了を連絡しています。

72044

CBLDCMCF('CONTEND△')を呼び出したあとで，次起動アプリケーションを設定してCBLDCMCF('REPLY△△△')を呼び出しています。

72045

データ名Rに，継続問い合わせ応答型でないアプリケーションのアプリケーション名を設定してCBLDCMCF('REPLY△△△')を呼び出しています。

72046

データ名Rに設定したアプリケーション名が異なるCBLDCMCF('REPLY△△△')を，2回以上呼び出しています。

72047

データ名Rに，アプリケーション属性定義（mcfaalcap）に定義されていないアプリケーション名を設定してCBLDCMCF('REPLY△△△')を呼び出しています。

上記以外

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

CBLDCMCF('RESEND ') − メッセージの再送（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'  USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
  02 データ名A  PIC X(8) VALUE 'RESEND  '.
  02 データ名B  PIC X(5).
  02 FILLER    PIC X(3).
  02 データ名C  PIC X(4) VALUE SPACE.
  02 データ名D  PIC X(4) VALUE SPACE.
  02 データ名E  PIC 9(8).
  02 データ名F  PIC 9(8).
  02 データ名G  PIC 9(9) COMP VALUE ZERO.
  02 データ名H  PIC X(4) VALUE SPACE.
  02 データ名I  PIC X(4) VALUE SPACE.
  02 データ名J  PIC X(4).
  02 データ名K  PIC X(4).
  02 データ名L  PIC X(8) VALUE SPACE.
  02 データ名M1 PIC X(4) VALUE SPACE.
  02 データ名M2 PIC X(8) VALUE SPACE.
  02 データ名M3 PIC X(4) VALUE SPACE.
  02 データ名M4 PIC 9(9) COMP VALUE ZERO.
  02 データ名M5 PIC 9(9) COMP VALUE ZERO.
  02 データ名M6 PIC X(1).
  02 データ名M7 PIC X(1) VALUE SPACE.
  02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
  02 データ名O  PIC X(4) VALUE 'OUT  '.
  02 データ名P  PIC X(8).
  02 データ名Q  PIC X(8) VALUE SPACE.
  02 データ名R  PIC X(8) VALUE SPACE.
  02 データ名S  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
  02 データ名T  PIC X(8).
  02 データ名U  PIC X(4).
  02 データ名V  PIC 9(9) COMP.
  02 データ名W  PIC X(4).
  02 データ名X  PIC X(12) VALUE LOW-VALUE.

機能

以前に送信したメッセージを，再び送信します。再送するメッセージは，以前に送信したメッセージとは別の，新しいメッセージとして扱います。どのメッセージを再送するかは，次に示す送信済みメッセージの情報で選択できます。

出力先の論理端末名称

メッセージ出力通番

メッセージ種別（一般の一方送信，優先の一方送信）

対象としたメッセージが以前に送信されていない場合は，CBLDCMCF('RESEND△△')はステータスコード70904を返します。また，メッセージキュー（ディスクキュー）内に対象のメッセージがない場合もステータスコード70904を返します。このため，使用するメッセージキューの種別ではディスクキューを指定するとともに，メッセージキューの大きさの定義では余裕を持った値を指定してください。

マップ名は，以前に送信した場合の名称を引き継ぎます。

UAPで値を設定するデータ領域

●データ名A

メッセージの送信を示す要求コード「VALUE 'RESEND△△'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名E，データ名F

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H，データ名I

空白を設定します。

●データ名J

一般として再送するか優先として再送するかを設定します。

VALUE 'NORM'

一般の一方送信メッセージとして再送する場合に設定します。

VALUE 'PRIO'

優先の一方送信メッセージとして再送する場合に設定します。

空白

省略されたものとして，「VALUE 'NORM'」（一般の一方送信メッセージとして再送）が設定されます。

●データ名K

再送するメッセージに出力通番を付け直すかどうかを設定します。

VALUE 'SEQ△'

再送するメッセージに出力通番を付け直す場合に設定します。

VALUE 'NSEQ'

再送するメッセージに出力通番を付け直さない場合に設定します。

空白

省略されたものとして，「VALUE 'NSEQ'」（出力通番を付け直さない）が設定されます。

●データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

マッピングモードの作成方法を設定します。

VALUE '0'

論理マップと物理マップの情報でマッピングする場合に設定します。

VALUE '1'

論理マップの情報だけでマッピングする場合に設定します。

空白

省略されたものとして，「VALUE '0'」（論理マップと物理マップでマッピング）が設定されます。

●データ名M7

空白を設定します。

●データ名N

MCFで使用する領域です。

●データ名O

分岐送信を示す「VALUE 'OUT△'」を設定します。

●データ名P

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

●データ名Q，データ名R

空白を設定します。

●データ名S

MCFで使用する領域です。

●データ名T

再送するメッセージを検索するキーとして，以前に送信したメッセージの出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後には空白を付けます。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名U

再送するメッセージを検索するキーとして，以前に送信したメッセージの送信種別を設定します。

VALUE 'NORM'

一般の一方送信メッセージを対象とする場合に設定します。

VALUE 'PRIO'

優先の一方送信メッセージを対象とする場合に設定します。

空白

省略されたものとして，「VALUE 'NORM'」（一般の一方送信メッセージを対象）が設定されます。

●データ名V

再送するメッセージを検索するキーとして，メッセージの出力通番を設定します。データ名Wに「VALUE 'LAST'」を設定した場合は，ここに設定した値は無効となります。

●データ名W

再送する対象のメッセージを検索するキーとして，最終出力通番を持つメッセージを再送するかどうかを設定します。

VALUE 'LAST'

送信済みのメッセージのうち，最終出力通番を持つメッセージを再送する場合に設定します。この値を設定した場合は，データ名Vに設定した値は無効となります。

空白

省略されたものとして，最終出力通番を持つメッセージを再送対象としないことが設定されます。

●データ名X

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

70904

出力通番使用論理端末数（MCFマネジャ共通定義（mcfmcomn）の-nオプション）を省略，または0を指定しています。

データ名T，データ名U，またはデータ名Vに設定した値が間違っています。

再送するメッセージは次に示す理由により，再送できるメッセージの条件を満たしていません。

再送対象とするメッセージの送信時に出力通番を付けていません。

出力メッセージの割り当て先にメモリキューを使用しています（論理端末定義（mcftalcle -k）のquekindオペランドを省略，またはmemoryを指定）。

論理端末が閉塞しているなどの要因によって，送信メッセージが送信済みになっていません。

送信済みのメッセージがディスクキューに保持されていません（保持メッセージ数はメッセージキューサービス定義のquegrpコマンドの-mオプションで指定します）。

データ名Tで指定した論理端末に割り当てられているメッセージキューは，システム開始時に障害が発生したため，メモリキューを代用して縮退運転をしています。

70905

再送するメッセージのセグメントの長さが，UAP共通定義（mcfmuap -e）で指定した値を超えています。

71002

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

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

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

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

71003

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

71004

メッセージキューから取り出したメッセージを格納するバッファ（作業領域）を，メモリ上に確保できませんでした。

71108

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

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

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('RESEND△△')を呼び出しています。

非トランザクション属性のMHPから，CBLDCMCF('RESEND△△')を呼び出しています。

＜SPPの実行でリターンした場合＞

トランザクションでないSPPの処理から，CBLDCMCF('RESEND△△')を呼び出しています。

72001

データ名Pまたはデータ名Tに設定した論理端末名称が間違っています。

データ名Pに設定した論理端末名称は，定義されていません。

該当する論理端末には，メッセージを再送できません。

72016

データ名Jに設定した値が間違っています。

データ名M4に設定した値が間違っています。

データ名Uに設定した値が間違っています。

データ名N，データ名S，またはデータ名Xに設定した値が間違っています。

72017

データ名Kに設定した値が間違っています。

72019

データ名M6に設定した値が間違っています。

72024

データ名Oに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

上記以外

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

注意事項

メッセージの再送時には，MCFマネジャ定義のUAP共通定義（mcfmuap）の-eオプションと-lオプションの指定値に注意してください。

-eオプション

-eオプションでは，CBLDCMCF('RESEND△△')で使用する作業領域の大きさを指定します。再送するメッセージのセグメントがこの作業領域より大きい場合，CBLDCMCF('RESEND△△')はメッセージを再送しないで，ステータスコード70905を返します。このため，-eオプションでは，セグメントの最大長よりも大きな値を設定しておいてください。

-lオプション

-lオプションでは，出力通番に関して指定します。この内容によっては，メッセージキューファイル内に同じ出力通番を持つメッセージが同時に存在する場合があります。この場合は，どのメッセージを再送するか保証できません。

CBLDCMCF('SEND ') − メッセージの送信（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'SEND    '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(4) VALUE SPACE.
   02 データ名D  PIC X(4) VALUE SPACE.
   02 データ名E  PIC 9(8).
   02 データ名F  PIC 9(8).
   02 データ名G  PIC 9(9) COMP VALUE ZERO.
   02 データ名H  PIC X(4).
   02 データ名I  PIC X(4) VALUE SPACE.
   02 データ名J  PIC X(4).
   02 データ名K  PIC X(4).
   02 データ名L  PIC X(8) VALUE SPACE.
   02 データ名M1 PIC X(4) VALUE SPACE.
   02 データ名M2 PIC X(8) VALUE SPACE.
   02 データ名M3 PIC X(4) VALUE SPACE.
   02 データ名M4 PIC 9(9) COMP VALUE ZERO.
   02 データ名M5 PIC 9(9) COMP.
   02 データ名M6 PIC X(1).
   02 データ名M7 PIC X(1) VALUE '2'.
   02 データ名M8 PIC X(1).
   02 データ名N  PIC X(13) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4) VALUE 'OUT '.
   02 データ名P  PIC X(8).
   02 データ名Q  PIC X(8).
   02 データ名R  PIC X(8) VALUE SPACE.
   02 データ名T1 PIC X(6) VALUE SPACE.
   02 データ名T2 PIC X(22) VALUE LOW-VALUE.
01 一意名3.
   02 データ名U  PIC 9(4) COMP.
   02 データ名V  PIC X(2).
   02 データ名W  PIC X(n).

機能

論理端末に一方送信メッセージを送信します。一方送信メッセージは，一つのセグメントで構成されます。

送信できるメッセージの一つのセグメントの最大長は，32000バイトまでです。

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

TP1/NET/XMAP3の論理端末に送信する場合は，XMAP3で作成した出力論理マップをCOPY文で取り込み，一意名3として指定します。出力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

UAPで値を設定するデータ領域

●データ名A

メッセージの送信を示す要求コード「VALUE 'SEND△△△△'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名E，データ名F

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H

送信するメッセージのセグメント種別を設定します。

VALUE 'ESI△'

先頭セグメントを送信する場合に設定します。

VALUE 'EMI△'

次のどれかの場合に設定します。

論理メッセージが単一セグメントの場合

先頭セグメントの応答送信後に応答メッセージの送信の終了を連絡する場合

●データ名I

空白を設定します。

●データ名J

一般として送信するか優先として送信するかを設定します。

VALUE 'NORM'

一般の一方送信メッセージとして送信する場合に設定します。

VALUE 'PRIO'

優先の一方送信メッセージとして送信する場合に設定します。

空白

省略されたものとして，「VALUE 'NORM'」（一般の一方送信メッセージとして送信する）が設定されます。

●データ名K

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

VALUE 'SEQ△'

出力通番を付ける場合に設定します。

VALUE 'NSEQ'

出力通番を付けない場合に設定します。

空白

省略されたものとして，「VALUE 'NSEQ'」（出力通番は付けない）が設定されます。

●データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4

0を設定します。

●データ名M5

MCFで使用する領域です。

●データ名M6

マッピングモードを設定します。

VALUE '0'

論理マップと物理マップの情報でマッピングする場合に設定します。

VALUE '1'

論理マップだけでマッピングする場合に設定します。

空白

省略されたものとして，「VALUE '0'」（論理マップと物理マップの情報でマッピングする）が設定されます。

●データ名M7

使用する送受信バッファの形式を「VALUE '2'」と設定します。

●データ名M8

空白または「VALUE '0'」を設定します。

●データ名N

MCFで使用する領域です。

●データ名O

分岐送信を示す「VALUE 'OUT△'」を設定します。

●データ名P

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

●データ名Q

マップ名を設定します。マップ名は最大6バイトの長さです。マップ名の後ろを空白で埋めて，8文字になるように設定してください。

空白を設定した場合，論理端末定義（mcftalcle -p）のdflmapオペランドで指定したデフォルトマップ名を使用します。

●データ名R，データ名T1

空白を設定します。

●データ名T2

MCFで使用する領域です。

●データ名U

送信する出力論理マップの長さ（論理マップ固定部の長さ＋論理マップ可変部・定数部の長さ）を設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合には，4を設定してください。

●データ名V

送信完了通知イベントを設定します。データ名Vとビットの設定値の関係を次に示します。

AIX，HP-UXの場合

送信完了通知イベントおよび送信障害通知イベントの要否は，データ名Vの領域の2⁴ビットに設定します。

領域の2⁴ビットに1を設定すると，送信完了通知イベントおよび送信障害通知イベントを通知させます。ただし，これらのイベントを処理するMHPをアプリケーション属性定義（mcfaalcap）で指定していない場合は無効です。

メッセージが複数のセグメントで構成される場合，先頭セグメント送信時の指定が有効になります。

領域の2⁴ビットに0を設定すると，送信完了イベントおよび送信障害通知イベントを通知させません。

Linux，Windowsの場合

送信完了通知イベントおよび送信障害通知イベントの要否は，データ名Vの領域の2¹²ビットに設定します。

領域の2¹²ビットに1を設定すると，送信完了通知イベントおよび送信障害通知イベントを通知させます。ただし，これらのイベントを処理するMHPをアプリケーション属性定義（mcfaalcap）で指定していない場合は無効です。

メッセージが複数のセグメントで構成される場合，先頭セグメント送信時の指定が有効になります。

領域の2¹²ビットに0を設定すると，送信完了イベントおよび送信障害通知イベントを通知させません。

●データ名W

送信するセグメントの内容（論理マップ可変部・定数部に出力する内容）を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

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

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

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

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

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

71003

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

71004

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

71108

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

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

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('SEND△△△△')を呼び出しています。

＜SPPの実行でリターンした場合＞

トランザクションでないSPPの処理から，CBLDCMCF('SEND△△△△')を呼び出しています。

72001

データ名Pに設定した論理端末名称が間違っています。

データ名Pに設定した論理端末名称は，定義されていません。

CBLDCMCF('SEND△△△△')を呼び出せない論理端末を設定しています。

72005

＜データ名HでVALUE 'ESI△'を設定した場合＞

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

72016

データ名Nまたはデータ名T2に設定した値が間違っています。

データ名T1に設定した値が間違っています。

データ名Jに設定した値が間違っています。

データ名M1に設定した値が間違っています。

データ名M7，M8に設定した値が間違っています。

72017

データ名Kに設定した値が間違っています。

72019

データ名M6に設定した値が間違っています。

72020

データ名Iに設定した値が間違っています。

72024

データ名Oに設定した値が間違っています。

72026

データ名Hに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72041

＜データ名HでVALUE 'EMI△'を設定した場合＞

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

データ名HにVALUE 'ESI△'を設定したCBLDCMCF('SEND△△△△')を呼び出さないで，メッセージの送信の終了を連絡しています。

上記以外

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

CBLDCMCF('TACTCN ') − コネクションの確立（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'  USING  一意名1  一意名2

DATA DIVISIONの指定

01  一意名1.
    02  データ名A   PIC X(8)   VALUE 'TACTCN  '.
    02  データ名B   PIC X(5).
    02  FILLER      PIC X(3).
    02  データ名C   PIC X(4).
    02  データ名D1  PIC X(1)   VALUE SPACE.
    02  データ名D2  PIC X(1)   VALUE SPACE.
    02  データ名D3  PIC X(26)  VALUE SPACE.
    02  データ名E   PIC 9(9)   COMP.
    02  データ名F1  PIC X(8).
    02  データ名F2  PIC X(56)  VALUE SPACE.
    02  データ名G   PIC X(8)   VALUE SPACE.
    02  データ名H   PIC X(8)   VALUE SPACE.
    02  データ名I   PIC X(144) VALUE SPACE.
    02  データ名J   PIC X(184) VALUE SPACE.
    02  データ名K   PIC 9(9)   COMP VALUE ZERO.

01  一意名2.
    02  データ名L   PIC 9(9)   COMP VALUE ZERO.

機能

コネクションを確立します。

なお，CBLDCMCF('TACTCN△△')の正常終了は，コネクション確立要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，相手システムとのコネクションの確立が正常に完了したことを示すものではありません。

CBLDCMCF('TACTCN△△')の呼び出し後にコネクションに関する何らかの処理をする場合は，CBLDCMCF('TLSCN△△△')を用いてコネクションの状態を確認してください。

UAPで値を設定するデータ領域

●データ名A

コネクション確立を示す要求コード「VALUE 'TACTCN△△'」を設定します。

●データ名C

確立するコネクションの指定方法を設定します。

VALUE 'LE△△'

確立するコネクションを論理端末名称で指定するときに設定します。

VALUE 'CN△△'

確立するコネクションをコネクションIDで指定するときに設定します。

空白

省略されたものとして，「VALUE 'LE△△'」（論理端末名称を指定）が設定されます。

●データ名D1，データ名D2，データ名D3

空白を設定します。

●データ名E

処理対象のコネクションを持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は，0〜239です。

論理端末名称を使用してコネクションの確立を要求する場合は，無効となります。

0を指定すると，該当するコネクションIDが属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの命令文を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

●データ名F1

確立するコネクションの論理端末名称，またはコネクションIDを設定します。論理端末名称，またはコネクションIDは最大8バイトの長さです。8バイトに満たない場合，論理端末名称，またはコネクションIDの後ろを空白で埋めてください。

●データ名F2，データ名G，データ名H，データ名I，データ名J

空白を設定します。

●データ名K

0を設定します。

●データ名L

0を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71001

MCFが開始処理中のため，CBLDCMCF('TACTCN△△')が受け付けられません。

71002

MCFが終了処理中のため，CBLDCMCF('TACTCN△△')が受け付けられません。

71004

CBLDCMCF('TACTCN△△')の処理中にメモリ不足が発生しました。

71005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

71006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

71007

指定されたコネクションIDは登録されていません。

71008

指定された論理端末名称は登録されていません。

71009

CBLDCMCF('TACTCN△△')が，該当する通信プロセスではサポートされていません。

71010

MCF通信プロセスにコネクションの確立を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

71011

コネクションが削除されているため，CBLDCMCF('TACTCN△△')が受け付けられません。

71014

TP1/NET/NCSB，またはTP1/NET/X25-Extendedの論理端末名称を指定しています。またはTP1/NET/OSI-TPのコネクショングループを指定しています。

72028

データ名Aに設定した値が間違っています。

72052

データ名Kに0でない値が設定されています。

72053

データ名Lに0でない値が設定されています。

72058

データ名Cに'LE△△'，'CN△△'，または空白以外の値が設定されています。

72059

データ名D1，データ名D2，またはデータ名D3に空白でない値が設定されています。

72061

データ名Eに0未満，または240以上の値が設定されています。

72063

データ名F1に空白が設定されています。

72065

データ名F2に空白でない値が設定されています。

72066

データ名Gに空白でない値が設定されています。

72068

データ名Hに空白でない値が設定されています。

72070

データ名Iに空白でない値が設定されています。

72072

データ名Jに空白でない値が設定されています。

72074

データ名F1に設定された文字列中に不正な文字があります。

CBLDCMCF('TACTLE ') − 論理端末の閉塞解除（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'  USING  一意名1  一意名2

DATA DIVISIONの指定

01  一意名1.
    02  データ名A   PIC X(8)   VALUE 'TACTLE  '.
    02  データ名B   PIC X(5).
    02  FILLER      PIC X(3).
    02  データ名C   PIC X(4)   VALUE SPACE.
    02  データ名D1  PIC X(1)   VALUE SPACE.
    02  データ名D2  PIC X(1)   VALUE SPACE.
    02  データ名D3  PIC X(26)  VALUE SPACE.
    02  データ名E   PIC 9(9)   COMP.
    02  データ名F1  PIC X(8).
    02  データ名F2  PIC X(56)  VALUE SPACE.
    02  データ名G   PIC X(8)   VALUE SPACE.
    02  データ名H   PIC X(8)   VALUE SPACE.
    02  データ名I   PIC X(144) VALUE SPACE.
    02  データ名J   PIC X(184) VALUE SPACE.
    02  データ名K   PIC 9(9)   COMP VALUE ZERO.

01  一意名2.
    02  データ名L   PIC 9(9)   COMP VALUE ZERO.

機能

論理端末の閉塞を解除します。

なお，CBLDCMCF('TACTLE△△')の正常終了は，論理端末の閉塞解除要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，論理端末の閉塞解除が正常に完了したことを示すものではありません。

CBLDCMCF('TACTLE△△')の呼び出し後に論理端末に関する何らかの処理をする場合は，CBLDCMCF('TLSLE△△△')を用いて論理端末の状態を確認してください。

UAPで値を設定するデータ領域

●データ名A

論理端末の閉塞の解除を示す要求コード「VALUE 'TACTLE△△'」を設定します。

●データ名C，データ名D1，データ名D2，データ名D3

空白を設定します。

●データ名E

処理対象の論理端末を持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

0を指定すると，該当する論理端末名称が属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの命令文を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

●データ名F1

閉塞解除する論理端末の名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名F2，データ名G，データ名H，データ名I，データ名J

空白を設定します。

●データ名K，データ名L

0を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71001

MCFが開始処理中のため，CBLDCMCF('TACTLE△△')が受け付けられません。

71002

MCFが終了処理中のため，CBLDCMCF('TACTLE△△')が受け付けられません。

71004

CBLDCMCF('TACTLE△△')の処理中にメモリ不足が発生しました。

71005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

71006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

71008

指定された論理端末名称は登録されていません。

71009

CBLDCMCF('TACTLE△△')が，該当する通信プロセスではサポートされていません。

71010

MCF通信プロセスに論理端末の閉塞の解除を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

71011

論理端末が削除されているため，CBLDCMCF('TACTLE△△')が受け付けられません。

72028

データ名Aに設定した値が間違っています。

72052

データ名Kに0でない値が設定されています。

72053

データ名Lに0でない値が設定されています。

72058

データ名Cに空白でない値が設定されています。

72059

データ名D1，データ名D2，またはデータ名D3に空白でない値が設定されています。

72061

データ名Eに0未満または240以上の値が設定されています。

72063

データ名F1に空白が設定されています。

72065

データ名F2に空白でない値が設定されています。

72066

データ名Gに空白でない値が設定されています。

72068

データ名Hに空白でない値が設定されています。

72070

データ名Iに空白でない値が設定されています。

72072

データ名Jに空白でない値が設定されています。

72074

データ名F1に設定された文字列中に不正な文字があります。

CBLDCMCF('TDCTCN ') − コネクションの解放（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'  USING  一意名1  一意名2

DATA DIVISIONの指定

01  一意名1.
    02  データ名A   PIC X(8)   VALUE 'TDCTCN  '.
    02  データ名B   PIC X(5).
    02  FILLER      PIC X(3).
    02  データ名C   PIC X(4).
    02  データ名D1  PIC X(1)   VALUE '1'.
    02  データ名D2  PIC X(1)   VALUE SPACE.
    02  データ名D3  PIC X(26)  VALUE SPACE.
    02  データ名E   PIC 9(9)   COMP.
    02  データ名F1  PIC X(8).
    02  データ名F2  PIC X(56)  VALUE SPACE.
    02  データ名G   PIC X(8)   VALUE SPACE.
    02  データ名H   PIC X(8)   VALUE SPACE.
    02  データ名I   PIC X(144) VALUE SPACE.
    02  データ名J   PIC X(184) VALUE SPACE.
    02  データ名K   PIC 9(9)   COMP VALUE ZERO.

01  一意名2.
    02  データ名L   PIC 9(9)   COMP VALUE ZERO.

機能

コネクションを解放します。

なお，CBLDCMCF('TDCTCN△△')の正常終了は，コネクション解放要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，相手システムとのコネクションの解放が正常に完了したことを示すものではありません。

CBLDCMCF('TDCTCN△△')の呼び出し後にコネクションに関する何らかの処理をする場合は，CBLDCMCF('TLSCN△△△')を用いてコネクションの状態を確認してください。

UAPで値を設定するデータ領域

●データ名A

コネクション解放を示す要求コード「VALUE 'TDCTCN△△'」を設定します。

●データ名C

解放するコネクションの指定方法を設定します。

VALUE 'LE△△'

解放するコネクションを論理端末名称で指定するときに設定します。

VALUE 'CN△△'

解放するコネクションをコネクションIDで指定するときに設定します。

空白

省略されたものとして，「VALUE 'LE△△'」（論理端末名称を指定）が設定されます。

●データ名D1

コネクションの強制解放指定である「VALUE '1'」を設定します。

●データ名D2，データ名D3

空白を設定します。

●データ名E

処理対象のコネクションを持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

論理端末名称を使用してコネクションの解放を要求する場合は，無効となります。

0を指定すると，該当するコネクションIDが属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの命令文を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

●データ名F1

解放するコネクションの論理端末名称，またはコネクションIDを設定します。論理端末名称，またはコネクションIDは最大8バイトの長さです。8バイトに満たない場合，論理端末名称，またはコネクションIDの後ろを空白で埋めてください。

●データ名F2，データ名G，データ名H，データ名I，データ名J

空白を設定します。

●データ名K，データ名L

0を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71001

MCFが開始処理中のため，CBLDCMCF('TDCTCN△△')が受け付けられません。

71002

MCFが終了処理中のため，CBLDCMCF('TDCTCN△△')が受け付けられません。

71004

CBLDCMCF('TDCTCN△△')の処理中にメモリ不足が発生しました。

71005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

71006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

71007

指定されたコネクションIDは登録されていません。

71008

指定された論理端末名称は登録されていません。

71009

CBLDCMCF('TDCTCN△△')が，該当する通信プロセスではサポートされていません。

71010

MCF通信プロセスにコネクションの解放を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

71011

コネクションが削除されているため，CBLDCMCF('TDCTCN△△')が受け付けられません。

71014

TP1/NET/NCSB，またはTP1/NET/X25-Extendedの論理端末名称を指定しています。またはTP1/NET/OSI-TPのコネクショングループ名を指定しています。

72028

データ名Aに設定した値が間違っています。

72052

データ名Kに0でない値が設定されています。

72053

データ名Lに0でない値が設定されています。

72058

データ名Cに'LE△△'，'CN△△'，または空白以外の値が設定されています。

72059

データ名D2，またはデータ名D3に空白でない値が設定されています。

72061

データ名Eに0未満または240以上の値が設定されています。

72063

データ名F1に空白が設定されています。

72065

データ名F2に空白でない値が設定されています。

72066

データ名Gに空白でない値が設定されています。

72068

データ名Hに空白でない値が設定されています。

72070

データ名Iに空白でない値が設定されています。

72072

データ名Jに空白でない値が設定されています。

72074

データ名F1に設定された文字列中に不正な文字があります。

72075

データ名D1に1以外の値が設定されています。

CBLDCMCF('TDCTLE ') − 論理端末の閉塞（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'  USING  一意名1  一意名2

DATA DIVISIONの指定

01  一意名1.
    02  データ名A   PIC X(8)   VALUE 'TDCTLE  '.
    02  データ名B   PIC X(5).
    02  FILLER      PIC X(3).
    02  データ名C   PIC X(4)   VALUE SPACE.
    02  データ名D1  PIC X(1)   VALUE SPACE.
    02  データ名D2  PIC X(1)   VALUE SPACE.
    02  データ名D3  PIC X(26)  VALUE SPACE.
    02  データ名E   PIC 9(9)   COMP.
    02  データ名F1  PIC X(8).
    02  データ名F2  PIC X(56)  VALUE SPACE.
    02  データ名G   PIC X(8)   VALUE SPACE.
    02  データ名H   PIC X(8)   VALUE SPACE.
    02  データ名I   PIC X(144) VALUE SPACE.
    02  データ名J   PIC X(184) VALUE SPACE.
    02  データ名K   PIC 9(9)   COMP VALUE ZERO.

01  一意名2.
    02  データ名L   PIC 9(9)   COMP VALUE ZERO.

機能

論理端末を閉塞します。

なお，CBLDCMCF('TDCTLE△△')の正常終了は，論理端末の閉塞要求をTP1/NET/XMAP3が正常に受け付けたことを意味します。このため，論理端末の閉塞が正常に完了したことを示すものではありません。

CBLDCMCF('TDCTLE△△')の呼び出し後に論理端末に関する何らかの処理をする場合は，CBLDCMCF('TLSLE△△△')を用いて論理端末の状態を確認してください。

UAPで値を設定するデータ領域

●データ名A

論理端末の閉塞を示す要求コード「VALUE 'TDCTLE△△'」を設定します。

●データ名C，データ名D1，データ名D2，データ名D3

空白を設定します。

●データ名E

処理対象の論理端末を持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

0を指定すると，該当する論理端末名称が属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの命令文を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

●データ名F1

閉塞する論理端末の名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名F2，データ名G，データ名H，データ名I，データ名J

空白を設定します。

●データ名K，データ名L

0を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71001

MCFが開始処理中のため，CBLDCMCF('TDCTLE△△')が受け付けられません。

71002

MCFが終了処理中のため，CBLDCMCF('TDCTLE△△')が受け付けられません。

71004

CBLDCMCF('TDCTLE△△')の処理中にメモリ不足が発生しました。

71005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

71006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

71008

指定された論理端末名称は登録されていません。

71009

CBLDCMCF('TDCTLE△△')が，該当する通信プロセスではサポートされていません。

71010

MCF通信プロセスに論理端末の閉塞を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

71011

論理端末が削除されているため，CBLDCMCF('TDCTLE△△')が受け付けられません。

72028

データ名Aに設定した値が間違っています。

72052

データ名Kに0でない値が設定されています。

72053

データ名Lに0でない値が設定されています。

72058

データ名Cに空白でない値が設定されています。

72059

データ名D2，またはデータ名D3に空白でない値が設定されています。

72061

データ名Eに0未満または240以上の値が設定されています。

72063

データ名F1に空白が設定されています。

72065

データ名F2に空白でない値が設定されています。

72066

データ名Gに空白でない値が設定されています。

72068

データ名Hに空白でない値が設定されています。

72070

データ名Iに空白でない値が設定されています。

72072

データ名Jに空白でない値が設定されています。

72074

データ名F1に設定された文字列中に不正な文字があります。

72075

データ名D1に空白でない値が設定されています。

CBLDCMCF('TEMPGET ') − 一時記憶データの受け取り（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'TEMPGET '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(4) VALUE SPACE.
   02 データ名D  PIC X(4) VALUE SPACE.
   02 データ名E  PIC 9(8).
   02 データ名F  PIC 9(8).
   02 データ名G  PIC 9(9) COMP.
   02 データ名H  PIC X(4) VALUE SPACE.
   02 データ名I  PIC X(4) VALUE SPACE.
   02 データ名J  PIC X(4) VALUE SPACE.
   02 データ名K  PIC X(4) VALUE SPACE.
   02 データ名L  PIC X(8) VALUE SPACE.
   02 データ名M1 PIC X(4) VALUE SPACE.
   02 データ名M2 PIC X(8) VALUE SPACE.
   02 データ名M3 PIC X(4) VALUE SPACE.
   02 データ名M4 PIC 9(9) COMP VALUE ZERO.
   02 データ名M5 PIC 9(9) COMP VALUE ZERO.
   02 データ名M6 PIC X(1) VALUE SPACE.
   02 データ名M7 PIC X(1) VALUE '2'.
   02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4) VALUE SPACE.
   02 データ名P  PIC X(8) VALUE SPACE.
   02 データ名Q  PIC X(8) VALUE SPACE.
   02 データ名R  PIC X(8) VALUE SPACE.
   02 データ名S  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名T  PIC 9(4) COMP.
   02 データ名U  PIC X(4).
   02 データ名V  PIC X(n).

機能

継続問い合わせ応答用一時記憶領域に格納されている一時記憶データを受け取ります。

データ名Gの長さ（7〜32006バイト）を超える一時記憶データがある場合，超えた分については切り捨てます。

データ名Gから6を減算した値と比べて一時記憶データ長の方が短い場合，データ名Vに一時記憶データを設定します。データ名Vの残りの領域については何も設定しません。

受け取り要求実行時，初期状態（継続問い合わせ応答開始後，CBLDCMCF('TEMPPUT△')を1回も実行していない状態）の場合，アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで指定した長さの(00)₁₆の一時記憶データがあるものとしてCBLDCMCF('TEMPGET△')を実行します。

受け取り領域（一意名3で示す領域）の形式を次に示します。

UAPで値を設定するデータ領域

●データ名A

一時記憶データの受け取りを示す要求コード「VALUE 'TEMPGET△'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名E，データ名F

MCFで使用する領域です。

●データ名G

一時記憶データを受け取る領域の長さを7〜32006バイトで設定します。

●データ名H，データ名I，データ名J，データ名K，データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファの形式を「VALUE '2'」と設定します。

●データ名N

MCFで使用する領域です。

●データ名O，データ名P，データ名Q，データ名R

空白を設定します。

●データ名S，データ名U

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

●データ名T

前回更新した一時記憶データの長さ＋6が返されます。初期状態の場合，継続問い合わせ応答用一時記憶領域の長さ（アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値）＋6が返されます。

●データ名V

受け取った一時記憶データが返されます。初期状態の場合，継続問い合わせ応答用一時記憶領域の長さ（アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値）分だけ(00)₁₆が埋められます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

SPPではCBLDCMCF('TEMPGET△')を呼び出せません。

72013

一時記憶データ格納バッファ領域の長さ（データ名Gから6を減算した値）を超える一時記憶データを受け取りました。一時記憶データ格納バッファ領域の長さを超える一時記憶データを切り捨てました。

72016

データ名Nまたはデータ名Sに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72036

データ名Gの設定値が不足しています。7バイト以上の領域を確保してください。

72101

継続問い合わせ応答型でないアプリケーションで，CBLDCMCF('TEMPGET△')を呼び出しています。

72106

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('TEMPGET△')を呼び出しています。

72107

CBLDCMCF('CONTEND△')を呼び出したあとで，CBLDCMCF('TEMPGET△')を呼び出しています。

上記以外

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

CBLDCMCF('TEMPPUT ') − 一時記憶データの更新（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'TEMPPUT '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(4) VALUE SPACE.
   02 データ名D  PIC X(4) VALUE SPACE.
   02 データ名E  PIC 9(8).
   02 データ名F  PIC 9(8).
   02 データ名G  PIC 9(9) COMP VALUE ZERO.
   02 データ名H  PIC X(4) VALUE SPACE.
   02 データ名I  PIC X(4) VALUE SPACE.
   02 データ名J  PIC X(4) VALUE SPACE.
   02 データ名K  PIC X(4) VALUE SPACE.
   02 データ名L  PIC X(8) VALUE SPACE.
   02 データ名M1 PIC X(4) VALUE SPACE.
   02 データ名M2 PIC X(8) VALUE SPACE.
   02 データ名M3 PIC X(4) VALUE SPACE.
   02 データ名M4 PIC 9(9) COMP VALUE ZERO.
   02 データ名M5 PIC 9(9) COMP VALUE ZERO.
   02 データ名M6 PIC X(1) VALUE SPACE.
   02 データ名M7 PIC X(1) VALUE '2'.
   02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4) VALUE SPACE.
   02 データ名P  PIC X(8) VALUE SPACE.
   02 データ名Q  PIC X(8) VALUE SPACE.
   02 データ名R  PIC X(8) VALUE SPACE.
   02 データ名S  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名T  PIC 9(4) COMP.
   02 データ名U  PIC X(4).
   02 データ名V  PIC X(n).

機能

継続問い合わせ応答用一時記憶領域に格納されている一時記憶データを更新します。

アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドには，更新する一時記憶データ長（データ名Tから6を減算した値）以上の値を指定してください。

更新する領域（一意名3で示す領域）の形式を次に示します。

UAPで値を設定するデータ領域

●データ名A

一時記憶データの更新を示す要求コード「VALUE 'TEMPPUT△'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名E，データ名F

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H，データ名I，データ名J，データ名K，データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファの形式を「VALUE '2'」と設定します。

●データ名N

MCFで使用する領域です。

●データ名O，データ名P，データ名Q，データ名R

空白を設定します。

●データ名S

MCFで使用する領域です。

●データ名T

一時記憶データの更新データ長を設定します。

●データ名U

MCFで使用する領域です。

●データ名V

一時記憶データが格納されている領域を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71103

一時記憶データを更新するための領域をメモリ上に確保できませんでした。

72000

SPPではCBLDCMCF('TEMPPUT△')を呼び出せません。

72016

データ名Nまたはデータ名Sに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72035

データ名Tに設定した更新データの長さが，アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで定義した長さを超えています。

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

72101

継続問い合わせ応答型でないアプリケーションで，CBLDCMCF('TEMPPUT△')を呼び出しています。

72105

CBLDCMCF('TEMPGET△')を呼び出す前に，CBLDCMCF('TEMPPUT△')を呼び出しています。

72106

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('TEMPPUT△')を呼び出しています。

72107

CBLDCMCF('CONTEND△')を呼び出したあとで，CBLDCMCF('TEMPPUT△')を呼び出しています。

上記以外

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

CBLDCMCF('TLSCN ') − コネクションの状態取得（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'  USING  一意名1  一意名2  一意名3

DATA DIVISIONの指定

01  一意名1.
    02  データ名A   PIC X(8)   VALUE 'TLSCN   '.
    02  データ名B   PIC X(5).
    02  FILLER      PIC X(3).
    02  データ名C   PIC X(4).
    02  データ名D   PIC X(28)  VALUE SPACE.
    02  データ名E   PIC 9(9)   COMP.
    02  データ名F1  PIC X(8).
    02  データ名F2  PIC X(56)  VALUE SPACE.
    02  データ名G   PIC X(8)   VALUE SPACE.
    02  データ名H   PIC X(8)   VALUE SPACE.
    02  データ名I   PIC X(144) VALUE SPACE.
    02  データ名J   PIC X(184) VALUE SPACE.
    02  データ名K   PIC 9(9)   COMP VALUE ZERO.

01  一意名2.
    02  データ名L   PIC 9(9)   COMP VALUE ZERO.

01  一意名3.
    02  データ名M   PIC 9(9)   COMP.
    02  一意名4.
        03  データ名N   PIC X(8).
        03  データ名O   PIC X(4).
        03  データ名P   PIC X(4).
        03  データ名Q   PIC X(40)   VALUE LOW-VALUE.

機能

コネクションの状態を取得します。

UAPで値を設定するデータ領域

●データ名A

コネクション状態取得を示す要求コード「VALUE 'TLSCN△△△'」を設定します。

●データ名C

状態を取得するコネクションの指定方法を設定します。

VALUE 'LE△△'

状態を取得するコネクションを論理端末名称で指定するときに設定します。

VALUE 'CN△△'

状態を取得するコネクションをコネクションIDで指定するときに設定します。

空白

省略されたものとして，「VALUE 'LE△△'」（論理端末名称を指定）が設定されます。

●データ名D

空白を設定します。

●データ名E

処理対象のコネクションを持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

論理端末名称を使用してコネクションの状態取得を要求する場合は，無効となります。

0を指定すると，該当するコネクションIDが属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの命令文を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

●データ名F1

状態を取得するコネクションの論理端末名称，またはコネクションIDを設定します。論理端末名称，またはコネクションIDは最大8バイトの長さです。8バイトに満たない場合，論理端末名称，またはコネクションIDの後ろを空白で埋めてください。

●データ名F2，データ名G，データ名H，データ名I，データ名J

空白を設定します。

●データ名K，データ名L

0を設定します。

●データ名M

一意名4から一意名nの数（データ名N，データ名O，データ名P，およびデータ名Qの組の数）として，1を設定します。

処理終了後は，該当するコネクションの個数が返されます。

●データ名Q

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

●データ名M

この命令文の対象となったコネクションの個数が返されます。

●データ名N

要求したコネクションのコネクションIDが設定されます。8バイトに満たない場合，コネクションIDの後ろが空白で埋められます。

●データ名O

要求したコネクションのプロトコル種別が設定されます。

VALUE 'XP△△'

TP1/NET/XMAP3プロトコル

●データ名P

要求したコネクションの状態として，次の値が設定されます。

VALUE 'ACT△'

確立状態

VALUE 'ACTB'

確立処理中状態

VALUE 'DCT△'

解放状態

VALUE 'DCTB'

解放処理中状態

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71001

MCFが開始処理中のため，CBLDCMCF('TLSCN△△△')が受け付けられません。

71004

CBLDCMCF('TLSCN△△△')の処理中にメモリ不足が発生しました。

71005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

71006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

71007

指定されたコネクションIDは登録されていません。

71008

指定された論理端末名称は登録されていません。

71009

CBLDCMCF('TLSCN△△△')が，該当する通信プロセスではサポートされていません。

71010

MCF通信プロセスにコネクションの状態取得を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

71011

コネクションが削除されているため，CBLDCMCF('TLSCN△△△')が受け付けられません。

71014

TP1/NET/NCSB，またはTP1/NET/X25-Extendedの論理端末名称を指定しています。またはTP1/NET/OSI-TPのコネクショングループ名を指定しています。

72028

データ名Aに設定した値が間違っています。

72052

データ名Kに0でない値が設定されています。

72053

データ名Lに0でない値が設定されています。

72058

データ名Cに'LE△△'，'CN△△'，または空白以外の値が設定されています。

72059

データ名Dに空白でない値が設定されています。

72061

データ名Eに0未満または240以上の値が設定されています。

72063

データ名F1に空白が設定されています。

72065

データ名F2に空白でない値が設定されています。

72066

データ名Gに空白でない値が設定されています。

72068

データ名Hに空白でない値が設定されています。

72070

データ名Iに空白でない値が設定されています。

72072

データ名Jに空白でない値が設定されています。

72074

データ名F1に設定された文字列中に不正な文字があります。

72076

データ名Mに1以外の値が設定されています。

CBLDCMCF('TLSLE ') − 論理端末の状態取得（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'  USING  一意名1  一意名2  一意名3

DATA DIVISIONの指定

01  一意名1.
    02  データ名A   PIC X(8)   VALUE 'TLSLE   '.
    02  データ名B   PIC X(5).
    02  FILLER      PIC X(3).
    02  データ名C   PIC X(4)   VALUE SPACE.
    02  データ名D   PIC X(28)  VALUE SPACE.
    02  データ名E   PIC 9(9)   COMP.
    02  データ名F1  PIC X(8).
    02  データ名F2  PIC X(56)  VALUE SPACE.
    02  データ名G   PIC X(8)   VALUE SPACE.
    02  データ名H   PIC X(8)   VALUE SPACE.
    02  データ名I   PIC X(144) VALUE SPACE.
    02  データ名J   PIC X(184) VALUE SPACE.
    02  データ名K   PIC 9(9)   COMP VALUE ZERO.

01  一意名2.
    02  データ名L   PIC 9(9)   COMP VALUE ZERO.

01  一意名3.
    02  データ名M   PIC 9(9)   COMP.
    02  一意名4.
        03  データ名N   PIC X(8).
        03  データ名O   PIC X(4)  VALUE LOW-VALUE.
        03  データ名P   PIC X(4).
        03  データ名Q   PIC X(40) VALUE LOW-VALUE.

機能

論理端末の状態を取得します。

UAPで値を設定するデータ領域

●データ名A

論理端末の状態取得を示す要求コード「VALUE 'TLSLE△△△'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名E

処理対象の論理端末を持つMCF通信サービスのMCF通信プロセス識別子※を設定します。設定できる範囲は0〜239です。

0を指定すると，該当する論理端末名称が属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの命令文を多数発行する場合は，MCF通信プロセス識別子の指定をお勧めします。

注※

MCF環境定義（mcftenv -s）で指定するMCF通信プロセス識別子は16進数と見なしてください。

例えば，MCF通信プロセス識別子が10の場合，16を設定してください。

●データ名F1

状態を取得する論理端末の名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名F2，データ名G，データ名H，データ名I，データ名J

空白を設定します。

●データ名K，データ名L

0を設定します。

●データ名M

一意名4から一意名nの数（データ名N，データ名O，データ名P，およびデータ名Qの組の数）として，1を設定します。

処理終了後は，該当する論理端末の個数が返されます。

●データ名O，データ名Q

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

●データ名M

この命令文の対象となった論理端末の個数が返されます。

●データ名N

要求した論理端末の名称が設定されます。8バイトに満たない場合，論理端末名称の後ろが空白で埋められます。

●データ名P

要求した論理端末の状態として，次の値が設定されます。

VALUE 'ACT△'

閉塞解除状態

VALUE 'DCT△'

閉塞状態

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71001

MCFが開始処理中のため，CBLDCMCF('TLSLE△△△')が受け付けられません。

71004

CBLDCMCF('TLSLE△△△')の処理中にメモリ不足が発生しました。

71005

通信障害が発生しました。原因については，メッセージログファイルを参照してください。

71006

内部障害が発生しました。原因については，メッセージログファイルを参照してください。

71008

指定された論理端末名称は登録されていません。

71009

CBLDCMCF('TLSLE△△△')が，該当する通信プロセスではサポートされていません。

71010

MCF通信プロセスに論理端末の状態取得を要求しましたが，受け付けられませんでした。原因については，メッセージログファイルを参照してください。

71011

論理端末が削除されているため，CBLDCMCF('TLSLE△△△')が受け付けられません。

72028

データ名Aに設定した値が間違っています。

72052

データ名Kに0でない値が設定されています。

72053

データ名Lに0でない値が設定されています。

72058

データ名Cに空白でない値が設定されています。

72059

データ名Dに空白でない値が設定されています。

72061

データ名Eに0未満または240以上の値が設定されています。

72063

データ名F1に空白が設定されています。

72065

データ名F2に空白でない値が設定されています。

72066

データ名Gに空白でない値が設定されています。

72068

データ名Hに空白でない値が設定されています。

72070

データ名Iに空白でない値が設定されています。

72072

データ名Jに空白でない値が設定されています。

72074

データ名F1に設定された文字列中に不正な文字があります。

72076

データ名Mに1以外の値が設定されています。

DISABLE − 継続問い合わせ応答の終了（データ操作言語）

形式

DATA DIVISION（通信記述項）の指定

CD  通信記述名
    FOR  I-O  STORAGE
  〔STATUS  KEY  IS  データ名1〕.

PROCEDURE DIVISION（通信文）の指定

DISABLE  通信記述名.

機能

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

継続問い合わせ応答の終了　CBLDCMCF('CONTEND△')

UAPで値を設定する項目

●FOR句

継続問い合わせ応答の終了を示すI-O STORAGEを設定します。

OpenTP1から値が返される項目

●STATUS KEY句

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するRECEIVE文を呼び出す前に，DISABLE文を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではDISABLE文を呼び出せません。

72042

通信記述項にSYMBOLIC TERMINAL句の設定があり，空白以外が設定されています。

72101

継続問い合わせ応答型でないアプリケーションで，DISABLE文を呼び出しています。

72107

DISABLE文を2回以上呼び出しています。

72111

次起動アプリケーションを設定してSEND（応答メッセージの送信）文を呼び出したあと，DISABLE文を呼び出しています。

継続問い合わせ応答型のアプリケーション名を設定してSEND（アプリケーションプログラムの起動）文を呼び出したあと，DISABLE文を呼び出しています。

上記以外

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

RECEIVE − メッセージの受信（データ操作言語）

形式

DATA DIVISION（通信記述項）の指定

CD  通信記述名
    FOR  {INPUT|I-O}
  〔STATUS  KEY  IS データ名1〕
  〔SYMBOLIC  TERMINAL  IS データ名2〕
  〔MESSAGE  DATE  IS データ名3〕
  〔MESSAGE  TIME  IS データ名4〕
  〔MAP  NAME  IS データ名5〕
  〔SYNCHRONOUS  MODE  IS ｛ASYNC|データ名6｝〕.

DATA DIVISION（データ記述項）の指定

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

PROCEDURE DIVISION（通信文）の指定

RECEIVE  通信記述名
    〔FIRST〕 SEGMENT
          INTO  一意名1.

機能

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

メッセージの受信　CBLDCMCF('RECEIVE△')

受信できるメッセージの一つのセグメントの最大長は，32763バイトまでです。

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

TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信する場合

XMAP3で作成した入力論理マップをCOPY文で取り込み，一意名1として指定します。入力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

その他のメッセージを受信する場合

UAPで値を設定する項目

●FOR句

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

INPUT

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

I-O

問い合わせメッセージの受信

●SYMBOLIC TERMINAL句

中間セグメントまたは最終セグメントを受信する場合，データ名2に入力元の論理端末名称を設定します。先頭セグメントの受信時に返された論理端末名称を設定してください。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

先頭セグメントまたは単一セグメントの受信処理終了後，SYMBOLIC TERMINAL句にはOpenTP1から値が返されます。

●SYNCHRONOUS MODE句

非同期型でのメッセージ受信を示す，次のどちらかの値を指定してください。

ASYNC

非同期型のメッセージの受信

データ名6

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

'0'または'△'：非同期型のメッセージの受信

省略した場合は，ASYNC（非同期型のメッセージの受信）が設定されます。

●データ名B

MCFで使用する領域です。

●FIRST

先頭セグメントまたは単一セグメントを受信する場合に設定します。

OpenTP1から値が返される項目

●STATUS KEY句

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

●SYMBOLIC TERMINAL句

先頭セグメントまたは単一セグメントを受信する場合，入力元の論理端末名称を受け取りたいときに設定します。省略した場合は，論理端末名称を受け取れません。データ名2にメッセージ入力元の論理端末名称が返されます。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろが空白で埋められます。

中間セグメントまたは最終セグメントを受信する場合は，ここで返された論理端末名称をSYMBOLIC TERMINAL句に設定します。

●MESSAGE DATE句

メッセージを受信した日付を受け取りたい場合に設定します。省略した場合は，メッセージを受信した日付を受け取れません。データ名3にメッセージを受信した日付がYYMMDD（YY：西暦下2けた　MM：月　DD：日）の形式で返されます。

●MESSAGE TIME句

メッセージを受信した時刻を受け取りたい場合に設定します。省略した場合は，メッセージを受信した時刻を受け取れません。データ名4にメッセージを受信した時刻がHHMMSS00（HH：時　MM：分　SS：秒　00は固定）の形式で返されます。

●MAP NAME句

XMAP3のドローで指定した次画面名（マップ名）を受け取りたい場合に設定します。省略した場合は，次画面名を受け取れません。データ名5に次画面名が返されます。次画面名は最大6バイトの長さです。次画面名の後ろは空白で埋められます。

ただし，次の場合は，空白が返されます。

次画面名を指定していない場合

アプリケーション起動機能（dc_mcf_execap関数）で起動されたアプリケーションから，RECEIVE文を発行する場合

●データ名A

受信したセグメントの長さ＋4が返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合，受信した入力論理マップの長さ（論理マップ固定部の長さ＋論理マップ可変部・定数部の長さ）が返されます。

●データ名C

受信したセグメントが返されます。TP1/NET/XMAP3の論理端末画面から入力されたメッセージを受信した場合，論理マップ可変部・定数部に設定されるデータが返されます。一つのセグメントで32763バイトまで受信できます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71000

先頭セグメントを受信するRECEIVE文を2回以上呼び出しています。中間セグメントおよび最終セグメントを受信する場合は，FIRSTを設定しないでRECEIVE文を呼び出してください。

71001

メッセージの最終セグメントを受信したあとで，次のセグメントを受信するRECEIVE文を呼び出しています。直前に呼び出したRECEIVE文でメッセージをすべて受信しました。このステータスコードが返されたあとに，再びRECEIVE文を呼び出した場合は，ステータスコード72000が返されます。

71002

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

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

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

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

71108

メッセージの受信に必要な管理テーブルを確保できませんでした。

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

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するRECEIVE文を呼び出す前に，中間セグメントまたは最終セグメントを受信するRECEIVE文を呼び出しています。先頭セグメントを受信する場合は，FIRSTを設定してRECEIVE文を呼び出してください。

ステータスコード71001が返されたあとで，RECEIVE文を呼び出しています。

＜SPPの実行でリターンした場合＞

SPPではRECEIVE文を呼び出せません。

72001

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

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

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

SYNCHRONOUS MODE句にSYNCが設定されているか，データ名6に'1'が設定されています。

72013

データ名Cのサイズを超えるセグメントを受信しました。データ名Cのサイズを超えた部分は切り捨てられました。

32763バイトを超えるセグメントを受信しました。32763バイトを超えた部分は切り捨てられました。

72016

通信文にWAITING句が設定されています。

72020

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

72024

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

72036

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

上記以外

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

RECEIVE − 一時記憶データの受け取り（データ操作言語）

形式

DATA DIVISION（通信記述項）の指定

CD  通信記述名
    FOR  {INPUT|I-O}  STORAGE
  〔STATUS  KEY  IS  データ名1〕.

DATA DIVISION（データ記述項）の指定

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

PROCEDURE DIVISION（通信文）の指定

RECEIVE  通信記述名  {MESSAGE|SEGMENT}
   INTO  一意名1.

機能

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

一時記憶データの受け取り　CBLDCMCF('TEMPGET△')

一時記憶データ格納バッファ領域（データ名C）は，1〜32000バイトの長さを確保してください。

データ名Cの長さを超える一時記憶データがある場合，超えた分については切り捨てます。

データ名Cの長さと比べて一時記憶データの長さの方が短い場合，データ名Cに一時記憶データを設定します。残りの領域については何も設定しません。

受け取り要求実行時に，初期状態（継続問い合わせ応答開始後，SEND（一時記憶データの更新）文を1回も実行していない状態）の場合，アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで指定した長さの(00)₁₆の一時記憶データがあるものとして実行します。

受け取り後の一意名1の形式を次に示します。

UAPで値を設定する項目

●FOR句

一時記憶データの受け取りであることを示す，INPUT STORAGEまたはI-O STORAGEを設定します。

●データ名B

MCFで使用する領域です。

●MESSAGE，SEGMENT

どちらかを指定します。

OpenTP1から値が返される項目

●STATUS KEY句

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

●データ名A

前回更新した一時記憶データの長さ＋6が返されます。初期状態の場合，継続問い合わせ応答用一時記憶領域の長さ（アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値）＋6が返されます。

●データ名C

受け取った一時記憶データが返されます。初期状態の場合，継続問い合わせ応答用一時記憶領域の長さ（アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドの指定値）分だけ(00)₁₆が埋められます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

72000

SPPではRECEIVE（一時記憶データの受け取り）文を呼び出せません。

72013

一時記憶データ格納バッファ領域の長さ（データ名Cの長さ）を超える一時記憶データを受け取りました。一時記憶データ格納バッファ領域の長さを超える一時記憶データを切り捨てました。

72016

通信文にBEFORE ERASINGが設定されています。

72036

受け取り領域の長さ（一意名1の長さ）が不足しています。7バイト以上の領域を確保してください。

72042

通信記述項にSYMBOLIC TERMINAL句の指定があり，空白以外が設定されています。

72101

継続問い合わせ応答型でないアプリケーションで，RECEIVE（一時記憶データの受け取り）文を呼び出しています。

72106

先頭セグメントを受信するRECEIVE文を呼び出す前に，RECEIVE（一時記憶データの受け取り）文を呼び出しています。

72107

DISABLE文を呼び出したあとで，RECEIVE（一時記憶データの受け取り）文を呼び出しています。

上記以外

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

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

形式1（論理端末へ送信するメッセージを設定して，送信要求する場合）

DATA DIVISION（通信記述項）の指定

CD  通信記述名
    FOR  {OUTPUT|I-O}
  〔STATUS  KEY  IS データ名1〕
  〔SYMBOLIC  TERMINAL  IS データ名2〕
  〔MAP  NAME  IS データ名5〕
  〔SYNCHRONOUS  MODE  IS ｛ASYNC|データ名6｝〕
  〔SWITCHING  MODE  IS {NORMAL|PRIOR|データ名7}〕
  〔NEXT  TRANSACTION  IS データ名8〕
  〔DETAIL  MODE  IS データ名10〕
  〔MAPPING  MODE  IS データ名13〕.

DATA DIVISION（データ記述項）の指定

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

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インタフェースの機能を実現します。

応答メッセージの送信　CBLDCMCF('REPLY△△△')

メッセージの送信　CBLDCMCF('SEND△△△△')

送信できるメッセージの一つのセグメントの最大長は，32000バイトまでです。

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

TP1/NET/XMAP3の論理端末に送信する場合は，XMAP3で作成した出力論理マップをCOPY文で取り込み，一意名1として指定します。出力論理マップの詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」を参照してください。コーディング例については，「付録H.1　コーディング例」を参照してください。

UAPで値を設定する項目

●FOR句

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

OUTPUT

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

I-O

応答メッセージの送信

●SYMBOLIC TERMINAL句

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

●MAP NAME句

マップ名を設定したデータ項目を設定します。データ名5にマップ名を設定します。マップ名は最大6バイトの長さです。6バイトに満たない場合，マップ名の後ろを空白で埋めてください。

MAP NAME句を省略，または，データ名5に空白を設定した場合は，論理端末定義（mcftalcle -p）のdflmapオペランドで指定したデフォルトマップ名を使用します。

●SYNCHRONOUS MODE句

非同期型でのメッセージ送信を示す，次のどちらかの値を指定してください。

ASYNC

非同期型のメッセージの送信

データ名6

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

'0'または'△'：非同期型のメッセージの送信

省略した場合は，ASYNC（非同期型のメッセージの送信）が設定されます。

●SWITCHING MODE句

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

NORMAL

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

PRIOR

優先の一方送信メッセージ

データ名7

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

'0'または'△'：一般の一方送信メッセージ

'1'：優先の一方送信メッセージ

省略した場合，および非応答型のアプリケーションから応答メッセージを送信した場合は，NORMAL（一般の一方送信メッセージ）が設定されます。

●NEXT TRANSACTION句

＜継続問い合わせ応答形態の場合＞

次起動アプリケーションを設定したデータ項目を設定します。データ名8に次起動アプリケーションを設定します。次起動アプリケーションは最大8バイトの長さです。8バイトに満たない場合，次起動アプリケーションの後ろを空白で埋めてください。

NEXT TRANSACTION句を省略，または，データ名8に空白を設定した場合は，実行中のアプリケーションを次のメッセージ受信時に再び起動します。

応答メッセージの送信を行うSEND（メッセージの送信）文を呼び出すサービスでDISABLE（継続問い合わせ応答の終了）文を呼び出す場合はNEXT TRANSACTION句を省略，または，データ名8に空白を設定してください。

継続問い合わせ応答を引き継いだエラーイベントで応答メッセージの送信を行うSEND（メッセージの送信）文を呼び出す際に，NEXT TRANSACTION句を省略，または，データ名8に空白を設定した場合，継続問い合わせ応答を終了します。ただし，継続問い合わせ応答を引き継いだエラーイベントで，SEND（アプリケーションプログラムの起動）文を呼び出して継続問い合わせ応答型のアプリケーションを起動し，起動先のアプリケーションで応答メッセージの送信を行うSEND（メッセージの送信）文を呼び出す際に，NEXT TRANSACTION句を省略，または，データ名8に空白を設定した場合，継続問い合わせ応答を終了しないで，SEND（アプリケーションプログラムの起動）文を呼び出したときに設定した継続問い合わせ応答型のアプリケーションを次のメッセージ受信時に再び起動します。

＜継続問い合わせ応答形態以外の場合＞

NEXT TRANSACTION句を省略，または，データ名8に空白を設定します。

●DETAIL MODE句

出力通番を付けるかどうかを設定します。データ名10に次のどちらかを設定します。

'0'または'△'

出力通番を付けます。

'1'

出力通番を付けません。

省略した場合，および非応答型のアプリケーションから応答メッセージを送信した場合は，出力通番を付けません。

●MAPPING MODE句

マッピングモードを設定します。データ名13に次のどちらかを設定します。

'2'

論理マップだけでマッピングする場合に設定します。

'2'以外

論理マップと物理マップの情報でマッピングする場合に設定します。

省略した場合は，論理マップと物理マップの情報でマッピングします。

●データ名A

出力論理マップの長さ（論理マップ固定部の長さ＋論理マップ可変部・定数部の長さ）を設定します。

●データ名B

送信完了通知イベントおよび送信障害通知イベントを設定します。データ名Bとビットの設定値の関係を次に示します。

AIX，HP-UXの場合

送信完了通知イベントおよび送信障害通知イベントの要否は，データ名Bの領域の2⁴ビットに設定します。

領域の2⁴ビットに1を設定すると，送信完了通知イベントおよび送信障害通知イベントを通知させます。ただし，これらのイベントを処理するMHPをアプリケーション属性定義（mcfaalcap）で指定していない場合は無効です。

領域の2⁴ビットに0を設定すると，送信完了イベントおよび送信障害通知イベントを通知させません。

Linux，Windowsの場合

送信完了通知イベントおよび送信障害通知イベントの要否は，データ名Bの領域の2¹²ビットに設定します。

領域の2¹²ビットに1を設定すると，送信完了通知イベントおよび送信障害通知イベントを通知させます。ただし，これらのイベントを処理するMHPをアプリケーション属性定義（mcfaalcap）で指定していない場合は無効です。

メッセージが複数のセグメントで構成される場合，先頭セグメント送信時の指定が有効になります。

領域の2¹²ビットに0を設定すると，送信完了イベントおよび送信障害通知イベントを通知させません。

●データ名C

送信するセグメントの内容（論理マップ可変部・定数部に出力する内容）を設定します。

●WITH句

送信するメッセージのセグメント種別を設定します。

ESI

先頭セグメントの場合に設定します。

EMI

単一セグメントまたは先頭セグメントの送信後にメッセージ送信の終了を連絡する場合に設定します。

一意名2

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

'1'：ESI（先頭セグメント）

'2'：EMI（単一セグメント）

指定を省略した場合は，EMI（単一セグメント）を設定します。

OpenTP1から値が返される項目

●STATUS KEY句

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

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

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

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

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

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

71003

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

71004

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

71108

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

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

72000

＜MHPの実行でリターンした場合＞

先頭セグメントを受信するRECEIVE文を呼び出す前に，SEND文を呼び出しています。

非応答型のアプリケーションからの問い合わせ応答をしない（UAP共通定義（mcfmuap -c）のnoansreplyオペランドにnoを指定）場合に，非応答型のアプリケーションから応答メッセージを送信しています。

＜SPPの実行でリターンした場合＞

SPPでは応答メッセージを送信するSEND文を呼び出せません。

トランザクションでないSPPの処理から，SEND文を呼び出しています。

72001

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

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

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

＜応答メッセージの送信を行う（FOR句にI-Oを設定し，かつ，SYNCHRONOUS MODE句を省略またはSYNCHRONOUS MODE句にASYNCを設定またはSYNCHRONOUS MODE句に0もしくは空白を設定したデータ名6を設定）場合＞

入力元論理端末は，応答メッセージの送信をサポートしていません。

SYNCHRONOUS MODE句にSYNCが設定されているか，データ名6に'1'が設定されています。

72005

＜WITH句にESIを設定またはWITH句に1を設定した一意名2を設定した場合＞

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

72008

応答型のアプリケーションからSEND（アプリケーションプログラムの起動）文を呼び出して応答型のアプリケーションを起動したあとで，SEND（応答メッセージの送信）文を呼び出しています。

継続問い合わせ応答型のアプリケーションからSEND（アプリケーションプログラムの起動）文を呼び出して継続問い合わせ応答型のアプリケーションを起動したあとで，SEND（応答メッセージの送信）文を呼び出しています。

72011

継続問い合わせ応答型でないアプリケーションが，次起動アプリケーションを設定して，SEND文を呼び出しています。

72017

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

72018

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

72020

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

72024

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

72026

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

72037

通信文にBEFORE句が設定されています。

72041

＜WITH句を省略またはWITH句にEMIを設定またはWITH句に2を設定した一意名2を設定した場合＞

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

＜メッセージの送信の終了を連絡した場合＞

WITH句にESIを設定またはWITH句に1を設定した一意名2を設定したSEND文を呼び出さないで，メッセージの送信の終了を連絡しています。

72044

DISABLE文を呼び出したあとで，次起動アプリケーションを設定してSEND文を呼び出しています。

72045

NEXT TRANSACTION句に継続問い合わせ応答型でないアプリケーションのアプリケーション名を設定して応答メッセージを送信するSEND文を呼び出しています。

72046

NEXT TRANSACTION句に設定したアプリケーション名が異なる応答メッセージの送信を行うSEND文を2回以上呼び出しています。

72047

NEXT TRANSACTION句にアプリケーション属性定義（mcfaalcap）に定義されていないアプリケーション名を設定して応答メッセージを送信するSEND文を呼び出しています。

73001

メッセージ出力先論理端末に障害が発生しました。

上記以外

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

SEND − 一時記憶データの更新（データ操作言語）

形式

DATA DIVISION（通信記述項）の指定

CD  通信記述名
    FOR  I-O  STORAGE
  〔STATUS  KEY  IS  データ名1〕.

DATA DIVISION（データ記述項）の指定

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

PROCEDURE DIVISION（通信文）の指定

SEND  通信記述名  FROM  一意名1.

機能

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

一時記憶データの更新　CBLDCMCF('TEMPPUT△')

アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドには，更新する一時記憶データ長（データ名Aから6を減算した値）以上の値を指定してください。

更新する領域（一意名1で示す領域）の形式を次に示します。

UAPで値を設定する項目

●FOR句

一時記憶データの更新であることを示す，I-O STORAGEを設定します。

●データ名A

一意名1の長さ（データ名Aの長さ（2）＋データ名Bの長さ（4）＋データ名Cの長さ）を設定します。

●データ名B

MCFで使用する領域です。

●データ名C

一時記憶データが格納されている領域を設定します。

OpenTP1から値が返される項目

●STATUS KEY句

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71103

一時記憶データを更新するための領域をメモリ上に確保できませんでした。

72000

SPPではSEND（一時記憶データの更新）文を呼び出せません。

72024

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

72035

データ名Aに設定した更新データの長さが，アプリケーション属性定義（mcfaalcap -n）のtempsizeオペランドで定義した長さを超えています。

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

72042

通信記述項にSYMBOLIC TERMINAL句の指定があり，空白以外が設定されています。

72101

継続問い合わせ応答型でないアプリケーションで，SEND（一時記憶データの更新）文を呼び出しています。

72105

RECEIVE（一時記憶データの受け取り）文を呼び出す前に，SEND（一時記憶データの更新）文を呼び出しています。

72106

先頭セグメントを受信するRECEIVE文を呼び出す前に，SEND（一時記憶データの更新）文を呼び出しています。

72107

DISABLE文を呼び出したあとで，SEND（一時記憶データの更新）文を呼び出しています。

上記以外

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

5　ユーザオウンコーディング，MCFイベントインタフェース

この章では，TP1/NET/XMAP3に関連するユーザオウンコーディング，およびMCFイベントのインタフェースについて説明します。

5.1　ユーザオウンコーディングインタフェース

メッセージ送受信のUAPを，より多様な業務に対応させるために補助するプログラムを，ユーザオウンコーディング（以降UOCと略します）と呼びます。独自の処理でメッセージを編集したり，アプリケーション名を決定したりする場合は，ユーザがUOCを作成してください。

TP1/NET/XMAP3で使用できるUOCを次に示します。

入力メッセージ編集UOC

入力メッセージ編集UOCは，UAPを呼び出す前に入力メッセージを編集したり，アプリケーション名を決定したりするプログラムです。

出力メッセージ編集UOC

出力メッセージ編集UOCは，UAPからメッセージが出力されたあとに，出力されたメッセージを編集するプログラムです。

送信メッセージ通番編集UOC

送信メッセージ通番編集UOCは，受け取った出力通番を基に，ユーザ独自の処理をするプログラムです。

UOCはC言語で作成します。UOCを使用する場合は，あらかじめUOCとMCF提供ライブラリをリンケージする必要があります。

5.1.1　入力メッセージの編集とアプリケーション名の決定

入力メッセージ編集UOCを作成すると，入力メッセージを編集したり，アプリケーション名を決定したりできます。TP1/NET/XMAP3は，UAPを起動するメッセージの最終セグメントを受信すると，入力メッセージ編集UOCを起動します。ただし，MCFイベント発生時とUAPからのアプリケーション起動時は，入力メッセージ編集UOCを起動しません。また，'C'で始まるオンラインコマンドを受信した場合にも，UOCを起動しません。

ユーザは，MCFメイン関数でUOC関数アドレスを設定します。また，コネクション定義（mcftalccn -e）でメッセージ編集用バッファグループ番号と編集バッファ数を定義しておく必要があります。

入力メッセージ編集UOCの処理の流れを次の図に示します。

図5‒1　入力メッセージ編集UOCの処理の流れ

(1)　次画面名の決定

TP1/NET/XMAP3は，マッピング関数からのリターン情報の次画面名を，次画面名格納領域に設定し，入力メッセージ編集UOCに渡します。UOCで，次画面名を決定する必要がない場合には，次画面名格納領域に次画面名を設定する必要はありません。次画面名が6バイトより長い場合，MCFは次画面名不正としてメッセージログを出力し，該当するメッセージを破棄します。

(2)　入力メッセージの編集

入力メッセージをユーザ任意のメッセージ形式に編集できます。TP1/NET/XMAP3は，入力メッセージが格納されている受信バッファと，コネクション定義（mcftalccn -e）で指定した編集バッファを，リスト形式で入力メッセージ編集UOCに渡します。UOCでは，受信バッファと編集バッファを使って入力メッセージを編集します。受信バッファにあるメッセージをUAPに通知するか，編集バッファにあるメッセージをUAPに通知するかは，UOCからのリターンコードで選択します。

(3)　アプリケーション名の決定

アプリケーション名格納領域にアプリケーション名を設定することで，ユーザ独自の方法でアプリケーション名を決定できます。メッセージの先頭からアプリケーション名を取り出し，アプリケーション名格納領域に設定します。ユーザ独自の方法でアプリケーション名を決定する必要がない場合には，アプリケーション名格納領域にアプリケーション名を設定する必要はありません。次の表にアプリケーション名格納領域の初期値を示します。

表5‒1　アプリケーション名格納領域の初期値

入力メッセージ編集コール条件

アプリケーション名格納領域の初期値

継続問い合わせ応答中

前回のUAPのdc_mcf_reply関数で指定された次起動アプリケーション名。UAPが次起動アプリケーション名を省略（ヌル文字を指定）した場合は，そのUAPのアプリケーション名を次起動アプリケーション名とします。

上記以外※

TP1/NET/XMAP3が入力メッセージの先頭から取り出したアプリケーション名。不正なアプリケーション名の場合は，その文字列を最大9文字セットします。文字列が8文字以内の場合は，文字列のあとにヌル文字（'￥0'）が設定されます。

注※

継続問い合わせ応答の初回受信を含みます。

アプリケーション名の形式は，アプリケーション名格納領域の先頭から'￥0'の手前までの1〜8バイトの英数字です。先頭から9バイト目までに'￥0'がない場合は，アプリケーション名を不正として，ERREVT1を起動し，受信メッセージを破棄します。

(4)　UOCエラーリターン処理

UOCからDCMCF_UOC_MSG_NGでリターンした場合，TP1/NET/XMAP3は該当メッセージを破棄し，メッセージログを出力します。また，その内容をオペレータインジケータに表示します。この場合，MCFイベントは起動しません。

(5)　OpenTP1への組み込み方法

スタート関数（dc_mcf_svstart）を発行するMCFメイン関数に，作成したUOCの関数アドレスを設定します。入力メッセージ編集UOCの関数アドレスは任意に求められます。UOCのオブジェクトファイルは，スタート関数を発行するMCFメイン関数をコンパイル・リンケージすれば，TP1/NET/XMAP3の実行形式ファイルに結合されて実行できる状態になります。スタート関数の詳細については，「10.2　MCFメイン関数の作成」を参照してください。

5.1.2　入力メッセージ編集UOCインタフェース

入力メッセージ編集UOCは，次に示す形式で呼び出します。

(1)　形式

ANSI C，C++の形式

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG uoc_func(dcmcf_uoc_min_n *parm)

K&R版 Cの形式

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG uoc_func(parm)

dcmcf_uoc_min_n *parm;

(2)　説明

uoc_func（入力メッセージ編集UOC）を呼び出すとき，MCFは次に示す所定のパラメタをparmに設定します。

(3)　パラメタの内容

(a)　dcmcf_uoc_min_nの内容

typedef struct {
    DCLONG pro_kind;           …プロトコル種別
    char le_name[9];           …論理端末名称
    char reserve1[7];          …予備
    DCLONG rcv_prim;           …受信サービスプリミティブ
    dcmcf_uocbuff_list_n *buflist_adr;
                               …受信バッファリストアドレス
    dcmcf_uocbuff_list_n *ebuflist_adr;
                               …編集バッファリストアドレス
    char aplname[9];           …アプリケーション名
    char reserve2[7];          …予備
    char *pro_indv_ifa;        …プロトコル個別インタフェース領域アドレス
    DCLONG rtn_detail;         …詳細リターンコード
    char reserve3[8];          …予備
} dcmcf_uoc_min_n;

(b)　dcmcf_uocbuff_list_n（バッファリスト）の内容

typedef struct {
    DCLONG buf_num;                       …バッファ情報数
    DCLONG used_buf_num;                  …使用バッファ情報数
    char reserve1[8];                     …予備
    dcmcf_uocbufinf_n buf_array[DCMCF_UOC_BUFF_MAX];
} dcmcf_uocbuff_list_n;

(c)　dcmcf_uocbufinf_n（バッファ情報）の内容

typedef struct {
    char *buf_adr;                      …バッファアドレス
    DCULONG buf_size;                   …バッファ最大長
    DCULONG seg_size;                   …バッファ使用長
    char reserve1[4];                   …予備
    dcmcfuoc_w_type buff_id;            …MCF内部情報1
    DCMLONG buff_addr;                  …MCF内部情報2
    char reserve2[4];                   …予備
} dcmcf_uocbufinf_n;

(d)　dcmxp_min_ifa（プロトコル個別インタフェース）の内容

typedef struct {
    char map_name[9];                   …表示中マップ名
    char reserve1[7];                   …予備
    char next_map_name[9];              …次画面名
    char reserve2[7];                   …予備
    char device[8];                     …デバイス
    char cont_status;                   …継続問い合わせ応答ステータス
    char reserve3[23];                  …予備
} dcmxp_min_ifa;

(4)　MCFが設定する項目

(a)　dcmcf_uoc_min_n

pro_kind

プロトコル種別として，次の値が設定されます。

DCMCF_UOC_PRO_XP

TP1/NET/XMAP3プロトコル

le_name

メッセージを入力した論理端末の名称が設定されます。

rcv_prim

受信サービスプリミティブとして，次の値が設定されます。

DCMCF_UOC_RCV_USELESS

意味なし

buflist_adr

受信用バッファリストのアドレスが設定されます。

ebuflist_adr

編集用バッファリストのアドレスが設定されます。

メッセージ編集バッファが未定義の場合（コネクション定義（mcftalccn）の-eオプションを省略した場合），ebuflist_adrにはNULLが設定されます。

aplname

継続問い合わせ応答中の場合にアプリケーションの名称が設定されます。

pro_indv_ifa

プロトコル個別インタフェース領域のアドレスが設定されます。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

buf_num

バッファ情報の数が設定されます。

(c)　dcmcf_uocbufinf_n（バッファ情報）

buf_adr

バッファのアドレスが設定されます。

buf_size

バッファの最大長が設定されます。

seg_size

受信用バッファリストの場合だけ，バッファの使用長が設定されます。

(d)　dcmxp_min_ifa（プロトコル個別インタフェース）

map_name

メッセージを入力した論理端末に表示していたマップの名称が設定されます。

next_map_name

XMAP3のドローで指定した次画面名（マップ名）が設定されます。

device

論理端末定義（mcftalcle -z）のdeviceオペランドで指定されたデバイス（機種・モデル）が次の形式で設定されます。

cont_status

継続問い合わせ応答ステータスが設定されます。

'c'

継続問い合わせ応答中

'n'

継続問い合わせ応答中以外

(5)　ユーザが値を設定する項目

(a)　dcmcf_uoc_min_n

aplname

UOCで決定したアプリケーション名を設定します。

rtn_detail

詳細リターンコードを設定します。

このコードは，UOCがDCMCF_UOC_MSG_NGでリターンしたときに，MCFがメッセージログファイルに出力します。

詳細リターンコードは，-19999〜-19000の範囲で指定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

used_buf_num

使用したバッファ情報の数を設定します。

DCMCF_UOC_MSG_OK_RCVでリターンする場合は，受信バッファリストのused_buf_numを必ず設定してください。

アプリケーション名だけを決定し，メッセージ編集をしない場合や，セグメント数を変更しない場合は，受信バッファリストのbuf_numの値を設定してください。

(c)　dcmcf_uocbufinf_n（バッファ情報）

seg_size

バッファの使用長を設定します。

(d)　dcmxp_min_ifa（プロトコル個別インタフェース）

next_map_name

次画面の名称を設定します。

(6)　リターン値

uoc_func()は次のコードでリターンしてください。

リターン値

意味

DCMCF_UOC_MSG_OK

正常リターン（編集バッファでスケジューリング）

DCMCF_UOC_MSG_OK_RCV

正常リターン（受信バッファでスケジューリング）

DCMCF_UOC_MSG_NG

メッセージ編集エラー

(7)　パラメタとバッファの関係

UOCインタフェース用パラメタとバッファの関係を次の図に示します。

図5‒2　UOCインタフェース用のパラメタとバッファの関係

注※1

コネクション定義（mcftalccn）の-eオプションを指定しなければNULLとなり，バッファリストとバッファは確保されません。

注※2

バッファ情報は32バイトで次の形式をしています。

5.1.3　出力メッセージの編集

出力メッセージ編集UOCを作成すると，出力メッセージのメッセージ形式を編集できます。TP1/NET/XMAP3は，送信するメッセージの最終セグメントを出力キューから取り出すと，出力メッセージ編集UOCを起動します。

ユーザは，MCFメイン関数でUOC関数アドレスを設定します。また，コネクション定義（mcftalccn -e）でメッセージ編集用バッファグループ番号と編集バッファ数を定義しておく必要があります。

出力メッセージ編集UOCの処理の流れを次の図に示します。

図5‒3　出力メッセージ編集UOCの処理の流れ

(1)　マップ名の決定

要求マップのパラメタの内容を変更して，実際の表示・印刷に使用するマップ名を独自の方法で決定できます。

マップ名はマップ名称格納領域の先頭から'￥0'の手前までの1〜6バイトの英数字です。先頭から7バイト目までに'￥0'がない場合は，マップ名不正となります。また，マップ名として"THROUGH"，および"SYSMSG"を使用してはいけません。

TP1/NET/XMAP3は，ここで返されたマップ名を表示マップ名として管理します。独自の方法でマップ名を決定しない場合，パラメタの内容をそのままにしておきます。

マップ名不正の場合，MCFはメッセージログを出力し，障害通知イベント（VERREVT）を通知します。また，該当するメッセージが応答メッセージの場合は，破棄します。

(2)　出力メッセージの編集

出力メッセージをユーザ任意のメッセージ形式に編集できます。TP1/NET/XMAP3は，出力マッピング前の出力メッセージが格納されている送信バッファと，コネクション定義（mcftalccn -e）で指定した編集バッファを，リスト形式で出力メッセージ編集UOCに渡します。UOCでは，送信バッファと編集バッファを使って，メッセージ形式を変換するなど，出力メッセージを編集します。送信バッファに格納されているメッセージを端末に送信するか，編集バッファに格納したメッセージを端末に送信するかは，UOCからのリターンコードで選択します。

(3)　UOCインタフェース用のパラメタとバッファの関係

UOCインタフェース用のパラメタとバッファの関係は，入力メッセージ編集UOCの場合と同じです。UOCインタフェース用のパラメタとバッファの関係については，「5.1.2(7)　パラメタとバッファの関係」を参照してください。

(4)　UOCエラーリターン処理

UOCからDCMCF_UOC_MSG_NGで終了した場合，TP1/NET/XMAP3は該当メッセージを破棄し，メッセージログを出力します。破棄したメッセージが応答メッセージの場合は，オペレータインジケータにその内容を表示します。なお，この場合MCFイベントは起動しません。

(5)　OpenTP1への組み込み方法

入力メッセージ編集UOCの組み込み方法と同じです。「5.1.1(5)　OpenTP1への組み込み方法」を参照してください。

5.1.4　出力メッセージ編集UOCインタフェース

出力メッセージ編集UOCは，次に示す形式で呼び出します。

(1)　形式

ANSI C，C++の形式

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG uoc_func(dcmcf_uoc_mout_n *parm)

K&R版 Cの形式

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG uoc_func(parm)

dcmcf_uoc_mout_n *parm;

(2)　説明

uoc_func（出力メッセージ編集UOC）を呼び出す場合，MCFは次に示すパラメタをparmに設定します。

(3)　パラメタの内容

(a)　dcmcf_uoc_mout_nの内容

typedef struct {
  DCLONG pro_kind;                 …プロトコル種別
  char le_name[9];                 …論理端末名称
  char reserve1[7];                …予備
  dcmcf_uocbuff_list_n *buflist_adr;
                                   …送信バッファリストアドレス
  dcmcf_uocbuff_list_n *ebuflist_adr;
                                   …編集バッファリストアドレス
  DCLONG output_no;                …メッセージ出力通番
  char msg_type;                   …メッセージ種別
  char outputno_flag;              …メッセージ出力通番有効フラグ
  char resend_flag;                …再送メッセージフラグ
  char reserve2[1];                …予備
  char *pro_indv_ifa;
                                   …プロトコル個別インタフェース領域
  DCLONG rtn_detail;               …詳細リターンコード
  char reserve3[20];               …予備
} dcmcf_uoc_mout_n;

(b)　dcmcf_uocbuff_list_n（バッファリスト）の内容

「5.1.2　入力メッセージ編集UOCインタフェース」を参照してください。

(c)　dcmcf_uocbufinf_n（バッファ情報）の内容

「5.1.2　入力メッセージ編集UOCインタフェース」を参照してください。

(d)　dcmxp_mout_ifa（プロトコル個別インタフェース）の内容

typedef struct {
  char map_name[9];           …要求マップ名
  char reserve1[7];           …予備
  char print_map_name[9];     …表示中マップ名
  char reserve2[7];           …予備
  char device[8];             …デバイス
  char *inf_adr;              …MCF使用領域
  char reserve3[20];          …予備
} dcmxp_mout_ifa;

デバイスについては，「5.1.2　入力メッセージ編集UOCインタフェース」を参照してください。

(4)　MCFが設定する項目

(a)　dcmcf_uoc_mout_n

pro_kind

プロトコル種別として，次の値が設定されます。

DCMCF_UOC_PRO_XP

TP1/NET/XMAP3プロトコル

le_name

UAPで指定した送信先の論理端末の名称が設定されます。

buflist_adr

送信用バッファリストのアドレスが設定されます。

ebuflist_adr

編集用バッファリストのアドレスが設定されます。

メッセージ編集バッファが未定義の場合（コネクション定義（mcftalccn）の-eオプションを省略した場合），ebuflist_adrにはNULLが設定されます。

output_no

メッセージ出力通番が設定されます。ただし，outputno_flagがDCMCF_UOC_OUTPUTNO_OKのときだけ有効です。

msg_type

メッセージ種別が設定されます。

'o'

問い合わせ応答メッセージ

'n'

一般一方送信メッセージ

'p'

優先一方送信メッセージ

outputno_flag

メッセージ出力通番の有効フラグとして，次のどちらかの値が設定されます。

DCMCF_UOC_OUTPUTNO_OK

メッセージ出力通番を有効にします。

DCMCF_UOC_OUTPUTNO_NG

メッセージ出力通番を無効にします。

resend_flag

再送フラグとして，次のどちらかの値が設定されます。

'r'

再送メッセージです。

'n'

再送メッセージではありません。

pro_indv_ifa

プロトコル個別インタフェース領域のアドレスが設定されます。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

buf_num

バッファ情報の数が設定されます。

(c)　dcmcf_uocbufinf_n（バッファ情報）

buf_adr

バッファのアドレスが設定されます。

buf_size

バッファの最大長が設定されます。

seg_size

送信用バッファリストの場合だけ，バッファの使用長が設定されます。

(d)　dcmxp_mout_ifa（プロトコル個別インタフェース）

map_name

要求するマップ名称が設定されます。

print_map_name

現在表示中の，または前回表示・印刷したマップ名称が設定されます。

device

機種またはモデルが設定されます。代行中は代行先の機種またはモデルが設定されます。

inf_adr

MCF使用領域です。

(5)　ユーザが値を設定する項目

(a)　dcmcf_uoc_mout_n

rtn_detail

詳細リターンコードを設定します。

このコードは，UOCがDCMCF_UOC_MSG_NGでリターンした場合に，MCFがメッセージログファイルに出力します。

詳細リターンコードは，-19999〜-19000の範囲で指定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

used_buf_num

使用したバッファ情報の数を設定します。

DCMCF_UOC_MSG_OK_SNDでリターンする場合は，送信バッファリストのused_buf_numを必ず設定してください。セグメント数を変更しない場合は，送信バッファリストのbuf_numの値を設定してください。

(c)　dcmcf_uocbufinf_n（バッファ情報）

seg_size

バッファの使用長を設定します。

(d)　dcmxp_mout_ifa（プロトコル個別インタフェース）

map_name

要求するマップ名称を設定します。

(6)　リターン値

uoc_func()は次のコードでリターンしてください。

リターン値

意味

DCMCF_UOC_MSG_OK

正常リターン（編集バッファでスケジューリング）

DCMCF_UOC_MSG_OK_SND

正常リターン（送信バッファでスケジューリング）

DCMCF_UOC_MSG_NG

メッセージ編集エラー

5.1.5　送信メッセージの通番編集

送信メッセージ通番編集UOCを作成すると，受け取った出力通番を基に，ユーザ独自の処理ができます。

(1)　出力通番編集

送信メッセージ通番編集UOCでは，受け取った出力通番を基に，ユーザ独自の処理ができます。例えば，出力通番を使用して編集した送信メッセージを再送要求します。

送信メッセージ通番編集UOCを起動する場合，メッセージ送信の関数で，出力通番を付けるように設定してください。UOCは，UAPがdc_mcf_send関数，dc_mcf_reply関数，またはdc_mcf_resend関数を発行したときに，MCFによって起動されます。

(2)　OpenTP1への組み込み方法

UAPのメイン関数の中に，UOCの関数アドレスを登録しておきます。UAPのメイン関数に登録するdc_mcf_regster関数の形式を次に示します。

(a)　形式

ANSI C，C++の場合

#include <dcmcf.h>
int dc_mcf_regster(DCLONG flags, DCLONG (*uoc_addr)
                  (DCLONG flags, char *termname,
                  DCLONG sendno, DCLONG sendid,
                  DCLONG dataleng, char *senddata))

K&R版 Cの場合

#include <dcmcf.h>
int dc_mcf_regster(flags, uoc_addr)
DCLONG flags;
DCLONG (*uoc_addr)();

(b)　ユーザが値を設定する引数

flags

DCMCF_SEND_UOCを指定します。

uoc_addr

flagsに対応するUOCのアドレスを指定します。

(c)　リターン値

dc_mcf_regster()のリターン値を次に示します。

リターン値

意味

DC_OK

正常リターン

DCMCFER_INVALID_ARGS

引数の指定誤り

DCMCFER_NOMEM

ローカルメモリ不足

(d)　メイン関数への登録例

MHPの場合

main()
{
extern DCLONG send_uoc();

dc_rpc_open();
dc_mcf_open();
dc_mcf_regster(DCMCF_SEND_UOC,send_uoc);
dc_mcf_mainloop();
dc_mcf_close();
dc_rpc_close();
}

SPPの場合

main()
{
extern DCLONG send_uoc();

dc_rpc_open();
dc_mcf_open();
dc_mcf_regster(DCMCF_SEND_UOC,send_uoc);
dc_rpc_mainloop();
dc_mcf_close();
dc_rpc_close();
}

メイン関数，サービス関数，およびスタブ関数にUOC関数をリンケージしてUAPの実行形式プログラムを生成します。

5.1.6　送信メッセージ通番編集UOCインタフェース

送信メッセージ通番編集UOCは，次に示す形式で，send_uoc関数として作成します。なお，UOCの関数名称はユーザの任意です。

(1)　形式

ANSI C，C++の場合

#include <dcmcf.h>
DCLONG send_uoc(DCLONG flags, char *termname, DCLONG sendno,
                DCLONG sendid, DCLONG dataleng, char *senddata)

K&R版 Cの場合

#include <dcmcf.h>
DCLONG send_uoc(flags, termname, sendno, sendid, dataleng,
                senddata)
DCLONG flags;
char   *termname;
DCLONG sendno;
DCLONG sendid;
DCLONG dataleng;
char   *senddata;

(2)　MCFが値を設定する項目

flags

送信メッセージ通番編集UOCがいつ呼び出されたかが設定されます。

DCMCF_SEND_DML

メッセージを送信する関数または命令文が呼び出されたとき

DCMCF_RESEND_DML

メッセージを再送する関数または命令文が呼び出されたとき

termname

送信先の論理端末名称が設定されます。

sendno

送信メッセージの出力通番が設定されます。

sendid

送信するメッセージ種別が設定されます。

DCMCF_SEND_PRIO

優先の一方送信メッセージ

DCMCF_SEND_NORM

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

DCMCF_SEND_IO

問い合わせ応答メッセージ

dataleng

送信メッセージ長が設定されます。

senddata

セグメントの内容が設定されます。

(3)　リターン値

send_uoc()は次のコードでリターンしてください。

リターン値

意味

DC_OK

正常リターン

5.1.7　UOC作成上の注意事項

UOC作成上の注意事項を次に示します。

(1)　UOCの構造

UOCで使用するローカル変数のサイズは，各UOCで合計1024バイト以内になるように作成してください。また，UOCの中で関数の再帰呼び出しはしないでください。

(2)　UOCで使用できる関数

UOCを作成する場合，UOCでは次に示す関数だけを使用できます。ほかの関数を使用した場合，TP1/NET/XMAP3の動作に影響を与えるおそれがあるため，使用しないでください。

メモリ操作をする関数

データ領域管理関数（malloc/free）

共有メモリ管理関数／システムコール

メモリ操作（memory）

文字列操作（string）

時間取得関数（例：time，gettimeofday）

(3)　UOCの異常処理

TP1/NET/XMAP3のUOCで異常を検知した場合，MCFの所定のリターンコードを使用してMCFに異常の発生を通知してください。UOCでプロセス終了となるシグナル，または，abort()を発行すると，MCFが異常終了します。

(4)　UOCの実行タイミング

MCFが起動するUOCの実行タイミングは，OpenTP1システム，およびUAPの開始，終了シーケンスと同期しない場合があります。UAPより先にUOCが実行されたり，UAPがすべて終了してからUOCが呼び出されたりしてもよいように作ってください。

5.2　MCFイベントインタフェース

TP1/NET/XMAP3でメッセージ送受信をすると，OpenTP1の各種システム情報がMHPに通知されます。これをMCFイベントと呼びます。この節では，TP1/NET/XMAP3が通知するMCFイベントについて説明します。

MCFイベントの概要については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

5.2.1　MCFイベントの種類

TP1/NET/XMAP3が通知するMCFイベントを次の表に示します。

表5‒2　MCFイベント一覧

MCFイベント名

MCFイベントコード

発生した原因

MCFイベント処理用MHPでの処理の例

不正アプリケーション名検出通知イベント

ERREVT1

メッセージのアプリケーション名がMCFアプリケーション定義にありません。

該当するアプリケーションがないことを報告します。

メッセージ廃棄通知イベント

ERREVT2

次の理由で，受信メッセージを廃棄しました。

入力キューに障害が発生しました。

入力メッセージ最大格納数を超過しました。

動的共用メモリが不足しました。

キューファイルが満杯になりました。

MHPのサービス，サービスグループ，またはアプリケーションが閉塞しています。

スケジュール閉塞されているサービスグループの入力キューに未処理受信メッセージが残った状態で，OpenTP1を正常終了または計画停止Aで終了しました。

MHPのサービスグループ，またはアプリケーションがセキュア状態です。

MHPで呼び出すreceive関数にセグメントを渡す前に，MHPが異常終了しました。

アプリケーション名に対応するMHPのサービスがありません。

ユーザサーバ未起動などによって，MHPの起動に失敗しました。

DBMSの障害などによって，トランザクションの開始に失敗しました。

メッセージを廃棄したことを報告します。

問い合わせメッセージの場合は，応答メッセージを出力できます。

UAP異常終了通知イベント

ERREVT3

MHPのセグメント受信関数にセグメントを渡したあとに，MHPの異常終了が発生しました。

UAP異常終了時の対処障害メッセージを送信します。

問い合わせメッセージの場合は，応答メッセージを出力できます。

未処理送信メッセージ廃棄通知イベント

ERREVTA

次の理由で，未処理送信メッセージを破棄しました。

MCFの正常終了処理時に，未処理送信メッセージの滞留時間監視の時間切れ（タイムアウト）が発生しました。

運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数もしくはCBLDCMCF('TDLQLE△△')）の発行によって，出力キューが削除されました。

閉塞されている論理端末の出力キューに未処理送信メッセージが残った状態で，dcstopコマンドが実行されました。

未処理送信メッセージを廃棄したことを報告します。

送信完了通知イベント

SCMPEVT

メッセージの送信を正常に完了しました。

送信の完了を確認して，任意の処理ができます。

送信障害通知イベント

SERREVT

メッセージの送信時に障害が発生しました。

送信障害が発生したことを報告して，任意の処理ができます。

障害通知イベント

VERREVT

次の理由で論理端末画面を廃棄しました。

運用コマンド（mcftdctcn）の入力，またはAPI（dc_mcf_tdctcn関数）の発行が行われました。

XMAP3 Server障害が発生しました。

内部イベントの送受信で障害が発生しました。

継続問い合わせ応答終了処理で障害が発生しました。

メッセージ受信で障害が発生しました。

問い合わせ応答終了処理で障害が発生しました。

メッセージ送信で障害が発生しました。

入力通番チェック処理で障害が発生しました。

キーボードロック解除処理で障害が発生しました。

プリンタ排他解除で障害が発生しました。

プリンタ排他リトライで障害が発生しました。

論理端末画面の廃棄を報告します。

状態通知イベント

VOPNEVT

論理端末画面の生成，および初期画面表示が完了しました。

編集モードで論理端末定義（mcftalcle -p）のinitmapオペランドを指定していない場合は，必ず初期画面を出力します。

VCLSEVT

次の理由で論理端末画面を廃棄しました。

運用コマンド（mcftdctle）の入力，またはAPI（dc_mcf_tdctle関数）の発行が行われました。

XMAP3 ServerとXMAP3の接続が切断されました。

論理端末画面の廃棄を報告します。

5.2.2　MCFイベント通知時のセグメント構成

MCFイベントをMHPに通知する場合，先頭セグメントにMCFイベント情報を設定します。エラーイベント（ERREVTn）の場合は，第2セグメント以降に処理できなかったメッセージセグメントを最終セグメントまで設定します。

MCFイベント通知時のセグメント構成を次の図に示します。

図5‒4　MCFイベント通知時のセグメント構成

MCFイベントは，作成したUAPがC言語の場合とCOBOL言語の場合で，UAPに通知されるデータの形式が異なります。それぞれの言語の場合について示します。

5.2.3　MCFイベント情報の形式（C言語）

MCFイベント情報は，構造体でMCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は，MCFイベントの種類によって異なります。ただし，MCFイベント情報の先頭部分の形式は，各イベントに共通です。

エラーイベント（ERREVTn）で使用する構造体は，<dcmcf.h>で定義してあります。

MCFイベントとして設定される項目を次に示します。

(1)　MCFイベントの共通ヘッダ

(a)　形式

struct dc_mcf_evtheader {
  char mcfevt_name[9] ;               … MCFイベントコード
  char le_name[16] ;                  … 入力元論理端末名称
                          （ERREVT1，ERREVT2，ERREVT3の場合）
                                         出力先論理端末名称
                          （ERREVTA，SCMPEVT，SERREVTの場合）
                                         障害発生論理端末名称
                                            （VERREVTの場合）
                                         該当事象発生論理端末名称
                                    （VOPNEVT,VCLSEVTの場合）
  char cn_name[9] ;                   … コネクション名
  unsigned char format_kind ;         … MCF使用領域
  char reserve01 ;                    … 予備
  DCLONG time ;                       … メッセージ入力時刻
} ;

(b)　MCFイベントとして設定される項目

le_name

メッセージを入力した論理端末名称が設定されます。

ただし，ERREVT2またはERREVT3で，次に示す場合には，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

ERREVTA，SCMPEVTでは，メッセージを出力する論理端末名称が設定されます。

SERREVTでは，送信障害となった出力先論理端末名称が設定されます。

VERREVTでは，障害の発生した論理端末名称が設定されます。コネクション障害時は無効です。ヌル文字が設定されている場合は無効と見なします。

VOPNEVTでは，論理端末画面を生成した論理端末名称が設定されます。

VCLSEVTでは，論理端末画面を廃棄した論理端末名称が設定されます。

cn_name

コネクション名が設定されます。

ただし，ERREVT2またはERREVT3で，次に示す場合には，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

time

メッセージを入力した時刻が，1970年1月1日0時0分0秒からの通算の秒数で設定されます。

(2)　ERREVT1

(a)　形式

struct dc_mcf_evt1_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  char reserve01[12] ;                … 予備
  char reserve02[10] ;                … 予備
  char reserve03[2] ;                 … 予備
  char ap_name[10] ;                  … アプリケーション名
                            （メッセージに対応するアプリケーション名）
  char reserve04[2] ;                 … 予備
} ;

(b)　MCFイベントとして設定される項目

ap_name

次に示すどれかが設定されます。

不正となったアプリケーション名

定義されていないアプリケーション名

(3)　ERREVT2

(a)　形式

struct dc_mcf_evt2_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  char reserve01[12] ;                … 予備
  char reserve02[10] ;                … 予備
  char reserve03[2] ;                 … 予備
  char ap_name[10] ;                  … アプリケーション名
                            （メッセージに対応するアプリケーション名）
  short reason_code ;                 … 理由コード
} ;

(b)　MCFイベントとして設定される項目

ap_name

エラーになったUAPのアプリケーション名が設定されます。

reason_code

ERREVT2の理由コードが設定されます。理由コードの詳細については，「付録J　理由コード一覧」を参照してください。

(4)　ERREVT3

(a)　形式

struct dc_mcf_evt3_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  char reserve01[12] ;                … 予備
  char map_name[10] ;                 … マップ名
  char reserve03[2] ;                 … 予備
  char ap_name[10] ;                  … アプリケーション名
                       （異常が発生したメッセージのアプリケーション名）
  char reserve04[2] ;                 … 予備
  char service_name[32] ;             … サービス名
  char serv_grp_name[32] ;            … サービスグループ名
  char bid[36] ;                      … トランザクションブランチID
} ;

(b)　MCFイベントとして設定される項目

map_name

XMAP3のドローで指定した次画面名（マップ名）が返されます。

なお，次に示す場合は，ヌル文字が設定されます。

次画面名を指定していない場合

アプリケーション起動機能で起動されたMHPで障害が発生した場合

上記の障害発生時に，MCFイベントとして起動されたMHPによって，さらにアプリケーション起動機能で起動されたMHPで，障害が発生した場合

ap_name

異常が発生したMHPのアプリケーション名が設定されます。

service_name

異常が発生したMHPのアプリケーション名に対応するサービス名が設定されます。

serv_grp_name

異常が発生したMHPのサービスグループ名が設定されます。

bid

トランザクションのブランチIDが次の形式で設定されます。

(5)　ERREVTA

(a)　形式

struct dc_mcf_evta_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  char reserve01[12] ;                … 予備
  char map_name[10] ;                 … マップ名
  char reserve03[2] ;                 … 予備
  char ap_name[10] ;                  … アプリケーション名
                         （正常終了したメッセージのアプリケーション名）
  char reserve04[2] ;                 … 予備
  char reserve05[32] ;                … 予備
  char reserve06[32] ;                … 予備
  DCLONG user_leng ;                  … 他プロトコルの場合の使用領域
  char user_data[16] ;                … 他プロトコルの場合の使用領域
  char reserve07[16] ;                … 予備
} ;

(b)　MCFイベントとして設定される項目

map_name

出力マップ名が設定されます。send関数で省略した場合は，ヌル文字が設定されます。

ap_name

正常終了したメッセージのアプリケーション名が設定されます。

MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は，ヌル文字が設定されます。

(6)　SCMPEVT

(a)　形式

struct dc_mcf_scmpevt_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  DCLONG output_no ;                  … 出力通番
  char map_name[9] ;                  … マップ名
  char msg_type ;                     … メッセージ種別
  char reason_code ;                  … 起動理由
  chat reserve01[5] ;                 … 予備
  DCLONG user_leng;                   … 他プロトコルの場合の使用領域
  char pro_indv_inf[16] ;             … プロトコル個別情報
  char user_data[16] ;                … 他プロトコルの場合の使用領域
} ;

プロトコル個別情報の形式を次に示します。

struct dcmxpn_sevtpro_type {
  DCLONG serr_reason1 ;               … 理由コード1
  DCLONG serr_reason2 ;               … 理由コード2
  DCLONG serr_detail ;                … 詳細コード
  char reserve1[4] ;                  … 予備
} ;

なお，dcmxpn_sevtpro_typeは<dcmxpn.h>で定義されています。

(b)　MCFイベントとして設定される項目

output_no

出力通番が設定されます。出力通番がない場合は，-1が設定されます。

map_name

出力マップ名が設定されます。send関数で省略した場合は，ヌル文字が設定されます。

msg_type

メッセージ種別として，次の値が設定されます。

o：応答送信メッセージ

n：一般一方送信メッセージ

p：優先一方送信メッセージ

reason_code

起動理由として次の値が設定されます。

△：メッセージが正常に送信されました。

pro_indv_inf

ヌル文字が設定されます。

(7)　SERREVT

(a)　形式

struct dc_mcf_serrevt_type {
  struct dc_mcf_evtheader evtheader ; … MCFイベント共通ヘッダ
  DCLONG output_no ;                  … 出力通番
  char map_name[9] ;                  … マップ名
  char msg_type ;                     … メッセージ種別
  char send_error_code ;              … 送信エラーコード
  unsigned char trouble_code ;        … 障害コード
  unsigned char detail_info ;         … 詳細情報
  unsigned char error_code ;          … エラーコード
  unsigned char error_subcode ;       … エラーサブコード
  chat reserve01[1] ;                 … 予備
  DCLONG user_leng;                   … 他プロトコルの場合の使用領域
  char pro_indv_inf[16] ;             … プロトコル個別情報
  char user_data[16] ;                … 他プロトコルの場合の使用領域
} ;

プロトコル個別情報の形式を次に示します。

struct dcmxpn_sevtpro_type {
  DCLONG serr_reason1 ;               … 理由コード1
  DCLONG serr_reason2 ;               … 理由コード2
  DCLONG serr_detail ;                … 詳細コード
  char reserve1[4] ;                  … 予備
} ;

なお，dcmxpn_sevtpro_typeは<dcmxpn.h>で定義されています。

(b)　MCFイベントとして設定される項目

output_no

出力通番が設定されます。出力通番がない場合は，-1が設定されます。

map_name

出力マップ名が設定されます。send関数で省略した場合は，ヌル文字が設定されます。

msg_type

メッセージ種別として，次の値が設定されます。

o：応答送信メッセージ

n：一般一方送信メッセージ

p：優先一方送信メッセージ

send_error_code

送信エラーコードとして，'E'が設定されます。

trouble_code

障害コードとして，次の値が設定されます。

DCMCF_SERR_SEND：送信エラー

DCMCF_SERR_LOGICAL：論理エラー

detail_info

詳細情報として，次に示す値が設定されます。

DCMCF_SERR_ERROR：エラーによる送信障害

DCMCF_SERR_DCTCN：運用コマンド（mcftdctcn）による送信障害

DCMCF_SERR_DCTLE：運用コマンド（mcftdctle）による送信障害

error_code

ヌル文字が設定されます。

error_subcode

メッセージの状態として，次の値が設定されます。

DCMXPN_SEVT_QUE：メッセージ保持

DCMXPN_SEVT_DEL：メッセージ消去

pro_indv_inf

detail_infoがDCMCF_SERR_ERROR以外の場合，ヌル文字が設定されます。

detail_infoがDCMCF_SERR_ERRORの場合，次の項目を設定します。

serr_reason1

理由コード1として，次に示す値が設定されます。理由コード1の詳細については，「付録J　理由コード一覧」参照してください。

DCMXPN_RSN1_MCF：MCF障害

DCMXPN_RSN1_XPW：XMAP3 Server障害

DCMXPN_RSN1_PRT：プリンタ障害

DCMXPN_RSN1_INVL：無効メッセージ

serr_reason2

理由コード1がDCMXPN_RSN1_INVL以外の場合，理由コード2が設定されます。理由コード2の詳細については，「付録J　理由コード一覧」参照してください。

serr_detail

マッピングサービスの障害コードが設定されます。プリンタ送信時，ほかのメッセージのマッピング障害によって，送信障害通知されることがありますが，障害コードが設定されるのは，マッピング障害となったメッセージだけです。障害コードについては，「付録K　マッピングサービスの障害コードの詳細」を参照してください。

(8)　VERREVT

(a)　形式

struct dcmxpn_verrevt_type {
  struct dc_mcf_evtheader header ;    … MCFイベント共通ヘッダ
  DCLONG le_kind ;                    … 論理端末属性
  DCLONG err_fact ;                   … 障害要因コード
  DCLONG err_reason1 ;                … 理由コード1(4バイト)
  DCLONG err_reason2 ;                … 理由コード2(4バイト)
  DCLONG err_detail ;                 … 詳細コード(4バイト)
  char reserve1[36] ;                 … 予備
} ;

(b)　MCFイベントとして設定される項目

le_kind

論理端末の属性として，次の値が設定されます。

(00000001)₁₆：画面

(00000002)₁₆：プリンタ

err_fact

障害の要因として，次の値が設定されます。

DCMXPN_PLACE_CN：コネクション障害

DCMXPN_PLACE_LE：論理端末障害

err_reason1

理由コード1が設定されます。理由コード1の詳細については，「付録J　理由コード一覧」を参照してください。

err_reason2

理由コード2が設定されます。理由コード2の詳細については，「付録J　理由コード一覧」を参照してください。

err_detail

マッピング障害の場合，障害コードが設定されます。障害コードの詳細については，「付録K　マッピングサービスの障害コードの詳細」を参照してください。

(9)　VOPNEVT，VCLSEVT

(a)　形式

struct dcmxpn_statevt_type {
  struct dc_mcf_evtheader header ;    … MCFイベント共通ヘッダ
  DCLONG le_kind ;                    … 論理端末属性
  char reserve1[52] ;                 … 予備
} ;

(b)　MCFイベントとして設定される項目

le_kind

論理端末の属性として，次の値が設定されます。

(00000001)₁₆：画面

(00000002)₁₆：プリンタ

5.2.4　MCFイベント情報の形式（COBOL言語）

COBOL言語の場合はセグメントの並びとして渡されます。

COBOL言語のUAPの場合のMCFイベント情報の内容を，以降の表に示します。

表5‒3　COBOL言語のMCFイベント情報の内容（ERREVT1）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

エラーイベントコード

0

3

英数字

'ERR'が設定されます。

3

3

−

−

6

2

英数字

ERREVT1を示す'1△'が設定されます。

入力元論理端末名称

8

8

英数字

メッセージを入力した論理端末名称が設定されます。

予備

16

20

−

−

アプリケーション名

36

8

英数字

次に示すどれかが設定されます。

形式不正のアプリケーション名

定義されていないアプリケーション名

予備

44

8

−

−

予備

52

8

−

−

予備

60

8

−

−

コネクション名

68

8

英数字

コネクション名が設定されます。

予備

76

16

−

−

メッセージが入力された日付

92

8

外部10進数字

端末入力メッセージを入力した日付が設定されます。

「yyyymmdd」の形式です。

yyyy：西暦の年

mm：月

dd：日

メッセージが入力された時刻

100

8

外部10進数字

端末入力メッセージを入力した時刻が設定されます。

「hhmmss00」の形式です。

hh：時

mm：分

ss：秒

00は固定です。

予備

108

16

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒4　COBOL言語のMCFイベント情報の内容（ERREVT2）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

エラーイベントコード

0

3

英数字

'ERR'が設定されます。

3

3

−

−

6

2

英数字

ERREVT2を示す'2△'が設定されます。

入力元論理端末名称

8

8

英数字

メッセージを入力した論理端末名称が設定されます。

次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

16

20

−

−

アプリケーション名

36

8

英数字

エラーになったUAPのアプリケーション名が設定されます。

予備

44

8

−

−

予備

52

8

−

−

予備

60

8

−

−

コネクション名

68

8

英数字

コネクション名が設定されます。

次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

76

16

−

−

メッセージが入力された日付

92

8

外部10進数字

端末入力メッセージを入力した日付が設定されます。

「yyyymmdd」の形式です。

yyyy：西暦の年

mm：月

dd：日

メッセージが入力された時刻

100

8

外部10進数字

端末入力メッセージを入力した時刻が設定されます。

「hhmmss00」の形式です。

hh：時

mm：分

ss：秒

00は固定です。

理由コード※

108

4

外部10進数字

理由コードが設定されます。

予備

12

12

−

−

（凡例）

−：該当しません。または，使用されません。

注※

理由コードの内容については，「付録J　理由コード一覧」を参照してください。

表5‒5　COBOL言語のMCFイベント情報の内容（ERREVT3）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

エラーイベントコード

0

3

英数字

'ERR'が設定されます。

3

3

−

−

6

2

英数字

ERREVT3を示す'3△'が設定されます。

入力元論理端末名称

8

8

英数字

メッセージを入力した論理端末名称が設定されます。

次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

16

20

−

−

予備

36

8

−

−

マップ名

44

8

−

XMAP3のドローで指定した次画面名（マップ名）が設定されます。

なお，次に示す場合は，空白が設定されます。

次画面名を指定していない場合

アプリケーション起動機能で起動されたMHPで障害が発生した場合

上記の障害発生時に，MCFイベントとして起動されたMHPによって，さらにアプリケーション起動機能で起動されたMHPで，障害が発生した場合

アプリケーション名

52

8

英数字

異常が発生したメッセージのアプリケーション名が設定されます。

予備

60

8

−

−

コネクション名

68

8

英数字

コネクション名が設定されます。

次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

76

16

−

−

メッセージが入力された日付

92

8

外部10進数字

端末入力メッセージを入力した日付が設定されます。

「yyyymmdd」の形式です。

yyyy：西暦の年

mm：月

dd：日

メッセージが入力された時刻

100

8

外部10進数字

端末入力メッセージを入力した時刻が設定されます。

「hhmmss00」の形式です。

hh：時

mm：分

ss：秒

00は固定です。

予備

108

16

−

−

サービス名

124

31

英数字

異常が発生したMHPのアプリケーション名に対応するサービス名が設定されます。

予備

155

1

−

−

サービスグループ名

156

31

英数字

異常が発生したMHPのサービスグループ名が設定されます。

予備

187

1

−

−

トランザクションブランチID（BID）

188

36

英数字

異常が発生したトランザクションブランチIDが設定されます。

トランザクションブランチIDの形式については，表5-6を参照してください。

予備

224

28

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒6　トランザクションブランチIDの形式

項目

位置（バイト）

長さ（バイト）

属性

OpenTP1システムノードID

0

8

英数字

トランザクションブランチ番号

8

4

2進数字

OpenTP1使用領域

12

4

−

予備

16

20

−

表5‒7　COBOL言語のMCFイベント情報の内容（ERREVTA）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

エラーイベントコード

0

3

英数字

'ERR'が設定されます。

3

3

−

−

6

2

英数字

ERREVTAを示す'A△'が設定されます。

出力先論理端末名称

8

8

英数字

メッセージを出力する論理端末名称が設定されます。

予備

16

20

−

−

予備

36

8

−

−

マップ名

44

8

−

出力マップ名が設定されます。

send関数で省略した場合は，(0000000000000000)₁₆が設定されます。

アプリケーション名

52

8

英数字

正常終了したメッセージのアプリケーション名が設定されます。MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は，空白が設定されます。

予備

60

8

−

−

コネクション名

68

8

英数字

コネクション名が設定されます。

予備

76

16

−

−

メッセージが入力された日付

92

8

外部10進数字

端末入力メッセージを入力した日付が設定されます。

「yyyymmdd」の形式です。

yyyy：西暦の年

mm：月

dd：日

メッセージが入力された時刻

100

8

外部10進数字

端末入力メッセージを入力した時刻が設定されます。

「hhmmss00」の形式です。

hh：時

mm：分

ss：秒

00は固定です。

予備

108

16

−

−

予備

124

31

−

−

予備

155

1

−

−

予備

156

31

−

−

予備

187

1

−

−

予備

188

36

−

−

予備

224

28

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒8　COBOL言語のMCFイベント情報の内容（SCMPEVT）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

イベントコード

0

8

英数字

イベントコード「SCMPEVT」が設定されます。

出力先論理端末名称

8

8

英数字

出力先論理端末名称が設定されます。

予備

16

8

−

−

コネクション名

24

8

英数字

コネクション名が設定されます。

メッセージが入力された日付

32

8

外部10進数字

SCMPEVTが通知された日付が設定されます。

「yyyymmdd」の形式です。

yyyy：西暦の年

mm：月

dd：日

メッセージが入力された時刻

40

8

外部10進数字

SCMPEVTが通知された時刻が設定されます。

「hhmmss00」の形式です。

hh：時

mm：分

ss：秒

00は固定です。

出力通番

48

4

2進数字

出力通番が設定されます。

出力通番がない場合は，(FFFFFFFF)₁₆が設定されます。

マップ名

52

8

英数字

出力マップ名が設定されます。

send関数で省略した場合は，(0000000000000000)₁₆が設定されます。

メッセージ種別

60

1

英数字

メッセージ種別として，次の値が設定されます。

o：応答送信メッセージ

n：一般一方送信メッセージ

p：優先一方送信メッセージ

理由コード

61

1

英数字

理由コードが設定されます。

△：送信が正常に終了しました。

予備

62

9

−

−

プロトコル個別情報

71

16

英数字

MCFが使用します。

予備

87

19

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒9　COBOL言語のMCFイベント情報の内容（SERREVT）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

イベントコード

0

8

英数字

イベントコード「SERREVT」が設定されます。

出力先論理端末名称

8

8

英数字

送信障害となった出力先論理端末名称が設定されます。

予備

16

8

−

−

コネクション名

24

8

英数字

コネクション名が設定されます。

メッセージが入力された日付

32

8

外部10進数字

SERREVTが通知された日付が設定されます。

「yyyymmdd」の形式です。

yyyy：西暦の年

mm：月

dd：日

メッセージが入力された時刻

40

8

外部10進数字

SERREVTが通知された時刻が設定されます。

「hhmmss00」の形式です。

hh：時

mm：分

ss：秒

00は固定です。

出力通番

48

4

2進数字

出力通番が設定されます。

出力通番がない場合は，(FFFFFFFF)₁₆が設定されます。

マップ名

52

8

英数字

出力マップ名が設定されます。

send関数で省略した場合は，(0000000000000000)₁₆が設定されます。

メッセージ種別

60

1

英数字

メッセージ種別として，次の値が設定されます。

o：応答送信メッセージ

n：一般一方送信メッセージ

p：優先一方送信メッセージ

送信エラーコード

61

1

英数字

送信エラーコードとして，'E'が設定されます。

障害コード

62

1

2進数字

障害コードとして，次の値が設定されます。

(01)₁₆：送信エラー

(02)₁₆：論理エラー

詳細情報

63

1

2進数字

詳細情報が設定されます。

(01)₁₆：エラーによる送信障害

(02)₁₆：運用コマンド（mcftdctcn）による送信障害

(03)₁₆：運用コマンド（mcftdctle）による送信障害

エラーコード

64

1

2進数字

MCFが使用します。

エラーサブコード

65

1

2進数字

メッセージの状態として，次の値が設定されます。

(00)₁₆：メッセージ保持

(01)₁₆：メッセージ消去

予備

66

5

−

−

プロトコル個別情報

71

16

英数字

詳細情報が(01)₁₆の場合は，表5-10を参照してください。

それ以外の場合は，MCFが使用します。

予備

87

19

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒10　プロトコル個別情報の内容

項目

位置

（バイト）

長さ

（バイト）

属性

内容

理由コード1

0

4

2進数字

理由コード1が設定されます。

(00000001)₁₆：MCF障害

(00000002)₁₆：XMAP3 Server障害

(00000003)₁₆：プリンタ障害

(00000005)₁₆：無効メッセージ

理由コード2※1

4

4

2進数字

理由コード1が(00000001)₁₆，(00000002)₁₆，(00000003)₁₆の場合に，理由コード2が設定されます。

詳細コード※2

8

4

2進数字

マッピングサービスの障害コードが設定されます。

予備

12

4

−

−

（凡例）

−：該当しません。または，使用されません。

注※1

理由コード2の内容については，「付録J　理由コード一覧」を参照してください。

注※2

プリンタ送信時，ほかのメッセージのマッピング障害によって，送信障害通知されることがありますが，障害コードが設定されるのは，マッピング障害となったメッセージだけです。

表5‒11　COBOL言語のMCFイベント情報の内容（VERREVT）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

イベントコード

0

8

英数字

イベントコード「VERREVT」が設定されます。

入力元論理端末名称

8

8

英数字

障害の発生した論理端末名称が設定されます。コネクション障害時は無効です。ヌル文字が設定されている場合は無効と見なします。

予備

16

8

−

−

入力元コネクション名

24

8

英数字

コネクション名が設定されます。

メッセージ入力日付

32

8

外部10進数字

VERREVTを起動した日付が設定されます。

メッセージ入力時刻

40

8

外部10進数字

VERREVTを起動した時刻が設定されます。

論理端末属性

48

4

2進数字

論理端末の属性として，次の値が設定されます。

(00000001)₁₆：画面

(00000002)₁₆：プリンタ

障害要因コード

52

4

2進数字

障害の要因として，次の値が設定されます。

(00000030)₁₆：コネクション障害

(00000031)₁₆：論理端末障害

理由コード1※

56

4

2進数字

理由コード1が設定されます。

理由コード2※

60

4

2進数字

理由コード2が設定されます。

詳細コード

64

4

2進数字

詳細コードが設定されます。

予備

68

36

−

−

（凡例）

−：該当しません。または，使用されません。

注※

理由コード1，および理由コード2の内容については，「付録J　理由コード一覧」を参照してください。

表5‒12　COBOL言語のMCFイベント情報の内容（VOPNEVT，VCLSEVT）

項目

位置

（バイト）

長さ

（バイト）

属性

内容

イベントコード

0

8

英数字

イベントコード「VOPNEVT」，または「VCLSEVT」が設定されます。

入力元論理端末名称

8

8

英数字

VOPNEVTでは，論理端末画面を生成した論理端末名称が設定されます。

VCLSEVTでは，論理端末画面を廃棄した論理端末名称が設定されます。

予備

16

8

−

−

入力元コネクション名

24

8

英数字

コネクション名が設定されます。

メッセージ入力日付

32

8

外部10進数字

VOPNEVT，VCLSEVTを入力した日付が設定されます。

メッセージ入力時刻

40

8

外部10進数字

VOPNEVT，VCLSEVTを入力した時刻が設定されます。

論理端末属性

48

4

2進数字

論理端末の属性として，次の値が設定されます。

(00000001)₁₆：画面

(00000002)₁₆：プリンタ

予備

52

52

−

−

（凡例）

−：該当しません。または，使用されません。

6　OpenTP1マッピングサービス機能

TP1/NET/XMAP3では，OpenTP1マッピングサービスを使ってマッピングしています。

この章では，OpenTP1マッピングサービス機能について説明します。

OpenTP1マッピングサービス機能の利用形態

OpenTP1マッピングサービス機能の利用形態を，次の図に示します。

図6‒1　TP1/NET/XMAP3がOpenTP1マッピングサービスを利用する形態

OpenTP1マッピングサービスは，XMAP3 Serverのライブラリを使用してマッピングを処理します。

以降，OpenTP1マッピングサービスのことを，マッピングサービスと呼びます。

OpenTP1マッピングサービス機能の詳細

マッピングサービス機能には，次の三つがあります。

予約項目

マッピングサービスプロセス

マッピングサービスコマンド

この節では，予約項目とマッピングプロセスについて説明します。

マッピングサービスコマンドの詳細については，この章の「マッピングサービスコマンド」で説明します。

予約項目

画面・帳票定義で予約項目を指定した場合，マッピングサービスで情報を設定するのでUAPで値を設定する必要はありません。

マッピングサービス機能で提供する予約項目を次の表に示します。

表6‒1　予約項目

予約項目

項目名称

フォーマット

備考

日付1※

DATE1

yy-mm-dd

yy：西暦年の下2けた

mm：月

dd：日

ddd：通算日

日付2※

DATE2

yy/mm/dd

日付3※

DATE3

dd/mm/yy

日付4※

DATE4

mm/dd/yy

日付5※

DATE5

yy・ddd

時刻※

TIME

hh:mm:ss

時：分：秒

論理端末名称

VTNAME

半角8文字

−

再送ID

RESEND

半角8文字

再送メッセージ以外は表示されません。

出力通番

VTSEQ

mnnnnn

m：メッセージ種別

O：問い合わせ応答

N：一般分岐

P：優先分岐

n：出力通番

出力通番1

VTSEQ1

mnnnn

（凡例）

−：該当しません。

注※

マッピングサービスに対してマッピング要求をしたときの日付，時刻を環境変数TZに従って設定します。

マッピングサービスプロセス

マルチスレッド環境では，マップのローディングが要求されると，マップをローディングしている間，要求元スレッドのプロセス全体がブロックされます。プロセス全体がブロックされることを避けるため，マップロード用のプロセスを用意します。これをマッピングサービスプロセスと呼びます。

マッピングサービスプロセスの起動，終了，およびマッピングサービスプロセスの機能について次に示します。

(1)　マッピングサービスプロセスの起動

OpenTP1システムが起動されると，自動的にマッピングサービスプロセスが起動されます。あらかじめ，MCFマネジャ共通定義（mcfmcomn -m）のmapsvnameオペランドで，_mpで始まるマッピングサービス定義ファイル名を指定しておきます。

マッピングサービスプロセスは，マッピングサービス定義※1，およびマッピングサービス属性定義※2の定義に従って，マッピングサービスを開始します。

注※1

ファイル名=$DCCONFPATH/マッピングサービス名

マッピングサービス定義については，この章の「OpenTP1マッピングサービスに関する定義」を参照してください。

注※2

ファイル名=$DCCONFPATH/MAPSattr/dcmap.def（ユーザで任意に指定できます）

マッピングサービス属性定義については，この章の「OpenTP1マッピングサービスに関する定義」を参照してください。

(2)　マッピングサービスプロセスの終了

OpenTP1システムが終了すると，自動的にマッピングサービスプロセスも終了します。

(3)　マッピングサービスプロセスの機能

ここでは，マッピングサービスプロセスの機能について説明します。

(a)　常駐マップの管理

常駐マップとは，マッピングサービスの開始から終了まで，常にメモリ上にローディングされている物理マップのことです。常駐マップは，マッピングサービス属性定義のMAPNAMEオペランドで指定します。マッピングサービス開始時，OpenTP1システムは，すべての常駐マップをローディングします。

マッピングサービスは，物理マップを標準読み込みパスから常駐マップローディング用バッファにローディングして管理します。頻繁に使用するマップをバッファに常駐させることで，入出力に掛かる時間を短縮できます。

(b)　非常駐マップの管理

マッピングサービス属性定義のMAPNAMEオペランドで指定されていない，常駐マップ以外のマップを非常駐マップと呼びます。メッセージの送受信時，常駐マップローディングバッファに必要な物理マップがない場合は，非常駐マップをローディングします。非常駐マップはLRU管理マップローディング用バッファに格納されます。

マッピングサービスは，まず，必要な物理マップがLRU管理マップローディング用バッファ内にある場合には，マップのローディングはしないで，そのマップを使用してマッピング処理をします。

LRU管理マップローディング用バッファ内に必要な物理マップがない場合には，LRU管理マップローディング用バッファにマップをローディングします。新しい非常駐マップをローディングするため，ほかの非常駐マップを削除する必要がある場合，最も古い時点に使用されたマップを削除します。最も古い時点に使用されたマップから削除していく物理マップの管理をマップLRU管理と呼びます。この場合，LRU管理されるマップの数は，最大でマッピングサービス属性定義のMAPCNTオペランドで指定した数になります。

(c)　物理マップ読み込みパス

マッピングサービスは，通常，マッピングサービス属性定義のMAPPATHオペランドで指定した標準用物理マップ読み込みパスから物理マップをローディングします。マッピングサービスは，標準用物理マップ読み込みパスからの非常駐マップのローディングに失敗すると，交代用の読み込みパスから物理マップをローディングします。マッピングサービス属性定義のALTPATHオペランドで，交代用物理マップ読み込みパス名を指定しておいてください。なお，交代用物理マップ読み込みパスには標準用物理マップ読み込みパスと同じ物理マップを用意しておいてください。

(d)　マップファイルの作成

物理マップを格納するファイルをマップファイルと呼びます。

マップファイルはPCでXMAP3のドロー，またはマップ生成機能でターゲットに合った物理マップと論理マップを作成して使用します。

UNIXの場合は，作成した物理マップをUNIX環境に転送します。UNIX環境にファイル転送する際には，転送モードに注意してください。また，UNIX環境に物理マップを転送後，UNIX版XMAP3 Server Runtimeが提供するcmapcpコマンドを実行してください。Windowsの場合は，作成した物理マップをそのまま使用します。

詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 開発ガイド」，またはマニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」を参照してください。

OpenTP1マッピングサービスに関する定義

複数のMCF通信プロセスがマッピングサービスを使用する場合，マッピング処理の性能確保のために，または通信プロセスごとに異なったマッピング環境を使用するために，複数のマッピングサービスを生成できます。

マッピングサービス定義では，マッピングサービスを識別するための識別子および動作条件（サービス番号，属性定義ファイル名）を指定します。

マッピングサービス属性定義では，マッピングサービス識別子ごとに，そのマッピング属性を指定します。

マッピングサービス定義とマッピングサービス属性定義の詳細は以降で説明します。

マッピングサービス定義

形式

この形式で，マッピングサービス識別子ごとに1行（255バイト以内）で記述してください。先頭から15行までを有効とします。行の継続はできません。

複数のマッピングサービスを使用する場合の制約の詳細については，「7.　システム定義」の「各種定義数に関する制約事項」を参照してください。

行の先頭に#があった場合，その行をコメントと見なします。

行の途中に#があった場合，その行の#以降をコメントと見なします。

定義文の解析でエラーが発生した場合は，その行をスキップして無効にします。

定義例

適用OSがUNIXの場合

mapserv1;h3050A;8500;dcmap.def;h3050A;0;

適用OSがWindowsの場合

mapserv1;h3050A;8500;dcmap.def;windows;0;

複数のマッピングサービスを使用する場合（適用OSがWindowsの場合の例）

mapserv1;h3050A;8500;dcmap.def;windows;0;
mapserv2;h3050A;8501;dcmap.def;windows;0;

機能

マッピングサービス識別子ごとにマッピングサービス定義情報を指定します。

オペランド

1. マッピングサービス識別子　　〜〈1〜8文字の識別子〉

マッピングサービスを識別するための識別子を指定します。

2. マッピングサービスホスト名　　〜〈1〜32文字の識別子〉

自ホスト名を指定します。

ホスト名は，hostsファイル，DNSなどで，IPアドレスとのマッピングができる必要があります。

3. マッピングサービス番号　　〜〈符号なし整数〉((1024〜65535))

サーバを意識するための番号です。サービス番号がほかのサーバと重複しないように指定してください。

4.マッピングサービス属性定義ファイル名　　〜〈1〜12文字の識別子〉

マッピングサービスの属性を定義したファイル名を指定します。

5. ホスト名　　〜〈1〜32文字の識別子〉

OSがUNIXの場合は，'**'または自ホスト名を指定します。

OSがWindowsの場合は，windowsを指定します。

6. サービス番号

0を指定します。

マッピングサービス属性定義

形式

MAPDEF
   SYSTNAM = ( XPRES )
   MAPPATH = 標準用物理マップ読み込みパス名
  〔ALTPATH = 交代用物理マップ読み込みパス名〕
  〔MAPNAME = ( 物理マップ名〔, 物理マップ名〕...)〕
  〔MAPCNT = LRU管理をする物理マップ数〕
  〔POOLSIZ = 物理マップをロードする領域サイズ〕
  〔NULLCD = ヌルクリアコード〕
  〔DATACD = データ有無コード〕
  〔PADCHR = 初期設定値〕
  〔RESEND = 再送ID〕
  〔RETRYSEC = 再試行間隔〕
  〔RETRYCNT = 再試行回数〕
  〔PATHSTS = YES｜NO〕
  〔ERRLOG4 = YES｜NO〕
END

注

各オペランドは形式に示すとおりの順序で記述してください。

1行は，255バイト以内で記述してください。

MAPNAMEオペランドの（）内でだけ，行を継続できます。継続文字は¥です。その他のオペランドでの行の継続はできません。

行の先頭に#があった場合，その行をコメントと見なします。

行の途中に#があった場合，その行の#以降をコメントと見なします。

機能

マッピングサービスの属性を定義します。

マッピングサービス定義でマッピングサービス識別子ごとに，マッピングサービス属性定義ファイルを指定します。この場合，複数のマッピングサービス識別子が，同じマッピングサービス属性定義ファイルを指定してもかまいません。

オペランド

●MAPDEF

マッピングサービス属性定義の開始を宣言します。この定義文以前にほかの定義文を記述することはできません。

●SYSTNAM = (XPRES)

マッピングをする端末システム名をXPRESと指定します。

●MAPPATH = 標準用物理マップ読み込みパス名　　〜〈1〜255文字のパス名〉

メッセージ編集時に使用する標準用マップライブラリを格納しているパス名を指定します。マッピングサービスは，ここで指定したパス名から物理マップを読み込みます。

●ALTPATH = 交代用物理マップ読み込みパス名　　〜〈1〜255文字のパス名〉

標準用マップライブラリの物理マップ読み込みに失敗した場合に使用する，交代用マップライブラリのパス名を指定します。

●MAPNAME = (物理マップ名〔, 物理マップ名〕...)　　〜〈3〜8文字の英数字〉

メモリに常駐する物理マップの名称を指定します。指定できる物理マップ数は最大25個です。

●MAPCNT = LRU管理をする物理マップ数　　〜〈符号なし整数〉((1〜32767))《10》

LRU管理の対象となる物理マップの数を指定します。必ず該当するマッピングサービスを使用するMCF通信プロセスの数以上を指定してください。

●POOLSIZ = 物理マップをロードする領域サイズ　　〜〈符号なし整数〉((1〜32767))《32》

LRU管理をする物理マップを読み込む領域の大きさをキロバイト単位で指定します。メモリに常駐する物理マップ（常駐マップ）は対象にしません。

領域のサイズを求める計算式を次に示します。

LRU管理をする物理マップのファイルサイズの最大値×MAPCNTの指定値

●NULLCD = ヌルクリアコード　　〜〈2けたの16進数字〉((00〜FF))

ヌルクリアコードを指定します。指定しない場合は，ヌルクリアコードは無効になります。ヌルクリアコードの先頭には16進数字であることを示す「0x」を指定できます。

出力論理フィールドの先頭1バイトにヌルクリアコードを格納すると画面上の対応フィールドをヌル(00)₁₆クリアします。

●DATACD = データ有無コード　　〜〈2けたの16進数字〉((00〜FF))

画面・帳票定義のデータ有無コードを変更する場合に指定します。指定しない場合は，データ有無コードは無効になります。データ有無コードの先頭には16進数字であることを示す「0x」を指定できます。

●PADCHR = 初期設定値　　〜〈2けたの16進数字〉((00〜FF))

入力編集時に入力論理マップの各データ項目をあらかじめクリアしておく初期設定値を指定します。ユーザが何も入力しなかったデータ項目には，この値が設定されます。初期設定値の先頭には16進数字であることを示す「0x」を指定できます。

入力編集時の初期設定値の優先度は次のとおりです。

XMAP3のドロー，ドローセットアップ（ドローセットアップの論理マップ属性ダイアログで指定する「初期クリア文字」など）

PADCHRオペランド

XMAP3のドロー，ドローセットアップ，およびPADCHRオペランドで初期設定値を指定しない場合，初期設定値は無効になります。

●RESEND = 再送ID　　〜〈1〜8文字の英数字〉

画面・帳票定義の予約項目の項目名称をRESENDと定義したフィールドにセットする再送IDを指定します。

●RETRYSEC = 再試行間隔　　〜〈符号なし整数〉((1〜60))《3》

マッピングサービスプロセスとのデータ送受信に失敗したときの再試行間隔を，秒単位で指定します。

●RETRYCNT = 再試行回数　　〜〈符号なし整数〉((0〜255))《10》

マッピングサービスプロセスとのデータ送受信に失敗したときの再試行回数を指定します。0を指定した場合は再試行しません。

●PATHSTS={YES｜NO}

dcmapchgコマンドで変更したパス情報のリラン引き継ぎをするかどうかを指定します。

YES：

パス情報のリラン引き継ぎをします。

NO：

パス情報のリラン引き継ぎをしません。

オペランドを省略するとNOを指定したとみなされます。

●ERRLOG4={YES｜NO}

処理中にマッピングエラーが発生した場合，エラー情報を取得するかどうかを指定します。エラー情報は，$DCDIR/spool/saveの下にdcmap_errxxxxx（xxxxxはプロセスID）というファイルを作成してその中に出力されます。

YES：

エラー情報を取得します。

NO：

処理中にエラーコード4（軽いエラー）のマッピングエラーが発生した場合，エラー情報を取得しません。

オペランドを省略するとNOを指定したとみなされます。

●END

マッピングサービス属性定義の終わりを宣言します。

OpenTP1マッピングサービス機能の定義例

マッピングサービス機能のシステム構成例を次の図に示します。

図6‒2　マッピングサービス機能のシステム構成例（UNIXの場合）

図6‒3　マッピングサービス機能のシステム構成例（Windowsの場合）

マッピングサービス機能の定義例を次の図に示します。

図6‒4　マッピングサービス機能の定義例

注※1

適用OSがUNIXの場合の例です。

マッピングサービス定義例は，次の場所で提供しています。

適用OSがUNIXの場合：/BeTRAN/examples/mcf/XMAP3/conf/_mpsvdef

適用OSがWindowsの場合：%DCDIR%¥examples¥mcf¥xmap3¥conf¥_mpsvdef

注※2

定義文に誤りを検出した場合には，該当するマッピングサービス識別子のサービスを開始しません。

注※3

適用OSがUNIXの場合の例です。

マッピングサービス属性定義例は，次の場所で提供しています。

適用OSがUNIXの場合：/BeTRAN/examples/mcf/XMAP3/conf/dcmap.def

適用OSがWindowsの場合：%DCDIR%¥examples¥mcf¥xmap3¥conf¥MAPSattr¥dcmap.def

マッピングサービスコマンド

パス名の変更

マッピングサービス属性定義のMAPPATHで指定した標準用物理マップ読み込みパス名を変更できます。また，ALTPATHで指定した交代用物理マップ読み込みパス名も変更できます。

OpenTP1システムは，標準用物理マップ読み込みパス名を変更するコマンドが入力されると，常駐マップローディング用バッファとLRU管理マップローディング用バッファの内容を，いったん消去します。その後，コマンドで指定した読み込みパスから，常駐マップをバッファにローディングします。

交代用物理マップ読み込みパス名を変更するコマンドが入力されても，常駐マップローディング用バッファとLRU管理マップローディング用バッファの内容は消去されません。また，常駐マップのバッファへのローディングも起きません。

マッピングサービスコマンドを次の表に示します。

表6‒2　マッピングサービスコマンド

コマンド名

機能

dcmapchg

物理マップファイルの読み込みパス名を変更します。

dcmapls

ロード済みの物理マップを表示します。

dcmapchg（読み込みパス名の変更）

形式

dcmapchg {{-mM｜-aM} マッピングサービス識別子 パス名｜-h}

機能

物理マップファイルの読み込みパス名を変更します。

オプション

●-mM

標準用物理マップ読み込みパス名を変更する場合に指定します。

●-aM

交代用物理マップ読み込みパス名を変更する場合に指定します。

●マッピングサービス識別子　　〜〈1〜8文字の英数字〉

マッピングサービス定義で指定したマッピングサービス識別子を指定します。

●パス名　　〜〈1〜255文字のパス名〉

変更後のパス名を指定します。

●-h

コマンドのヘルプメッセージを表示します。

記述例

標準用物理マップ読み込みパス名を/tmpに変更する場合

dcmapchg -mM  mapserv1  /tmp

出力メッセージ

出力メッセージID

内容

出力先

KFCA10865-I

ヘルプメッセージ

標準出力

KFCA10870-E

オプション<%s>の指定に誤りがあります。

再度指定してください。

標準出力

KFCA10871-E

マッピングサービス識別子<%s>の指定に誤りがあります。

再度指定してください。

標準出力

KFCA10872-E

dcmapchgコマンド入力に誤りがあります。

再度指定してください。

標準出力

KFCA10875-E

マッピングサービスプロセスとの通信に異常を検知しました。

標準出力

KFCA10876-E

パス名の変更が失敗しました。

標準出力

KFCA10877-E

マッピングサービス識別子<%s>はマッピングサービス定義ファイルに定義されていません。

標準出力

KFCA10878-I

パス名を変更しました。

{mappath｜altpath}=〈パス名〉

標準出力

KFCA10879-E

マッピングサービスが起動されていません。

標準出力

KFCA10880-E

パス名<%s>の指定に誤りがあります。

再度指定してください。

標準出力

KFCA10886-E

コマンド処理中にエラーが発生しました。

標準出力

dcmapls（ロード済み資源の表示）

形式

dcmapls {{-s｜-d｜-p} マッピングサービス識別子｜-h}

機能

ロード済みの物理マップを表示します。LRU管理されている物理マップは，その時点で最も新しく使用された物理マップから順に表示されます。常駐指定した物理マップでもマッピングサービス開始時に入出力エラーなどで常駐化できなかったものは表示されません。

オプション

●-s

標準形式で表示する場合に指定します。

●-d

詳細形式で表示する場合に指定します。

●-p

読み込みパス名だけ表示する場合に指定します。

●マッピングサービス識別子　　〜〈1〜8文字の英数字〉

マッピングサービス定義で指定したマッピングサービス識別子を指定します。

●-h

コマンドのヘルプメッセージを表示します。

記述例

マッピングサービス識別子　mapserv1のロード済み資源情報を標準形式で表示する場合

dcmapls  -s  mapserv1

出力形式

iiiiiiii tttttttt pppppppp
mmmmmmmm sssss※ hhhhhhhh※ llllllll※ oooooooo※

注※

オプション-dを指定した場合に出力されます。

iiiiiiii：マッピングサービス識別子

tttttttt：パス表示種別

MAPNAME…常駐する物理マップの読み込みパス

MAPPATH…標準物理マップ読み込みパス

ALTPATH…交代物理マップ読み込みパス

pppppppp：パス名

mmmmmmmm：物理マップ名

オプション-pを指定した場合，またはマッピングサービス属性定義ファイルでパス名称が省略されている場合は出力されません。

sssss：物理マップサイズ

hhhhhhhh：保守情報1

llllllll：保守情報2

oooooooo：保守情報3

出力メッセージ

メッセージID

内容

出力先

KFCA10866-I

ヘルプメッセージ

標準出力

KFCA10870-E

オプション＜％s＞の指定に誤りがあります。

再度指定してください。

標準出力

KFCA10871-E

マッピングサービス識別子＜％s＞の指定に誤りがあります。

再度指定してください。

標準出力

KFCA10872-E

dcmaplsコマンド入力に誤りがあります。

再度指定してください。

標準出力

KFCA10875-E

マッピングサービスプロセスとの通信に異常を検知しました。

標準出力

KFCA10877-E

マッピングサービス識別子＜％s＞はマッピングサービス定義ファイルに定義されていません。

標準出力

KFCA10879-E

マッピングサービスが起動されていません。

標準出力

KFCA10881-E

マップ名称一覧表示に失敗しました。

標準出力

KFCA10886-E

コマンド処理中にエラーが発生しました。

標準出力

KFCA10888-I

MPSの状態表示を開始します。

標準出力

KFCA10889-I

MPSの状態表示を終了します。

標準出力

KFCA10890-I

表示情報（マップ識別子，パス表示種別，パス名称）

標準出力

KFCA10891-I

表示情報（物理マップ名）

標準出力

KFCA10892-I

表示情報（名称，サイズ，保守情報）

標準出力

注意事項

TP1/NET/XMAP3でマッピングサービス機能を使用する場合の注意事項を次に示します。

(1)定義できないマップ名

マップ定義する場合のマップ名には，"THROUGH"，"OPEMSG1"，"OPEMSG2"，"OPEMSG3"，"OPEMSG4"，"TESTPRT"，および"SYSMSG"を使用できません。

(2)マッピングエラー情報

マッピング処理中にマッピングエラーが発生した場合，エラー情報を次のファイルに採取します。

ファイル名称：$DCDIR/spool/save/dcmap_err×××

×××は，プロセス番号に置き換えられます。

7　システム定義

この章では，TP1/NET/XMAP3を使用するために必要な，OpenTP1のシステム定義の中でのTP1/NET/XMAP3固有のシステム定義，および定義例について説明します。

TP1/NET/XMAP3の定義の概要

TP1/NET/XMAP3のシステム定義は，OpenTP1のネットワークコミュニケーション定義の中で定義します。

OpenTP1のネットワークコミュニケーション定義の中での定義

OpenTP1のネットワークコミュニケーション定義のうち，TP1/NET/XMAP3に固有の定義について説明します。

使用する定義ファイル

MCFおよびTP1/NET/XMAP3を起動するには，定義ファイルに環境情報を設定する必要があります。MCFで使用する定義ファイルを次の表に示します。

表7‒1　MCFで使用する定義ファイル

定義の種類

定義のソースファイル

定義の内容

MCFマネジャ定義

MCFマネジャ定義ソースファイル

MCF全体の実行環境

MCF通信構成定義

共通定義ソースファイル

プロトコル固有定義ソースファイル

プロトコルごとの実行環境

MCFアプリケーション属性

MCFアプリケーション定義

ソースファイル

アプリケーションの属性

定義のソースファイルは，定義コマンド，オプション，およびオペランドを指定して作成します。それらの中には，プロトコルで共通のものと，プロトコルに固有のものがあります。次に示す定義には，TP1/NET/XMAP3に固有の定義があります。

MCFマネジャ定義

MCF通信構成定義

この章では，TP1/NET/XMAP3に固有の定義コマンド，オプション，およびオペランドについて説明します。プロトコルで共通の定義については，マニュアル「OpenTP1 システム定義」を参照してください。ただし，バッファグループ定義（mcftbuf -g）のlength，countオペランドの指定値については，この章の「mcftalccn（コネクション定義の開始）」の注意事項に記載しています。

TP1/NET/XMAP3の組み込み時に必要なファイル

次に示すファイルは，TP1/NET/XMAP3をOpenTP1システムに組み込む場合に必要なファイルです。

システムサービス情報定義ファイル

システムサービス共通情報定義ファイル

MCF定義オブジェクトファイル

この章では，システムサービス情報定義ファイルとシステムサービス共通情報定義ファイルの記述内容，およびMCF定義オブジェクトファイルを生成するユティリティの起動コマンドについて説明します。TP1/NET/XMAP3を組み込む方法については，「10.　組み込み方法」を参照してください。

TP1/NET/XMAP3固有のシステム定義の種類

OpenTP1のネットワークコミュニケーション定義のうち，TP1/NET/XMAP3に固有の定義の一覧を次の表に示します。

表7‒2　TP1/NET/XMAP3に固有の定義の一覧

定義名

コマンド

オプション・オペランド

定義内容

指定値((値範囲))《省略時解釈値》

MCFマネジャ定義

mcfmcomn（MCFマネジャ共通定義）※1

-m

mapsvname

マッピングサービス名

1〜8文字の英数字

-o

cmdsvname

オンラインコマンドサービス名

1〜8文字の英数字

MCF通信構成定義

共通定義

プロトコル共通のコマンドだけで指定できます。共通のコマンドについては，マニュアル「OpenTP1 システム定義」を参照してください。

プロトコル固有定義

mcftxp（XMAP3共通定義）

指定数：1

-m

msgkey

次メッセージ要求キー名

((PF1〜PF24，PA1〜PA3，BREAK))《PF2》

timeoutlog

XMAP3 Serverのタイムアウト発生を通知するかどうかを指定

《yes》｜no

-o

opcolor

オペレータインジケータのユーザ表示フィールドの表示色

符号なし整数　((1〜15))《2》

opreverse

オペレータインジケータのユーザ表示フィールドを反転表示するかどうかを指定

yes｜《no》

-n

−

マッピングサービス識別子

1〜8文字の識別子

-g

closebutton

論理端末画面の閉じるボタンを有効にするかどうかを指定

on｜《off》

-c

actcnaction

コネクションの確立の動作モード

《serial》｜parallel

mcftalccn（コネクション定義の開始）

指定数：1〜512※2

-c

−

コネクションID

1〜8文字の識別子

-p

−

プロトコルの種別

xp

-g

sndbuf

メッセージ送信用バッファグループ番号

符号なし整数　((1〜512))

rcvbuf

メッセージ受信用バッファグループ番号

符号なし整数　((1〜512))

-e

msgbuf

メッセージ編集用バッファグループ番号

符号なし整数　((1〜512))

count

メッセージ編集用バッファ数

符号なし整数　((1〜131070))

-i

−

コネクションの確立方法

auto｜《manual》

-b

bretry

コネクション確立障害時の確立再試行するかどうかを指定

《yes》｜no

bretrycnt

コネクション確立障害時の確立再試行回数

符号なし整数　((0〜65535))《3》（単位：回）

bretryint

コネクション確立障害時の確立再試行間隔

符号なし整数　((0〜2550))《60》（単位：秒）

-S

svname

接続対象の表示印刷サービス名

1〜14文字の識別子

type

接続対象の表示印刷サービスのサービスタイプ

DSP｜PRT

mcftalcle（論理端末定義）

指定数：1〜2048

-l

−

論理端末名称

1〜8文字の識別子

-t

−

論理端末の端末タイプ

any

-m

mmsgcnt

メモリ出力メッセージ最大格納数

符号なし整数　((0〜65535))《0》

dmsgcnt

ディスク出力メッセージ最大格納数

符号なし整数　((0〜65535))《0》

-k

quekind

出力メッセージの割り当て先

《memory》｜disk

quegrpid

キューグループID

1〜8文字の識別子

-G

groupsend

メッセージグループ送信をするかどうかを指定

yes｜《no》

-o

aj

メッセージ送信完了ジャーナルを取得するかどうかを指定

《yes》｜no

-p

dflmap

デフォルトマップ名

1〜6文字の記号名称

initmap

イニシャライズマップ名

1〜6文字の記号名称

-i

−

論理端末の自動閉塞解除の要否

《auto》｜manual

-a

msgadv

メッセージの送信スケジュール

《auto》｜manual

-r

rretry

プリンタ排他再試行をするかどうかを指定

《yes》｜no

rretrycnt

プリンタ排他再試行回数

符号なし整数　((0〜65535))《0》

rretryint

プリンタ排他再試行間隔

符号なし整数　((0〜255))《5》　（単位：秒）

-g

title

論理端末画面のタイトルバーを表示するかどうかを指定

on｜off

《XMAP3 Serverの仮定値》

titlname

論理端末画面のタイトル名

1〜80文字の文字列　《XMAP3 Serverの仮定値》

maxbutton

論理端末画面の最大化ボタンを表示するかどうかを指定

on｜off

《XMAP3 Serverの仮定値》

minbutton

論理端末画面の最小化ボタンを表示するかどうかを指定

on｜off

《XMAP3 Serverの仮定値》

resize

論理端末画面の表示の大きさを変更するかどうかを指定

yes｜no

《XMAP3 Serverの仮定値》

icon

論理端末画面のアイコンを表示するかどうかを指定

yes｜no

《XMAP3 Serverの仮定値》

iconname

論理端末画面のアイコン名

1〜16文字の文字列　《XMAP3 Serverの仮定値》

pheight

論理端末画面の縦サイズ

符号なし整数　((24〜127))《XMAP3 Serverの仮定値》

pwidth

論理端末画面の横サイズ

符号なし整数　((80〜255))《XMAP3 Serverの仮定値》

wheight

論理端末画面視野枠の縦サイズ

符号なし整数　((24〜48))《XMAP3 Serverの仮定値》

wwidth

論理端末画面視野枠の横サイズ

符号なし整数　((4〜160))《XMAP3 Serverの仮定値》

-z

device

機種・モデル

6文字の記号名称

-y

−

送信完了確認メッセージ数

符号なし整数　((1〜256))《10》

-x

excnt

プリンタ連続使用メッセージ数

符号なし整数　((0，5〜256))《0》

-K

keyboard

論理端末画面のキーボード状態

《aptype》｜aplock

unlock

論理端末画面のキーボードロック解除のタイミング

《auto》｜send

mcftalced（コネクション定義の終了）

指定数：mcftalccnと同数

−

−

コネクション定義の終了

−

MCFアプリケーション定義

mcfaalcap（アプリケーション属性定義）※1

指定数：1〜8192

-n※3

replychk

応答送信チェックをするかどうかを指定

《yes》｜no

type

アプリケーションの型

ans｜《noans》｜cont

tempsize

継続問い合わせ応答用一時記憶データ格納用領域サイズ

符号なし整数　((1〜32000))《4096》（単位：バイト）

（凡例）

−：該当しません。

注※1

このコマンドのほかのオプションについては，マニュアル「OpenTP1 システム定義」を参照してください。

注※2

実際に接続できるコネクション数は，XMAP3サーバの接続可能表示印刷サービス数に依存します。

また，1台の端末が無応答になると，一定時間内は該当する通信プロセス配下のほかの端末に対応したコネクションも使用できなくなることがあります。そのため，多数の端末を接続する場合は，通信プロセスを複数にして，1通信プロセス当たりのコネクション数を減らし，影響範囲を限定するよう設計してください。

なお，一つの表示印刷サービスに対して同時に接続できるコネクション数，および一つのコネクション配下で同時に閉塞解除できる画面属性の論理端末数はそれぞれ15までです。

注※3

このオプションのほかのオペランドについては，マニュアル「OpenTP1 システム定義」を参照してください。

定義の指定順序

TP1/NET/XMAP3のプロトコル固有定義コマンドの指定順序を，次の図に示します。TP1/NET/XMAP3定義コマンドを指定する場合は，必ずこの順序に従ってください。

図7‒1　TP1/NET/XMAP3のプロトコル固有定義コマンドの指定順序

注

接続対象が表示サービスの場合，MCF通信構成定義のmcftalccn定義コマンドとmcftalcle定義コマンドとの関係は，1対nです。印刷サービスの場合は，1対1です。

mcfaalcap（アプリケーション属性定義）

形式

mcfaalcap -n "
                              :
               〔replychk=yes｜no〕
                              :
               〔type=ans｜noans｜cont〕
                              :
               〔tempsize=継続問い合わせ応答用一時記憶データ格納用領域サイズ〕"
                              :

機能

アプリケーションに関する属性を定義します。

オプション

この定義コマンドには，ほかにもオプションがあります。詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

●-n

このオプションには，ほかにもオペランドがあります。詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

（オペランド）

replychk=yes｜no　　〜《yes》

応答型MHPが応答メッセージを送信したかどうか，MCFにチェックさせるかどうかを指定します。

yes

応答型MHPが応答メッセージを送信していない場合，またはほかの応答型MHPを起動していない場合に，トランザクションをロールバックしERREVT3を通知します。

no

応答型MHPが応答メッセージを送信したかどうかをチェックしません。

replychkオペランドを指定した場合は，typeオペランドにansを，kindオペランドにuserを指定する必要があります。

replychkオペランドの指定値と，MHPの処理，MCFの処理との関係を次に示します。

replychkオペランドの指定値

MHPの処理

MCFの処理

yes

入力元端末に応答メッセージを送信

端末に応答メッセージを送信し，端末の応答待ち状態を解除する（MHPは正常終了）。

ほかの問い合わせ応答型MHPを起動

指定されたMHPを起動する。端末の応答待ち状態は解除しない※（MHPは正常終了）。

上記以外

エラーイベントの起動によって端末の応答待ち状態を解除し，ロールバック処理する（MHPは異常終了）。

no

入力元端末に応答メッセージを送信

端末に応答メッセージを送信し，端末の応答待ち状態を解除する（MHPは正常終了）。

ほかの問い合わせ応答型MHPを起動

指定されたMHPを起動する。端末の応答待ち状態は解除しない※（MHPは正常終了）。

上記以外

端末の応答待ち状態を解除する（MHPは正常終了）。

注※

端末の応答待ち状態を解除しないのは，起動されたMHPに応答権が引き継がれるためです。

type=ans｜noans｜cont　　〜《noans》

アプリケーションの型を指定します。

ans

応答型

noans

非応答型

cont

継続問い合わせ応答型

nameオペランドでMCFイベント名を指定した場合，このtypeオペランドの指定は無効になります。

MCFはMCFイベントに対して次のように自動的に設定します。

次のMCFイベントの場合，要求元となった論理端末の端末タイプに応じて設定します。

・不正アプリケーション名検出通知イベント（ERREVT1）

次のMCFイベントの場合，それを起動する要因となったアプリケーションの型をそのまま引き継ぎます。

・メッセージ廃棄通知イベント（ERREVT2）

・UAP異常終了通知イベント（ERREVT3）

上記以外のMCFイベントの場合は，noansを設定します。

なお，ERREVT1，ERREVT2，またはERREVT3を起動する場合，アプリケーション起動プロセスが必要です。アプリケーション起動プロセスを起動するために，MCF通信構成定義を作成してください。

異常が発生した場合，起動元通信プロセスに対応するMCFイベントが起動されます。アプリケーション起動機能を使用して複数のMCFアプリケーション定義を経由した場合も，最初の起動元通信プロセスに対応するMCFイベントが起動されます。

SPPからアプリケーションを起動し，起動元プロセスがない場合は，アプリケーション起動プロセスに対応するMCFイベントが起動されます。

tempsize=継続問い合わせ応答用一時記憶データ格納用領域サイズ　　〜〈符号なし整数〉((1〜32000))《4096》（単位：バイト）

継続問い合わせ応答で使用する一時記憶データ格納用領域サイズを指定します。ただし，typeオペランドでcontを指定した場合だけ有効です。

mcfmcomn（MCFマネジャ共通定義）

形式

mcfmcomn                     :
       〔-m "〔mapsvname=マッピングサービス名〕"〕
       〔-o "〔cmdsvname=オンラインコマンドサービス名〕"〕
                             :

機能

各MCF間で共用するリソースの実行環境を定義します。

オプション

この定義コマンドには，ほかにもオプションがあります。詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

●-m

（オペランド）

mapsvname=マッピングサービス名　　〜〈1〜8文字の英数字〉

マッピングサービスプロセスのサービス名を指定します。先頭が_mpで始まる8文字以内の英数字で指定してください。このオペランドの指定値にはマッピングサービス定義ファイル名を指定してください。

マッピングサービスの定義の詳細については，「6.　OpenTP1マッピングサービス機能」の「OpenTP1マッピングサービスに関する定義」を参照してください。

●-o

（オペランド）

cmdsvname=オンラインコマンドサービス名　　〜〈1〜8文字の英数字〉

ACT ALTSENDコマンド，DEACT ALTSENDコマンドを使用する場合，MCFオンラインコマンドサービスのサービス名を指定します。先頭が_mcsで始まる8文字以内の英数字で指定してください。

注意事項

-oオプションは，OSがWindowsの場合，指定できません。

mcftalccn（コネクション定義の開始）

形式

mcftalccn   -c コネクションID
            -p xp
            -g "sndbuf=メッセージ送信用バッファグループ番号
                rcvbuf=メッセージ受信用バッファグループ番号"
          〔-e "msgbuf=メッセージ編集用バッファグループ番号
                count=メッセージ編集用バッファ数"〕
          〔-i auto｜manual〕
          〔-b "〔bretry=yes｜no〕
                〔bretrycnt=コネクション確立障害時の確立再試行回数〕
                〔bretryint=コネクション確立障害時の確立再試行間隔〕"〕
            -S "svname=接続対象の表示印刷サービス名
                type=DSP｜PRT"

機能

コネクションに関する環境を定義します。

オプション

●-c コネクションID　　〜〈1〜8文字の識別子〉

OpenTP1システム内で，一意となるコネクションIDを指定します。

●-p xp

プロトコルの種別を指定します。

xp

XMAP3プロトコル

●-g

（オペランド）

sndbuf=メッセージ送信用バッファグループ番号　　〜〈符号なし整数〉((1〜512))

メッセージ送信用バッファグループ番号を指定します。

バッファグループ定義（mcftbuf -g）のgroupnoオペランドに指定されているバッファグループ番号を指定してください。

rcvbuf=メッセージ受信用バッファグループ番号　　〜〈符号なし整数〉((1〜512))

メッセージ受信用バッファグループ番号を指定します。

バッファグループ定義（mcftbuf -g）のgroupnoオペランドに指定されているバッファグループ番号を指定してください。

●-e

（オペランド）

msgbuf=メッセージ編集用バッファグループ番号　　〜〈符号なし整数〉((1〜512))

入力，出力メッセージ編集UOCを使用する場合，メッセージ編集用として使用するバッファグループ番号を指定します。このオペランドを省略した場合は，メッセージ編集用バッファは確保されません。

バッファグループ定義（mcftbuf -g）のgroupnoオペランドに指定されているバッファグループ番号を指定してください。

count=メッセージ編集用バッファ数　　〜〈符号なし整数〉((1〜131070))

入力，出力メッセージ編集UOCを使用する場合，メッセージ編集用として使用するバッファの数を指定します。

ここで指定したバッファ数が，UOCに編集バッファとして渡されるので，最大セグメント分割数を指定してください。

TP1/NET/XMAP3では，ここに指定した数を入力，出力メッセージ編集UOCに同時に割り当てることがあるので，ここで指定したバッファグループを定義したバッファグループ定義（mcftbuf -g）のcount，およびextendオペランドでの指定値の和は，メッセージ編集用バッファ数の2倍を確保してください。複数コネクションでバッファグループを共用する場合はコネクションごとの和を指定してください。

msgbufオペランドを省略した場合は，このオペランドの指定は無効です。

●-i auto｜manual　　〜《manual》

OpenTP1システム開始時および再開始時の，コネクションの確立方法を指定します。

auto

OpenTP1システム開始時および再開始時にコネクションを自動的に確立します。

manual

MCF起動後，コネクションを確立します。コネクションの確立は，運用コマンド（mcftactcn）の入力，またはAPI（dc_mcf_tactcn関数）の発行で行います。

●-b

（オペランド）

bretry=yes｜no　　〜《yes》

コネクション確立時に障害が発生した場合，コネクションの確立再試行をするかどうかを指定します。

yes

コネクションの確立再試行をします。

no

コネクションの確立再試行をしません。

bretrycnt=コネクション確立障害時の確立再試行回数　　〜〈符号なし整数〉((0〜65535))《3》（単位：回）

コネクション確立障害時の確立再試行回数を指定します。

このオペランドを省略した場合は，3が設定されます。

0を指定した場合，無限に確立再試行を繰り返します。

bretryオペランドでnoを指定した場合，このオペランドの指定は無効になります。

bretryint=コネクション確立障害時の確立再試行間隔　　〜〈符号なし整数〉((0〜2550))《60》（単位：秒）

コネクション確立障害時の確立再試行間隔を指定します。

0を指定した場合，障害が発生するたびにコネクションの確立再試行をします。

bretryオペランドでnoを指定した場合，このオペランドの指定は無効になります。

注意事項

再試行間隔の精度は秒単位です。また，タイマ定義（mcfttim -t）のbtimオペランドで指定する時間の間隔で再試行するかどうかをチェックします。このため，このオペランドで指定した再試行間隔と実際に再試行する時間には秒単位の誤差が生じます。

●-S

（オペランド）

svname=接続対象の表示印刷サービス名　　〜〈1〜14文字の識別子〉

接続対象の表示印刷サービス名としてXMAP3 Serverサービス名ファイルで指定したサービス名を指定します。

type=DSP｜PRT

接続対象の表示印刷サービスのサービスタイプを指定します。

DSP

表示サービス

PRT

印刷サービス

PRTを指定した場合，MCF通信構成定義のmcftalccn定義コマンドとmcftalcle定義コマンドとの関係は，1対1です。

注意事項

-gオプション，および-eオプションで指定するバッファグループ番号は，バッファグループ定義（mcftbuf）で指定したバッファグループ番号に対応させてください。バッファグループ定義（mcftbuf）でコネクションごとに割り当てる資源の量を次の表に示します。バッファグループ定義（mcftbuf）の詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

表7‒3　バッファグループ定義（mcftbuf）でコネクションごとに割り当てる資源の量

オプション・

オペランド

バッファグループ定義（mcftbuf）-gオプション

length※1

count ＋ extend※2

-g

sndbuf

次に示すどちらか大きい方の値

（物理マップのファイルサイズ＋メッセージ長※3）のコネクション間での最大値

出力論理メッセージ長※4のコネクション間での最大値

コネクション数×最大セグメント分割数＋1

rcvbuf

次に示すどちらか大きい方の値

受信物理メッセージ長※5のコネクション間での最大値

入力論理メッセージ長※6のコネクション間での最大値

（コネクション数＋1）×最大セグメント分割数

-e

msgbuf

次に示すうちの最大値

（物理マップのファイルサイズ＋メッセージ長※3）のコネクション間での最大値

出力論理メッセージ長※4のコネクション間での最大値

受信物理メッセージ長※5のコネクション間での最大値

入力論理メッセージ長※6のコネクション間での最大値

編集用バッファ数×2

注※1

複数コネクションでバッファグループを共用する場合，コネクション間での最大の値を指定します。

注※2

複数コネクションでバッファグループを共用する場合，コネクションごとの和を指定します。

注※3

XMAP3のドローでマップ生成時に出力される結果リスト中の「メッセージ長」です。

注※4

XMAP3のドローでマップ生成時に出力される結果リスト中の「出力マップ長」です。

注※5

次の算出式で求められる値になります。

256＋（入力マップ長×3）＋入力論理マップのデータ項目数

ただし，値が32768を超える場合は，32768となります。

注※6

XMAP3のドローでマップ生成時に出力される結果リスト中の「入力マップ長」です。

mcftalced（コネクション定義の終了）

形式

mcftalced

機能

コネクションの定義の終了を示します。

オプション

ありません。

mcftalcle（論理端末定義）

形式

mcftalcle   -l 論理端末名称
            -t any
          〔-m "〔mmsgcnt=メモリ出力メッセージ最大格納数〕
                〔dmsgcnt=ディスク出力メッセージ最大格納数〕"〕
          〔-k "〔quekind=memory｜disk〕
                〔quegrpid=キューグループID〕"〕
          〔-G "〔groupsend=yes｜no〕"〕
          〔-o "〔aj=yes｜no〕"〕
          〔-p "〔dflmap='デフォルトマップ名'〕
                〔initmap='イニシャライズマップ名'〕"〕
          〔-i auto｜manual〕
          〔-a "〔msgadv=auto｜manual〕"〕
          〔-r "〔rretry=yes｜no〕
                〔rretrycnt=プリンタ排他再試行回数〕
                〔rretryint=プリンタ排他再試行間隔〕"〕
          〔-g "〔title=on｜off〕
                〔titlname='論理端末画面のタイトル名'〕
                〔maxbutton=on｜off〕
                〔minbutton=on｜off〕
                〔resize=yes｜no〕
                〔icon=yes｜no〕
                〔iconname='論理端末画面のアイコン名'〕
                〔pheight=論理端末画面の縦サイズ〕
                〔pwidth=論理端末画面の横サイズ〕
                〔wheight=論理端末画面視野枠の縦サイズ〕
                〔wwidth=論理端末画面視野枠の横サイズ〕"〕
            -z "device='機種・モデル'"
          〔-y 送信完了確認メッセージ数〕
          〔-x "excnt=プリンタ連続使用メッセージ数"〕
          〔-K "〔keyboard=aptype｜aplock〕
                〔unlock=auto｜send〕"〕

機能

論理端末に関する環境を定義します。

オプション

●-l 論理端末名称　　〜〈1〜8文字の識別子〉

OpenTP1システム内で，一意となる論理端末名称を指定します。

●-t any

この論理端末の端末タイプを指定します。

any

任意型論理端末

●-m

（オペランド）

mmsgcnt=メモリ出力メッセージ最大格納数　　〜〈符号なし整数〉((0〜65535))《0》

メモリキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後，UAPからの送信要求（SEND）はエラーリターンとなります。

0を指定した場合，または省略した場合，メモリキューで待ち合わせをする出力メッセージの数は指定可能な最大数（65535）になります。ただし，実際に待ち合わせができる出力メッセージ数は動的共用メモリの容量に依存します。

dmsgcnt=ディスク出力メッセージ最大格納数　　〜〈符号なし整数〉((0〜65535))《0》

ディスクキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後，UAPからの送信要求（SEND）はエラーリターンとなります。

0を指定した場合，または省略した場合，ディスクキューで待ち合わせをする出力メッセージの数は指定可能な最大数（65535）になります。ただし，実際に待ち合わせができる出力メッセージ数はメッセージキューファイルの容量に依存します。

●-k

（オペランド）

quekind=memory｜disk　　〜《memory》

送受信メッセージの割り当て先（メモリキュー，またはディスクキュー）を指定します。

memory

メモリキューだけに割り当てます。

disk

ディスクキュー，およびメモリキューに割り当てます。

quegrpid=キューグループID　　〜〈1〜8文字の識別子〉

ディスクで待ち合わせる送受信メッセージに使用するキューグループIDを指定します。入出力キュー定義（mcfmqgid）で指定するキューグループID（キューグループ種別はotq）のどれかを指定してください。

このquegrpidオペランドは，quekindオペランドでdiskを指定した場合だけ指定してください。

●-G

（オペランド）

groupsend=yes｜no　　〜《no》

メッセージをグループ送信するかどうかを指定します。

yes

グループ送信します。

no

グループ送信しません。

●-o

（オペランド）

aj=yes｜no　　〜《yes》

送信完了の情報の取得の要否を指定します。

yes

取得します。

no

取得しません。

●-p

（オペランド）

dflmap='デフォルトマップ名'　　〜〈1〜6文字の記号名称〉

UAPからのメッセージ送信時，マップ名を指定しない場合に使用するデフォルトマップの名称を指定します。

initmap='イニシャライズマップ名'　　〜〈1〜6文字の記号名称〉

論理端末画面生成時に表示する初期画面用のマップの名称を指定します。

●-i auto｜manual　　〜《auto》

コネクション確立時の，論理端末の閉塞解除方法を指定します。

auto

コネクション確立時に，システムが自動的に論理端末を閉塞解除します。

manual

運用コマンド（mcftactle）の入力，またはAPI（dc_mcf_tactle関数）の発行で論理端末を閉塞解除します。

●-a

（オペランド）

msgadv=auto｜manual　　〜《auto》

メッセージの送信スケジュールを指定します。

auto

現在出力しているメッセージに続いて，次のメッセージを送信します。

manual

XMAP3共通定義（mcftxp -m）のmsgkeyオペランドで指定した次メッセージ要求キーを押したあとに，次のメッセージを送信します。

このオペランドは，コネクション定義（mcftalccn -S）のtypeオペランドでPRTを指定したコネクションに属する論理端末に対する論理端末定義（mcftalcle）では指定できません。

●-r

（オペランド）

rretry=yes｜no　　〜《yes》

プリンタ排他再試行をするかどうかを指定します。

yes

プリンタ排他再試行をします。

no

プリンタ排他再試行をしません。

rretrycnt=プリンタ排他再試行回数　　〜〈符号なし整数〉((0〜65535))《0》

プリンタ排他再試行回数を指定します。

0を指定した場合，プリンタ排他再試行回数は無制限になります。

rretryオペランドの指定値がnoの場合，このオペランドの指定は無効です。

rretryint=プリンタ排他再試行間隔　　〜〈符号なし整数〉((0〜255))《5》（単位：秒）

プリンタ排他再試行間隔を指定します。

0を指定した場合，障害発生直後にプリンタ排他再試行をします。

rretryオペランドの指定値がnoの場合，このオペランドの指定は無効です。

注意事項

再試行間隔の精度は秒単位です。また，タイマ定義（mcfttim -t）のbtimオペランドで指定する時間の間隔で再試行するかどうかをチェックします。このため，このオペランドで指定した再試行間隔と実際に再試行する時間には秒単位の誤差が生じます。

●-g

（オペランド）

title=on｜off

論理端末画面のタイトルバーを表示するかどうかを指定します。省略時はXMAP3 Serverの仮定値に従います。

on

タイトルバー表示あり

off

タイトルバー表示なし

titlname='論理端末画面のタイトル名'　　〜〈1〜80文字の文字列〉

論理端末画面のタイトル名を指定します。

titleオペランドの指定値がoffの場合，このオペランドは指定できません。

省略時はXMAP3 Serverの仮定値に従います。

maxbutton=on｜off

論理端末画面の最大化ボタンを表示するかどうかを指定します。

titleオペランドの指定値がoffの場合，このオペランドは指定できません。

省略時はXMAP3 Serverの仮定値に従います。

on

最大化ボタン表示あり

off

最大化ボタン表示なし

minbutton=on｜off

論理端末画面の最小化ボタンを表示するかどうかを指定します。

titleオペランドの指定値がoffの場合，このオペランドは指定できません。

省略時はXMAP3 Serverの仮定値に従います。

on

最小化ボタン表示あり

off

最小化ボタン表示なし

resize=yes｜no

論理端末画面の表示の大きさを変更できるようにするかどうかを指定します。

省略時はXMAP3 Serverの仮定値に従います。

yes

論理端末画面の表示の大きさを変更できる

no

論理端末画面の表示の大きさを変更できない

icon=yes｜no

論理端末画面をアイコン表示できるようにするかどうかを指定します。

省略時はXMAP3 Serverの仮定値に従います。

yes

論理端末画面のアイコン表示ができる

no

論理端末画面のアイコン表示ができない

iconname='論理端末画面のアイコン名'　　〜〈1〜16文字の文字列〉

論理端末画面のアイコン名を指定します。

省略時はXMAP3 Serverの仮定値に従います。

pheight=論理端末画面の縦サイズ　　〜〈符号なし整数〉((24〜127))

論理端末画面の縦サイズを指定します。

省略時はXMAP3 Serverの仮定値に従います。

pwidth=論理端末画面の横サイズ　　〜〈符号なし整数〉((80〜255))

論理端末画面の横サイズを指定します。

省略時はXMAP3 Serverの仮定値に従います。

wheight=論理端末画面視野枠の縦サイズ　　〜〈符号なし整数〉((24〜48))

論理端末画面視野枠の縦サイズを指定します。

省略時はXMAP3 Serverの仮定値に従います。

wwidth=論理端末画面視野枠の横サイズ　　〜〈符号なし整数〉((4〜160))

論理端末画面視野枠の横サイズを指定します。

省略時はXMAP3 Serverの仮定値に従います。

●-z

（オペランド）

device='機種・モデル'　　〜〈6文字の記号名称〉

表示・印刷する画面・帳票に対応する6文字の文字列を指定します。

XDSPS1

CUI画面

XDSPM1

GUI画面

XPRTL1

けい線帳票

XPRTL3

プレプリント帳票

XPRTP1

網掛け帳票

XPRTP3

グラフィック帳票

●-y 送信完了確認メッセージ数　　〜〈符号なし整数〉((1〜256))《10》

非同期送信をする場合の送信完了確認メッセージ数を指定します。

TP1/NET/XMAP3は，このオプションで指定されたメッセージ数のメッセージを送信すると送信完了処理します。

しかし，障害などの発生時，または代行送信の終了時に，メッセージが二重出力されることがあります。二重出力を避けたい場合は，送信完了確認メッセージ数に1を指定してください。

コネクション定義（mcftalccn -S）のtypeオペランドの指定がDSPの場合，このオプションは指定できません。また，送信完了処理を行うまでは，すでに送信したメッセージがあっても，それらは出力キューに残しておきます。このため，quelsコマンド等で出力キューの状態を参照すると，仕掛りメッセージとして残っていますが，異常ではありません。

●-x

（オペランド）

excnt=プリンタ連続使用メッセージ数　　〜〈符号なし整数〉((0，5〜256))《0》

プリンタの排他を解除するタイミングを，送信メッセージの数で指定します。プリンタの排他を続けることでプリンタを継続して使用できます。TP1/NET/XMAP3は，指定数に達したときに送信しているグループの，最終のメッセージを送信し終わると送信完了処理し，プリンタの排他を解除します。0を指定した場合，グループごとに送信完了処理し，プリンタの排他を解除します。

両面印刷する場合に0以外の値を指定していると，前のグループの裏面に印刷されることがあります。グループの先頭メッセージに適切なページ制御情報を付けてください。

コネクション定義（mcftalccn -S）のtypeオペランドの指定がDSPの場合，このオプションは指定できません。また，-Gオプションのgroupsendオペランドの指定値がnoの場合も，このオプションを指定できません。

●-K

（オペランド）

keyboard=aptype｜aplock　　〜《aptype》

論理端末から非応答型MHPにメッセージを送信したときの，論理端末画面のキーボード状態を指定します。

aptype

キーボード状態をロック解除状態にします。

aplock

キーボード状態をロック状態にします。

非応答型MHP以外のアプリケーションにメッセージを送信した場合のキーボード状態については，「2.4.10(3)　キーボード状態の変更」を参照してください。

unlock=auto｜send　　〜《auto》

keyboardオペランドでaplockを指定した場合に，キーボードロックを解除するタイミングを指定します。keyboardオペランドにaplockを指定している場合だけ，unlockオペランドを指定できます。

auto

非応答型MHPが終了したときに，キーボードロックを解除します。

send

論理端末に一方送信メッセージを送信したときに，キーボードロックを解除します。

注意事項

GUI画面の場合，-gオプションの次のオペランドが無効になります。

maxbutton

resize

pheight

pwidth

wheight

wwidth

mcftxp（XMAP3共通定義）

形式

mcftxp 〔-m "〔msgkey='次メッセージ要求キー名'〕
             〔timeoutlog=yes｜no〕"〕
       〔-o "〔opcolor=色番号〕
             〔opreverse=yes｜no〕"〕
         -n マッピングサービス識別子
       〔-g "〔closebutton=on｜off〕"〕
       〔-c "〔actcnaction=serial｜parallel〕"〕

機能

TP1/NET/XMAP3に関する環境を定義します。

オプション

●-m

（オペランド）

msgkey='次メッセージ要求キー名'　　〜〈1〜8文字の記号名称〉((PF1〜PF24，PA1〜PA3，BREAK))《PF2》

次メッセージ要求キー名を指定します。ここで指定したキーを押すことで，次に表示するメッセージを送信します。

PF1〜PF24，PA1〜PA3

それぞれのキーが押されたときに，次に表示するメッセージを送信します。

BREAK

中断キー，またはCtrl+Sキーが押されたときに，次に表示するメッセージを送信します。

timeoutlog=yes｜no　　〜《yes》

XMAP3 Serverのタイムアウト発生を通知するかどうかを指定します※。

yes

タイムアウト発生を通知するログメッセージを出力します。

メッセージKFCA13662-E（エラーコード＝10（TX_CECDOWN）で，詳細エラーコード＝0x03020202，0x03020303，または0x03020203）と，直前にエラー要因を示すメッセージを出力します。

no

タイムアウト発生を通知するログメッセージを出力しません。

注※

システムサービス情報定義に指定するXMAP3 Serverの環境変数XRESPONSETIMEまたは環境変数XPCLOSEWAITTIMEによってタイムアウトが発生した場合に，通知するかどうかを指定します。

●-o

（オペランド）

opcolor=色番号　　〜〈符号なし整数〉((1〜15))《2》

オペレータインジケータのユーザ表示フィールドの表示色を色番号で指定します。

色番号に対応する表示色は，XMAP3サーバの定義で決定します。詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

opreverse=yes｜no　　〜《no》

オペレータインジケータのユーザ表示フィールドの反転表示の有無を指定します。

yes

反転表示あり

no

反転表示なし

●-n マッピングサービス識別子　　〜〈1〜8文字の識別子〉

入出力マッピングで使用するマッピングサービスの識別子を指定します。

●-g

（オペランド）

closebutton=on｜off　　〜《off》

論理端末画面の閉じるボタンを有効にするかどうかを指定します。論理端末画面の閉じるボタンについては，「2.3.5　論理端末画面の閉じるボタンの有効化」を参照してください。

on

閉じるボタンが有効になります。閉じるボタンを押すと，アプリケーション決定後にTP1/NET/XMAP3がUAPを起動します。

off

閉じるボタンが無効になります。閉じるボタンを押すと，XMAP3クライアント端末側で無視します（入力エラーとしてブザーを鳴らします）。

●-c

（オペランド）

actcnaction=serial｜parallel　　〜《serial》

コネクションの確立の動作モードを指定します。

serial

コネクション確立要求を逐次処理します。

コネクション確立要求を行う運用コマンドまたはAPIがリターンしたとき，MCF通信プロセスで正常に受け付けられていた場合，コネクションは確立状態となっています。

運用コマンドを多数入力する場合には，順番待ちが発生して，入力数が増えるほど，待ち時間が拡大します。

parallel

コネクション確立要求を並行処理します。

コネクション確立要求を行う運用コマンドまたはAPIがリターンしたとき，MCF通信プロセスで正常に受け付けられていたとしても，コネクションの状態が確立状態とは限りません。コネクション確立要求を行う運用コマンドまたはAPIがリターンしたあとに，コネクションが確立していることを前提とした処理がある場合は，コネクションの状態確認を行う運用コマンドまたはAPIで，コネクションの状態を確認してください。

また，最大処理多重度定義の最大処理多重度（mcfttred -m）には，負荷試験を実施したうえで最適な値を指定するようにしてください。多重処理状況は運用コマンド（mcftlstrd）で確認できます。運用コマンドの詳細については，マニュアル「OpenTP1 運用と操作」を参照してください。

システムサービス情報定義

MCFサービスはユーザが作るシステムサービスで，OpenTP1のシステムサービスと同じ位置づけになります。

システムサービス情報定義では，MCF通信サービスを起動するための環境を定義します。ユーザがMCFサービスを作成する場合に定義する必要があります。

システムサービス情報定義は，テキストエディタを使用して作成します。

システムサービス情報定義の完全パス名を次に示します。

$DCDIR/lib/sysconf/定義ファイル名

定義ファイル名には，システムサービス情報定義のmoduleオペランドで指定する実行形式プログラム名を指定します。この定義ファイル名を通信サービス定義（mcfmcname）に指定してください。

形式

set形式

  set module="TP1/NET/XMAP3の実行形式プログラム名"
〔set mcf_prf_trace=Y|N〕

putenv形式

〔putenv TZ 時間帯情報〕
〔putenv XRESPONSETIME 監視時間〕
〔putenv XPCLOSEWAITTIME XMAP3印刷サービス監視時間〕
〔putenv XPW_DAEMON_PORT_NO サービス名〕

機能

プロセスサービスがMCF通信サービスを起動するための環境を定義します。

各MCF通信サービスに対して一つ，システムサービス情報定義を作成できます。また，複数のMCF通信サービスで一つのシステムサービス情報定義を共用することもできます。

説明

set形式で指定するオペランドと，putenv形式で指定するオペランドがあります。

ここでは，それぞれのオペランドについて，分けて説明します。

set形式のオペランド

set形式で指定するオペランドについて，説明します。

●module="TP1/NET/XMAP3の実行形式プログラム名"　　〜〈1〜8文字の識別子〉

MCF通信サービスを起動するための実行形式プログラム名を指定します。

MCF実行形式プログラムには，MCF通信プロセスのためのものとアプリケーション起動プロセスのためのものがあります。

MCF実行形式プログラムは，MCF通信プロセス同士，アプリケーション起動プロセス同士で共有できます。

TP1/NET/XMAP3の実行形式プログラム名には，先頭4文字がmcfuで始まる最大8文字の名称を指定してください。

●mcf_prf_trace=Y|N　　〜《Y》

MCF通信サービスごとに，MCF性能検証用トレース情報を取得するかどうかを指定します。このオペランドの指定値を有効にするには，システムサービス共通情報定義のmcf_prf_trace_levelオペランドに00000001を指定してください。

Y

MCF性能検証用トレース情報を取得します。

N

MCF性能検証用トレース情報を取得しません。

MCF通信サービスでのMCF性能検証用トレース情報取得有無とオペランドの指定値の関係を，次の表に示します。

システムサービス共通情報定義

mcf_prf_trace_levelオペランドの指定値

システムサービス情報定義

mcf_prf_traceオペランドの指定値

Y

N

00000000

取得しない

取得しない

00000001

取得する

取得しない

このオペランドの使用は，TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できません。

putenv形式のオペランド

putenv形式で指定するオペランドについて，説明します。

●TZ　時間帯情報（タイムゾーン）

MCF通信サービスが動作するプロセスの環境変数TZを指定します。省略した場合，プロセスサービスのプロセスの環境変数TZを引き継ぎます。

日本標準時の場合，JST-9を指定してください。

マッピングサービス機能は，この環境変数に従って予約項目の日付，および時刻を設定します。

●XRESPONSETIME　監視時間　　〜((0，25〜300))《25》（単位：秒）

クライアントPC/WSの応答時間を監視する場合に指定します。ただし，XMAP3印刷サービスからの応答待ち時間は，環境変数XPCLOSEWAITTIMEに指定します。

監視時間には0または25〜300の値を指定してください。0を指定した場合，応答を監視しません。301以上の値が指定された場合，または値を省略した場合は，25を省略時解釈値とし，応答を監視します。TP1/NET/XMAP3を使用した対話オンライン処理システムでは，このオペランドを設定して，クライアントPC/WSの応答時間を監視することを推奨します。

ただし，タイマ値の設定によっては，運用コマンドのタイムアウトが頻発する場合がありますので注意してください。

詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

●XPCLOSEWAITTIME　XMAP3印刷サービス監視時間　　〜((0，25〜86400))《0》（単位：秒）

XMAP3印刷サービスの応答時間を監視する場合に指定します。監視時間には0または25〜86400の値を指定してください。0を指定した場合，応答を監視しません。1〜24，および86401以上の値が指定された場合，または値を省略した場合は，0を省略時解釈値とし，応答を監視しません。帳票を印刷するシステムでは，このオペランドを設定して，XMAP3印刷サービスの応答時間を監視することを推奨します。

指定値は，システム環境定義のsystem_terminate_watch_timeオペランドの指定値を超えないように設定してください。

詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

●XPW_DAEMON_PORT_NO　サービス名

1台のホスト上で複数のXMAP3サーバを起動する場合，対応するXMAP3サーバのservicesファイルに定義したサービス名を指定します。

詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

システムサービス共通情報定義

TP1/NET/XMAP3で定義したシステム構成の内容（使用するコネクション数など）によっては，OpenTP1のシステムサービス共通情報定義を指定する必要があります。

システムサービス共通情報定義の完全パス名を次に示します（適用OSがWindowsの場合を除く）。

$DCDIR/lib/sysconf/mcf

形式

set形式

  set max_socket_descriptors=ソケット用ファイル記述子の最大数
  set max_open_fds=MCF通信プロセスでアクセスするファイルの最大数
〔set mcf_prf_trace_level=MCF性能検証用トレース情報の取得レベル〕

機能

システムサービス共通情報定義では，複数のMCF通信サービスに共通する情報を定義します。この定義ファイルは，標準値を定義した状態で製品に含まれています。次に示すオペランドについては，必要に応じて，テキストエディタを使用して定義値を変更してください。ほかのオペランドについては，変更しないでください。

説明

set形式のオペランド

この定義には，ほかにもオペランドがあります。詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

●max_socket_descriptors=ソケット用ファイル記述子の最大数　　〜〈符号なし整数〉((64〜3596))

各MCF通信プロセスでソケット用に使用するファイル記述子数の中の最大値を指定します。

OpenTP1制御下のプロセスでは，システムサーバやユーザサーバとの間で，ソケットを使用したTCP/IP通信でプロセス間の情報交換をしています。そのため，同時に稼働するUAPプロセスの数などによって，ソケット用のファイル記述子の最大数を変更する必要があります。

各MCF通信プロセスまたはアプリケーション起動プロセスが使用するソケット用ファイル記述子の最大数を求める計算式を次に示します。

↑（このMCF通信プロセスに対してメッセージ送信要求を行うUAPプロセス数※1
  ＋システムサービスプロセス数※2
  ＋このMCF通信プロセスまたはアプリケーション起動プロセスに対して同時に処理要求を行う運用コマンド数
  ）／0.8↑

（凡例）

↑↑：小数点以下を切り上げます。

注※1

アプリケーション起動プロセスに対するアプリケーション起動要求を行うUAPプロセス数も含みます。

注※2

システムサービスプロセス数とは，自OpenTP1内のシステムサービスプロセス数です。自OpenTP1内のシステムサービスプロセスは，rpcstatコマンドで表示されるサーバ名をカウントすることで求められます。rpcstatコマンドで表示されるサーバ名のうち，マニュアル「OpenTP1　解説」のOpenTP1のプロセス構造に記載されているシステムサービスプロセスをカウントしてください。

自OpenTP1内の各MCF通信プロセスおよびアプリケーション起動プロセスごとに計算し，その結果の中で最大値が64より大きい場合は，その値を指定します。64以下の場合は，64を指定します。

このオペランドの指定値が小さいと，OpenTP1制御下の他プロセスとのコネクションが設定できなくなるため，プロセスがKFCA00307-Eメッセージを出力して異常終了します。

●max_open_fds=MCF通信プロセスでアクセスするファイルの最大数　　〜〈符号なし整数〉((500〜4032))

各MCF通信プロセスでアクセスするファイル数の中の最大値を指定します。

MCF通信プロセスが行うメッセージの送受信にもファイル記述子が使われます。この数が不足すると，コネクションの確立ができないなどの障害が発生するため，事前に必要となるファイル記述子の数を設定しておく必要があります。

各MCF通信プロセスが使用するファイル記述子の最大数を求める計算式を次に示します。

（プロトコル制御で使用するファイル記述子数※1）
＋MCFメイン関数でユーザが使用するファイル記述子数
＋30※2

注※1

TP1/NET/XMAP3の場合，コネクションの総数を2倍した値になります。

注※2

MCF通信プロセスが扱う定義ファイルなどの数の最大値です。

自OpenTP1内のMCF通信プロセスごとに計算し，その結果の中で最大値が500より大きい場合は，その値を指定します。500以下の場合は，500を指定します。指定値を超えてファイルのアクセスが発生した場合は，その超過分はソケット用ファイル記述子使用数として扱われます。この場合，「max_socket_descriptorsオペランドの指定値−max_open_fdsオペランドの指定値の超過分」が，実際のソケット用ファイル記述子の最大数になるため，注意してください。

max_socket_descriptorsオペランドとmax_open_fdsオペランドには次の条件を満たす値を指定してください。

（「max_socket_descriptorsオペランドの指定値」
＋「max_open_fdsオペランドの指定値」）
≦4096

ただし，TP1/NET/XMAP3のMCF通信プロセスで使用できるファイル記述子の最大数は，適用OSによって次のように異なります。

OS

1プロセスで使用できるファイル記述子の最大数

AIX，HP-UX，Windows

2048

Solaris

1024

TP1/NET/XMAP3のMCF通信プロセスで，max_socket_descriptorsオペランドとmax_open_fdsオペランドの和が1プロセスで使用できるファイル記述子の最大数を超えている場合，TP1/NET/XMAP3のMCF通信プロセスで使用できるファイル記述子数は，1プロセスで使用できるファイル記述子の最大数に強制的に補正されます。

max_socket_descriptorsオペランドとmax_open_fdsオペランドの和が1プロセス当たりでオープンできるファイル数の物理限界値（ハードリミット）を超えていたとき，MCFの開始を中断します。

●mcf_prf_trace_level=MCF性能検証用トレース情報の取得レベル　　〜((00000000〜00000001))《00000001》

MCF性能検証用トレース情報の取得レベルを指定します。MCF性能検証用トレースを取得する場合は，システム共通定義のprf_traceオペランドにYを指定するか，または省略してください。

00000000

MCF性能検証用トレース情報を取得しません。

00000001

MCF性能検証用トレース情報（イベントID：0xa000〜0xa0ff）を取得します。イベントIDの詳細については，マニュアル「OpenTP1 運用と操作」を参照してください。また，TP1/NET/XMAP3固有の出力情報や取得タイミングについては，「付録D　MCF性能検証用トレースの取得」を参照してください。

オペランドの指定に誤りがある場合は，OpenTP1開始処理中にOpenTP1が異常終了します。

このオペランドの使用は，TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できません。

注意事項

max_socket_descriptorsオペランドの指定値とmax_open_fdsオペランドの指定値の合計は，OSのシステムパラメタで指定する「1プロセスでオープンできるファイル数」を超えないようにする必要があります。超える場合は，OSのシステムパラメタの指定を変更してください。

Windows版のバージョン5ではシステムサービス共通情報定義のmax_socket_descriptorsオペランドにプロトコル制御で使用するファイル記述子数（コネクション数×2）を追加する必要がありましたが，バージョン7ではUNIX版と同様にmax_open_fdsオペランドにプロトコル制御で使用するファイル記述子を追加してください。

MCF定義オブジェクトの生成

MCF定義オブジェクト生成ユティリティでは，MCFの定義ファイルの構文のチェックと定義オブジェクトファイルへの変換をします。ここでは，MCF定義オブジェクト生成ユティリティの起動コマンドについて説明します。

形式

mcfxp   -i 〔パス名〕入力ファイル名
        -o 〔パス名〕出力オブジェクトファイル名
      〔-r ｛no｜rep｝〕

機能

MCF通信構成定義のTP1/NET/XMAP3のプロトコル固有定義ファイルの構文をチェックし，定義オブジェクトファイルを作成します。

ただし，開始から再開始の間に定義オブジェクトファイルを変更しないでください。変更した場合，再開始時に正常に動作しないことがありますのでご注意ください。

TP1/NET/XMAP3のプロトコル固有定義オブジェクトファイル以外の生成ユティリティについては，マニュアル「OpenTP1 システム定義」を参照してください。

オプション

●-i 〔パス名〕入力ファイル名　　〜〈パス名〉〈1〜8文字の識別子〉

定義ソースが格納されているファイル名を指定します。

●-o 〔パス名〕出力オブジェクトファイル名　　〜〈パス名〉〈1〜8文字の英数字〉

定義オブジェクトを格納するファイル名を指定します。

次に示す条件を満たした名称を指定してください。

先頭3文字が_muで始まる最大8文字の名称

通信サービス定義（mcfmcname -s）のmcfsvnameオペランドで指定するMCF通信サーバ名

●-r ｛no｜rep｝　　〜《no》

定義オブジェクトファイルの出力先に読み取り権限を持つファイルがすでに存在する場合，定義オブジェクトファイルを上書きするかどうかを指定します。

no

定義オブジェクトファイルを上書きしないで，KFCA10332-Eメッセージを出力します。

rep

定義オブジェクトファイルを上書きします。

MCF定義オブジェクトの解析

対応する定義ソースが不明となったMCF定義オブジェクトファイルの内容を知りたい場合に，MCF定義オブジェクトの解析をします。ここでは，MCF定義オブジェクト解析コマンドについて説明します。

形式

mcfxpr -i 〔パス名〕解析対象オブジェクトファイル名

機能

TP1/NET/XMAP3のプロトコル固有定義オブジェクトファイル（または，これと共通定義を結合したMCF通信構成定義オブジェクトファイル）を解析し，定義ソースの形式で標準出力します。

オプション

●-i　〔パス名〕解析対象オブジェクトファイル名　　〜〈1〜8文字の英数字〉

定義オブジェクトが格納されているファイル名を指定します。

出力例

#############################################################
         MCF communication configuration definition
                      XMAP3 definition
#############################################################
   OBJECT FILE NAME : xxxxxxxx
   VV-RR            : vv-rr
   DATE             : yyyy-mm-dd hh:mm:ss
#############################################################
 mcftxp
   -m msgkey     = 'PF11'
   -m timeoutlog = yes
   -o opcolor    = 2
   -o opreverse  = no
  *-o opfield1   = 0
  *-o opfield2   = 0
  *-o opfield3   = 0
  *-o opfield4   = 0
   -n            = mapserv1

・
・
・

 mcftalccn
   -c            = XPNCN1
   -p            = xp
   -g sndbuf     = 1
   -g rcvbuf     = 2
   -e msgbuf     = 3
   -e count      = 5
   -i            = manual
   -b bretry     = no
   -b bretrycnt  = 3
   -b bretryint  = 60
  *-b dretry     = no
   -S svname     = xppDSP01
   -S type       = DSP
  *-w ercvtim    = 60
 mcftalcle
   -l            = XPNLE101
   -t            = any
   -m mmsgcnt    = 0
   -m dmsgcnt    = 0
   -k quekind    = memory
   -o aj         = yes
   -G groupsend  = no

・
・
・

 mcftalcle
   -l            = XPNLE102

・
・
・

 mcftalced

・
・
・

######################## End Of File ########################

解析結果

定義オブジェクト解析コマンドは，その解析結果を定義ソースの形式で出力します。出力される内容は解析結果であり，記述形式は元の定義ソースの記述形式とは一致しません。定義ソースと定義オブジェクト解析結果の差異を次の表に示します。

表7‒4　定義ソースと定義オブジェクト解析結果の差異

項目

定義ソース

定義オブジェクト解析結果

注釈文

書き込みできる。

出力しない。

省略値の扱い

省略できる。

限定公開部分も含めて，省略値を出力する。

限定公開部分の表記方法

一般公開部分と差異なし。

バージョン7での限定公開機能の行の先頭に，"*"を付与する。

定義コマンド名とオプションの表記方法

1行に表記できる。

（例）

mcftalccn -c XPNCN1

定義コマンド名を表記後，改行する。また，オプションに"="を付記する。

（例）

mcftalccn

-c = XPNCN1

1定義コマンドが複数の行にわたる場合

継続記号"￥"を付与する。

（例）

mcftalccn -c XPNCN1 ¥

-p xp

継続記号は出力しない。

（例）

mcftalccn

-c = XPNCN1

-p = xp

1定義オプションに複数のオペランドを指定する場合

複数のオペランドをまとめて二重引用符(")で囲む。

（例）

mcftalccn -g "sndbuf=1 rcvbuf=2"

個々のオペランドに対してオプションを付記する。

（例）

mcftalccn

-g sndbuf = 1

-g rcvbuf = 2

その他

なし

ファイル名などを記したタイトルが出力される。

定義オブジェクト生成時の補正によって，実際の指定値とは異なる内容が出力される場合がある。

定義ソースと該当コマンドのバージョンの差異によって，解析結果にサポート内容の過不足がある場合がある。

注意事項

解析対象が不正であった場合は，正常に動作しないことがあります。

MCFトレースファイルの見積もり式

ここでは，MCFトレースファイルのトレース情報量の見積もり式，トレース情報が失われる経過時間の見積もり式，および具体的な見積もりの例について説明します。

トレース情報量の見積もり式

1秒当たりに取得するMCFトレースファイルの，トレース情報量の見積もり式を次に示します。

1秒当たりのトレース情報量（単位：バイト）
　　　　　　　　　　　　　　＝ (A×B) ＋ (C×D) ＋ (E×F)

A：コネクションの確立と解放時に取得するトレース情報量（単位：バイト）

画面属性のコネクションの場合：6800＋9300×コネクション配下の論理端末数

プリンタ属性のコネクションの場合：13200

B：1秒当たりのコネクション確立および解放の回数※1

C：メッセージ受信時に取得するトレース情報量（単位：バイト）

応答を送信する場合：4500＋送信する物理マップファイルのサイズ

画面に対して一方送信を送信する場合：4100＋送信する物理マップファイルのサイズ

プリンタに対して一方送信を送信する場合：7300＋送信する物理マップファイルのサイズ

D：1秒当たりのメッセージ送信回数※1

E：メッセージ受信時に取得するトレース情報量（単位：バイト）

7100＋入力論理マップの論理マップ長※2

F：1秒当たりのメッセージ受信回数※1

注※1

TP1/NET/XMAP3のMCF通信プロセスが複数存在する場合は，MCF通信プロセス単位で回数を算出してください。

注※2

入力論理マップの論理マップ長については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」を参照してください。

トレース情報が失われる経過時間の見積もり式

MCFトレースファイルから，トレース情報が失われる経過時間の算出式を次に示します。

なお，算出式中の，「1秒当たりのトレース情報量」とは，トレース情報量の見積もり式で算出した値です。

経過時間（単位：秒）
            ＝ G×H×I／1秒当たりのトレース情報量（単位：バイト）

G：トレースバッファの大きさ（mcfttrc -t size）

H：トレースバッファの数（mcfttrc -t bufcnt）

I：MCFトレースファイルの数（mcfttrc -t trccnt）

見積もり式の算出例

トレース情報量の見積もり式，およびトレース情報が失われる経過時間の見積もり式の具体的な算出例を示します。

ここでは，常時接続のサーバ型コネクションで，問い合わせ応答をする場合を例に説明します。

図7‒2　常時接続のサーバ型コネクションで，問い合わせ応答をする場合の例

この例では，次の値が想定されています。

項目

想定値

画面属性の論理端末数

1

入力論理マップの論理マップ長

200バイト

送信する物理マップファイルのサイズ

8000バイト

１分（60秒）当たりのメッセージの受信から送信までの回数

60回

トレース環境定義（mcfttrc -t）のオペランドの指定値

size ＝ 204800

bufcnt ＝ 100

trccnt ＝ 3

この例の場合の，計算例を次に示します。

トレース情報量の見積もり

((6800＋9300×1)×0※) ＋ ((4500+8000)×(60／60)) ＋ ((7100+200)×(60／60)) ＝19800

1秒当たりのトレース情報量は，19800バイトとなります。

注※

コネクションが常時接続であるため，1秒当たりのコネクション確立および解放の回数は0として計算してください。

トレース情報が失われる経過時間の見積もり

204800×100×3／19800 ≒ 3103.0

トレース情報が失われる経過時間は，3103.0秒（約51分）となります。

各種定義数に関する制約事項

TP1/NET/XMAP3では，各種定義の指定数に制約がある場合があります。マッピングサービス定義と，TP1/NET/XMAP3固有の定義では，次の数がそれぞれ15以内となっています。

マッピングサービス定義の定義数

一つのマッピングサービス識別子を指定できる通信プロセス

一つの表示印刷サービスに対して同時に接続できるコネクション，論理端末の数

これらの定義の関係を，次の図に示します。なお，図中の番号と前述の個条書きの番号は対応しています。

図7‒3　マッピングサービス定義とTP1/NET/XMAP3固有の定義の関係

OpenTP1システムの変更に影響する定義

OpenTP1システムの変更に伴って見直しが必要となる定義およびOpenTP1ファイルについて説明します。

ホスト名またはIPアドレスの変更

ホスト名またはIPアドレスを変更する場合に，見直しが必要な定義および変更手順について説明します。

ホスト名またはIPアドレスを変更する場合に見直しが必要な定義

ホスト名またはIPアドレスを変更する場合，見直す必要のある定義の一覧と発生する条件を次の表に示します。

表7‒5　ホスト名またはIPアドレスを変更する場合に見直しが必要な定義の一覧

定義ファイル名

定義

見直しが必要な条件

マッピングサービス定義

マッピングサービスホスト名

無条件に見直しが必要

XMAP3 Serverサービス名ファイル

ホスト名※

無条件に見直しが必要

注※

詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

ホスト名またはIPアドレスの変更手順

ホスト名またはIPアドレスは，次の手順で変更してください。

OpenTP1を正常停止します。

XMAP3 Serverを停止します。

マッピングサービス定義およびXMAP3 Serverサービス名ファイルについて，変更前のホスト名またはIPアドレスを検索します。

OSがUNIXの場合はgrepコマンド，Windowsの場合はfindstrコマンドを使用して検索します。

検索の結果，変更前のホスト名またはIPアドレスが見つかった場合には，変更します。

コネクション（論理端末）の追加

コネクション（論理端末）を追加する場合に見直す必要のある定義の一覧，および再見積もりが発生する条件を次の表に示します。

表7‒6　コネクション（論理端末）を追加する場合に見直しが必要な定義の一覧

定義ファイル名

定義

再見積もりが発生する条件

システム環境定義

static_shmpool_size※1

無条件に再見積もりが必要

dynamic_shmpool_size※1

同時に送受信するメッセージ数が増加する場合

MCFマネジャ定義

mcfmcomn -n

メッセージ出力通番を使用する場合

mcfmcomn -p※2

無条件に再見積もりが必要

mcfmexp -l※3

拡張予約定義を定義している場合

MCF通信構成定義

mcftbuf -g count※4

無条件に再見積もりが必要

mcftsts -l

状態を引き継ぐ論理端末が増える場合

システムサービス共通情報定義

max_open_fds※5

無条件に再見積もりが必要

注※1

詳細については，マニュアル「OpenTP1 システム定義」の「MCFサービス用の共用メモリの見積もり式」の説明を参照してください。

注※2

詳細については，マニュアル「OpenTP1 システム定義」の「mcfmcomn」と「MCFサービス用の共用メモリの見積もり式」の説明を参照してください。

注※3

詳細については，マニュアル「OpenTP1 システム定義」の「mcfmexp」の説明を参照してください。

注※4

詳細については，「mcftalccn（コネクション定義の開始）」の注意事項とマニュアル「OpenTP1 システム定義」の「mcftbuf」の説明を参照してください。

注※5

詳細については，「システムサービス共通情報定義」を参照してください。

見直す必要のあるOpenTP1ファイルの一覧，および再見積もりが発生する条件を次の表に示します。

表7‒7　コネクション（論理端末）を追加する場合に見直しが必要なOpenTP1ファイルの一覧

OpenTP1ファイル

再見積もりが発生する条件

ステータスファイル

次に示すどれかの条件の場合，再見積もりが必要

メッセージ出力通番を使用する場合

拡張予約定義を定義している場合

状態を引き継ぐ論理端末が増える場合

メッセージキューファイル

入力キューまたは出力キューにディスクキューを割り当てていて，同時に送受信するメッセージ数が増加する場合

また，TP1/NET/XMAP3のリリースノートを参照し，MCF通信プロセスが使用するローカルメモリのメモリ所要量も見直してください。

定義例

TP1/NET/XMAP3を使用したシステム定義の例を示します。

適用OSがUNIXの場合のコーディング例は，次のファイルで提供しています。

/BeTRAN/examples/mcf/XMAP3/conf/com_c1

/BeTRAN/examples/mcf/XMAP3/conf/com_d2

適用OSがWindowsの場合のコーディング例は，次のファイルで提供しています。

%DCDIR%¥examples¥mcf¥xmap3¥conf¥source¥com_c1

%DCDIR%¥examples¥mcf¥xmap3¥conf¥source¥com_d2

TP1/NET/XMAP3システム構成例を次の図に示し，その構成に沿った定義例をそのあとに示します。

図7‒4　TP1/NET/XMAP3システム構成例

コーディング例（TP1/NET/XMAP3の定義）

###############################################################
#                MCF通信構成定義(TP1/NET/XMAP3)               #
###############################################################

# ---------------------- MCF環境定義 ----------------------------- #
mcftenv     -s  66                      ¥
            -a  _XPNAPL

# ---------------------- MCF共通定義 ----------------------------- #
mcftcomn

# ---------------------- トレース環境定義 ------------------------- #
mcfttrc

# ---------------------- 送受信バッファ定義 ----------------------- #
### (送信用)
mcftbuf     -g "groupno = 1             ¥
                length  = 131072        ¥
                count   = 20"

### (受信用)
mcftbuf     -g "groupno = 2             ¥
                length  = 4096          ¥
                count   = 10"

### (編集用)
mcftbuf     -g "groupno = 3             ¥
                length  = 131072        ¥
                count   = 30"

# ---------------------- XMAP3共通定義 --------------------------- #
mcftxp      -m "msgkey = 'PF11'"        ¥
            -n  mapserv1

# ---------------------- コネクション定義 ------------------------- #
mcftalccn   -c  XPNCN1                  ¥
            -p  xp                      ¥
            -g "sndbuf = 1              ¥
                rcvbuf = 2"             ¥
            -e "msgbuf = 3              ¥
                count  = 1"             ¥
            -i  auto                    ¥
            -S "svname = xppDSP01       ¥
                type   = DSP"

# ---------------------- 論理端末定義 ---------------------------- #
mcftalcle   -l  XPNLE101                ¥
            -t  any                     ¥
            -p "dflmap  = 'MCF1G'       ¥
                initmap = 'MCF1G'"      ¥
            -a "msgadv = manual"        ¥
            -g "title = on              ¥
                titlname = 'XPNLE101'"  ¥
            -z "device = 'XDSPM1'"

# ---------------------- コネクション定義の終了 -------------------- #
mcftalced

# ---------------------- コネクション定義 ------------------------- #
mcftalccn   -c  XPNCN2                  ¥
            -p  xp                      ¥
            -g "sndbuf = 1              ¥
                rcvbuf = 2"             ¥
            -e "msgbuf = 3              ¥
                count  = 1"             ¥
            -i  auto                    ¥
            -S "svname = xppPRT01       ¥
                type   = PRT"

# ---------------------- 論理端末定義 ---------------------------- #
mcftalcle   -l  XPNLE201                ¥
            -t  any                     ¥
            -k "quekind  = disk         ¥
                quegrpid = quegrp01"    ¥
            -G "groupsend = yes"        ¥
            -p "dflmap = 'MCF1P'"       ¥
            -z "device = 'XPRTP3'"

# ---------------------- コネクション定義の終了 -------------------- #
mcftalced

#### 終わり ####

8　運用コマンド

この章では，TP1/NET/XMAP3で使用する運用コマンドについて説明します。

TP1/NET/XMAP3の運用コマンド

TP1/NET/XMAP3では，オンライン中にOpenTP1システム側と端末側からコマンドを入力できます。OpenTP1システム側から入力するコマンドを運用コマンドと呼びます。

ここでは，TP1/NET/XMAP3に関係のあるオプションについてだけ説明しています。ほかのオプションおよびその他の運用コマンドについては，マニュアル「OpenTP1 運用と操作」を参照してください。また，コマンド実行時のエラーの対処方法については，マニュアル「OpenTP1 メッセージ」を参照してください。

TP1/NET/XMAP3で使用する運用コマンドの一覧を次の表に示します。

表8‒1　TP1/NET/XMAP3で使用する運用コマンドの一覧

機能

コマンド名称

定義中組み込み

オフライン中に実行

オンライン中に実行

UAPから実行

コネクション管理

コネクションの確立

mcftactcn

×

×

○

○

コネクションの強制解放

mcftdctcn

×

×

○

○

コネクションの状態表示

mcftlscn

×

×

○

○

論理端末管理

論理端末の閉塞解除

mcftactle

×

×

○

○

論理端末の閉塞

mcftdctle

×

×

○

○

論理端末の状態表示

mcftlsle

×

×

○

○

代行送信

代行送信の開始

mcftstalt

×

×

○

○

代行送信の終了

mcftedalt

×

×

○

○

継続問い合わせ応答処理

継続問い合わせ応答処理の強制終了

mcftendct

×

×

○

○

（凡例）

○：組み込み，または実行ができます。

×：組み込み，または実行ができません。

注

各運用コマンドは，入力された単位で順番に処理されます。運用コマンドを多数入力する場合には，順番待ちが発生して，入力数が増えるほど，待ち時間が拡大します。したがって，運用コマンドの入力を業務運用の一部に組み込む場合は，必要最小限の入力数となるように運用設計を行ってください。

mcftactcn（コネクションの確立）

形式

mcftactcn 〔-s MCF通信プロセス識別子〕 -c コネクションID

機能

コネクションを確立します。

オプション

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象のコネクションを制御するMCF通信サービスのMCF通信プロセス識別子を指定します。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftactcnコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-c　コネクションID　　〜〈1〜8文字の識別子〉

確立するコネクションのコネクションIDを指定します。

コネクションIDは，1回につき8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定する場合は，引用符（"）で囲んで，コネクションIDとコネクションIDとの間を空白で区切ります。同一コネクションIDは，重複して指定できません。

また，コネクションIDは，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外のコネクションIDを混在して指定できません。一括指定の場合も，引用符（"）で囲んで指定します。

*

すべてのコネクションを確立します。

先行文字列*

先行文字列で始まるすべてのコネクションを確立します。

〈複数指定の例〉cnn1，cnn2，cnn3を指定する場合

-c "cnn1△cnn2△cnn3"

〈一括指定の例〉cnnで始まるすべてのコネクションを指定する場合

-c "cnn*"

出力メッセージ

メッセージID

内容

出力先

KFCA10350-I

mcftactcnコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftactcnコマンド入力元への応答を失敗しました。

メッセージログファイル

KFCA10371-I

mcftactcnコマンドを正常に受け付けました。

標準出力

KFCA10373-E

mcftactcnコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10381-E

指定したコネクションは登録されていません。

標準エラー出力

KFCA10391-E

mcftactcnコマンドはサポートされていません。

標準エラー出力

KFCA10500-I

ヘルプメッセージ

標準出力

KFCA13604-E

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

標準エラー出力

KFCA13610-E

コネクション解放処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13612-E

コネクション確立済みのため，運用コマンドは受け付けられません。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftactcnコマンドが正常に受け付けられたかどうかは，コマンドのリターン値しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftactle（論理端末の閉塞解除）

形式

mcftactle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
            -l 論理端末名称 〔-t 閉塞解除種別〕

機能

論理端末の閉塞を解除します。

オプション

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象の論理端末を制御するMCF通信サービスのMCF通信プロセス識別子を指定します。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftactleコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-c　コネクションID　　〜〈1〜8文字の識別子〉

閉塞解除したい論理端末に対応するコネクションのコネクションIDを指定します。

コネクションIDは複数指定できません。また，一括指定もできません。

●-l　論理端末名称　　〜〈1〜8文字の識別子〉

閉塞解除する論理端末の名称を指定します。

-cオプションを指定した場合は，指定したコネクションIDに対応する論理端末の名称を指定します。

論理端末名称は，1回につき8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定する場合は，引用符（"）で囲んで，論理端末名称と論理端末名称との間を空白で区切ります。同一論理端末名称は，重複して指定できません。

また，論理端末名称は，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外の論理端末名称を混在して指定できません。一括指定の場合も，引用符（"）で囲んで指定します。

*

すべての論理端末の閉塞を解除します。

先行文字列*

先行文字列で始まるすべての論理端末の閉塞を解除します。

〈複数指定の例〉len1，len2，len3を指定する場合

-l "len1△len2△len3"

〈一括指定の例〉lenで始まるすべての論理端末を指定する場合

-l "len*"

●-t　閉塞解除種別

閉塞解除の種別を指定します。

all：論理端末の端末状態，およびキュー状態の閉塞を解除します。

term：論理端末の端末状態の閉塞を解除します。

queue：論理端末のキュー状態の閉塞を解除します。

このオプションの指定を省略すると，allが設定されます。

出力メッセージ

メッセージID

内容

出力先

KFCA10350-I

mcftactleコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftactleコマンド入力元への応答を失敗しました。

メッセージログファイル，または標準エラー出力

KFCA10371-I

mcftactleコマンドを正常に受け付けました。

標準出力

KFCA10373-E

mcftactleコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10381-E

指定したコネクションは登録されていません。

標準エラー出力

KFCA10382-E

指定した論理端末は登録されていません。

標準エラー出力

KFCA10390-E

指定されたコネクションIDと論理端末名称の対応が正しくありません。

標準エラー出力

KFCA10391-E

mcftactleコマンドはサポートされていません。

標準エラー出力

KFCA10395-E

指定したコネクションには未接続の論理端末名称が指定されています。

標準エラー出力

KFCA10503-I

ヘルプメッセージ

標準出力

KFCA13602-E

論理端末閉塞解除処理で障害が発生しました。

標準エラー出力

KFCA13609-E

論理端末が閉塞解除済みのため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13611-E

コネクションが未確立のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13613-E

論理端末の端末状態が閉塞解除済みのため運用コマンドは受け付けられません。

標準エラー出力

KFCA13615-E

論理端末のキュー状態が閉塞解除済みのため運用コマンドは受け付けられません。

標準エラー出力

KFCA13665-W

コネクション未確立のため論理端末の端末状態は閉塞解除できませんでした。

標準エラー出力

KFCA13694-E

論理端末の端末状態の閉塞解除処理中に障害が発生しました。

標準エラー出力

KFCA13696-E

論理端末のキー状態の閉塞解除処理中に障害が発生しました。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftactleコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftdctcn（コネクションの強制解放）

形式

mcftdctcn -f 〔-s MCF通信プロセス識別子〕
               -c コネクションID

機能

コネクションを強制解放します。

なお，継続問い合わせ応答処理中にmcftdctcnコマンドを入力した場合，処理中のMHPが終了したあと，受け付けられます。

オプション

●-f

該当するコネクションを無条件に解放します。

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象のコネクションを制御するMCF通信サービスのMCF通信プロセス識別子を指定します。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftdctcnコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-c　コネクションID　　〜〈1〜8文字の識別子〉

解放するコネクションのコネクションIDを指定します。

コネクションIDは，1回につき8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定する場合は，引用符（"）で囲んで，コネクションIDとコネクションIDとの間を空白で区切ります。同一コネクションIDは，重複して指定できません。

また，コネクションIDは，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外のコネクションIDを混在して指定できません。一括指定の場合も，引用符（"）で囲んで指定します。

*

すべてのコネクションを解放します。

先行文字列*

先行文字列で始まるすべてのコネクションを解放します。

〈複数指定の例〉cnn1，cnn2，cnn3を指定する場合

-c "cnn1△cnn2△cnn3"

〈一括指定の例〉cnnで始まるすべてのコネクションを指定する場合

-c "cnn*"

出力メッセージ

メッセージID

内容

出力先

KFCA10350-I

mcftdctcnコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftdctcnコマンド入力元への応答を失敗しました。

メッセージログファイル

KFCA10371-I

mcftdctcnコマンドを正常に受け付けました。

標準出力

KFCA10373-E

mcftdctcnコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10381-E

指定したコネクションは登録されていません。

標準エラー出力

KFCA10391-E

mcftdctcnコマンドはサポートされていません。

標準エラー出力

KFCA10501-I

ヘルプメッセージ

標準出力

KFCA13603-E

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

標準エラー出力

KFCA13610-E

コネクション解放処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13611-E

コネクションが確立されていません。

標準エラー出力

KFCA13686-W

-fオプションなしはサポートしていません。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftdctcnコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftdctle（論理端末の閉塞）

形式

mcftdctle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
            -l 論理端末名称 〔-t 閉塞種別〕

機能

論理端末を閉塞します。ただし，継続問い合わせ応答処理中の論理端末を閉塞することはできません。

オプション

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象の論理端末を制御するMCF通信サービスのMCF通信プロセス識別子を指定します。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftdctleコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-c　コネクションID　　〜〈1〜8文字の識別子〉

閉塞したい論理端末に対応するコネクションのコネクションIDを指定します。

コネクションIDは複数指定できません。また，一括指定もできません。

●-l　論理端末名称　　〜〈1〜8文字の識別子〉

閉塞する論理端末の名称を指定します。

-cオプションを指定した場合，指定したコネクションIDに対応する論理端末名称を指定します。

論理端末名称は，1回につき8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定する場合は，引用符（"）で囲んで，論理端末名称と論理端末名称との間を空白で区切ります。同一論理端末名称は，重複して指定できません。

また，論理端末名称は，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外の論理端末名称を混在して指定できません。一括指定の場合も，引用符（"）で囲んで指定します。

*

すべての論理端末を閉塞します。

先行文字列*

先行文字列で始まるすべての論理端末を閉塞します。

〈複数指定の例〉len1，len2，len3を指定する場合

-l "len1△len2△len3"

〈一括指定の例〉lenで始まるすべての論理端末を指定する場合

-l "len*"

●-t　閉塞種別

閉塞の種別を指定します。

all：論理端末の端末状態，およびキュー状態を閉塞します。

term：論理端末の端末状態を閉塞します。

queue：論理端末のキュー状態を閉塞します。

このオプションの指定を省略すると，allが設定されます。

出力メッセージ

メッセージID

内容

出力先

KFCA10350-I

mcftdctleコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftdctleコマンド入力元への応答を失敗しました。

メッセージログファイル，または標準エラー出力

KFCA10371-I

mcftdctleコマンドを正常に受け付けました。

標準出力

KFCA10373-E

mcftdctleコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10381-E

指定したコネクションは登録されていません。

標準エラー出力

KFCA10382-E

指定した論理端末は登録されていません。

標準エラー出力

KFCA10390-E

指定したコネクションIDと論理端末名称の対応が正しくありません。

標準エラー出力

KFCA10391-E

mcftdctleコマンドはサポートされていません。

標準エラー出力

KFCA10395-E

指定したコネクションには未接続の論理端末名称が指定されています。

標準エラー出力

KFCA10504-I

ヘルプメッセージ

標準出力

KFCA13601-E

論理端末閉塞処理で障害が発生しました。

標準エラー出力

KFCA13607-E

論理端末が継続問い合わせ応答中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13608-E

論理端末が閉塞解除されていないため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13614-E

論理端末の端末状態が閉塞解除されていないため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13616-E

論理端末のキー状態が閉塞解除されていないため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13695-E

論理端末の端末状態の閉塞処理中に障害が発生しました。

標準エラー出力

KFCA13697-E

論理端末のキュー状態の閉塞処理中に障害が発生しました。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

受信仕掛り中に運用コマンド（mcftdctle）を入力した場合は，受信仕掛り中のメッセージは破棄されます。以降の受信メッセージは入力キューに格納されません。

送信仕掛り中に運用コマンド（mcftdctle）を入力した場合の処理は，通信形態によって異なります。

分岐メッセージのときは送信処理が中断されます。以降のUAPからの送信メッセージは，出力キュー上に格納されます。

応答メッセージのときは，次に論理端末が閉塞解除状態になった時に破棄されます。

mcftdctleコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftedalt（代行送信の終了）

形式

mcftedalt 〔-s MCF通信プロセス識別子〕 -l 論理端末名称

機能

代行送信を終了します。

オプション

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象の論理端末を制御するMCF通信サービスのMCF通信プロセス識別子を指定します。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftedaltコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-l　論理端末名称　　〜〈1〜8文字の識別子〉

代行を終了する代行送信元の論理端末の名称を指定します。mcftstaltコマンドの-fオプションで指定した論理端末名称を指定してください。

論理端末名称は複数指定できません。また，一括指定もできません。

出力メッセージ

メッセージID

内容

出力先

KFCA10117-I

メッセージの代行送信を終了します。

メッセージログファイル

KFCA10350-I

mcftedaltコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftedaltコマンド入力元への応答を失敗しました。

メッセージログファイル

KFCA10371-I

mcftedaltコマンドを正常に受け付けました。

標準出力

KFCA10373-E

mcftedaltコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10382-E

指定した論理端末は登録されていません。

標準エラー出力

KFCA10391-E

mcftedaltコマンドはサポートされていません。

標準エラー出力

KFCA10542-I

ヘルプメッセージ

標準出力

KFCA13689-E

代行送信終了処理で障害が発生しました。

メッセージログファイル

KFCA13699-E

代行送信終了処理中に障害が発生しました。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftedaltコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftendct（継続問い合わせ応答処理の強制終了）

形式

mcftendct 〔-f〕
          〔-s MCF通信プロセス識別子〕
            -l 論理端末名称

機能

継続問い合わせ応答処理を強制終了します。

オプション

●-f

継続問い合わせ応答処理を即時強制終了する場合に指定します。

このオプションを指定すると，直ちに継続問い合わせ用一時記憶領域を解放し，該当する論理端末からの問い合わせを処理しているMHP（エラーイベントを含む）は異常終了します。このときエラーイベントは起動しません。

-fオプションを指定したmcftendctコマンドの実行後にMHPが次に示す処理をしたとき，MHPが異常終了します。

TP1/Message Control以外のリソースマネジャにもアクセスするMHPのサービス終了時

継続問い合わせ用一時記憶領域アクセス時（dc_mcf_tempget関数，dc_mcf_tempput関数発行時）

ロールバック要求時（dc_mcf_rollback関数発行時（action：DCMCFRTRY，またはDCMCFNRTNの場合））

このオプションの指定を省略すると，MHPが該当する論理端末からの問い合わせを処理中の場合，エラーメッセージが出力されます。

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象の論理端末を制御するMCF通信サービスのMCF通信プロセス識別子を指定します。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftendctコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-l　論理端末名称　　〜〈1〜8文字の識別子〉

継続問い合わせ応答処理中の論理端末名称を指定します。

論理端末名称は，1回につき8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定する場合は，引用符（"）で囲んで，論理端末名称と論理端末名称との間を空白で区切ります。同一論理端末名称は，重複して指定できません。

また，論理端末名称は，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外の論理端末名称を混在して指定できません。一括指定の場合も引用符（"）で囲んで指定します。

*

すべての論理端末を対象とします。

先行文字列*

先行文字列で始まるすべての論理端末を対象とします。

〈複数指定の例〉

-l "論理端末名称1△論理端末名称2△論理端末名称3"

〈一括指定の例〉len1，len2，len3を一括して指定する場合

-l "len*"

出力メッセージ

メッセージID

内容

出力先

KFCA10350-I

mcftendctコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定に誤りがあります。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftendctコマンド入力元への応答を失敗しました。

メッセージログファイル，または標準エラー出力

KFCA10371-I

mcftendctコマンドを正常に受け付けました。

標準出力

KFCA10373-E

mcftendctコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10382-E

指定した論理端末は登録されていません。

標準エラー出力

KFCA10391-E

mcftendctコマンドはサポートされていません。

標準エラー出力

KFCA10521-I

ヘルプメッセージ

標準出力

KFCA13600-E

継続問い合わせ応答終了処理で障害が発生しました。

標準エラー出力

KFCA13605-E

UAPが継続問い合わせ応答処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13606-E

論理端末は継続問い合わせ中ではありません。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftendctコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftlscn（コネクションの状態表示）

形式

mcftlscn 〔-s MCF通信プロセス識別子〕 -c コネクションID 〔-d〕

機能

コネクションの状態を標準出力に出力します。

オプション

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象のコネクションを制御するMCF通信サービスのMCF通信プロセス識別子を指定します。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftlscnコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-c　コネクションID　　〜〈1〜8文字の識別子〉

状態を表示するコネクションのコネクションIDを指定します。

コネクションIDは，1回につき8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定する場合は，引用符（"）で囲んで，コネクションIDとコネクションIDとの間を空白で区切ります。同一コネクションIDは，重複して指定できません。

また，コネクションIDは，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外のコネクションIDを混在して指定できません。一括指定の場合も引用符（"）で囲んで指定します。

*

すべてのコネクションの状態を表示します。

先行文字列*

先行文字列で始まるすべてのコネクションの状態を表示します。

〈複数指定の例〉cnn1，cnn2，cnn3を指定する場合

-c "cnn1△cnn2△cnn3"

〈一括指定の例〉cnnで始まるすべてのコネクションを指定する場合

-c "cnn*"

●-d

コネクションの状態と該当するコネクションに対応する論理端末の情報を表示します。また現在接続中または接続リトライ中の表示印刷サービス名も表示します。

このオプションの指定を省略すると，コネクションの状態だけを表示します。

出力形式

mmm cccccccc ppp sssss dddd   ……-dオプションを指定しないと，
    llllllll ttt uuu              この行だけ出力されます。
    xxxx...x

mmm：MCF識別子

cccccccc：コネクションID

ppp：プロトコル種別

XP…TP1/NET/XMAP3

sssss：コネクションの状態

ACT…確立状態

ACT/B…確立処理中状態

DCT…解放状態

DCT/B…解放処理中状態

dddd：詳細ステータス（保守情報）

WCL…コネクション解放準備完了待ち状態

WCO…継続問い合わせ仕掛り完了待ち状態

上記以外のステータスが出力されることがありますが，内部情報のため無視してください。

llllllll：論理端末名称

ttt：論理端末タイプ

ANY…any

uuu：論理端末の端末状態

ACT…閉塞解除状態

DCT…閉塞状態

xxxx...x：接続中または接続リトライ中の表示印刷サービス名

出力メッセージ

メッセージID

内容

出力先

KFCA10350-I

mcftlscnコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftlscnコマンド入力元への応答を失敗しました。

メッセージログファイル

KFCA10360-I

状態表示を開始します。

標準出力

KFCA10361-I

標準情報を示します。

標準出力

KFCA10362-I

詳細情報を示します。

標準出力

KFCA10369-I

状態表示を終了します。

標準出力

KFCA10373-E

mcftlscnコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10381-E

指定したコネクションは登録されていません。

標準エラー出力

KFCA10391-E

mcftlscnコマンドはサポートされていません。

標準エラー出力

KFCA10502-I

ヘルプメッセージ

標準出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

KFCA16429-I

付加情報を示します。

標準出力

mcftlsle（論理端末の状態表示）

形式

mcftlsle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
           -l 論理端末名称 〔-q〕

機能

論理端末のキュー状態を標準出力に出力します。

論理端末の端末状態を表示する場合は，mcftlscnコマンドを-dオプション付きで使用します。

オプション

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象の論理端末を制御するMCF通信サービスのMCF通信プロセス識別子を指定します。アプリケーション起動サービスのアプリケーション起動プロセス識別子は指定できません。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftlsleコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-c　コネクションID　　〜〈1〜8文字の識別子〉

状態を表示したい論理端末に対応するコネクションのコネクションIDを指定します。

コネクションIDは複数指定できません。また，一括指定もできません。

●-l　論理端末名称　　〜〈1〜8文字の識別子〉

状態を表示する論理端末の名称を指定します。

-cオプションを指定した場合，指定したコネクションIDに対応する論理端末名称を指定します。

論理端末名称は，一度に8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数の論理端末名称を指定する場合は，引用符（"）で囲んで，論理端末名称と論理端末名称との間を空白で区切ります。同一論理端末名称は，重複して指定できません。

また，論理端末名称は，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外の論理端末名称を混在して指定できません。一括指定の場合も，引用符（"）で囲んで指定します。

*

すべての論理端末の状態を表示します。

先行文字列*

先行文字列で始まるすべての論理端末の状態を表示します。

〈複数指定の例〉len1，len2，len3を指定する場合

-l "len1△len2△len3"

〈一括指定の例〉lenで始まるすべての論理端末を指定する場合

-l "len*"

●-q

指定した論理端末に対応する出力キューの保留状態を表示します。

このオプションの指定を省略すると，論理端末に対応する出力キューの保留状態は表示しません。

出力形式

mmm llllllll sss〔tttt〕
    aaaaa bbbbbbbb
    SYNC xxxxxxxxxx yyyyyyyyyy zzzzzzzzzz
      IO   :     :     :
    PRIO   :     :     :
    NORM   :     :     :
    iii ooo

mmm：MCF識別子

llllllll：論理端末名称

sss：論理端末のキュー状態

ACT…閉塞解除状態

DCT…閉塞状態

tttt：論理端末のテストモード状態（TP1/Message Control/Tester使用時だけ表示）

TEST…テストモード

空白…非テストモード

aaaaa：代行種別

ALT_F…代行元

ALT_T…代行先

bbbbbbbb：論理端末名称

状態を表示している論理端末が代行元論理端末の場合，対応する代行先論理端末名称を表示します。この場合aaaaaはALT_F（代行先）を表示します。

状態を表示している論理端末が代行先論理端末の場合，対応する代行元論理端末名称を表示します。このときaaaaaはALT_T（代行元）を表示します。

SYNC：同期型メッセージ

未処理送信メッセージを破棄した場合（ERREVTAを起動する場合），メッセージの破棄が完了するまでいったん同期型メッセージの出力キューに格納するため，未送信メッセージ数が一時的に増加します。

IO：非同期型問い合わせ応答メッセージ

次の場合，未送信メッセージ数が一時的に増加します。

端末から非応答型MHPにメッセージを送信したときの，論理端末画面のキーボード状態をロック状態にするように論理端末定義（mcftalcle -K keyboard=aplock）で指定している場合

ans型またはcont型のアプリケーションを起動するメッセージを，運用コマンド（mcftdlqsg）で入力キューから削除した場合

ans型またはcont型のアプリケーションの動作（異常終了など）によって，本来ならば起動されるERREVT3が何らかの要因で起動できなかった場合

PRIO：非同期型一方送信メッセージ（優先）

NORM：非同期型一方送信メッセージ（一般）

xxxxxxxxxx：未送信メッセージ数（unsigned shortの上限値まで表示可能）

yyyyyyyyyy：未送信メッセージの先頭の出力通番（intの上限値まで表示可能）

zzzzzzzzzz：未送信メッセージの最後の出力通番（intの上限値まで表示可能）

iii：出力キューの入力の保留状態（-qオプション指定時だけ表示）

NOH…保留解除

HLD…保留

ooo：出力キューの出力の保留状態（-qオプション指定時だけ表示）

NOH…保留解除

HLD…保留

出力メッセージ

メッセージID

内容

出力先

KFCA10350-I

mcftlsleコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftlsleコマンド入力元への応答を失敗しました。

メッセージログファイル

KFCA10360-I

状態表示を開始します。

標準出力

KFCA10364-I

表示情報

標準出力

KFCA10365-I

表示情報

標準出力

KFCA10369-I

状態表示を終了します。

標準出力

KFCA10373-E

mcftlsleコマンドが異常終了しました。

標準エラー出力

KFCA10378-I

上記の出力形式を参照してください。

標準出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10381-E

指定したコネクションは登録されていません。

標準エラー出力

KFCA10382-E

指定した論理端末は登録されていません。

標準エラー出力

KFCA10390-E

指定したコネクションIDと論理端末名称の対応が正しくありません。

標準エラー出力

KFCA10391-E

mcftlsleコマンドはサポートされていません。

標準エラー出力

KFCA10395-E

指定したコネクションには未接続の論理端末名称が指定されています。

標準エラー出力

KFCA10399-I

上記の出力形式を参照してください。

標準出力

KFCA10505-I

ヘルプメッセージ

標準出力

KFCF16402-E

RPC障害が発生しました。

標準エラー出力

mcftstalt（代行送信の開始）

形式

mcftstalt 〔-s MCF通信プロセス識別子〕 -f 代行元論理端末名称
            -t 代行先論理端末名称

機能

送信先のプリンタに障害が発生していて送信ができないメッセージ（一方送信メッセージ）を，ほかのプリンタに送信します。メッセージグループ送信機能，またはページ制御機能を使用している場合，TP1/NET/XMAP3では代行送信によるプリンタ出力の結果を保証しません。また，代行先論理端末のキュー状態が閉塞中の場合は代行送信されません。論理端末のキュー状態を代行先，代行元ともに閉塞解除状態にしてください。

オプション

●-s　MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象の論理端末を制御するMCF通信サービスのMCF通信プロセス識別子を指定します。代行元と代行先の端末が同じプロセスに対応していなければなりません。MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftstaltコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-f　代行元論理端末名称　　〜〈1〜8文字の識別子〉

代行送信元の論理端末の名称を指定します。

指定する論理端末は，端末状態が閉塞中，またはプリンタが障害中でなければなりません。

代行元論理端末名称は複数指定できません。また，一括指定もできません。

●-t　代行先論理端末名称　　〜〈1〜8文字の識別子〉

代行送信先の論理端末の名称を指定します。すでに代行先として指定されている論理端末名称は指定できません。

指定する論理端末の端末状態が閉塞している場合は，指定できません。

指定する論理端末プリンタが障害中の場合は，指定できません。

代行先論理端末名称は複数指定できません。また，一括指定もできません。

出力メッセージ

メッセージID

内容

出力先

KFCA10116-I

メッセージの代行送信を開始します。

メッセージログファイル

KFCA10350-I

mcftstaltコマンドが入力されました。

標準出力

KFCA10351-E

MCF開始処理中です。

標準エラー出力

KFCA10352-E

MCF終了処理中です。

標準エラー出力

KFCA10353-W

入力形式が誤っています。

標準エラー出力

KFCA10354-E

メモリ不足です。

メッセージログファイル，または標準エラー出力

KFCA10355-W

引数の指定が誤っています。

標準エラー出力

KFCA10356-E

プロセス間でタイムアウトが発生しました。

標準エラー出力

KFCA10357-E

MCF内でタイムアウトが発生しました。

標準エラー出力

KFCA10358-E

内部関数のエラーが発生しました。

メッセージログファイル，または標準エラー出力

KFCA10359-W

mcftstaltコマンド入力元への応答を失敗しました。

メッセージログファイル

KFCA10371-I

mcftstaltコマンドを正常に受け付けました。

標準出力

KFCA10373-E

mcftstaltコマンドが異常終了しました。

標準エラー出力

KFCA10380-E

相手プロセスの検索に失敗しました。

標準エラー出力

KFCA10382-E

指定した論理端末は登録されていません。

標準エラー出力

KFCA10391-E

mcftstaltコマンドはサポートされていません。

標準エラー出力

KFCA10541-I

ヘルプメッセージ

標準出力

KFCA13687-W

表示サーバ下の論理端末の代行送信は，サポートしていません。

標準エラー出力

KFCA13688-E

代行送信開始処理で障害が発生しました。

メッセージログファイル

KFCA13698-E

代行送信開始処理中に障害が発生しました。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftstaltコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

9　オンラインコマンド

この章では，TP1/NET/XMAP3のオンラインコマンドについて説明します。

TP1/NET/XMAP3のオンラインコマンド

TP1/NET/XMAP3では，オンライン中にOpenTP1システム側と端末側からコマンドを入力できます。端末側から入力するコマンドをオンラインコマンドと呼びます。

オンラインコマンドは，受信メッセージの先頭セグメントだけ有効です。

オンラインコマンドの一覧

TP1/NET/XMAP3のオンラインコマンドの一覧を次の表に示します。

表9‒1　TP1/NET/XMAP3のオンラインコマンドの一覧

コマンド

機能

ACT ALTSEND

代行送信を開始します。

DEACT ALTSEND

代行送信を終了します。

init

指定されたマップで初期画面を表示します。

オンラインコマンド使用時の注意事項

initコマンド以外のオンラインコマンドを使用する場合，オンラインコマンドサービスを起動する必要があります。オンラインコマンドサービスを起動するには，MCFマネジャ共通定義（mcfmcomn -o）のcmdsvnameオペランドで，_mcsで始まるMCFオンラインコマンドサービス名を指定します。

適用OSがWindowsの場合は，initコマンドだけ使用できます。

オンラインコマンドの省略形

オンラインコマンドには，コマンド名とオプションに省略形があります。オンラインコマンドの省略形式を次の表に示します。

表9‒2　オンラインコマンドの省略形式

本来形式

省略形式

ACT ALTSEND FROM=論理端末名称1，TO=論理端末名称2

A ALTSEND FROM=論理端末名称1，TO=論理端末名称2

DEACT ALTSEND VTERM=論理端末名称

DEA ALTSEND VT=論理端末名称

init MAP=マップ名

なし

オンラインコマンドの入力形式

次のどちらかの形式で指定します。

C△オンラインコマンド
c△オンラインコマンド

入力例

c△init△MAP=MAP001

ACT ALTSEND（代行送信の開始）

形式

ACT ALTSEND FROM=論理端末名称1,TO=論理端末名称2

機能

送信先のプリンタに障害が発生していて送信ができないメッセージ（一方送信メッセージ）をほかのプリンタに送信します。メッセージグループ送信機能，またはページ制御機能を使用している場合，TP1/NET/XMAP3では代行送信によるプリンタ出力の結果を保証しません。

オプション

●FROM=論理端末名称1　　〜〈1〜8文字の識別子〉

代行送信元の論理端末名称を指定します。

●TO=論理端末名称2　　〜〈1〜8文字の識別子〉

代行送信先の論理端末名称を指定します。

DEACT ALTSEND（代行送信の終了）

形式

DEACT ALTSEND VTERM=論理端末名称

機能

代行送信を終了します。

オプション

●VTERM=論理端末名称　　〜〈1〜8文字の識別子〉

代行送信を終了する代行送信元の論理端末名称（ACT ALTSENDコマンドのFROMオプションで指定したもの）を指定します。

init（初期画面の表示）

形式

init [MAP=マップ名]

機能

初期画面を表示します。

オプション

●MAP=マップ名　　〜〈1〜6文字の記号名称〉

表示する初期画面のマップ名を指定します。

このオプションを省略すると，論理端末定義（mcftalcle）で指定したイニシャライズマップを表示します。

10　組み込み方法

この章では，TP1/NET/XMAP3をOpenTP1システムに組み込む方法について説明します。

10.1　TP1/NET/XMAP3の組み込みの流れ

TP1/NET/XMAP3をOpenTP1システムに組み込む場合の作業の流れを説明します。

10.1.1　MCFメイン関数の作成

TP1/NET/XMAP3を起動するためには，MCFメイン関数をコーディングし，コンパイル，およびリンケージしておく必要があります。詳細は，「10.2　MCFメイン関数の作成」を参照してください。

10.1.2　MCFサービス名の登録

TP1/NET/XMAP3を実行するために，MCFサービス名をシステムサービス構成定義で定義しておく必要があります。

また，MCFサービス名はMCFマネジャ定義オブジェクトファイル名と一致させてください。

詳細は，マニュアル「OpenTP1 システム定義」を参照してください。

10.1.3　システムサービス情報定義ファイルの作成

システムサービス情報定義ファイルをテキストエディタで作成します。作成するファイルのパス名は，「$DCDIR/lib/sysconf/システムサービス情報定義ファイル名」としてください。

ファイルの定義形式については，「7.　システム定義」の「システムサービス情報定義」を参照してください。

10.1.4　定義オブジェクトファイルの作成

OpenTP1のネットワークコミュニケーション定義の各ソースファイルから定義オブジェクトファイルを生成します。詳細は，「10.3　定義オブジェクトファイルの生成」を参照してください。

10.2　MCFメイン関数の作成

TP1/NET/XMAP3は，OpenTP1プロセスサービスによって起動されます。

TP1/NET/XMAP3を起動するためには，ユーザがMCFメイン関数をコーディングし，コンパイル，およびリンケージを行ってTP1/NET/XMAP3の実行形式プログラムを作成する必要があります。実行形式プログラムのリンケージには，mcfplxpコマンドを使用します。

MCFメイン関数では，スタート関数（dc_mcf_svstart）を呼び出します。UOCを使用する場合は，MCFメイン関数でUOCの関数アドレスを指定してください。UOCは，MCFメイン関数と同じ言語（ANSI C，C++，またはK＆R版C）で作成してください。MCFメイン関数のコーディング概要，およびMCFメイン関数のディレクトリへの組み込み方法を，以降の図に示します。

なお，これらのコーディング例を次のファイルで提供しています。

適用OSがUNIXの場合

/BeTRAN/examples/mcf/XMAP3/cmlib/ansi/com.c

/BeTRAN/examples/mcf/XMAP3/cmlib/c/com.c

適用OSがWindowsの場合

%DCDIR%¥examples¥mcf¥XMAP3¥cmlib¥c¥com.c

図10‒1　MCFメイン関数のコーディング概要（ANSI C，C++の場合）

TP1/NET/XMAP3で提供するヘッダファイルを取り込みます。

使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。

これらのUOCを使用する場合だけ，コーディングしてください。

UOCテーブルをextern宣言します。UOCを使用する場合，必ずこのとおりにコーディングしてください。

各UOC関数のアドレスを，次に示すシステム提供変数に設定します。

dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス*/
dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス*/

これらのUOCを使用する場合だけ，コーディングしてください。

スタート関数を呼び出します。MCFメイン関数には必ずコーディングしてください。

スタート関数を呼び出したあとは，MCFメイン関数に制御が戻りません。そのため，スタート関数のあとにコーディングした処理は実行されませんので注意してください。

図10‒2　MCFメイン関数のコーディング概要（K＆R版C の場合）

TP1/NET/XMAP3で提供するヘッダファイルを取り込みます。

使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。

これらのUOCを使用する場合だけ，コーディングしてください。

UOCテーブルをextern宣言します。UOCを使用する場合，必ずこのとおりにコーディングしてください。

各UOC関数のアドレスを，次に示すシステム提供変数に設定します。

dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス*/
dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス*/

これらのUOCを使用する場合だけ，コーディングしてください。

スタート関数を呼び出します。MCFメイン関数には必ずコーディングしてください。

スタート関数を呼び出したあとは，MCFメイン関数に制御が戻りません。そのため，スタート関数のあとにコーディングした処理は実行されませんので注意してください。

図10‒3　MCFメイン関数のディレクトリへの組み込み方法

注※1

ユーザ作成のUOCを使用しない場合は，必要ありません。

注※2

mcfplxpコマンドでリンケージします。

mcfplxpコマンドの詳細については，TP1/NET/XMAP3の「リリースノート」を参照してください。

注※3

TP1/NET/XMAP3の実行形式プログラム名は，先頭がmcfuで始まる8文字以内の名称です。

10.3　定義オブジェクトファイルの生成

定義オブジェクトファイルを次の手順で生成します。

ただし，開始から再開始の間に定義オブジェクトファイルを変更してはいけません。変更した場合，再開始の動作は保証できません。

OSのテキストエディタを使用して，MCFの定義ファイルから，次に示す定義ソースファイルを作成します。

MCFマネジャ定義ソースファイル

MCF通信構成定義の共通定義ソースファイル

MCF通信構成定義のTP1/NET/XMAP3のプロトコル固有定義ソースファイル

MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティを使用して，定義ソースファイルから，次に示すオブジェクトファイルを作成します。

MCFマネジャ定義オブジェクトファイル

MCF通信構成定義の共通定義オブジェクトファイル

MCF通信構成定義のTP1/NET/XMAP3のプロトコル固有定義オブジェクトファイル

MCFアプリケーション定義オブジェクトファイル

MCF定義結合ユティリティを使用して，MCF通信構成定義の共通定義とプロトコル固有定義のオブジェクトファイルを結合します。

定義オブジェクトファイルの作成方法の概要を次の図に示します。

図10‒4　定義オブジェクトファイルの作成方法の概要

注※1

次に示すコマンドで生成します。

mcfXXXX△-i△〔パス名〕入力ファイル名
       △-o△〔パス名〕出力オブジェクトファイル名

mcf××××は，ソースファイルごとに異なります。

mcfmngr：MCFマネジャ定義ソースファイル

mcfcomn：MCF通信構成定義の共通定義ソースファイル

mcfxp：MCF通信構成定義のプロトコル（TP1/NET/XMAP3）固有定義ソースファイル

mcfapli：MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティのmcfxpコマンドについては「7.　システム定義」の「MCF定義オブジェクトの生成」を，その他のコマンドについてはマニュアル「OpenTP1 システム定義」を参照してください。

注※2

次に示すコマンドで，MCF通信構成定義の二つのオブジェクトファイルを結合します。

mcflink△-i△MCF通信構成定義の共通定義オブジェクトファイル名△
       TP1/NET/XMAP3固有定義オブジェクトファイル名
       △-o△MCF通信構成定義のオブジェクトファイル名

注※3

定義オブジェクトファイルは，システム環境定義のDCCONFPATHで指定したディレクトリに格納してください。システム環境定義については，マニュアル「OpenTP1 システム定義」を参照してください。

11　障害対策

この章では，TP1/NET/XMAP3の障害対策について説明します。

11.1　障害の種類と対応処理

TP1/NET/XMAP3は，障害の種類によってそれぞれに対応する処理をします。障害内容によっては，TP1/NET/XMAP3はオペレータインジケータにメッセージを表示します。オペレータインジケータに表示されるメッセージについては，「付録I　オペレータインジケータ表示メッセージ一覧」を参照してください。

TP1/NET/XMAP3の障害発生時の処理について，次に示す障害の種類ごとに説明します。

11.1.1　コネクション障害

表11‒1　コネクション障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

XMAP3 Server

・通信路切断

・サーバ未登録

・サーバ利用不可

など

障害発生時の処理に対応したメッセージログを出力します。

コネクション内の全論理端末を閉塞します。

コネクション定義（mcftalccn）で，再試行を指定すればコネクション確立再試行をします。再試行を指定しなければコネクションを閉塞します。

コネクションが閉塞した場合，運用コマンド（mcftactcn，mcftactle）の入力，またはAPI（dc_mcf_tactcn関数，dc_mcf_tactle関数）の発行で，コネクションを確立し，論理端末の閉塞を解除します。

・作業領域確保失敗

など

障害発生時の処理に対応したメッセージログを出力します。

コネクション内の全論理端末を閉塞します。

コネクションを閉塞します。

運用コマンド（mcftactcn，mcftactle）の入力，またはAPI（dc_mcf_tactcn関数，dc_mcf_tactle関数）の発行で，コネクションを確立し，論理端末の閉塞を解除します。

11.1.2　論理端末障害

表11‒2　論理端末障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

XMAP3 Server

・作業領域確保失敗

・論理端末画面生成数超過

など

障害発生時の処理に対応したメッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します（画面の場合）。

論理端末を閉塞します。

運用コマンド（mcftactle）の入力，またはAPI（dc_mcf_tactle関数）の発行で，論理端末の閉塞を解除します。

11.1.3　メッセージ障害

表11‒3　メッセージ障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

XMAP3 Server

・メッセージ不正

障害発生時の処理に対応したメッセージログを出力します。

送信メッセージを破棄します。応答メッセージの場合は，オペレータインジケータに表示します。

処理を続行します。

ありません。

11.1.4　マッピング障害

表11‒4　マッピング障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

・マッピングサービス障害

・XMAP3マッピング機能の障害

障害発生時の処理に対応したメッセージログを出力します。

メッセージの種別によって次の処理をします。

・マッピング障害の原因を取り除きます。

・保留された送信メッセージが不要な場合は，運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数）の発行で，出力メッセージを破棄します。

・論理端末が閉塞した場合，運用コマンド（mcftactle）の入力，またはAPI（dc_mcf_tactle関数）の発行で論理端末の閉塞を解除します。

応答メッセージ

・送信メッセージを破棄します。

・論理端末を閉塞します。

一方送信メッセージ

・送信メッセージを保留します。

・論理端末を閉塞します。

問い合わせメッセージ

・受信メッセージを破棄します。

・論理端末を閉塞します。

11.1.5　プリンタ障害

表11‒5　プリンタ障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

（排他時）XMAP3 Server

・準備完OFF

・印刷用紙なし

・電源OFF

・ハード障害

など

障害発生時の処理に対応したメッセージログを出力します。

送信メッセージを保留します。

論理端末定義（mcftalcle）で，再試行を指定すればプリンタ排他再試行をします。再試行を指定しなければ論理端末を閉塞します。

・プリンタ障害の原因を取り除きます。

・保留された送信メッセージが不要な場合は，運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数）の発行で，出力メッセージを破棄します。

・論理端末が閉塞した場合，運用コマンド（mcftactle）の入力，またはAPI（dc_mcf_tactle関数）の発行で論理端末の閉塞を解除します。

（送信完待ち時）XMAP3 Server

・準備完OFF

・印刷用紙なし

・電源OFF

など

障害発生時の処理に対応したメッセージログを出力します。

障害回復を待ちます。

プリンタ障害の原因を取り除きます。

（送信完待ち時）

・ハード障害

など

障害発生時の処理に対応したメッセージログを出力します。

送信メッセージを保留します。

論理端末を閉塞します。

・プリンタ障害の原因を取り除きます。

・保留された送信メッセージが不要な場合は，運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数）の発行で，出力メッセージを破棄します。

・運用コマンド（mcftactle）の入力，またはAPI（dc_mcf_tactle関数）の発行で論理端末の閉塞を解除します。

11.1.6　入力メッセージ編集UOCの障害

表11‒6　入力メッセージ編集UOCの障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E），およびアプリケーション名取得失敗を通知するメッセージログ（KFCA10610-E）を出力します。

障害発生時の処理に対応したメッセージログを出力します。

受信メッセージを破棄します。

オペレータインジケータを表示します。

処理を続行します。

ありません。

11.1.7　入力キュー，スケジュールサービス，ネームサービス，RPCの障害

表11‒7　入力キュー，スケジュールサービス，ネームサービス，RPCの障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

・アプリケーション閉塞

・サービス閉塞

・アプリケーション名不正

・入力キュー書き込み障害（メモリ含む）

など

入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。

障害発生時の処理に対応したメッセージログを出力します。

メッセージの種類によって次の処理をします。

ありません。

画面入力メッセージ

・ERREVT1またはERREVT2を起動します。

ERREVT1，ERREVT2，ERREVT3，ERREVTA

・メッセージを破棄します。

VERREVT，VOPNEVT，VCLSEVT

・イベントを破棄します。

11.1.8　出力キュー障害

表11‒8　出力メッセージ編集UOCを含む出力キュー障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

・出力キュー読み込み障害（メモリ含む）

・UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E），および出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

障害発生時の処理に対応したメッセージログを出力します。

メッセージの種類によって次の処理をします。

・保留された送信メッセージが不要な場合は，運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数）の発行で，出力メッセージを破棄します。

・論理端末が閉塞した場合，運用コマンド（mcftactle）の入力，またはAPI（dc_mcf_tactle関数）の発行で論理端末の閉塞を解除します。

応答メッセージ

・送信メッセージを破棄します。

・オペレータインジケータを表示します。

・処理を続行します。

一方送信メッセージ

・送信メッセージを保留します。

・論理端末を閉塞します。

・メッセージ送信済み障害

・メッセージリセット障害

送信完了処理障害を通知するメッセージログ（KFCA10617-E）を出力します。

障害発生時の処理に対応したメッセージログを出力します。

メッセージの種類によって次の処理をします。

・保留された送信メッセージが不要な場合は，運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数）の発行で，出力メッセージを破棄します。

・論理端末が閉塞した場合，運用コマンド（mcftactle）の入力，またはAPI（dc_mcf_tactle関数）の発行で論理端末の閉塞を解除します。

応答メッセージ

・送信メッセージを破棄します。

・オペレータインジケータを表示します。

・処理を続行します。

一方送信メッセージ

・送信メッセージを保留します。

・論理端末を閉塞します。

11.1.9　ジャーナル障害

表11‒9　ジャーナル障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

・ジャーナル取得障害（aj，ij）

ジャーナル障害を通知するメッセージログ（KFCA10609-E）を出力します。

処理を続行します。

ありません。

11.1.10　バッファ障害

表11‒10　送信バッファ，受信バッファ，または編集バッファ障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

・サイズ不足

・テーブル数不足

障害発生時の処理に対応したメッセージログを出力します。

送信メッセージの場合はメッセージを保留します。

論理端末を閉塞します。

保留された送信メッセージが不要な場合は，運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数）の発行で，出力メッセージを破棄します。

11.1.11　UAP障害

表11‒11　UAP障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

UAP異常終了

rollback発行

など

ERREVT2またはERREVT3を起動します。

ありません。

11.1.12　MCFの障害

表11‒12　MCFの障害と対応処理

障害内容

TP1/NET/XMAP3の処理

ユーザの処理

・内部論理矛盾

など

障害発生時の処理に対応したメッセージログを出力します。

メモリダンプを出力します。

必要に応じ，MCFのプロセスを異常終了します（続行可能な場合は異常終了しません）。

保守情報（$DCDIR/spoolディレクトリ以下）を退避してください。

・MCFプログラムエラー

・UOCプログラムエラー

OSによってコアダンプを出力します。

保守情報（$DCDIR/spoolディレクトリ以下）を退避してください。

11.2　通信形態と障害の処理

11.2.1　非問い合わせ応答形態の障害

TP1/NET/XMAP3が非問い合わせ応答形態のメッセージ処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所ごとにするTP1/NET/XMAP3の障害処理について，次の表に示します。

図11‒1　非問い合わせ応答形態の障害

表11‒13　非問い合わせ応答形態の障害の処理

障害発生個所

内容

TP1/NET/XMAP3の処理

送信メッセージの扱い

受信メッセージの扱い

UAPでできる処理

1.

論理端末障害

入力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

該当しません。

破棄します。

VERREVT処理

入力編集UOC障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

該当しません。

破棄します。

ありません。

2.

入力キュー障害

メッセージログを出力します。

ERREVT1またはERREVT2を起動します。起動できない場合はオペレータインジケータを表示し，受信メッセージは破棄します。

論理端末は閉塞しません。

該当しません。

ERREVT1，またはERREVT2でUAPに渡します。

ERREVT1またはERREVT2処理

（noans型で起動）

sendによる画面へのメッセージ送信

3.

UAP異常終了

ERREVT2またはERREVT3を起動します。

論理端末は閉塞しません。

該当しません。

ERREVT2，またはERREVT3でUAPに渡します。

ERREVT2またはERREVT3処理

sendによる画面へのメッセージ送信

11.2.2　分岐送信形態の障害

TP1/NET/XMAP3が分岐送信形態のメッセージ処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所ごとにするTP1/NET/XMAP3の障害処理について，次の表に示します。

図11‒2　分岐送信形態の障害

表11‒14　分岐送信形態の障害の処理

障害発生個所

内容

TP1/NET/XMAP3の処理

送信メッセージの扱い

受信メッセージの扱い

UAPでできる処理

1.

出力キュー障害

出力編集UOC障害

出力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します（画面の場合）。

論理端末を閉塞します。

保留します。

該当しません。

VERREVT処理

2.

論理端末障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します（画面の場合）。

論理端末を閉塞します。

保留します。

該当しません。

VERREVT処理

3.

メッセージ送信済み障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します（画面の場合）。

論理端末を閉塞します。

保留します。

該当しません。

VERREVT処理

11.2.3　問い合わせ応答形態の障害

TP1/NET/XMAP3が問い合わせ応答形態のメッセージ処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所ごとにするTP1/NET/XMAP3の障害処理について，次の表に示します。

図11‒3　問い合わせ応答形態の障害

表11‒15　問い合わせ応答形態の障害の処理

障害発生個所

内容

TP1/NET/XMAP3の処理

送信メッセージの扱い

受信メッセージの扱い

UAPでできる処理

1.

論理端末障害

入力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

該当しません。

破棄します。

VERREVT処理

入力編集UOC障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

該当しません。

破棄します。

ありません。

2.

入力キュー障害

メッセージログを出力します。

ERREVT1またはERREVT2を起動します。起動できない場合はオペレータインジケータを表示し，受信メッセージは破棄します。

論理端末は閉塞しません。

該当しません。

ERREVT1，またはERREVT2でUAPに渡します。

ERREVT1処理

（noans型で起動）sendによる画面へのメッセージ送信

ERREVT2処理

（ans型で起動）replyによる画面へのメッセージ送信

3.

UAP異常終了

ERREVT2またはERREVT3を起動します。

論理端末は閉塞しません。

異常終了前の応答送信は破棄します。

ERREVT2，またはERREVT3でUAPに渡します。

ERREVT2またはERREVT3処理

replyによる画面へのメッセージ送信

4.

出力キュー障害

出力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

破棄します。

該当しません。

VERREVT処理

出力編集UOC障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

破棄します。

該当しません。

ありません。

5.

論理端末障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

破棄します。

該当しません。

VERREVT処理

6.

メッセージ送信済み障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

破棄します。

該当しません。

ありません。

11.2.4　継続問い合わせ応答形態の障害

TP1/NET/XMAP3が継続問い合わせ応答形態のメッセージ処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所ごとにするTP1/NET/XMAP3の障害処理について，次の表に示します。

なお，継続問い合わせ応答形態でメッセージ処理中に障害が発生した場合，一時記憶データは消去されます。

図11‒4　継続問い合わせ応答形態の障害

表11‒16　継続問い合わせ応答形態の障害の処理

障害発生個所

内容

TP1/NET/XMAP3の処理

送信メッセージの扱い

受信メッセージの扱い

UAPでできる処理

1.

論理端末障害

入力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

該当しません。

破棄します。

VERREVT処理

入力編集UOC障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

該当しません。

破棄します。

ありません。

2.

入力キュー障害

メッセージログを出力します。

ERREVT1またはERREVT2を起動します。起動できない場合はオペレータインジケータを表示し，受信メッセージは破棄します。

論理端末は閉塞しません。

該当しません。

ERREVT1，またはERREVT2でUAPに渡します。

ERREVT1処理

（noans型で起動）sendによる画面へのメッセージ送信

ERREVT2処理※

（cont型で起動）

reply（次アプリケーション名なし）による画面への応答メッセージ送信

contendによる継続問い合わせ応答終了

reply（次アプリケーション名あり）による継続問い合わせ応答の続行

execapによる継続問い合わせ応答の続行

3.

UAP異常終了

ERREVT2またはERREVT3を起動します。

論理端末は閉塞しません。

異常終了前の応答送信は破棄します。

ERREVT2，またはERREVT3でUAPに渡します。

ERREVT2またはERREVT3処理

発生個所2.のERREVT2処理と同じ

4.

出力キュー障害

出力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

破棄します。

該当しません。

VERREVT処理

出力編集UOC障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

継続問い合わせ応答は終了しません。

破棄します。

該当しません。

ありません。

5.

論理端末障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

破棄します。

該当しません。

VERREVT処理

6.

メッセージ送信済み障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

継続問い合わせ応答を終了します。

破棄します。

該当しません。

ありません。

7.

論理端末障害

入力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

該当しません。

破棄します。

VERREVT処理

入力編集UOC障害

メッセージログ出力

オペレータインジケータを表示します。

論理端末は閉塞しません。

継続問い合わせ応答は終了しません。

該当しません。

破棄します。

ありません。

8.

入力キュー障害

メッセージログを出力します。

ERREVT1またはERREVT2を起動します。起動できない場合はオペレータインジケータを表示し，受信メッセージは破棄します。

論理端末は閉塞しません。

該当しません。

ERREVT1，またはERREVT2でUAPに渡します。

発生個所2.と同じ

9.

UAP異常終了

ERREVT2またはERREVT3を起動します。

論理端末は閉塞しません。

異常終了前の応答送信は破棄します。

ERREVT2，またはERREVT3でUAPに渡します。

発生個所2.と同じ

10.

出力キュー障害

出力マッピング障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

破棄します。

該当しません。

VERREVT処理

出力編集UOC障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

破棄します。

該当しません。

ありません。

11.

論理端末障害

メッセージログを出力します。

VERREVTを起動します。

論理端末画面を破棄します。

論理端末を閉塞します。

該当しません。

破棄します。

VERREVT処理

12.

メッセージ送信済み障害

メッセージログを出力します。

オペレータインジケータを表示します。

論理端末は閉塞しません。

継続問い合わせ応答を終了します。

破棄します。

該当しません。

ありません。

注※

1.の処理時に2.の処理をしない場合，MCFが強制的に継続問い合わせ応答を終了します。

付録

付録A　バージョンアップ時の変更点

各バージョンでの変更点を次に示す分類ごとに示します。

関数，定義およびコマンドの追加・変更・削除

動作の変更

関数，定義およびコマンドのデフォルト値の変更

付録A.1　07-50での変更点

TP1/NET/XMAP3 07-50での関数，定義およびコマンドの追加・変更・削除を次の表に示します。

表A‒1　TP1/NET/XMAP3 07-50での関数，定義およびコマンドの追加・変更・削除

種別

分類

内容

追加

関数

なし

定義

XMAP3共通定義（mcftxp）

-cオプションのactcnactionオペランド

コマンド

mcfxpコマンド

-rオプション

変更

なし

削除

関数

CBLDCMCF('SEND△△△△')

一意名4

SEND − メッセージの送信

PAGE NAME句

PAGE CONTROL句

定義

マッピングサービス定義

XMAPCサーバホスト名

XMAPCサーバサービス番号

マッピングサービス属性定義

PGCSTDPNオペランド

PGCALTPNオペランド

PGCMNAMEオペランド

PGCCNTオペランド

PGCPOLSZオペランド

コネクション定義（mcftalccn）

-pオプションのdflpagecオペランド

-zオプションのremoteオペランド

コマンド

dcmapchgコマンド

-mP

-aP

mcftactcnコマンド

-S

TP1/NET/XMAP3 07-50での動作の変更はありません。

TP1/NET/XMAP3 07-50でのデフォルト値の変更はありません。

付録A.2　07-01での変更点

TP1/NET/XMAP3 07-01での関数，定義およびコマンドの追加・変更・削除を次の表に示します。

表A‒2　TP1/NET/XMAP3 07-01での関数，定義およびコマンドの追加・変更・削除

種別

分類

内容

追加

関数

dc_mcf_tactcn

dc_mcf_tactle

dc_mcf_tdctcn

dc_mcf_tdctle

dc_mcf_tlscn

dc_mcf_tlsle

CBLDCMCF('TACTCN△△')

CBLDCMCF('TACTLE△△')

CBLDCMCF('TDCTCN△△')

CBLDCMCF('TDCTLE△△')

CBLDCMCF('TLSCN△△△')

CBLDCMCF('TLSLE△△△')

送信メッセージ通番編集UOC

定義

XMAP3共通定義（mcftxp）

-gオプション，closebuttonオペランド

システムサービス情報定義

環境変数XPCLOSEWAITTIME

コマンド

mcfxprコマンド

変更

なし

削除

なし

TP1/NET/XMAP3 07-01での動作の変更点を次に示します。

表A‒3　TP1/NET/XMAP3 07-01での動作の変更点

分類

内容

定義

定義オブジェクトファイル生成時に，印刷サービス用のコネクション配下に二つ以上の論理端末が定義されている場合（定義不正），定義オブジェクトファイルの生成を中止し，KFCA11557-Eメッセージを出力するように変更

その他

MCF性能検証用トレースに，TP1/NET/XMAP3のメッセージ送受信イベントを取得するように変更

TP1/NET/XMAP3 07-01でのデフォルト値の変更はありません。

付録A.3　07-00での変更点

TP1/NET/XMAP3 07-00での関数，定義およびコマンドの追加・変更・削除はありません。

TP1/NET/XMAP3 07-00での動作の変更はありません。

TP1/NET/XMAP3 07-00でのデフォルト値の変更点を次に示します。

表A‒4　TP1/NET/XMAP3 07-00でのデフォルト値の変更点

分類

内容

定義

マッピングサービス属性定義

RETRYCNTオペランドのデフォルト値を0から10に変更

RETRYSECオペランドのデフォルト値を0から3に変更

ERRLOG4オペランドのデフォルト値をYESからNOに変更

XMAP3共通定義（mcftxp）

-mオプションtimeoutlogオペランドのデフォルト値をnoからyesに変更

コネクション定義（mcftalccn）

-bオプションbretrycntオペランドのデフォルト値を0から3に変更

論理端末定義（mcftalcle）

-zオプションremoteオペランドのデフォルト値をnoからyesに変更

コマンド

mcftlsleコマンドの-tオプションを削除

付録B　旧製品からの移行に関する注意事項

ここでは，旧製品からの移行に関する注意事項について説明します。

バージョン6以前からバージョン7へ移行する場合の各種ソースファイルの互換性について説明します。

表B‒1　バージョン6以前で使用していたソースファイルの互換性

ソースファイルの種類

ソースファイルを作成した言語

互換性

UAP

C言語

バージョン7では，メッセージ送受信インタフェース，およびMCFイベントインタフェースのそれぞれの引数ならびにパラメタの型が変更されていますが，この変更によるUAPの処理への影響はなく，ソースファイルを変更しないで使用できます。

詳細については，「付録C　インタフェースの変更一覧（バージョン6以前から移行する場合）」を参照してください。

COBOL言語

ソースファイルを変更しないで使用できます。

UOC

C言語

バージョン7では，UOCインタフェースのそれぞれのパラメタの型およびリターン値の型が変更されていますが，この変更によるUOCの処理への影響はなく，ソースファイルを変更しないで使用できます。

詳細については，「付録C　インタフェースの変更一覧（バージョン6以前から移行する場合）」を参照してください。

マッピングサービス定義

−

ソースファイルを変更しないで使用できます。

マッピングサービス属性定義

MCF通信構成定義（プロトコル固有の定義）

−

バージョン7で省略時解釈値を変更しているため，必要に応じて定義ソースファイルを見直してください。

詳細は，表B-2を参照してください。

システムサービス共通情報定義

−

Windows版のバージョン5以前では，max_socket_descriptorsオペランドにプロトコル制御で使用するファイル記述子数（コネクション数×2）を追加する必要がありましたが，バージョン7では不要です。ただし，バージョン7ではmax_open_fdsオペランドにプロトコル制御で使用するファイル記述子数を追加してください。

（凡例）

−：該当する内容がないことを表します。

表B‒2　バージョン6以前からバージョン7へ移行する場合の定義ファイルの互換性

定義の種類

オペランド

省略時解釈値

説明

バージョン6以前

バージョン7

マッピングサービス属性定義

RETRYCNT

0

10

マッピングサービスプロセスとのデータ送受信に失敗したときの再試行回数と再試行間隔です。

バージョン6以前でこのオペランドの指定を省略すると，再試行を実行しません。バージョン7では再試行回数が10回，再試行間隔が3秒となります。

RETRYSEC

0

3

ERRLOG4

YES

NO

処理中にマッピングエラーが発生した場合のエラー情報取得の有無です。

バージョン6以前でこのオペランドの指定を省略するとエラー情報を取得します。バージョン7では，エラーコード4（軽いエラー）のマッピングエラーのときはエラー情報を取得しません。

MCF通信構成定義

mcftxp（XMAP3共通定義）

-m timeoutlog

no

yes

XMAP3 Serverでタイムアウトが発生した場合の通知の有無です。

バージョン6以前でこのオペランドの指定を省略すると，ログメッセージを出力しません。バージョン7では，ログメッセージを出力します。

mcftalccn（コネクション定義の開始）

-b bretrycnt

0

3

コネクション確立時に障害が発生した場合にMCFが行う確立再試行回数です。

バージョン6以前でこのオペランドの指定を省略すると，無限に確立再試行を繰り返します。バージョン7では，3回まで再試行を繰り返します。

mcftalcle（論理端末定義）

-z remote

no

yes

プリンタ種別です。

バージョン6以前でこのオペランドの指定を省略すると，高機能ページプリンタとなります。バージョン7では，LAN直結プリンタとなります。

付録C　インタフェースの変更一覧（バージョン6以前から移行する場合）

バージョン6以前のインタフェースの変更一覧を示します。

ここで説明するインタフェースを次に示します。

表C‒1　インタフェースの変更一覧

変更されたインタフェース

バージョン7のマニュアルの該当個所

メッセージ送受信インタフェース

dc_mcf_contend

3.　dc_mcf_contend − 継続問い合わせ応答の終了（C言語）

dc_mcf_receive

3.　dc_mcf_receive − メッセージの受信（C言語）

dc_mcf_reply

3.　dc_mcf_reply − 応答メッセージの送信（C言語）

dc_mcf_resend

3.　dc_mcf_resend − メッセージの再送（C言語）

dc_mcf_send

3.　dc_mcf_send − メッセージの送信（C言語）

dc_mcf_tempget

3.　dc_mcf_tempget − 一時記憶データの受け取り（C言語）

dc_mcf_tempput

3.　dc_mcf_tempput − 一時記憶データの更新（C言語）

ユーザオウンコーディング

入力メッセージ編集UOC

5.1.2　入力メッセージ編集UOCインタフェース

出力メッセージ編集UOC

5.1.4　出力メッセージ編集UOCインタフェース

MCFイベントインタフェース

5.2.3　MCFイベント情報の形式（C言語）

MCFメイン関数のコーディング概要

10.2　MCFメイン関数の作成

以降，バージョン6以前のインタフェースと，バージョン7のインタフェースの変更一覧を示します。変更個所には，下線を付与しています。

付録C.1　メッセージ送受信インタフェース

(1)　dc_mcf_contend − 継続問い合わせ応答の終了

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_contend(long action,
                    char *resv01)

#include <dcmcf.h>
int  dc_mcf_contend(DCLONG action,
                    char *resv01)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int dc_mcf_contend(action,
                   resv01)
long      action;
char      *resv01;

#include <dcmcf.h>
int dc_mcf_contend(action,
                   resv01)
DCLONG    action;
char      *resv01;

(2)　dc_mcf_receive − メッセージの受信

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_receive(long action,
                    long commform,
                    char *termnam,
                    char *resv01,
                    char *recvdata,
                    long *rdataleng,
                    long inbufleng,
                    long *time)

#include <dcmcf.h>
int  dc_mcf_receive(DCLONG action,
                    DCLONG commform,
                    char *termnam,
                    char *resv01,
                    char *recvdata,
                    DCLONG *rdataleng,
                    DCLONG inbufleng,
                    DCLONG *time)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_receive(action,
                    commform,
                    termnam,
                    resv01,
                    recvdata,
                    rdataleng,
                    inbufleng,
                    time)
long      action;
long      commform;
char      *termnam;
char      *resv01;
char      *recvdata;
long      *rdataleng;
long      inbufleng;
long      *time;

#include <dcmcf.h>
int  dc_mcf_receive(action,
                    commform,
                    termnam,
                    resv01,
                    recvdata,
                    rdataleng,
                    inbufleng,
                    time)
DCLONG    action;
DCLONG    commform;
char      *termnam;
char      *resv01;
char      *recvdata;
DCLONG    *rdataleng;
DCLONG    inbufleng;
DCLONG    *time;

(3)　dc_mcf_reply − 応答メッセージの送信

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_reply(long action,
                  long commform,
                  char *resv01,
                  char *mapname,
                  char *senddata,
                  long sdataleng,
                  char *nextap,
                  long opcd)

#include <dcmcf.h>
int  dc_mcf_reply(DCLONG action,
                  DCLONG commform,
                  char *resv01,
                  char *mapname,
                  char *senddata,
                  DCLONG sdataleng,
                  char *nextap,
                  DCLONG opcd)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_reply(action,
                  commform,
                  resv01,
                  mapname,
                  senddata,
                  sdataleng,
                  nextap,
                  opcd)
long      action;
long      commform;
char      *resv01;
char      *mapname;
char      *senddata;
long      sdataleng;
char      *nextap;
long      opcd;

#include <dcmcf.h>
int  dc_mcf_reply(action,
                  commform,
                  resv01,
                  mapname,
                  senddata,
                  sdataleng,
                  nextap,
                  opcd)
DCLONG    action;
DCLONG    commform;
char      *resv01;
char      *mapname;
char      *senddata;
DCLONG    sdataleng;
char      *nextap;
DCLONG    opcd;

(4)　dc_mcf_resend − メッセージの再送

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_resend(long action,
                   long commform,
                   char *rtermnam,
                   char *resv01,
                   long oseqid,
                   long orgseq,
                   char *otermnam,
                   char *resv02,
                   char *resv03,
                   char *resv04,
                   long opcd)

#include <dcmcf.h>
int  dc_mcf_resend(DCLONG action,
                   DCLONG commform,
                   char *rtermnam,
                   char *resv01,
                   DCLONG oseqid,
                   DCLONG orgseq,
                   char *otermnam,
                   char *resv02,
                   char *resv03,
                   char *resv04,
                   DCLONG opcd)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_resend(action,
                   commform,
                   rtermnam,
                   resv01,
                   oseqid,
                   orgseq,
                   otermnam,
                   resv02,
                   resv03,
                   resv04,
                   opcd)
long      action;
long      commform;
char      *rtermnam;
char      *resv01;
long      oseqid;
long      orgseq;
char      *otermnam;
char      *resv02;
char      *resv03;
char      *resv04;
long      opcd;

#include <dcmcf.h>
int  dc_mcf_resend(action,
                   commform,
                   rtermnam,
                   resv01,
                   oseqid,
                   orgseq,
                   otermnam,
                   resv02,
                   resv03,
                   resv04,
                   opcd)
DCLONG    action;
DCLONG    commform;
char      *rtermnam;
char      *resv01;
DCLONG    oseqid;
DCLONG    orgseq;
char      *otermnam;
char      *resv02;
char      *resv03;
char      *resv04;
DCLONG    opcd;

(5)　dc_mcf_send − メッセージの送信

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_send(long action,
                 long commform,
                 char *termnam,
                 char *resv01,
                 char *senddata,
                 long sdataleng,
                 char *resv02,
                 long opcd)

#include <dcmcf.h>
int  dc_mcf_send(DCLONG action,
                 DCLONG commform,
                 char *termnam,
                 char *resv01,
                 char *senddata,
                 DCLONG sdataleng,
                 char *resv02,
                 DCLONG opcd)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_send(action,
                 commform,
                 termnam,
                 resv01,
                 senddata,
                 sdataleng,
                 resv02,
                 opcd)
long      action;
long      commform;
char      *termnam;
char      *resv01;
char      *senddata;
long      sdataleng;
char      *resv02;
long      opcd;

#include <dcmcf.h>
int  dc_mcf_send(action,
                 commform,
                 termnam,
                 resv01,
                 senddata,
                 sdataleng,
                 resv02,
                 opcd)
DCLONG    action;
DCLONG    commform;
char      *termnam;
char      *resv01;
char      *senddata;
DCLONG    sdataleng;
char      *resv02;
DCLONG    opcd;

(6)　dc_mcf_tempget − 一時記憶データの受け取り

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_tempget(long action,
                    char *getdata,
                    long gtempleng,
                    long *gdataleng,
                    char *resv01)

#include <dcmcf.h>
int  dc_mcf_tempget(DCLONG action,
                    char *getdata,
                    DCLONG gtempleng,
                    DCLONG *gdataleng,
                    char *resv01)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_tempget(action,
                    getdata,
                    gtempleng,
                    gdataleng,
                    resv01)
long      action;
char      *getdata;
long      gtempleng;
long      *gdataleng;
char      *resv01;

#include <dcmcf.h>
int  dc_mcf_tempget(action,
                    getdata,
                    gtempleng,
                    gdataleng,
                    resv01)
DCLONG    action;
char      *getdata;
DCLONG    gtempleng;
DCLONG    *gdataleng;
char      *resv01;

(7)　dc_mcf_tempput − 一時記憶データの更新

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_tempput(long action,
                    char *putdata,
                    long pdataleng,
                    char *resv01)

#include <dcmcf.h>
int  dc_mcf_tempput(DCLONG action,
                    char *putdata,
                    DCLONG pdataleng,
                    char *resv01)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_tempput(action,
                    putdata,
                    pdataleng,
                    resv01)
long      action;
char      *putdata;
long      pdataleng;
char      *resv01;

#include <dcmcf.h>
int  dc_mcf_tempput(action,
                    putdata,
                    pdataleng,
                    resv01)
DCLONG    action;
char      *putdata;
DCLONG    pdataleng;
char      *resv01;

付録C.2　ユーザオウンコーディング

(1)　入力メッセージ編集UOC

(a)　形式

ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcfuoc.h>
#include <dcmxpn.h>
long  uoc_func(dcmcf_uoc_min_n *parm)

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG  uoc_func(dcmcf_uoc_min_n *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcfuoc.h>
#include <dcmxpn.h>
long    uoc_func(parm)

dcmcf_uoc_min_n   *parm ;

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG    uoc_func(parm)

dcmcf_uoc_min_n   *parm ;

(b)　パラメタの内容

dcmcf_uoc_min_nの内容

バージョン6以前

バージョン7

typedef struct {
    long pro_kind;
    char le_name[9];
    char reserve1[7];
    long rcv_prim;
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    char aplname[9];
    char reserve2[7];
    char *pro_indv_ifa;
    long rtn_detail;
    char reserve3[8];
} dcmcf_uoc_min_n;

typedef struct {
    DCLONG pro_kind;
    char le_name[9];
    char reserve1[7];
    DCLONG rcv_prim;
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    char aplname[9];
    char reserve2[7];
    char *pro_indv_ifa;
    DCLONG rtn_detail;
    char reserve3[8];
} dcmcf_uoc_min_n;

dcmcf_uocbuff_list_n（バッファリスト）の内容

バージョン6以前

バージョン7

typedef struct {
    long buf_num;
    long used_buf_num;
    char reserve1[8];
    dcmcf_uocbufinf_n
        buf_array[DCMCF_UOC_BUFF_MAX];
} dcmcf_uocbuff_list_n;

typedef struct {
    DCLONG buf_num;
    DCLONG used_buf_num;
    char reserve1[8];
    dcmcf_uocbufinf_n
        buf_array[DCMCF_UOC_BUFF_MAX];
} dcmcf_uocbuff_list_n;

dcmcf_uocbufinf_n（バッファ情報）の内容

バージョン6以前

バージョン7

typedef struct {
    char *buf_adr;
    unsigned long buf_size;
    unsigned long seg_size;
    char reserve1[4];
    dcmcfuoc_w_type buff_id;
    long buff_addr;
    char reserve2[4];
} dcmcf_uocbufinf_n;

typedef struct {
    char *buf_adr;
    DCULONG buf_size;
    DCULONG seg_size;
    char reserve1[4];
    dcmcfuoc_w_type buff_id;
    DCMLONG buff_addr;
    char reserve2[4];
} dcmcf_uocbufinf_n;

(2)　出力メッセージ編集UOC

(a)　形式

ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcfuoc.h>
#include <dcmxpn.h>
long  uoc_func(dcmcf_uoc_mout_n *parm)

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG  uoc_func(dcmcf_uoc_mout_n *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcfuoc.h>
#include <dcmxpn.h>
long  uoc_func(parm)

dcmcf_uoc_mout_n *parm ;

#include <dcmcfuoc.h>
#include <dcmxpn.h>
DCLONG  uoc_func(parm)

dcmcf_uoc_mout_n *parm ;

(b)　パラメタの内容

dcmcf_uoc_mout_nの内容

バージョン6以前

バージョン7

typedef struct {
    long pro_kind;
    char le_name[9];
    char reserve1[7];
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    long output_no;
    char msg_type;
    char outputno_flag;
    char resend_flag;
    char reserve2[1];
    char *pro_indv_ifa;
    long rtn_detail;
    char reserve3[20];
} dcmcf_uoc_mout_n;

typedef struct {
    DCLONG pro_kind;
    char le_name[9];
    char reserve1[7];
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    DCLONG output_no;
    char msg_type;
    char outputno_flag;
    char resend_flag;
    char reserve2[1];
    char *pro_indv_ifa;
    DCLONG rtn_detail;
    char reserve3[20];
} dcmcf_uoc_mout_n;

dcmcf_uocbuff_list_n（バッファリスト），dcmcf_uocbufinf_n（バッファ情報）の内容

入力メッセージ編集UOCのパラメタの内容と同じです。「付録C.2(1)(b)　パラメタの内容」を参照してください。

付録C.3　MCFイベントインタフェース

(1)　MCFイベントの共通ヘッダの形式

バージョン6以前

バージョン7

struct dc_mcf_evtheader {
  char mcfevt_name[9] ;
  char le_name[16] ;
  char cn_name[9] ;
  unsigned char format_kind;
  char reserve01;
  long time ;
};

struct dc_mcf_evtheader {
  char mcfevt_name[9] ;
  char le_name[16] ;
  char cn_name[9] ;
  unsigned char format_kind;
  char reserve01;
  DCLONG time ;
};

(2)　ERREVT1の形式

バージョン6以前とバージョン7で，差異はありません。

(3)　ERREVT2の形式

バージョン6以前とバージョン7で，差異はありません。

(4)　ERREVT3の形式

バージョン6以前とバージョン7で，差異はありません。

(5)　ERREVTAの形式

バージョン6以前

バージョン7

struct dc_mcf_evta_type {
  struct dc_mcf_evtheader  evtheader ;
  char reserve01[12] ;
  char reserve02[10] ;
  char reserve03[2] ;
  char ap_name[10] ;
  char reserve04[2] ;
  char reserve05[32] ;
  char reserve06[32] ;
  long user_leng ;
  char user_data[16] ;
  char reserve07[16] ;
} ;

struct dc_mcf_evta_type {
  struct dc_mcf_evtheader  evtheader ;
  char reserve01[12] ;
  char reserve02[10] ;
  char reserve03[2] ;
  char ap_name[10] ;
  char reserve04[2] ;
  char reserve05[32] ;
  char reserve06[32] ;
  DCLONG user_leng ;
  char user_data[16] ;
  char reserve07[16] ;
} ;

(6)　SCMPEVTの形式

バージョン6以前

バージョン7

struct dc_mcf_scmpevt_type {
  struct dc_mcf_evtheader evtheader;
  long output_no;
  char map_name[9];
  char msg_type;
  char reason_code;
  chat reserve01[5];
  long user_leng;
  char pro_indv_inf[16];
  char user_data[16];
} ;

struct dc_mcf_scmpevt_type {
  struct dc_mcf_evtheader evtheader;
  DCLONG output_no;
  char map_name[9];
  char msg_type;
  char reason_code;
  chat reserve01[5];
  DCLONG user_leng;
  char pro_indv_inf[16];
  char user_data[16];
} ;

(7)　SERREVTの形式

バージョン6以前

バージョン7

struct dc_mcf_serrevt_type {
  struct dc_mcf_evtheader evtheader;
  long output_no;
  char map_name[9];
  char msg_type;
  char send_error_code;
  unsigned char trouble_code;
  unsigned char detail_info;
  unsigned char error_code;
  unsigned char error_subcode;
  chat reserve01[1];
  long user_leng;
  char pro_indv_inf[16];
  char user_data[16];
} ;

struct dcmxpn_sevtpro_type {
  long serr_reason1;
  long serr_reason2;
  long serr_detail;
  char reserve1[4];
} ;

struct dc_mcf_serrevt_type {
  struct dc_mcf_evtheader evtheader;
  DCLONG output_no;
  char map_name[9];
  char msg_type;
  char send_error_code;
  unsigned char trouble_code;
  unsigned char detail_info;
  unsigned char error_code;
  unsigned char error_subcode;
  chat reserve01[1];
  DCLONG user_leng;
  char pro_indv_inf[16];
  char user_data[16];
} ;

struct dcmxpn_sevtpro_type {
  DCLONG serr_reason1;
  DCLONG serr_reason2;
  DCLONG serr_detail;
  char reserve1[4];
} ;

(8)　VERREVTの形式

バージョン6以前

バージョン7

struct dcmxpn_verrevt_type {
  struct dc_mcf_evtheader header;
  long le_kind;
  long err_fact;
  long err_reason1;
  long err_reason2;
  long err_detail;
  char reserve1[36];
} ;

struct dcmxpn_verrevt_type {
  struct dc_mcf_evtheader header;
  DCLONG le_kind;
  DCLONG err_fact;
  DCLONG err_reason1;
  DCLONG err_reason2;
  DCLONG err_detail;
  char reserve1[36];
} ;

(9)　VOPNEVT，VCLSEVTの形式

バージョン6以前

バージョン7

struct dcmxpn_statevt_type {
  struct dc_mcf_evtheader header;
  long le_kind;
  char reserve1[52];
} ;

struct dcmxpn_statevt_type {
  struct dc_mcf_evtheader header;
  DCLONG le_kind;
  char reserve1[52];
} ;

付録C.4　MCFメイン関数のコーディング概要

MCFメイン関数のコーディング概要の変更一覧を示します。変更個所は，図中の網掛け部分です。

(1)　ANSI C，C++の場合

(a)　バージョン6以前

(b)　バージョン7

(2)　K&R版 Cの場合

(a)　バージョン6以前

(b)　バージョン7

付録D　MCF性能検証用トレースの取得

TP1/Message Controlを使用したメッセージ送受信での主なイベントで，MCF識別子などのトレース情報を取得しています。これをMCF性能検証用トレースと呼びます。

ここでは，MCF性能検証用トレースのMCF固有情報の出力情報，取得タイミング，および取得量について説明します。

付録D.1　MCF固有情報の出力情報

ここでは，メッセージ送受信時，およびUOC呼び出し時のMCF性能検証用トレースのダンプ出力情報について説明します。

(1)　メッセージ送受信時

論理端末単位に相手システムと送受信するメッセージの情報を取得します。MCF固有情報のダンプ出力情報を，次の表に示します。

表D‒1　メッセージ送受信時のMCF固有情報のダンプ出力情報

イベントID

オフセット

0x0000〜0x0003

0x0004〜0x0007

0x0008〜0x000f

0x0010〜0x0017

0x0018〜0x001f

0xa000

MCF識別子

スレッドID

−

入力元論理端末名

−

0xa001

−

出力元論理端末名

マップ名称

（凡例）

−：情報を取得しません。

(2)　UOC呼び出し時

TP1/NET/XMAP3で使用するUOCの情報を取得します。MCF固有情報のダンプ出力情報，およびUOC名称の出力情報を，以降の表に示します。

表D‒2　UOC呼び出し時のMCF固有情報のダンプ出力情報

イベントID

オフセット

0x0000〜0x0003

0x0004〜0x0007

0x0008〜0x000f

0x0010〜0x0017

0x0018〜0x001f

0xa070

MCF識別子

スレッドID

−

−

UOC名称

0xa071

−

−

（凡例）

−：情報を取得しません。

表D‒3　UOC名称の出力情報

UOCの種類

UOC名称出力情報

入力メッセージ編集UOC

"MSGRCV"

出力メッセージ編集UOC

"MSGSEND"

送信メッセージ通番編集UOC

"SEND_UOC"

付録D.2　MCF性能検証用トレースの取得タイミング

MCF性能検証用トレースの取得タイミングを，問い合わせメッセージ受信時，および一方送信メッセージ送信時に分けて説明します。

(1)　問い合わせメッセージ受信時

問い合わせメッセージ受信時のMCF性能検証用トレースの取得タイミングについて，次の図に示します。

図D‒1　問い合わせメッセージ受信時のMCF性能検証用トレースの取得タイミング

(2)　一方送信メッセージ送信時

一方送信メッセージ送信時のMCF性能検証用トレースの取得タイミングについて，次の図に示します。

図D‒2　一方送信メッセージ送信時のMCF性能検証用トレースの取得タイミング

注※

送信メッセージ通番編集UOC使用時に該当します。

付録D.3　MCF性能検証用トレースの取得量

1回のメッセージ送受信で取得するMCF性能検証用トレースのトレース取得量を，次の表に示します。

表D‒4　MCF性能検証用トレースの取得量

メッセージの送受信形態

トレース取得量（単位：キロバイト）

問い合わせメッセージの受信

3.0

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

1.8

付録E　メッセージ送受信の流れ

ここでは，次のときのメッセージを送受信するときのデータの流れ，ジャーナルの取得タイミングなどについて説明します。

図E‒1　画面表示の処理の流れ

図E‒2　帳票印刷の処理の流れ

付録F　XMAP3 Serverサービス名との関係

TP1/NET/XMAP3の定義とXMAP3 Serverサービス名との関係を次の図に示します。XMAP3 Serverサービス名については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

図F‒1　XMAP3 Serverサービス名との関係

また，XMAP3 Serverサービス名ファイル，およびOSホストアドレス管理ファイル（hostsファイル）のコーディング例を次に示します。

XMAP3 Serverサービス名ファイルのコーディング例

#
# XMAP3 Serverサービス名定義（/etc/opt/HIXMAP/XPWhosts）
#
XPWDSP1;DSP;TCP;h3050B;h3050B:0.0;
XPWPRT1;PRT;TCP;h3050C;PR1;
XPWDSP2;DSP;TCP;h3020A;h3020A;

注

この定義はXMAP3サーバを起動するホスト内に定義します。

詳細は，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

OSホストアドレス管理ファイル（hostsファイル）のコーディング例

192.10.10.1     h3050A
192.10.10.2     h3050B
192.10.10.3     h3050C
192.10.10.4     h3020A

注

この定義はネットワーク内の全ホスト内に定義します。

付録G　表示印刷サービスの起動でコネクション確立をするための環境設定

表示印刷サービスの起動でコネクションと論理端末を確立して初期画面を表示するための環境作成について説明します。

表示印刷サービスを起動すると同時にXMAP3 Server側でAPを実行できます。この場合は，XMAP3 Serverサービス名ファイルのAPパス名称で，実行するAPを定義します。このXMAP3の機能を利用して，該当する表示印刷サービスに対応するコネクション確立の運用コマンドを発行するようにします。

なお，XMAP3サーバの環境定義ファイルおよびXMAP3 Serverのサービス名ファイルに指定するサービス起動時に受け渡す環境変数名には，表示サービスと印刷サービスで別の環境変数名を指定してください。

付録G.1　TP1/NET/XMAP3の運用コマンドを発行するプログラムの作成

XMAP3 Serverサービス名ファイルに指定した環境変数から起動されたサービスを求めて，SYSTEMサブルーチンで対応するコネクションに運用コマンド（mcftactcn）を発行するプログラムを作成します。

付録G.2　XMAP3 Serverサービス名ファイルの設定

XMAP3 Serverサービス名ファイルのAPホスト名称，APパス名称，および環境変数名を，該当するサービスの内容に合わせて設定します。

APホスト名称には，OpenTP1システムのホスト名称を指定します。

APパス名称には，TP1/NET/XMAP3の運用コマンドを発行するプログラムの完全パス名称を指定します。

環境変数名には，TP1/NET/XMAP3の運用コマンドを発行プログラムで起動されたサービスを求めるために指定した環境変数を指定します。

付録G.3　TP1/NET/XMAP3プロトコル固有定義の設定

TP1/NET/XMAP3プロトコル固有定義に必ず設定しなければならない項目を次に示します。

コネクション定義（mcftalccn）の-iオプションにmanualを設定します。

論理端末定義（mcftalcle）の-iオプションにautoを設定します。

初期画面の表示は，論理端末定義（mcftalcle -p）のinitmapオペランドを指定して初期画面を表示する方式か，VOPNEVTの発生によって起動したアプリケーションで初期画面を表示する方式のどちらかで行ないます。

付録G.4　TP1/NET/XMAP3運用コマンドを発行するプログラムとXMAP3 Serverサービス名ファイルの例

運用コマンドを発行するプログラムとXMAP3 Serverサービス名ファイルの例を示します。

運用コマンドを発行するプログラムの例

ファイル名:/BeTRAN/usr/bin/actcn_dsp ※1

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
main ()
{
    char dsp[512];
    char onlinecom[512];
                                /* サービス名  コネクション名 */
    static char svname[6][11] = {"XPPDSP1","XPNCN5",
                                     /*コネクション名はmcftalccn  */
                                 "XPPPRT1","XPNCN6",
                                     /*定義コマンドで指定する*/
                                 "XPPDSP2","XPNCN7"};
                                     /*コネクションID*/
                                   ※2
    struct mcfcmd {
            char mcfid[32];
            char svid[32];
            char prgid[8];
            char cnname[32];
            char cnflg[8];
    }mcfcmd_txt;
    int svno = 6;
    int rtycnt = 6;   /* コネクション確立処理のリトライ回数 */
    int tblp = 0;
    int loopc = 0;
    int eflag = 1;
    FILE *fp;
                        ※3
    strcpy(dsp,getenv("XPPDSP"));
    while ((eflag != 0) && (loopc < svno)) {
        tblp = loopc;
        eflag = strcmp(dsp,svname[tblp]);
        loopc= loopc+2;
    }
    if (eflag == 0) {
        sprintf(onlinecom,"/BeTRAN/bin/mcftdctcn -s 01 -f -c %s",
        svname[++tblp]);
        system(onlinecom);          ※4
    }
    eflag = 1;
    while ( (eflag != 0) && ( rtycnt > 0) ) {
       sprintf(onlinecom,"/BeTRAN/bin/mcftlscn -s 01 -c %s > /tmp/work1",
               svname[tblp]);       ※5
       system(onlinecom);
       sprintf(onlinecom," grep ""KFCA10361"" /tmp/work1 > /tmp/work2");
       system(onlinecom);
       fp = fopen("/tmp/work2","r");
       fscanf(fp,"%s %s %s %s %s",mcfcmd_txt.mcfid,mcfcmd_txt.svid,
              mcfcmd_txt.cnname,mcfcmd_txt.prgid,mcfcmd_txt.cnflg);
       eflag = strcmp(mcfcmd_txt.cnflg,"DCT");
                                   /* コネクション状態の確認 */
       if (eflag == 0) {
           sprintf(onlinecom,"/BeTRAN/bin/mcftactcn -s 01 -c %s",
           svname[tblp]);
           system(onlinecom);       ※6
       }
       sleep(10);
       rtycnt--;
    }
}

XMAP3 Serverサービス名ファイルの例

#サービス名称;サービスタイプ;利用者プロトコル;ホスト名称;デバイス名称;APホスト名称;APパス名称;環境変数名;
XPPDSP1;DSP;TCP;h3020A;XPPDSP1;h3050A;/BeTRAN/usr/bin/actcn_dsp;XPPDSP;    ※1
XPPPRT1;PRT;TCP;FLORA1;XPPPRT1;h3050A;/BeTRAN/usr/bin/actcn_prt;XPPPRT;    ※1
XPPDSP2;DSP;TCP;FLORA2;XPPDSP2;h3050A;/BeTRAN/usr/bin/actcn_dsp;XPPDSP;    ※1

注※1，2，3

太字の部分は，運用コマンドを発行するプログラムとXMAP3 Serverサービス名ファイルとで一致させる必要があります。

注※4

/BeTRAN/bin/mcftdctcnは，OpenTP1プログラムファイルのパス名です。

注※5

/BeTRAN/bin/mcftlscnは，OpenTP1プログラムファイルのパス名です。

注※6

/BeTRAN/bin/mcftactcnは，OpenTP1プログラムファイルのパス名です。

付録H　ユーザアプリケーションプログラムの作成例

ここでは，コーディング例と提供するサンプルコーディングについて説明します。

付録H.1　コーディング例

使用する言語ごとにUAPのコーディング例を示します。

(1)　C言語（K＆R版）

C言語（K＆R版）を使用したUAPのコーディング例を次に示します。

(a)　コーディング例（C言語）

/*
 * MHP サービス関数
 */
#include <stdio.h>
#include <dcmcf.h>
/*
 * 論理マップの取り込み
 */
#include "LOG0101I.h"                  ……1.
#include "LOG0201O.h"                  ……1.
#include "LOG1001O.h"                  ……1.

void uap01()
{
  int  rtn_cod;

  DCLONG action;
  DCLONG commform;
  char recv_term[9];
  char recv_map[9];
  DCLONG rdataleng;
  DCLONG inbufleng;
  DCLONG time;

  static char send_term[9] = "XPNLE201";
  static char send_map[9] = "MAM10";
  DCLONG sdataleng;
  char *pagecdat = NULL;
  DCLONG opcd;

  static char resv01[9] = "¥0";
  static char rply_map[9] = "MAM02";
  static char nextap[9] = "¥0";

/*
 * メッセージの受信
 */
  action = DCMCFFRST | DCMCFBUF2;
  commform = DCNOFLAGS;
  inbufleng = (DCLONG)LOG0101I.LOG0101S;
  rtn_cod = dc_mcf_receive(action,
               commform,
               recv_term,
               recv_map,
               &LOG0101I,              ……2.
               &rdataleng,
               inbufleng,
               &time);

/*
 *****************************************************************
 *                                                               *
 *                                                               *
 *     データの処理                                              *
 *                                                               *
 *                                                               *
 *****************************************************************
 */

/*
 * 一方送信メッセージの送信
 */
  action = DCMCFEMI | DCMCFNORM | DCMCFNSEQ | DCMCFBUF2;
  commform = DCMCFOUT;
  sdataleng = (DCLONG)LOG1001O.LOG1001L -4;
  opcd = DCNOFLAGS;
  rtn_cod = dc_mcf_send(action,
              commform,
              send_term,
              send_map,
              &LOG1001O,              ……2.
              sdataleng,
              pagecdat,
              opcd);
/*
 * 応答メッセージの送信
 */
  action = DCMCFEMI|DCMCFBUF2;
  commform = DCNOFLAGS;
  sdataleng = (DCLONG)LOG0201O.LOG0201L -4;
  opcd = DCNOFLAGS;
  rtn_cod = dc_mcf_reply(action,
               commform,
               resv01,
               rply_map,
               &LOG0201O,              ……2.
               sdataleng,
               nextap,
               opcd);

}

コーディング例中の1.および2.は次の意味になります。

XMAP3で生成した入力・出力論理マップを#includeで取り込みます。

recvdata・senddataには，XMAP3で作成した入力・出力論理マップの先頭アドレスを指定します。

(2)　COBOL言語

COBOL言語を使用したUAPのコーディング例を次に示します。

(a)　コーディング例（COBOL言語）

*
***********************************************************
*     MHPサービスプログラム(COBOL)                        *
***********************************************************
*
 IDENTIFICATION DIVISION.

 PROGRAM-ID. MHPC.

 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
*
***********************************************************
*     ワーク変数                                          *
***********************************************************
*
 DATA DIVISION.
 WORKING-STORAGE SECTION.
*
***********************************************************
*     論理マップコピー                                    *
*         LOG0101I : 入力ロジカルマップ                   *
*         LOG0201O : 出力ロジカルマップ                   *
*         LOG1001O : 出力ロジカルマップ                   *
***********************************************************
*
 COPY LOG0101I.                  ……1.
 COPY LOG0201O.                  ……1.
 COPY LOG1001O.                  ……1.
*
***********************************************************
*     メッセージの受信データ領域                          *
***********************************************************
*
 01  RECV-PARM1.
   02  RE-NAME           PIC X(8) VALUE 'RECEIVE '.
   02  RE-STATUS         PIC X(5).
   02  FILLER            PIC X(3).
   02  RE-SEG            PIC X(4) VALUE 'FRST'.
   02  RE-RSV1           PIC X(4) VALUE SPACE.
   02  RE-DATE           PIC 9(8).
   02  RE-TIME           PIC 9(8).
   02  RE-LENG           PIC 9(9) COMP VALUE 44.
   02  RE-RSV2           PIC X(4) VALUE SPACE.
   02  RE-RSV3           PIC X(4) VALUE SPACE.
   02  RE-RSV4           PIC X(4) VALUE SPACE.
   02  RE-RSV5           PIC X(4) VALUE SPACE.
   02  RE-RSV6           PIC X(8) VALUE SPACE.
   02  RE-RSV7           PIC X(4) VALUE SPACE.
   02  RE-RSV8           PIC X(8) VALUE SPACE.
   02  RE-RSV9           PIC X(4) VALUE SPACE.
   02  RE-RSV10          PIC 9(9) COMP VALUE ZERO.
   02  RE-RSV11          PIC 9(9) COMP VALUE ZERO.
   02  RE-RSV12          PIC X(1) VALUE SPACE.
   02  RE-BUFTYPE        PIC X(1) VALUE '2'.
   02  RE-RSV13          PIC X(14) VALUE LOW-VALUE.
 01  RECV-PARM2.
   02  RE-RSV14          PIC X(4) VALUE SPACE.
   02  RE-TERMNAM        PIC X(8).
   02  RE-MAPNAME        PIC X(8).
   02  RE-RSV15          PIC X(8) VALUE SPACE.
   02  RE-RSV16          PIC X(28) VALUE LOW-VALUE.
*
***********************************************************
*     一方送信メッセージの送信データ領域                  *
***********************************************************
*
 01  SEND-PARM1.
   02  SE-NAME           PIC X(8) VALUE 'SEND    '.
   02  SE-STATUS         PIC X(5).
   02  FILLER            PIC X(3).
   02  SE-RSV1           PIC X(4) VALUE SPACE.
   02  SE-RSV2           PIC X(4) VALUE SPACE.
   02  SE-RSV3           PIC 9(8).
   02  SE-RSV4           PIC 9(8).
   02  SE-RSV5           PIC 9(9) COMP VALUE ZERO.
   02  SE-SEG            PIC X(4) VALUE 'EMI '.
   02  SE-SYNC           PIC X(4) VALUE SPACE.
   02  SE-RSV6           PIC X(4) VALUE 'NORM'.
   02  SE-NO             PIC X(4) VALUE 'NSEQ'.
   02  SE-RSV7           PIC X(8) VALUE SPACE.
   02  SE-RSV8           PIC X(4) VALUE SPACE.
   02  SE-RSV9           PIC X(8) VALUE SPACE.
   02  SE-RSV10          PIC X(4) VALUE SPACE.
   02  SE-RSV11          PIC 9(9) COMP VALUE ZERO.
   02  SE-RSV12          PIC 9(9) COMP.
   02  SE-MAPMOD         PIC X(1) VALUE '0'.
   02  SE-BUFTYPE        PIC X(1) VALUE '2'.
   02  SE-PAGEC          PIC X(1) VALUE '0'.
   02  SE-RSV13          PIC X(13) VALUE LOW-VALUE.
 01  SEND-PARM2.
   02  SE-COMF           PIC X(4) VALUE 'OUT '.
   02  SE-TERMNAM        PIC X(8) VALUE 'XPNLE201'.
   02  SE-MAPNAM         PIC X(8) VALUE 'MAM10   '.
   02  SE-RSV14          PIC X(8) VALUE SPACE.
   02  SE-PAGECNAM       PIC X(6) VALUE SPACE.
   02  SE-RSV15          PIC X(28) VALUE LOW-VALUE.
*
***********************************************************
*     応答メッセージの送信データ領域                      *
***********************************************************
*
 01  RPLY-PARM1.
   02  RP-NAME           PIC X(8) VALUE 'REPLY   '.
   02  RP-STATUS         PIC X(5).
   02  FILLER            PIC X(3).
   02  RP-RSV1           PIC X(4) VALUE SPACE.
   02  RP-RSV2           PIC X(4) VALUE SPACE.
   02  RP-RSV3           PIC 9(8).
   02  RP-RSV4           PIC 9(8).
   02  RP-RSV5           PIC 9(9) COMP VALUE ZERO.
   02  RP-SEG            PIC X(4) VALUE 'EMI '.
   02  RP-SYNC           PIC X(4) VALUE SPACE.
   02  RP-RSV6           PIC X(4) VALUE SPACE.
   02  RP-RSV7           PIC X(4) VALUE SPACE.
   02  RP-RSV8           PIC X(8) VALUE SPACE.
   02  RP-OPT            PIC X(4) VALUE SPACE.
   02  RP-RSV9           PIC X(8) VALUE SPACE.
   02  RP-RSV10          PIC X(4) VALUE SPACE.
   02  RP-RSV11          PIC 9(9) COMP VALUE ZERO.
   02  RP-RSV12          PIC 9(9) COMP VALUE ZERO.
   02  RP-RSV13          PIC X(1) VALUE '0'.
   02  RP-BUFTYPE        PIC X(1) VALUE '2'.
   02  RP-RSV14          PIC X(14) VALUE LOW-VALUE.
 01  RPLY-PARM2.
   02  RP-RSV15          PIC X(4) VALUE SPACE.
   02  RP-RSV16          PIC X(8) VALUE SPACE.
   02  RP-MAPNAM         PIC X(8) VALUE 'MAM02   '.
   02  RP-NEXTAP         PIC X(8) VALUE SPACE.
   02  RP-RSV18          PIC X(28) VALUE LOW-VALUE.
*
 PROCEDURE DIVISION.
*
***********************************************************
*     メッセージの受信                                    *
***********************************************************
*
   CALL 'CBLDCMCF' USING RECV-PARM1 RECV-PARM2 LOG0101I.   ……2.

*
***********************************************************
*                                                         *
*                                                         *
*     データの処理                                        *
*                                                         *
*                                                         *
***********************************************************
*

*
***********************************************************
*     一方送信メッセージの送信                            *
***********************************************************
*
   CALL 'CBLDCMCF' USING SEND-PARM1 SEND-PARM2 LOG1001O.   ……2.
*
***********************************************************
*     応答メッセージの送信                                *
***********************************************************
*
   CALL 'CBLDCMCF' USING RPLY-PARM1 RPLY-PARM2 LOG0201O.   ……2.
*
***********************************************************
*     終了処理                                            *
***********************************************************
*
   EXIT PROGRAM.

コーディング例中の1.および2.は次の意味になります。

XMAP3で生成した入力・出力論理マップをCOPY文で取り込みます。

一意名3には，XMAP3で作成した入力・出力論理マップを指定します。

(b)　コーディング例（データ操作言語）

*
***********************************************************
*     MHPサービスプログラム(DML)                          *
***********************************************************
*
 IDENTIFICATION DIVISION.

 PROGRAM-ID. MHPD.

 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
*
***********************************************************
*     ワーク変数                                          *
***********************************************************
*
 DATA DIVISION.
 WORKING-STORAGE SECTION.
*
***********************************************************
*     論理マップコピー                                    *
*          LOG0101I : 入力ロジカルマップ                  *
*          LOG0201O : 出力ロジカルマップ                  *
*          LOG1001O : 出力ロジカルマップ                  *
***********************************************************
*
 COPY LOG0101I.                  ……1.
 COPY LOG0201O.                  ……1.
 COPY LOG1001O.                  ……1.
*
***********************************************************
*     通信記述項                                          *
***********************************************************
*
 COMMUNICATION SECTION.
*
***********************************************************
*     メッセージの受信                                    *
***********************************************************
*
 CD RECV-INF
   FOR INPUT
   STATUS KEY IS        RE-STATUS
   SYMBOLIC TERMINAL IS RE-TERMNAM
   MESSAGE DATE IS      RE-DATE
   MESSAGE TIME IS      RE-TIME
   MAP NAME IS          RE-MAPNAM.
*
***********************************************************
*     一方送信メッセージの送信                            *
***********************************************************
*
 CD SEND-INF-OUT
   FOR OUTPUT
   STATUS KEY IS        SE-STATUS-OUT
   SYMBOLIC TERMINAL IS SE-TERMNAM-OUT
   MAP NAME IS          SE-MAPNAM-OUT
   SWITCHING MODE IS    NORMAL.
*
***********************************************************
*     応答メッセージの送信                                *
***********************************************************
*
 CD SEND-INF-IO
   FOR I-O
   STATUS KEY IS        SE-STATUS-IO
   MAP NAME IS          SE-MAPNAM-IO.

 PROCEDURE DIVISION.

*
***********************************************************
*     メッセージの受信                                    *
***********************************************************
*
   RECEIVE RECV-INF
           FIRST SEGMENT
           INTO LOG0101I.        ……2.

*
***********************************************************
*                                                         *
*                                                         *
*     データの処理                                        *
*                                                         *
*                                                         *
***********************************************************
*

*
***********************************************************
*     一方送信メッセージの送信                            *
***********************************************************
*
   MOVE 'XPNLE201' TO SE-TERMNAM-OUT.
   MOVE 'MAM10   '  TO SE-MAPNAM-OUT.

   SEND SEND-INF-OUT
        FROM LOG1001O        ……2.
        WITH EMI.
*
***********************************************************
*     応答メッセージの送信                                *
***********************************************************
*
   MOVE 'MAM02   '    TO SE-MAPNAM-IO.

   SEND SEND-INF-IO
        FROM LOG0201O        ……2.
        WITH EMI.
*
***********************************************************
*     終了処理                                            *
***********************************************************
*
   EXIT PROGRAM.

コーディング例中の1.および2.は次の意味になります。

XMAP3で生成した入力・出力論理マップをCOPY文で取り込みます。

一意名1には，XMAP3で作成した入力・出力論理マップを指定します。

付録H.2　提供するサンプルコーディング

ここでは，TP1/NET/XMAP3が提供するサンプルコーディングの格納場所について言語ごとに示します。

なお，XMAP3 Developer※もTP1/NET/XMAP3を使用した画面表示と帳票印刷を行うサンプルプログラムを提供しています。XMAP3 Developerが提供するサンプルプログラムの格納場所については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 プログラミングガイド」を参照してください。

注※

画面表示や帳票印刷に使用するマップの作成を支援するプログラム

(1)　C言語

C言語のサンプルコーディングは，次のファイルで提供しています。

適用OSがUNIXの場合

/BeTRAN/examples/mcf/XMAP3/aplib/c/ap.c

(2)　COBOL言語

COBOL言語のサンプルコーディングは，次のファイルで提供しています。

適用OSがUNIXの場合

その1

/BeTRAN/examples/mcf/XMAP3/aplib/cobol/ap.cbl

その2

/BeTRAN/examples/mcf/XMAP3/aplib/dml/ap.cbl

適用OSがWindowsの場合

%DCDIR%¥examples¥mcf¥XMAP3¥aplib¥cobol¥ap.cbl

付録I　オペレータインジケータ表示メッセージ一覧

オペレータインジケータに表示されるメッセージを五十音順に示します。(Ｏ)に示す内容は，オペレータの対応です。

イニシャライズマップが定義されていません

イニシャライズマップが定義されていない環境で，MAPオペランドを省略したinitコマンドが入力されました。

(Ｏ)

MAPオペランドを指定したinitコマンドを入力します。またはシステム管理者に連絡してください。

〔対策〕

論理端末定義（mcftalcle）の-pオプションでイニシャライズマップを定義します。

オペランドの指定が不正です

"C　コマンド名　オペランド"の形式で入力されたオペランドが不正です。

(Ｏ)

コマンドに対応した正しいオペランドを指定してコマンドを入力してください。

キュー状態が閉塞中です

キュー状態が閉塞中のため，メッセージを入力できません。

(Ｏ)

キュー状態を閉塞解除したあと，再度メッセージを入力してください。

継続問い合わせ応答が強制終了しました

運用コマンドによって，継続問い合わせ応答処理が強制終了しました。

コマンドが異常終了しました

入力されたコマンドが異常終了しました。

(Ｏ)

コンソールに出力されているログメッセージを参照して対策をしてください。

コマンドが正常に終了しました。

入力されたコマンドが正常に終了しました。

システム終了中です

システム終了中のため，メッセージを入力できません。

投入されたコマンド名が不正です

"C　コマンド名　…"の形式で入力されたコマンド名が不正です。

(Ｏ)

TP1/NET/XMAP3でサポートしている正しいコマンドを入力してください。

内部処理でエラーが発生しました

入力メッセージの処理中にエラーが発生しました。

(Ｏ)

システム管理者に連絡してください。

〔対策〕

コンソールに出力されているログメッセージを参照して対策をします。

入力必須項目が入力されていません

マップ定義で指定された入力必須項目に入力されていない項目があります。

(Ｏ)

入力必須項目をすべて入力してください。

ハードコピーを取得できません

プリンタ使用中などでハードコピーを取得できません。原因はコンソールに出力されているログメッセージを参照してください。

(Ｏ)

原因を取り除いたあと，再度印刷キーを押してください。

〔対策〕

コンソールに出力されているログメッセージを参照して対策をします。

付録J　理由コード一覧

ERREVT2の理由コードを次の表に示します。

表J‒1　ERREVT2の理由コード一覧

C言語の理由コード

（16進数字）

COBOL言語の理由コード

（外部10進数字）

ERREVT2の通知理由

DCMCF_NO_SERV

（0010）

0010

アプリケーション名に相当するMHPのサービスがありません。

DCMCF_SCD_ERR

（0020）

0020

ユーザサーバ未起動などによってMHPの起動に失敗しました。

DCMCF_QUE_BUF_ERR

（0030）

0030

動的共用メモリが不足しました。

DCMCF_QUE_FIL_OVER

（0031）

0031

キューファイルが満杯になりました。

DCMCF_QUE_LIMIT_OVER

（0032）

0032

入力メッセージ最大格納数を超過しました。

DCMCF_QUE_IO_ERR

（0033）

0033

入力キューに障害が発生しました。

DCMCF_AP_CLOSE

（0040）

0040

MHPのアプリケーションが閉塞しています。

DCMCF_AP_SECURE

（0041）

0041

MHPのアプリケーションがセキュア状態です。

DCMCF_SERV_CLOSE

（0042）

0042

MHPのサービスまたはサービスグループが閉塞しています。

スケジュール閉塞されているサービスグループの入力キューに未処理受信メッセージが残った状態で，OpenTP1を正常終了または計画停止Aで終了しました。

DCMCF_SERV_SECURE

（0043）

0043

MHPのサービスグループがセキュア状態です。

DCMCF_ABNORMAL_END

（0050）

0050

MHPで呼び出すreceive関数にセグメントを渡す前に，MHPが異常終了しました。

DBMSの障害などによって，トランザクションの開始に失敗しました。

SERREVTおよびVERREVTの理由コードを次の表に示します。

表J‒2　SERREVTおよびVERREVTの理由コード一覧

理由コード1（16進数字）

理由コード2（16進数字）

発生条件

発生個所

DCMXPN_RSN1_MCF

（00000001）

DCMXPN_RSN2_ITQ

（00000001）

メッセージ入力障害

LE

DCMXPN_RSN2_APL

（00000002）※1

アプリケーション名取得障害

LE

DCMXPN_RSN2_OTGET

（00000003）※1

メッセージ出力障害

LE

DCMXPN_RSN2_OTCMP

（00000004）

メッセージ送信完了処理障害

LE

DCMXPN_RSN2_DCTLE

（00000005）

mcftdctleによる論理端末の閉塞

LE

DCMXPN_RSN2_DCTCN

（00000006）

mcftdctcnによる論理端末の閉塞

CN

その他

上記以外の障害（理由コード2は保守情報）

不定

DCMXPN_RSN1_XPW

（00000002）

XMAP3 Serverエラーコード

XMAP3 Server障害

CN，LE

DCMXPN_RSN1_PRT

（00000003）

XMAP3 Server障害コード※2

回復できないプリンタの障害

LE

その他

不定

上記以外の障害

不定

（凡例）

LE：論理端末

CN：コネクション

注※1

マッピング障害の場合は，詳細コードにマッピングサービスの障害コードを設定します。障害コードの詳細は，「付録K　マッピングサービスの障害コードの詳細」を参照してください。

注※2

プリンタ障害発生イベント情報内の障害内容（inf）です。

詳細については，マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

付録K　マッピングサービスの障害コードの詳細

マッピング処理で障害が発生した場合，TP1/NET/XMAP3は，メッセージログファイルにメッセージを出力します。その際，理由コードまたは保守コード2として，マッピングに関するリターンコードを出力します。リターンコードは8けたの16進数字です。リターンコードの形式は次のとおりです。

0xaabbcccc

（凡例）

0x：16進数字を示す記号

aa：エラー発生関数

bb：エラー状態

cccc：エラー詳細

リターンコードの先頭2けた，aaの部分にはエラーが発生した関数を示すコードが設定されます。aaの値とエラー発生関数の対応を，次の表に示します。

表K‒1　エラー発生関数

aa

エラー発生関数

ccccの意味（エラー詳細）

10

XMAP3内部関数

マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」のリターンコードと詳細コードの説明を参照してください。

11

20

21

40

60

61

62

A0

F0

B1

getservbyname

UNIXシステムコールのerrnoです。

B2

gethostbyname

B3

socket

B4

connect

B5

send

B6

recv

B7

pthread_select

B8

pthread_sleep

B9

shmat

BA

shmdt

BB

shutdown

BC

setsockopt

BD

time

BE

fcntl

BF

close

C0

マッピングサービス内部関数

「表K-3　エラー詳細」を参照してください。

C1

C2

C3

C4

C5

C6

D0

XMAP3/PRINTER UTILITY内部関数

マニュアル「画面・帳票サポートシステム/プリンタユティリティ XMAP3/PRINTER UTILITY 解説・手引書」のページ制御エラーのリターンコードに関する説明を参照してください。

D1

D2

D3

D4

D5

E0

TP1/Server Base内部関数

マッピングサービス内保守情報です。このメッセージの直前に出力されているメッセージの処置を実施してください。

E1

E2

E3

E8

TP1/Message Control内部関数

マッピングサービス内保守情報です。このメッセージの直前に出力されているメッセージの処置を実施してください。

E9

リターンコードのbbの部分にはエラー状態を示すコードが設定されます。bbの値とエラー状態の対応を，次の表に示します。

表K‒2　エラー状態

bb

エラー状態

00

正常

04

軽いエラーがあるがマッピングの結果は正しい

08

マッピングを実行できなかった

0C

マッピングサービス未起動

リターンコードの先頭2けたがC0〜C6の場合，リターンコードの末尾4けた，ccccの部分にはエラーの詳細を示すコードが設定されます。ccccの値とエラー詳細の対応を，次の表に示します。

表K‒3　エラー詳細

cccc

内容

0004

マップ名が指定されていません。または，マップ名が不正です。※1

(Ｏ)：マップ名を正しく指定してください。

PAGEC名が指定されていません。またはPAGEC名が不正です。※2

(Ｏ)：PAGEC名を正しく指定してください。

0008

機種・モデルが指定されていません。または機種・モデルが不正です。

(Ｏ)：論理端末定義（mcftalcle -z）のdeviceオペランドを正しく指定してください。

000C

機種・モデルが指定されていません。または機種・モデルが不正です。

(Ｏ)：論理端末定義（mcftalcle -z）のdeviceオペランドを正しく指定してください。

00A5

XMAP3共通定義（mcftxp）の-nオプションが正しく設定されていません。

(Ｏ)：XMAP3共通定義（mcftxp）のマッピングサービス識別子を正しく指定して，OpenTP1を再起動してください。

0408

論理端末定義（mcftalcle -z）のdeviceオペランドの機種・モデルが不正です。

(Ｏ)：論理端末定義（mcftalcle -z）のdeviceオペランドの機種・モデルを正しく指定してください。

0428

サポートされていない端末システム名が指定されました。

(Ｏ)：マッピングサービス属性定義のSYSTNAMオペランドを正しく指定してください。

1418

物理マップをロードするメモリが不足しました。※1

(Ｏ)：マッピングサービス属性定義のMAPCNT，POOLSIZオペランドを正しく指定してください。

PAGECモジュールをロードするメモリが不足しました。※2

(Ｏ)：マッピングサービス属性定義のPGCCNT，PGCPOLSZオペランドを正しく指定してください。

FF01

一つのマッピングサービス識別子に対して16個以上の通信プロセスが接続を要求しました。

(Ｏ)：マッピングサービス識別子を追加して通信プロセスを振り分け，一つのマッピングサービス識別子に対して，通信プロセスが15個以内になるように定義してください。

FF03

マッピングサービス処理中にローカルメモリ不足が発生しました。

(Ｏ)：データ・セグメント領域を拡張してください。

FF04

マッピングサービス処理中に共有メモリ不足が発生しました。

(Ｏ)：マッピングサービス属性定義のMAPNAME，MAPCNT，POOLSIZオペランドを正しく指定してください。

FF09

ページ制御機能を使用できません。

(Ｏ)：TP1/NET/XMAP3のmain関数内のページ制御機能使用宣言を正しく指定してください。

FF0B

ページ制御機能を使用できません。

(Ｏ)：マッピングサービス属性定義内のページ制御機能に関連する設定値を正しく指定してください。

FF0F

論理端末閉塞解除中にdcmapchgコマンドが入力されました。

(Ｏ)：dcmapchgコマンドは論理端末閉塞中に入力してください。

FF10

マッピングサービス属性定義ファイル内の端末システム名称（SYSTNAM）とOpenTP1のプロトコルが一致しません。

(Ｏ)：マッピングサービス属性定義ファイル内の端末システム名称を正しく指定して，OpenTP1を再起動してください。

（凡例）

(Ｏ)：オペレータの対応

注※1

aaで表されたエラー発生関数が，XMAP3内部関数の場合

注※2

aaで表されたエラー発生関数が，XMAP3/PRINTER UTILITY内部関数の場合

付録L　用語解説

（英字）

AJ（メッセージ送信完了ジャーナル）

MCFが取得する統計用の履歴情報の一つです。メッセージ出力通番，出力先論理端末名などで構成されます。

AJの取得タイミングは，表示印刷サービスのサービスタイプで異なります。画面表示の場合は，メッセージをXMAP3 Serverにすべて渡した直後です。帳票印刷の場合は，メッセージをXMAP3 Serverにすべて渡したあと，プリンタから印刷完了を受信した直後です。

GJ（メッセージ受信ジャーナル）

MCFが取得する統計用の履歴情報の一つです。入力メッセージサイズ，入力論理端末名などで構成されます。

GJの取得タイミングは，非同期受信関数を発行して，MHPが受信メッセージを入力キューから取り出した直後です。

IJ（メッセージ入力ジャーナル）

MCFが取得する統計用の履歴情報の一つです。メッセージ入力通番，入力論理端末名，入力メッセージ種別，および入力メッセージなどで構成されます。

IJの取得タイミングは，クライアントから受信したメッセージを入力キューに格納する直前です。

MJ（メッセージジャーナル）

MCFが取得する統計用の履歴情報の一つです。入力論理端末名または，出力論理端末名，メッセージジャーナル種別，入力または出力メッセージ（入力メッセージ編集前のデータ，または出力メッセージ編集後のデータ）などで構成されます。

MJの取得タイミングは，入力メッセージの場合，入力メッセージ編集UOCを呼び出す直前です。また，出力メッセージの場合，出力メッセージ編集UOCを呼び出した直後です。

OJ（メッセージ出力ジャーナル）

MCFが取得する統計用の履歴情報の一つです。メッセージ出力通番，出力論理端末名，出力メッセージ種別，出力メッセージなどで構成されます。

OJの取得タイミングは，非同期送信関数を発行して，UAPが送信メッセージを出力キューに格納した直後です。

（カ行）

コネクション

TP1/NET/XMAP3と表示印刷サービスの間に確立された論理的な通信路です。表示印刷サービスのサービスと1対1に対応します。

（サ行）

出力キュー

処理の結果として出力メッセージを管理する待ち行列です。

出力マッピング

UAPが論理マップにセットしたデータを，送信ストリームに変換することです。

送信完了

メッセージが送信済みであることを，TP1/NET/XMAP3が出力キューに連絡することです。

（ナ行）

入力キュー

処理要求として入力メッセージを管理する待ち行列です。

入力マッピング

受信ストリームをUAPが使用できる形式に変換して論理マップにセットすることです。

（ハ行）

物理マップ

ディスプレイ端末，またはプリンタ端末に対する入出力時，UAPで取り扱う論理的なデータ項目を論理端末画面のどの位置へどのように表示するかなどの物理的な情報から構成される制御情報です。

物理メッセージ

XMAP3が扱うXPデータストリーム形式のメッセージです。EBCDIK/KEISのコード体系を持ちます。

（ラ行）

論理項目

可変項目に対応して，論理端末画面から入力される論理データや，論理端末画面に出力する論理データを格納する項目です。

論理セグメント

論理項目の集まりです。

論理端末

TP1/NET/XMAP3とUAPの間に確立された論理的な端末です。論理端末画面，またはプリンタと1対1に対応します。

論理端末画面

表示印刷サービスがディスプレイ上に生成する一つのウィンドウです。

論理マップ

論理セグメントの集まりです。

論理メッセージ

データとして意味を持つメッセージの単位です。1論理メッセージは1セグメント，または複数セグメントから構成されています。

索引

A

ACT ALTSEND[1]

actcnaction〔mcftxp（XMAP3共通定義）〕[1]

aj〔mcftalcle（論理端末定義）〕[1]

ALTPATH〔マッピングサービス属性定義〕[1]

ans[1]

any（任意型）[1]

B

bretrycnt〔mcftalccn（コネクション定義の開始）〕[1]

bretryint〔mcftalccn（コネクション定義の開始）〕[1]

bretry〔mcftalccn（コネクション定義の開始）〕[1]

C

CBLDCMCF('CONTEND ')[1]

CBLDCMCF('RECEIVE ')[1]

CBLDCMCF('REPLY ')[1]

CBLDCMCF('RESEND ')[1]

CBLDCMCF('SEND ')[1]

CBLDCMCF('TACTCN ')[1]

CBLDCMCF('TACTLE ')[1]

CBLDCMCF('TDCTCN ')[1]

CBLDCMCF('TDCTLE ')[1]

CBLDCMCF('TEMPGET ')[1]

CBLDCMCF('TEMPPUT ')[1]

CBLDCMCF('TLSCN ')[1]

CBLDCMCF('TLSLE ')[1]

closebutton〔mcftxp（XMAP3共通定義）〕[1]

cmdsvname〔mcfmcomn（MCFマネジャ共通定義）〕[1]

COBOL言語のプログラムインタフェース[1]

COBOL言語のプログラムインタフェースの一覧[1]

COBOL-UAP作成用プログラムインタフェース[1]

COBOL-UAP作成用プログラムインタフェースの一覧[1]

cont[1]

count〔mcftalccn（コネクション定義の開始）〕[1]

C言語のライブラリ関数[1]

C言語のライブラリ関数の一覧[1]

D

DATACD〔マッピングサービス属性定義〕[1]

dc_mcf_contend[1]

dc_mcf_receive[1]

dc_mcf_reply[1]

dc_mcf_resend[1]

dc_mcf_send[1]

dc_mcf_tactcn[1]

dc_mcf_tactle[1]

dc_mcf_tdctcn[1]

dc_mcf_tdctle[1]

dc_mcf_tempget[1]

dc_mcf_tempput[1]

dc_mcf_tlscn[1]

dc_mcf_tlsle[1]

dcmapchg[1]

dcmapls[1]

DEACT ALTSEND[1]

device〔mcftalcle（論理端末定義）〕[1]

dflmap〔mcftalcle（論理端末定義）〕[1]

DISABLE〔継続問い合わせ応答の終了〕[1]

dmsgcnt〔mcftalcle（論理端末定義）〕[1]

E

EBCDIK/KEIS[1]

END〔マッピングサービス属性定義〕[1]

ERREVT1〔MCFイベント情報の形式（COBOL言語）〕[1]

ERREVT1〔MCFイベント情報の形式（C言語）〕[1]

ERREVT1〔MCFイベントの種類〕[1]

ERREVT2〔MCFイベント情報の形式（COBOL言語）〕[1]

ERREVT2〔MCFイベント情報の形式（C言語）〕[1]

ERREVT2〔MCFイベントの種類〕[1]

ERREVT2の理由コード一覧[1]

ERREVT3〔MCFイベント情報の形式（COBOL言語）〕[1]

ERREVT3〔MCFイベント情報の形式（C言語）〕[1]

ERREVT3〔MCFイベントの種類〕[1]

ERREVTA〔MCFイベント情報の形式（COBOL言語）〕[1]

ERREVTA〔MCFイベント情報の形式（C言語）〕[1]

ERREVTA〔MCFイベントの種類〕[1]

ERRLOG4〔マッピングサービス属性定義〕[1]

EUC[1]

excnt〔mcftalcle（論理端末定義）〕[1]

G

groupsend〔mcftalcle（論理端末定義）〕[1]

I

icon〔mcftalcle（論理端末定義）〕[1]

iconname〔mcftalcle（論理端末定義）〕[1]

init[1]

initmap〔mcftalcle（論理端末定義）〕[1]

J

JIS8/シフトJIS[1]

K

keyboard〔mcftalcle（論理端末定義）〕[1]

L

LRU管理マップローディング用バッファ[1]

M

MAPCNT〔マッピングサービス属性定義〕[1]

MAPDEF〔マッピングサービス属性定義〕[1]

MAPNAME〔マッピングサービス属性定義〕[1]

MAPPATH〔マッピングサービス属性定義〕[1]

mapsvname〔mcfmcomn（MCFマネジャ共通定義）〕[1]

max_open_fds〔システムサービス共通情報定義〕[1]

max_socket_descriptors〔システムサービス共通情報定義〕[1]

maxbutton〔mcftalcle（論理端末定義）〕[1]

MCF[1]

mcf_prf_trace_level〔システムサービス共通情報定義〕[1]

mcf_prf_trace〔システムサービス情報定義〕[1]

mcfaalcap[1]

mcfmcomn[1]

mcftactcn[1]

mcftactle[1]

mcftalccn[1]

mcftalced[1]

mcftalcle[1]

mcftdctcn[1]

mcftdctle[1]

mcftedalt[1]

mcftendct[1]

mcftlscn[1]

mcftlsle[1]

mcftstalt[1]

mcftxp[1]

mcfxp[1]

mcfxpr[1]

MCFアプリケーション属性[1]

MCFイベント[1]

MCFイベントインタフェース[1]、[2]

MCFイベント処理用MHP[1]

MCFイベント通知時のセグメント構成[1]

MCFイベントの共通ヘッダ〔MCFイベント情報の形式（C言語）〕[1]

MCFイベントの種類[1]

MCF固有情報の出力情報[1]

MCFサービス名の登録[1]

MCF性能検証用トレース[1]

MCF性能検証用トレース情報の取得レベル[1]

MCF性能検証用トレースの取得タイミング[1]

MCF性能検証用トレースの取得量[1]

MCF通信構成定義[1]

MCF通信プロセスでアクセスするファイルの最大数[1]

MCF定義オブジェクトの解析[1]

MCF定義オブジェクトの生成[1]

MCFで使用する定義ファイル[1]

MCFトレースファイルの見積もり式[1]

MCFマネジャ共通定義[1]

MCFマネジャ定義[1]

MCFメイン関数のコーディング概要[1]

MCFメイン関数の作成[1]

MHP[1]

minbutton〔mcftalcle（論理端末定義）〕[1]

mmsgcnt〔mcftalcle（論理端末定義）〕[1]

module〔システムサービス情報定義〕[1]

msgadv〔mcftalcle（論理端末定義）〕[1]

msgbuf〔mcftalccn（コネクション定義の開始）〕[1]

msgkey〔mcftxp（XMAP3共通定義）〕[1]

N

noans[1]

NULLCD〔マッピングサービス属性定義〕[1]

O

opcolor〔mcftxp（XMAP3共通定義）〕[1]

OpenTP1システムの変更に影響する定義[1]

OpenTP1マッピングサービス機能[1]

OpenTP1マッピングサービス機能の詳細[1]

OpenTP1マッピングサービス機能の定義例[1]

OpenTP1マッピングサービス機能の利用形態[1]

OpenTP1マッピングサービスに関する定義[1]

opreverse〔mcftxp（XMAP3共通定義）〕[1]

OSホストアドレス管理ファイル（hostsファイル）のコーディング例[1]

P

PADCHR〔マッピングサービス属性定義〕[1]

PATHSTS〔マッピングサービス属性定義〕[1]

pheight〔mcftalcle（論理端末定義）〕[1]

POOLSIZ〔マッピングサービス属性定義〕[1]

pwidth〔mcftalcle（論理端末定義）〕[1]

Q

quegrpid〔mcftalcle（論理端末定義）〕[1]

quekind〔mcftalcle（論理端末定義）〕[1]

R

rcvbuf〔mcftalccn（コネクション定義の開始）〕[1]

RECEIVE〔一時記憶データの受け取り〕[1]

RECEIVE〔メッセージの受信〕[1]

reply，send呼び出しの可否[1]

replychk〔mcfaalcap（アプリケーション属性定義）〕[1]

RESEND〔マッピングサービス属性定義〕[1]

resize〔mcftalcle（論理端末定義）〕[1]

RETRYCNT〔マッピングサービス属性定義〕[1]

RETRYSEC〔マッピングサービス属性定義〕[1]

rretrycnt〔mcftalcle（論理端末定義）〕[1]

rretryint〔mcftalcle（論理端末定義）〕[1]

rretry〔mcftalcle（論理端末定義）〕[1]

S

SCMPEVT〔MCFイベント情報の形式（COBOL言語）〕[1]

SCMPEVT〔MCFイベント情報の形式（C言語）〕[1]

SCMPEVT〔MCFイベントの種類〕[1]

SEND〔一時記憶データの更新〕[1]

SEND〔メッセージの送信〕[1]

SERREVT〔MCFイベント情報の形式（COBOL言語）〕[1]

SERREVT〔MCFイベント情報の形式（C言語）〕[1]

SERREVT〔MCFイベントの種類〕[1]

SERREVTおよびVERREVTの理由コード一覧[1]

sndbuf〔mcftalccn（コネクション定義の開始）〕[1]

SPP[1]

svname〔mcftalccn（コネクション定義の開始）〕[1]

SYSTNAM〔マッピングサービス属性定義〕[1]

T

tempsize〔mcfaalcap（アプリケーション属性定義）〕[1]

timeoutlog〔mcftxp（XMAP3共通定義）〕[1]

title〔mcftalcle（論理端末定義）〕[1]

titlname〔mcftalcle（論理端末定義）〕[1]

TP1/Message Control[1]

TP1/NET/XMAP3システム構成例[1]

TP1/NET/XMAP3に固有の定義の一覧[1]

TP1/NET/XMAP3の運用コマンド[1]

TP1/NET/XMAP3の運用コマンドを発行するプログラムの作成[1]

TP1/NET/XMAP3のオンラインコマンド[1]

TP1/NET/XMAP3の組み込みの流れ[1]

TP1/NET/XMAP3の実行形式プログラム名[1]

TP1/NET/XMAP3の定義の概要[1]

TP1/NET/XMAP3のプロトコル固有定義コマンドの指定順序[1]

TP1/NET/XMAP3プロトコル固有定義の設定[1]

type〔mcfaalcap（アプリケーション属性定義）〕[1]

type〔mcftalccn（コネクション定義の開始）〕[1]

TZ〔システムサービス情報定義〕[1]

U

UAP異常終了通知イベント[1]

unlock〔mcftalcle（論理端末定義）〕[1]

UOC[1]

UOCインタフェース用のパラメタとバッファの関係[1]

UOC作成上の注意事項[1]

UOCで使用できる関数[1]

UOCの異常処理[1]

UOCの実行タイミング[1]

UOC名称の出力情報[1]

UOC呼び出し時のMCF固有情報のダンプ出力情報[1]

V

VCLSEVT〔MCFイベント情報の形式（COBOL言語）〕[1]

VCLSEVT〔MCFイベント情報の形式（C言語）〕[1]

VCLSEVT〔MCFイベントの種類〕[1]

VERREVT〔MCFイベント情報の形式（COBOL言語）〕[1]

VERREVT〔MCFイベント情報の形式（C言語）〕[1]

VERREVT〔MCFイベントの種類〕[1]

VOPNEVT〔MCFイベント情報の形式（COBOL言語）〕[1]

VOPNEVT〔MCFイベント情報の形式（C言語）〕[1]

VOPNEVT〔MCFイベントの種類〕[1]

W

wheight〔mcftalcle（論理端末定義）〕[1]

wwidth〔mcftalcle（論理端末定義）〕[1]

X

XMAP3[1]

XMAP3 Server[1]

XMAP3 Serverサービス名との関係[1]

XMAP3 Serverサービス名ファイルのコーディング例[1]

XMAP3 Serverサービス名ファイルの設定[1]

XMAP3 Serverサービス名ファイルの例[1]

XMAP3印刷サービス監視時間[1]

XMAP3共通定義[1]

XMAP3サーバ[1]

XPCLOSEWAITTIME〔システムサービス情報定義〕[1]

XPW_DAEMON_PORT_NO〔システムサービス情報定義〕[1]

XPデータストリーム形式[1]

XRESPONSETIME〔システムサービス情報定義〕[1]

あ

アプリケーション決定の流れ[1]

アプリケーション属性定義[1]

アプリケーションの型[1]

アプリケーションの決定[1]

アプリケーション名格納領域[1]

アプリケーション名の決定[1]

い

一時記憶データ[1]

一時記憶データの受け取り（COBOL言語）[1]

一時記憶データの受け取り（C言語）[1]

一時記憶データの受け取り（データ操作言語）[1]

一時記憶データの更新（COBOL言語）[1]

一時記憶データの更新（C言語）[1]

一時記憶データの更新（データ操作言語）[1]

一方送信メッセージ[1]

一方送信メッセージ送信時のMCF性能検証用トレースの取得タイミング[1]

イニシャライズマップ名[1]

色番号[1]

印刷キー処理[1]

インタフェースの変更一覧[1]

う

運用コマンド[1]

運用コマンドを発行するプログラムの例[1]

え

エラーイベント[1]

エラー詳細[1]

エラー状態[1]

エラー発生関数[1]

お

応答型[1]

応答型MHPが応答メッセージを送信[1]

応答メッセージ[1]

応答メッセージの送信（COBOL言語）[1]

応答メッセージの送信（C言語）[1]

オペレータインジケータのメッセージ表示[1]

オペレータインジケータ表示メッセージ一覧[1]

オンラインコマンド[1]

オンラインコマンドサービス名[1]

オンラインの開始形態[1]

オンラインの開始と終了[1]

オンラインの終了形態[1]

か

概要[1]

画面属性の端末状態の閉塞解除処理[1]

画面属性の端末状態の閉塞処理[1]

画面に対する分岐送信形態[1]

監視時間[1]

き

キー入力サービス[1]

キーボード状態[1]

キーボード状態の変更[1]

機能[1]

キューグループID[1]

キュー状態[1]

キュー状態の閉塞と閉塞解除[1]

旧製品からの移行に関する注意事項[1]

く

組み込み方法[1]

クライアントPC/WS応答時間タイムアウト発生時の障害メッセージ出力[1]

グループ送信[1]

け

継続問い合わせ応答型[1]

継続問い合わせ応答形態[1]

継続問い合わせ応答形態の障害[1]

継続問い合わせ応答処理の強制終了〔運用コマンド〕[1]

継続問い合わせ応答の開始[1]

継続問い合わせ応答の終了[1]

継続問い合わせ応答の終了（COBOL言語）[1]

継続問い合わせ応答の終了（C言語）[1]

継続問い合わせ応答の終了（データ操作言語）[1]

継続問い合わせ応答用一時記憶データ[1]

継続問い合わせ応答用一時記憶データ格納用領域サイズ[1]

こ

交代用物理マップ読み込みパス名[1]

コネクション[1]

コネクション（論理端末）の追加[1]

コネクションID[1]

コネクション確立障害時の確立再試行回数[1]

コネクション確立障害時の確立再試行間隔[1]

コネクション定義の開始[1]

コネクション定義の終了[1]

コネクションと論理端末の関係[1]

コネクションに関する機能[1]

コネクションの解放[1]

コネクションの解放（COBOL言語）[1]

コネクションの解放（C言語）[1]

コネクションの解放の流れ[1]

コネクションの確立[1]

コネクションの確立（COBOL言語）[1]

コネクションの確立（C言語）[1]

コネクションの確立〔運用コマンド〕[1]

コネクションの確立再試行[1]

コネクションの確立の流れ[1]

コネクションの強制解放〔運用コマンド〕[1]

コネクションの状態取得（COBOL言語）[1]

コネクションの状態取得（C言語）[1]

コネクションの状態表示[1]

コネクションの状態表示〔運用コマンド〕[1]

コネクション〔用語解説〕[1]

コネクションを自動的に確立[1]

さ

サービス番号〔マッピングサービス定義〕[1]

サービス名[1]

し

次画面名の決定[1]

時間帯情報[1]

次起動アプリケーションの予約[1]

次起動アプリケーション名[1]

システムサービス共通情報定義[1]

システムサービス情報定義[1]

システムサービス情報定義ファイルの作成[1]

システム定義[1]

システムで使用するアプリケーション名[1]

次メッセージ要求キー[1]

次メッセージ要求キー名[1]

受信バッファ〔入力メッセージの編集とアプリケーション名の決定〕[1]

出力キュー〔用語解説〕[1]

出力マッピング〔用語解説〕[1]

出力メッセージの編集[1]

出力メッセージ編集UOCインタフェース[1]

障害対策[1]

障害通知イベント[1]

障害の種類と対応処理[1]

状態通知イベント[1]

常駐マップ[1]

常駐マップローディング用バッファ[1]

初期画面の表示〔オンラインコマンド〕[1]

せ

接続対象の表示印刷サービスのサービスタイプ[1]

接続対象の表示印刷サービス名[1]

そ

送受信メッセージの割り当て先[1]

送信完了確認メッセージ数[1]

送信完了通知イベント[1]

送信完了の情報の取得の要否[1]

送信完了〔用語解説〕[1]

送信障害通知イベント[1]

送信バッファ〔出力メッセージの編集〕[1]

送信要求発生時の処理[1]

ソースファイルの互換性[1]

ソケット用ファイル記述子の最大数[1]

ソフトウェア構成の例[1]

た

代行先論理端末[1]

代行送信の開始[1]

代行送信の開始〔運用コマンド〕[1]

代行送信の開始〔オンラインコマンド〕[1]

代行送信の終了[1]

代行送信の終了〔運用コマンド〕[1]

代行送信の終了〔オンラインコマンド〕[1]

代行元論理端末[1]

タイムゾーン[1]

対話オンライン処理機能[1]

対話オンライン処理の概要[1]

対話オンライン処理の通信形態[1]

端末状態[1]

端末タイプ[1]

つ

通信形態と障害の処理[1]

て

定義オブジェクトファイルの作成[1]

定義オブジェクトファイルの生成[1]

定義できないマップ名[1]

定義の指定順序[1]

定義例[1]

ディスク出力メッセージ最大格納数[1]

データ操作言語のプログラムインタフェース[1]

データ操作言語のプログラムインタフェースの一覧[1]

デフォルトマップ名[1]

と

問い合わせ応答形態[1]

問い合わせ応答形態の障害[1]

問い合わせメッセージ[1]

問い合わせメッセージ受信時のMCF性能検証用トレースの取得タイミング[1]

トランザクションブランチIDの形式[1]

トレース情報が失われる経過時間の見積もり式[1]

トレース情報量の見積もり式[1]

に

入力キュー〔用語解説〕[1]

入力マッピング〔用語解説〕[1]

入力メッセージの編集[1]

入力メッセージの編集とアプリケーション名の決定[1]

入力メッセージ編集UOCインタフェース[1]

ね

ネットワーク構成の例[1]

は

パス名の変更[1]

バッファグループ定義（mcftbuf）でコネクションごとに割り当てる資源の量[1]

ひ

非応答型[1]

非常駐マップ[1]

非問い合わせ応答形態[1]

非問い合わせ応答形態の障害[1]

表示印刷サービス[1]

表示印刷サービスの起動でコネクション確立をするための環境設定[1]

標準用物理マップ読み込みパス名[1]

ふ

複数セグメントのメッセージ関数の使用方法[1]

不正アプリケーション名検出通知イベント[1]

物理マッピング処理（表示・印刷）[1]

物理マップ〔用語解説〕[1]

物理メッセージ[1]

物理メッセージ〔用語解説〕[1]

プリンタ属性の端末状態の閉塞解除処理[1]

プリンタ属性の端末状態の閉塞処理[1]

プリンタに対する分岐送信形態[1]

プリンタの連続使用[1]

プリンタ排他再試行[1]

プリンタ排他再試行回数[1]

プリンタ排他再試行間隔[1]

プリンタ連続使用メッセージ数[1]

プロトコルの種別[1]

分岐送信形態[1]

分岐送信形態の障害[1]

へ

編集バッファ〔出力メッセージの編集〕[1]

編集バッファ〔入力メッセージの編集とアプリケーション名の決定〕[1]

ほ

ホスト名またはIPアドレスの変更[1]

ホスト名〔マッピングサービス定義〕[1]

ま

マッピング[1]

マッピングエラー情報[1]

マッピングサービス機能のシステム構成例[1]

マッピングサービス機能の定義例[1]

マッピングサービスコマンド[1]

マッピングサービス識別子[1]

マッピングサービス識別子〔マッピングサービス定義〕[1]

マッピングサービス属性定義[1]

マッピングサービス属性定義ファイル名〔マッピングサービス定義〕[1]

マッピングサービス定義[1]

マッピングサービス定義とTP1/NET/XMAP3固有の定義の関係[1]

マッピングサービスの障害コードの詳細[1]

マッピングサービス番号〔マッピングサービス定義〕[1]

マッピングサービスプロセス[1]

マッピングサービスプロセスの起動[1]

マッピングサービスプロセスの機能[1]

マッピングサービスプロセスの終了[1]

マッピングサービスホスト名〔マッピングサービス定義〕[1]

マッピングサービス名[1]

マッピングによるメッセージの編集[1]

マッピングによるメッセージ編集の流れ[1]

マップLRU管理[1]

マップ名の決定[1]

み

未処理送信メッセージ廃棄通知イベント[1]

め

メッセージグループ送信機能[1]

メッセージグループ送信の流れ[1]

メッセージ受信用バッファグループ番号[1]

メッセージ制御機能[1]

メッセージ送受信インタフェース[1]

メッセージ送受信時のMCF固有情報のダンプ出力情報[1]

メッセージ送受信に関する機能[1]

メッセージ送受信の形態[1]

メッセージ送受信の例[1]

メッセージ送信用バッファグループ番号[1]

メッセージの再送（COBOL言語）[1]

メッセージの再送（C言語）[1]

メッセージの受信（COBOL言語）[1]

メッセージの受信（C言語）[1]

メッセージの受信（データ操作言語）[1]

メッセージの送信（COBOL言語）[1]

メッセージの送信（C言語）[1]

メッセージの送信（データ操作言語）[1]

メッセージの送信スケジュール[1]

メッセージの代行送信[1]

メッセージの分割と組み立て[1]

メッセージ廃棄通知イベント[1]

メッセージ編集用バッファグループ番号[1]

メッセージ編集用バッファ数[1]

メモリ出力メッセージ最大格納数[1]

ゆ

ユーザアプリケーションプログラムの作成例[1]

ユーザオウンコーディング[1]、[2]

ユーザオウンコーディングインタフェース[1]

ユーザ任意のアプリケーション名[1]

よ

読み込みパス名の変更〔マッピングサービスコマンド〕[1]

予約項目[1]

り

理由コード一覧[1]

ろ

ロード済み資源の表示〔マッピングサービスコマンド〕[1]

論理項目〔用語解説〕[1]

論理セグメント群形式[1]

論理セグメント〔用語解説〕[1]

論理端末[1]

論理端末画面[1]

論理端末画面視野枠の縦サイズ[1]

論理端末画面視野枠の横サイズ[1]

論理端末画面のアイコン名[1]

論理端末画面のキーボード状態[1]

論理端末画面の最小化ボタン[1]

論理端末画面の最大化ボタン[1]

論理端末画面のタイトルバー[1]

論理端末画面のタイトル名[1]

論理端末画面の縦サイズ[1]

論理端末画面の閉じるボタンの有効化[1]

論理端末画面の横サイズ[1]

論理端末画面〔用語解説〕[1]

論理端末定義[1]

論理端末とアプリケーションの型の関係[1]

論理端末に関する機能[1]

論理端末の状態取得（COBOL言語）[1]

論理端末の状態取得（C言語）[1]

論理端末の状態表示[1]

論理端末の状態表示〔運用コマンド〕[1]

論理端末の端末状態の閉塞と閉塞解除[1]

論理端末の閉塞（COBOL言語）[1]

論理端末の閉塞（C言語）[1]

論理端末の閉塞〔運用コマンド〕[1]

論理端末の閉塞解除（COBOL言語）[1]

論理端末の閉塞解除（C言語）[1]

論理端末の閉塞解除〔運用コマンド〕[1]

論理端末名称[1]

論理端末〔用語解説〕[1]

論理ハードコピー[1]

論理マップ〔用語解説〕[1]

論理メッセージ〔用語解説〕[1]