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

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

3000-3-D71-20

前書き

対象製品

・適用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-32411 uCosminexus TP1/NET/User Agent 07-50

・適用OS：Red Hat Enterprise Linux Server 6 (32-bit x86)，Red Hat Enterprise Linux Server 6 (64-bit x86_64)，Red Hat Enterprise Linux Server 7(64-bit x86_64)

P-8164-3111 uCosminexus TP1/Message Control 07-51

P-8164-3211 uCosminexus TP1/NET/Library 07-51

P-F8164-32111 uCosminexus TP1/NET/User Agent 07-50

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

輸出時の注意

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

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

商標類

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

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

Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。

Red Hatは，米国およびその他の国でRed Hat, Inc. の登録商標もしくは商標です。

UNIXは，The Open Groupの米国ならびに他の国における登録商標です。

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

発行

2017年 10月　3000-3-D71-20

著作権

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

変更内容

変更内容（3000-3-D71-20）uCosminexus TP1/Message Control　07-51，uCosminexus TP1/NET/Library　07-51，uCosminexus TP1/NET/User Agent　07-50

追加・変更内容

変更個所

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

−

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

変更内容（3000-3-D71-10）uCosminexus TP1/Message Control　07-51，uCosminexus TP1/NET/Library　07-51，uCosminexus TP1/NET/User Agent　07-50

追加・変更内容

通信管理プログラムにXNF/LSを使用する場合の説明を追加した。

コネクションの確立，解放，および状態表示について，ライブラリ関数およびCOBOL-UAP作成用プログラムインタフェースを使用する場合の説明を追加した。

論理端末の閉塞，閉塞解除，および状態表示について，ライブラリ関数およびCOBOL-UAP作成用プログラムインタフェースを使用する場合の説明を追加した。

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

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

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

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

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

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

システムサービス共通情報定義の，次に示すオペランドの指定値の上限を拡張した。

max_socket_descriptors

max_open_fds

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

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

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

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

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

TP1/NET/User Agent 07-50

TP1/NET/User Agent 07-00

バージョン6以前のインタフェースの変更一覧を追加した。

はじめに

このマニュアルは，OpenTP1システムの中で，TP1/NET/User Agentを使用したAP間通信システムの作成方法，および運用方法について説明したものです。

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

対象読者

OpenTP1システムの通信にUser Agentプロトコルを使用するシステム管理者，システム設計者，およびプログラマを対象としています。また，オンラインやOpenTP1システムの基礎的な知識を持っていて，次のマニュアルを理解されていることを前提としています。

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）

マニュアルの構成

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

第1章　概要

TP1/NET/User Agentを使用したAP間通信の概要について説明しています。

第2章　機能

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

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

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

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

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

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

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

第6章　システム定義

OSAS/UAプロトコルを使用するために必要な，OpenTP1のシステム定義の中でのTP1/NET/User Agent固有のシステム定義，および定義例について説明しています。

第7章　運用コマンド

TP1/NET/User Agentで使用する運用コマンドについて説明しています。

第8章　組み込み方法

TP1/NET/User AgentをOpenTP1システムに組み込む方法について説明しています。

第9章　障害対策

TP1/NET/User Agent運用中に発生する障害と，TP1/NET/User Agentの対応処理，およびメッセージの処理について説明しています。

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

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

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

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

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

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

付録D　メッセージ送受信の処理の流れ

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

付録E　障害発生時の処理の流れ

障害が発生した場合の処理の流れについて説明しています。

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

MCF性能検証用トレースの取得について説明しています。

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

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

付録H　理由コード一覧

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

付録I　このマニュアルの参考情報

関連マニュアル，このマニュアルで使用している略語の意味などを説明しています。

付録J　用語解説

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

読書手順

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

図中で使用する記号

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

文法の記号

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

(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に依存）

謝辞

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/User Agentは，OpenTP1システムのOSAS/UAプロトコルを支援するプログラムです。この章では，TP1/NET/User Agentの概要について説明します。

1.1　AP間通信の概要

AP間通信とは，異なるシステムにあるアプリケーションプログラム間でのメッセージ送受信のことです。

TP1/NET/User Agentは，OpenTP1システムに組み込まれ，OSAS/UAプロトコルを使用したAP間通信を提供するプログラムです。TP1/NET/User Agentを使用すると，拡張HNAのOSAS/UAプロトコルによってほかのオンラインシステムや分散機との水平，垂直分散型ネットワークシステムを構築できます。

OSAS/UAプロトコルとは，OSI上位層（5層，6層，および7層の一部）の共通基盤であるOSASを使用して，AP間通信サービスを提供するプロトコルです。

OpenTP1システムを使用したネットワーク構成例を次の図に示します。

また，TP1/NET/User AgentのOSI 7層構造の中での機能範囲を図1-2に示します。

図1‒1　OpenTP1システムを使用したネットワーク構成例

図1‒2　TP1/NET/User AgentのOSI7層構造の中での機能範囲

注※

ACSE：アソシエーション制御サービス要素

1.2　AP間通信の形態

AP間通信を使用すると，自システムで発生したトランザクションを相手システムで処理したり，その結果を受信したりできます。また，相手システムで発生したトランザクションを自システムで処理したり，その結果を送信したりできます。

TP1/NET/User Agentを使用したAP間通信の形態には，問い合わせ応答形態，分岐送信形態，一方受信形態，および同期問い合わせ応答形態があります。

TP1/NET/User Agentを使用したAP間通信の例を次の図に示します。

図1‒3　TP1/NET/User Agentを使用したAP間通信の例

1.2.1　問い合わせ応答形態

問い合わせ応答形態とは，相手システムから問い合わせメッセージを受信して，応答メッセージを送信する通信形態です。

1.2.2　分岐送信形態

分岐送信形態とは，自システムから一方送信メッセージを相手システムへ送信する通信形態です。

1.2.3　一方受信形態

一方受信形態とは，相手システムから一方送信メッセージを受信する通信形態です。

1.2.4　同期問い合わせ応答形態

同期問い合わせ応答形態とは，相手システムに問い合わせメッセージを送信し，応答メッセージを受信する通信形態です。

1.3　ソフトウェアの構成の例

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

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

また，TP1/NET/User AgentがAP間通信で使用するプロトコル，および主な通信相手プログラムを表1-1に示します。

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

注※1

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

注※2

XNF/LSまたはXNF/ASを使用できます。

表1‒1　TP1/NET/User Agentが適用するAP間通信のプロトコル

プロトコル

主な通信相手

OSAS/UAプロトコル

VOS3　TMS-4V/SPのOSAS/UA/4VSP

VOS3　XDM/DCCM3のOSAS/UA2/DCCM3

2　機能

TP1/NET/User AgentはAP間通信を提供し，メッセージの送受信をします。この章では，コネクションの確立や論理端末の端末タイプなどのAP間通信の仕組み，およびメッセージの送受信について説明します。

2.1　AP間通信の仕組み

TP1/NET/User Agentは，UAプロトコルデータ単位を最小の単位にして，メッセージの送受信を行います。TP1/NET/User Agentで送受信するUAプロトコルデータ単位について，次の表に示します。

表2‒1　TP1/NET/User AgentのUAプロトコルデータ単位

UAプロトコルデータ単位

機能概要

備考

UINT

初期設定

発呼だけのサポートです。

UOPN

個別開局

発呼だけのサポートです。

UEND

終了

−

UINQ

問い合わせ

UREPの応答が必要です。

UREP

応答

UINQに対して必要です。

UBRD

一方送信

−

UERR

例外報告

−

UINF

状態通知

−

（凡例）

−：備考はありません。

TP1/NET/User AgentのAP間通信の仕組みについて説明します。

2.1.1　コネクションの確立と解放

TP1/NET/User Agentは，相手システムとの間で，論理的な通信路（コネクション）を確立してメッセージを送受信します。コネクションは，OSAS/UAプロトコルのアソシエーションに対応します。

OSAS/UAプロトコルでは，データ送受信の多重化はUAで行います。

このため自システムと相手システムの同一PSAPアドレス間では，1本のコネクションしか確立できません。

(1)　コネクションの確立

TP1/NET/User Agentからコネクションを確立します。コネクションの確立方法には，次の三つがあります。

コネクション定義（mcftalccn -i）でのauto指定によるオンラインの開始・再開始時の自動確立

運用コマンド（mcftactcn）入力による手動確立

API（dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')）の発行による手動確立

運用コマンド（mcftactcn）入力時またはオンライン開始時の，TP1/NET/User Agentからのコネクションの確立について，次の図に示します。

図2‒1　TP1/NET/User Agentからのコネクションの確立（運用コマンド入力時またはオンライン開始時）

OpenTP1システムを開始・再開始します。または運用コマンド（mcftactcn）を入力します。

TP1/NET/User Agentは，MCF通信構成定義情報に基づいてUINT要求を作成し，相手システムに送信します。

相手システムからUINT構成指示またはUINT受諾を受信します。

相手システムからUINT構成指示を受信した場合には，処理完了UINFを相手システムに送信すると，コネクションが確立します。UINT受諾を受信した場合には，UINT受諾受信を契機にコネクションが確立します。

TP1/NET/User Agentは，コネクションが確立すると状態通知イベント（COPNEVT）を通知します。

API（dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')）発行時の，TP1/NET/User Agentからのコネクションの確立について，次の図に示します。

図2‒2　TP1/NET/User Agentからのコネクションの確立（API発行時）

API（dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')）を発行します。

TP1/NET/User Agentは，MCF通信構成定義情報に基づいてUINT要求を作成し，相手システムに送信します。

相手システムからUINT構成指示またはUINT受諾を受信します。

相手システムからUINT構成指示を受信した場合には，処理完了UINFを相手システムに送信すると，コネクションが確立します。UINT受諾を受信した場合には，UINT受諾受信を契機にコネクションが確立します。

TP1/NET/User Agentは，コネクションが確立すると状態通知イベント（COPNEVT）を通知します。

コネクション確立時に，自システムと相手システムのUAの数を突き合わせます。UAの数が不一致の場合，一致しないUAを使用不可（閉塞状態）として，一致するUAだけが使用可能となります。

コネクション確立時の，UAの数によるTP1/NET/User Agentの処理を次の表に示します。

表2‒2　UAの数によるTP1/NET/User Agentのコネクション確立

項番

UAの数

TP1/NET/User Agentの処理

1

相手システム＜自システム

不一致となったUAの論理端末を使用不可とし，一致したUAの論理端末を使用可能としてコネクションを確立します。

mcftalccnコマンドに-fオプションを指定した場合は，相手システムの構成に合わせて，自システムを縮退することを通知するメッセージ（KFCA13257-W）が出力されます。

2

相手システム＝自システム

該当するコネクション下の全論理端末を使用してコネクションを確立します。

3

相手システム＞自システム

コネクションの確立を拒否します。

4

相手システム＝0

コネクションの確立を拒否します。

ただし，MCF通信構成定義で「個別開局」と指定されたUAに関しては，該当するUAに関する論理端末を閉塞扱いとし，運用コマンド（mcftactle）またはAPI（dc_mcf_tactle関数またはCBLDCMCF('TACTLE△△')）で閉塞を解除するまではメッセージ送受信ができません。また，表2-2の項番1で使用不可となった論理端末については，閉塞を解除できません。

(2)　コネクションの解放

コネクションは，次に示す場合，正常に解放します。

相手システムから解放要求された場合

運用コマンド（mcftdctcn）を入力した場合

API（dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△')）を発行した場合

MCF通信構成共通定義（mcftcomn -x）のtermrlsオペランドにnomalを指定して，オンラインを終了した場合

なお，次の場合はコネクションを強制的に解放し，障害通知イベント（CERREVT）を通知します。

運用コマンド（mcftdctcn -f）を受け付けた場合

強制解放オプション※を指定したAPI（dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△')）を発行した場合

送受信バッファ，および編集バッファの資源不足が発生した場合

TP1/NET/User Agent内で回復できない論理矛盾が発生した場合

MCF通信プロセスが異常終了した場合（通信管理の機能に依存します。この場合はCERREVTを通知しません）

相手システムに何らかの異常が発生し，コネクションが解放された場合

注※

dc_mcf_tdctcn関数の場合，action引数にDCMCFFRCを指定します。

CBLDCMCF('TDCTCN△△')の場合，データ名D1に'1'を指定します。

コネクションの正常解放はユーザ間で，データ転送の終了の同期合わせ後に行ってください。

相手システムからのコネクションの正常解放を図2-3に示します。運用コマンド（mcftdctcn）入力時またはオンライン終了時の自システムからのコネクションの解放を図2-4に示します。また，API（dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△')）発行時の自システムからのコネクションの解放を図2-5に示します。

コネクションが正常に解放されると，TP1/NET/User Agentは，状態通知イベント（CCLSEVT）を通知します。

図2‒3　相手システムからのコネクションの解放

図2‒4　自システムからのコネクションの解放（運用コマンド入力時またはオンライン終了時）

図2‒5　自システムからのコネクションの解放（API発行時）

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

TP1/NET/User Agentで扱う定義で，ユーザが意識するものとしては，コネクションと論理端末があります。コネクションはOSAS/UAプロトコルのアソシエーションに対応し，論理端末（LE）はOSAS/UAプロトコルの一般UAに対応します。

コネクションはTP1/NET/User Agentの相手システム側の通信接点であり，TP1/NET/User Agentと相手システムはコネクション単位にメッセージの送受信をします。論理端末はTP1/NET/User AgentのUAP側の通信接点であり，TP1/NET/User AgentとUAPは論理端末単位に送受信をします。コネクションと論理端末の関係を次の図に示します。

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

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

論理端末は，相手システムとの間でメッセージを送受信するためのユーザインタフェースであり，OSAS/UAプロトコルのUAに対応します。

論理端末は，送受信するメッセージの形態で次に示す四つの端末タイプがあります。論理端末の端末タイプは，MCFの論理端末属性として，論理端末定義（mcftalcle -t）に指定します。

request型：問い合わせ型論理端末

reply型：応答型論理端末

send型：送信型論理端末

receive型：受信型論理端末

アプリケーションは，ユーザが送受信データの中で指定したアプリケーション名※をキーとして一つのUAP（MHP）プロセスで実行されます。アプリケーションには，処理形態によって二つの型があり，MCFのアプリケーション属性の一つとして，アプリケーション属性定義（mcfaalcap -n）のtypeオペランドに指定します。受信メッセージによって起動するアプリケーションの型を次に示します。

応答型：受信メッセージに対して応答するMHPの型

非応答型：受信メッセージに対して応答しないMHPの型

注※

アプリケーション名は，メッセージの先頭から空白の手前までの1から8バイトの識別子です。先頭から9バイト目に空白がないとき，または先頭に空白がある場合はアプリケーション名を不正とします。入力メッセージ編集UOCで決定する場合は，「5.1.1　入力メッセージの編集とアプリケーション名の決定」を参照してください。

論理端末，メッセージ，アプリケーションの型，UAPインタフェース，および通信形態の関係を次の表に示します。

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

論理端末の端末タイプ

メッセージの種類※

受信メッセージのアプリケーションの型

UAPインタフェース

通信形態

reply

（応答型論理端末）

問い合わせメッセージ

（UINQ）

応答型

receive

問い合わせ応答

応答メッセージ

（UREP）

reply

request

（問い合わせ型論理端末）

一方送信メッセージ

（UINQ）

任意

send

分岐送信

問い合わせメッセージ

（UINQ）

sendrecv

（セグメント送信時，先頭セグメント受信時）

同期問い合わせ応答

応答メッセージ

（UREP）

recvsync

（後続セグメント受信時）

一方送信メッセージ

（UREP）

非応答型

receive

一方受信

send

（送信型論理端末）

一方送信メッセージ

（UBRD）

任意

send

分岐送信

receive

（受信型論理端末）

非応答型

receive

一方受信

注※

（　）内は，UAプロトコルデータ単位を示します。

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

TP1/NET/User Agentでは，次の三つのデータ形式のメッセージを処理します。

UAプロトコルデータ単位（UPDU）

UAサービスデータ単位（UASDU）

論理メッセージ

以上三つのメッセージの分割，組み立てをしてメッセージの送受信をすると，各種資源（メモリ，回線など）を節約できます。

(1)　UAプロトコルデータ単位

メッセージの最小データ送受信単位で，先頭，中間，最終UPDUから構成されています。問い合わせ応答，および一方送信のデータ単位と，その他の制御用データ単位に分類されます。

(2)　UAサービスデータ単位

UPDUを組み立てたUAサービス利用者のデータ処理単位，セグメントに相当します。MCF内のメッセージ送受信の基本単位で，UAサービスプリミティブに対応し，UPDUと同様に，先頭，中間，最終UASDUで構成されています。

(3)　論理メッセージ

複数セグメントから構成され，UAPが論理的に処理するデータ単位で，MHPの起動単位となります。入出力メッセージ編集UOCによる変換を伴う場合があります。

メッセージのデータ形式を次の図に示します。

図2‒7　メッセージのデータ形式

TP1/NET/User Agentでは，論理メッセージ単位に次のようなメッセージの送受信をします。

論理メッセージ受信

UAサービスデータ単位に受信したメッセージを1論理メッセージにまとめて受信します。

論理メッセージ送信

1論理メッセージをUAサービスデータ単位に送信します。

2.1.5　UAの開局と閉局

TP1/NET/User Agentは，相手システムとのコネクションの確立時，UAを開局してメッセージを送受信します。

(1)　UAの開局

UAの開局方法には，次の三つがあります。

コネクション確立時の自動開局

運用コマンド（mcftactle）入力による個別開局

API（dc_mcf_tactle関数またはCBLDCMCF('TACTLE△△')）の発行による個別開局

コネクション確立時に，「個別開局」指定をした場合，または論理端末に障害があって閉局した場合は，次のどちらかの方法で開局します。

運用コマンド（mcftactle）

API（dc_mcf_tactle関数またはCBLDCMCF('TACTLE△△')）

すべてのUAの開局モードが個別開局（コネクション定義（mcftalccn -k）にeachを指定）の場合，該当するコネクション内のすべてのUAに関連する論理端末を閉塞扱いします。なお，論理端末が閉塞状態であっても，該当する論理端末に対するUAPからの送信要求はできます。ただし，メッセージは出力キューに格納するので，論理端末定義（mcftalcle -m）で指定したメモリ出力メッセージ最大格納数またはディスク出力メッセージ最大格納数を超えない範囲が限度となります。

(a)　コネクション確立時のUAの自動開局

すべてのUAの開局モードが一括開局（コネクション定義（mcftalccn -k）にtogetherを指定）の場合，コネクション確立時に，すべてのUAがメッセージ送受信可能状態になります。

UAが開局すると，該当するUAの論理端末の閉塞状態を解除します。論理端末の閉塞解除時に状態通知イベント（COPNEVT）を起動する場合（コネクション定義（mcftalccn -f）のleopnevtオペランドにuseを指定）は，COPNEVTを通知します。

(b)　運用コマンドによるUAの個別開局

TP1/NET/User Agentは，開局されていないUAに対して運用コマンド（mcftactle）を受け付けると，相手システムにUOPN要求を送信します。そして相手システムからUOPN応答を受信すると，UAが開局し，メッセージ送受信可能状態になります。

UAが開局すると，該当するUAの論理端末の閉塞状態を解除します。運用コマンドによるUAの個別開局の処理の流れを次の図に示します。

図2‒8　運用コマンドによるUAの個別開局

注※

論理端末の閉塞解除時に状態通知イベント（COPNEVT）を起動する場合（コネクション定義（mcftalccn -f）のleopnevtオペランドにuseを指定）だけ通知します。

(c)　APIによるUAの個別開局

TP1/NET/User Agentは，開局されていないUAに対してAPI（dc_mcf_tactle関数またはCBLDCMCF('TACTLE△△')）を発行すると，相手システムにUOPN要求を送信します。そして，TP1/NET/User Agentが相手システムからUOPN応答を受信すると，UAが開局し，メッセージ送受信可能状態になります。

UAが開局すると，該当するUAの論理端末の閉塞状態を解除します。APIによるUAの個別開局の処理の流れを次の図に示します。

図2‒9　APIによるUAの個別開局

注※

論理端末の閉塞解除時に状態通知イベント（COPNEVT）を起動する場合（コネクション定義（mcftalccn -f）のleopnevtオペランドにuseを指定）だけ通知します。

(2)　UAの閉局

UAの閉局方法には，次の四つがあります。

運用コマンド（mcftdctle）入力による強制閉局

API（dc_mcf_tdctle関数またはCBLDCMCF('TDCTLE△△')）の発行による強制閉局

相手システムからの強制閉局

MCF検出障害時の強制閉局

また，TP1/NET/User AgentはUAを閉局するとき，UERRを使用します。

(a)　運用コマンドによるUAの閉局

TP1/NET/User Agentは，運用コマンド（mcftdctle）を受け付けると，UERRを送信します。そして相手システムからのUERR（障害処理完了）を受信し，UAが閉局します。

UAが閉局すると，TP1/NET/User Agentは関連する論理端末を閉塞すると同時に，障害通知イベント（CERREVT）を起動します。

運用コマンドによるUAの閉局の処理の流れを次の図に示します。

図2‒10　運用コマンドによるUAの閉局

(b)　APIによるUAの閉局

TP1/NET/User Agentは，API（dc_mcf_tdctle関数またはCBLDCMCF('TDCTLE△△')）を発行すると，UERRを送信します。そして相手システムからのUERR（障害処理完了）を受信し，UAが閉局します。

UAが閉局すると，TP1/NET/User Agentは関連する論理端末を閉塞すると同時に，障害通知イベント（CERREVT）を起動します。

APIによるUAの閉局の処理の流れを次の図に示します。

図2‒11　APIによるUAの閉局

(c)　相手システムからのUAの閉局

相手システムからUERRを受信すると，TP1/NET/User AgentではUERR（障害処理完了）を送信し，UAを閉局します。UAを閉局すると，TP1/NET/User Agentは関連する論理端末を閉塞すると同時に，障害通知イベント（CERREVT）を起動します。

相手システムからのUAの閉局の処理の流れを次の図に示します。

図2‒12　相手システムからのUAの閉局

(d)　MCF検出障害時のUAの閉局

TP1/NET/User Agentは，UAP異常終了，キュー障害などを検出した場合，UERRを送信します。そして相手システムからのUERR（障害処理完了）を受信し，UAが閉局します。

UAが閉局すると，TP1/NET/User Agentは関連する論理端末を閉塞すると同時に，障害通知イベント（CERREVT）を起動します。

MCF検出障害時のUAの閉局の処理の流れを次の図に示します。

図2‒13　MCF検出障害時のUAの閉局

2.2　AP間通信メッセージの送受信

TP1/NET/User Agentは，AP間通信メッセージの送受信を制御します。TP1/NET/User Agentで扱うAP間通信メッセージには次の四つがあります。

問い合わせメッセージ

応答メッセージ

一方送信メッセージ（分岐送信）

一方送信メッセージ（一方受信）

それぞれのメッセージの送受信について説明します。

2.2.1　問い合わせメッセージの送信

TP1/NET/User Agentが，相手システムに問い合わせメッセージ（UINQ）を送信し，相手システムからの応答メッセージ（UREP）を受信する処理の流れを説明します。この場合，問い合わせメッセージ関数（sendrecv）を発行したUAPに，応答メッセージが返ります。

自システムからの問い合わせメッセージの送信と，それに対する相手システムからの応答メッセージを受信する処理の流れを次の図に示します。

図2‒14　問い合わせメッセージの送信と応答メッセージの受信

MHPまたはSPPからrequest型論理端末へ，同期型の問い合わせメッセージを送信します。

TP1/NET/User Agentは相手システムにUINQを送信します。

相手システムからのUREPを受信します。

相手システムからの応答メッセージをUAPに受け渡します。

問い合わせメッセージを送信したUAPに制御が渡され，応答メッセージを受信します。

3.のUREPの処理完了報告が必要な場合，UAPへのリターンが正常に終了した時点で，UINFを送信します。

2.2.2　応答メッセージの送信

TP1/NET/User Agentが，相手システムからの問い合わせメッセージ（UINQ）を受信し，相手システムに応答メッセージ（UREP）を送信する処理の流れを説明します。

相手システムからの問い合わせメッセージの受信と，それに対する応答メッセージの送信の処理の流れを次の図に示します。

図2‒15　問い合わせメッセージの受信と応答メッセージの送信

相手システムからreply型論理端末あてのUINQ（問い合わせメッセージ）を受信します。

TP1/NET/User Agentは相手システムからの問い合わせメッセージを入力キューに書き込み，MHPを起動します。

MHPは関数を発行してメッセージを受け取ります。

MHPは，応答メッセージを発行します。

MHPが正常にreturnした場合，相手システムにUREP（処理完了報告不要）を送信します。

5.のあと，出力キューの応答メッセージを送信済みにします。

2.2.3　一方送信メッセージの送信と受信

TP1/NET/User Agentが，相手システムに一方送信メッセージ（UINQまたはUBRD）を送信し，相手システムからの一方送信メッセージ（UREPまたはUINF）を受信する場合の処理の流れを説明します。

一方送信メッセージの送信と受信の処理の流れを，次の図に示します。

図2‒16　一方送信メッセージの送信と受信

MHPまたはSPPからrequest型論理端末，またはsend型論理端末あてに，一方送信メッセージを送信します。

TP1/NET/User Agentは相手システムにUINQ（send型の場合はUBRD）を送信します。

相手システムからのUREP（send型の場合はUINF）を受信します。

3.の時点で，送信メッセージを送信済みとします。

送信時とは別のMHPに制御が渡され，一方送信メッセージを受信します。

なお，send型の場合は，UINFをTP1/NET/User Agentで受信するだけで，MHPでのUINFの受信はできません。

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

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

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

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

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

関数名

機能

dc_mcf_receive

メッセージの受信

dc_mcf_recvsync

同期型の応答メッセージの受信

dc_mcf_reply

応答メッセージの送信

dc_mcf_resend

メッセージの再送

dc_mcf_send

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

dc_mcf_sendrecv

同期型のメッセージの送受信

dc_mcf_tactcn

コネクションの確立

dc_mcf_tactle

論理端末の閉塞解除

dc_mcf_tdctcn

コネクションの解放

dc_mcf_tdctle

論理端末の閉塞

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_receive − メッセージの受信（C言語）

形式

ANSI C，C++の形式

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

K&R版 Cの形式

#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;

機能

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

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

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

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

MCFイベント

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

セグメントを受信する領域の形式を次に示します。Lは，バッファ形式1の場合は8バイト，バッファ形式2の場合は4バイトです。

UAPで値を設定する引数

●action

受信するセグメント，および使用するバッファ形式を，次の形式で設定します。

{DCMCFFRST|DCMCFSEG}〔|{DCMCFBUF1|DCMCFBUF2}〕

DCMCFFRST

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

DCMCFSEG

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

DCMCFBUF1

バッファ形式1を使用する場合に設定します。

DCMCFBUF2

バッファ形式2を使用する場合に設定します。

●commform

DCNOFLAGSを設定します。

●termnam

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

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

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

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

●resv01

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

●recvdata

セグメントを受信する領域を設定します。

dc_mcf_receive関数が終了すると，メッセージのセグメントの一つが返されます。

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

●inbufleng

セグメントを受信する領域の長さを設定します。

OpenTP1から値が返される引数

●termnam

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

中間セグメントまたは最終セグメントを受信する場合は，ここで返された論理端末名称をtermnamに設定してください。

●recvdata

受信したセグメントの内容が返されます。

●rdataleng

受信したセグメントの長さが返されます。

●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に設定した値が間違っています。

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

引数に設定した値に間違いがあります。

DCMCFRTN_72024

-13024

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

DCMCFRTN_72025

-13025

actionに設定したセグメント種別（DCMCFFRSTまたはDCMCFSEG）の値が間違っています。

DCMCFRTN_72036

-13036

inbuflengの指定値が不足しています。バッファ形式1の場合は9バイト以上，バッファ形式2の場合は5バイト以上の領域を確保してください。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_recvsync − 同期型のメッセージの受信（C言語）

形式

ANSI C，C++の形式

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

K&R版Cの形式

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

機能

相手システムから届いた同期型の受信メッセージのうち，先頭セグメント以外の後続する一つのセグメントを受信します。先頭セグメントを受信するdc_mcf_sendrecv関数のあとに，後続するセグメントの数だけdc_mcf_recvsync関数を呼び出すと，一つの論理メッセージを受信できます。

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

セグメントを受信する領域の形式を次に示します。Lは，バッファ形式1の場合は8バイト，バッファ形式2の場合は4バイトです。

UAPで値を設定する引数

●action

受信するセグメント，および使用するバッファ形式を，次の形式で設定します。

DCMCFSEG〔|{DCMCFBUF1|DCMCFBUF2}〕

DCMCFSEG

中間セグメントまたは最終セグメントの受信を示すDCMCFSEGを設定します。

DCMCFBUF1

バッファ形式1を使用する場合に設定します。

DCMCFBUF2

バッファ形式2を使用する場合に設定します。

●commform

DCNOFLAGSを設定します。

●termnam

dc_mcf_sendrecv関数のtermnamパラメタで指定した入力元の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●resv01

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

●recvdata

セグメントを受信する領域を設定します。

dc_mcf_recvsync関数が終了すると，メッセージのセグメントの一つが返されます。

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

●inbufleng

セグメントを受信する領域の長さを設定します。

●resv02

DCNOFLAGSを設定します。

OpenTP1から値が返される引数

●recvdata

受信したセグメントの内容が返されます。

●rdataleng

受信したセグメントの長さが返されます。

●time

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

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71001

-12001

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

このリターン値が返されたあとに，再び次のセグメントを受信するdc_mcf_recvsync関数を呼び出した場合は，リターン値DCMCFRTN_72000が返されます。

DCMCFRTN_71108

-12108

メッセージ受信に必要な管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

DCMCFRTN_72000

-13000

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

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

DCMCFRTN_72001

-13001

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

termnamに設定した論理端末名称は，定義されていません。

dc_mcf_recvsync関数を呼び出せない論理端末を設定しています。

DCMCFRTN_72013

-13013

inbuflengの指定値を超えるセグメントを受信しました。inbuflengの指定値を超えた部分は切り捨てられました。

DCMCFRTN_72016

-13016

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

resv01またはresv02に設定した値が間違っています。

引数に設定した値に間違いがあります。

DCMCFRTN_72024

-13024

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

DCMCFRTN_72025

-13025

actionに設定したセグメント種別(DCMCFFRSTまたはDCMCFSEG)の値が間違っています。

DCMCFRTN_72036

-13036

inbuflengの指定値が不足しています。バッファ形式1の場合は9バイト以上，バッファ形式2の場合は5バイト以上の領域を確保してください。

上記以外

−

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

（凡例）

−：該当しません。

dc_mcf_reply − 応答メッセージの送信（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_reply(DCLONG action, DCLONG commform, char *resv01,
                  char *resv02, char *senddata, DCLONG sdataleng,
                  char *resv03, DCLONG opcd)

K&R版Cの形式

#include <dcmcf.h>
int  dc_mcf_reply(action, commform, resv01, resv02, senddata,
                  sdataleng, resv03, opcd)
DCLONG     action;
DCLONG     commform;
char       *resv01;
char       *resv02;
char       *senddata;
DCLONG     sdataleng;
char       *resv03;
DCLONG     opcd;

機能

問い合わせをしたシステムへ送る応答メッセージのうち，一つのセグメントを送信します。セグメントの数だけdc_mcf_reply関数を呼び出すと，一つの論理メッセージを送信できます。

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

セグメントを送信する領域の形式を次に示します。Lは，バッファ形式1の場合は8バイト，バッファ形式2の場合は4バイトです。

UAPで値を設定する引数

●action

送信するセグメント，出力通番を付けるかどうか，および使用するバッファ形式を，次の形式で設定します。

{DCMCFESI|DCMCFEMI}〔|{DCMCFSEQ|DCMCFNSEQ}〕〔|{DCMCFBUF1|DCMCFBUF2}〕

DCMCFESI

先頭セグメントまたは中間セグメントを送信する場合に設定します。

DCMCFEMI

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

メッセージの送信の終了を連絡するために，最後は必ずこの値を設定してください。

DCMCFSEQ

出力通番を付ける場合に設定します。

ただし，非応答型のアプリケーションの場合は，DCMCFSEQを指定しても，MCFは応答メッセージに出力通番を付けません。

DCMCFNSEQ

出力通番を付けない場合に設定します。

DCMCFBUF1

バッファ形式1を使用する場合に設定します。

DCMCFBUF2

バッファ形式2を使用する場合に設定します。

●commform

DCNOFLAGSを設定します。

●resv01

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

●resv02

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

●senddata

送信するセグメントの内容を設定した領域を設定します。一つのセグメントで32000バイトまで送信できます。

先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときも，必ず設定してください。

●sdataleng

送信するセグメントの長さを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，0を設定してください。

●resv03

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

●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関数を呼び出しています。

非応答型のアプリケーションからdc_mcf_reply関数を呼び出しています。

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

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

DCMCFRTN_72001

-13001

入力元論理端末は，応答メッセージの送信をサポートしていません。

DCMCFRTN_72005

-13005

＜actionでDCMCFESIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

DCMCFRTN_72008

-13008

最終セグメントを送信するdc_mcf_reply関数を呼び出したあとで，再びdc_mcf_reply関数を呼び出しています。

応答型のアプリケーションからdc_mcf_execap関数を呼び出して応答型のアプリケーションを起動したあとで，dc_mcf_reply関数を呼び出しています。

DCMCFRTN_72016

-13016

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

resv01，resv02，またはresv03に設定した値が間違っています。

引数に設定した値に間違いがあります。

DCMCFRTN_72026

-13026

actionに設定したセグメント種別（DCMCFESIまたはDCMCFEMI）の値が間違っています。

DCMCFRTN_72041

-13041

＜actionでDCMCFEMIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

actionにDCMCFESIを設定したdc_mcf_reply関数を呼び出さないで，メッセージの送信の終了を連絡しています。

DCMCFRTN_72045

-13045

継続問い合わせ応答型のアプリケーションはサポートしていません。

DCMCFRTN_72047

-13047

継続問い合わせ応答型のアプリケーションはサポートしていません。

上記以外

−

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

（凡例）

−：該当しません。

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}〕〔|DCMCFLAST〕

DCMCFSEQ

再送するメッセージに出力通番を付け直す場合に設定します。

DCMCFNSEQ

再送するメッセージに出力通番を付け直さない場合に設定します。

DCMCFNORM

一般の一方送信メッセージとして再送する場合に設定します。

DCMCFPRIO

優先の一方送信メッセージとして再送する場合に設定します。

DCMCFLAST

最終出力通番を持つメッセージを再送する場合に設定します。この値を設定した場合は，orgseqに設定した値は無視されます。

●commform

一方送信を示す，DCMCFOUTを設定します。

●rtermnam

出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●resv01

NULLを設定します。

●oseqid

再送するメッセージを検索するキーとして，以前に送信したメッセージの送信種別を設定します。

DCMCFRID_NORM

一般の一方送信メッセージを対象とする場合に設定します。

DCMCFRID_PRIO

優先の一方送信メッセージを対象とする場合に設定します。

省略した場合は，DCMCFRID_NORM（一般の一方送信メッセージを対象）が設定されます。DCMCFRID_PRIOを設定した場合は，otermnamに出力先の論理端末名称を設定できません。

●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に設定した論理端末名称が間違っています。

dc_mcf_resend関数を呼び出せない論理端末を設定しています。

DCMCFRTN_72016

-13016

actionに設定したメッセージ種別（DCMCFNORMまたはDCMCFPRIO）の値が間違っています。

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

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

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

resv01，resv02，resv03，またはresv04に設定した値が間違っています。

引数に設定した値に間違いがあります。

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 *resv01, char *senddata, DCLONG sdataleng,
                 char *resv02, DCLONG opcd)

K&R版Cの形式

#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;

機能

相手システムへ送る一方送信メッセージのうち，一つのセグメントを送信します。セグメントの数だけdc_mcf_send関数を呼び出すと，一つの論理メッセージを送信できます。

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

セグメントを送信する領域の形式を次に示します。Lは，バッファ形式1の場合は8バイト，バッファ形式2の場合は4バイトです。

UAPで値を設定する引数

●action

送信するセグメント，優先か一般か，出力通番を付けるかどうか，および使用するバッファ形式を次の形式で設定します。

{DCMCFESI|DCMCFEMI}〔|{DCMCFNORM|DCMCFPRIO}〕
〔|{DCMCFSEQ|DCMCFNSEQ}〕〔|{DCMCFBUF1|DCMCFBUF2}〕

DCMCFESI

先頭セグメントまたは中間セグメントを送信する場合に設定します。

DCMCFEMI

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

メッセージの送信の終了を連絡するために，最後は必ずこの値を設定してください。

DCMCFNORM

一般の一方送信メッセージとして送信する場合に設定します。

DCMCFPRIO

優先の一方送信メッセージとして送信する場合に設定します。

DCMCFSEQ

出力通番を付ける場合に設定します。

DCMCFNSEQ

出力通番を付けない場合に設定します。

DCMCFBUF1

バッファ形式1を使用する場合に設定します。

DCMCFBUF2

バッファ形式2を使用する場合に設定します。

●commform

一方送信を示す，DCMCFOUTを設定します。

●termnam

出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●resv01

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

●senddata

送信するセグメントの内容を設定した領域を設定します。一つのセグメントで32000バイトまで送信できます。

先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときも，必ず設定してください。

●sdataleng

送信するセグメントの長さを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，0を設定してください。

●resv02

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に設定した値が間違っています。

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

resv01またはresv02に設定した値が間違っています。

引数に設定した値に間違いがあります。

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_sendrecv − 同期型のメッセージの送受信（C言語）

形式

ANSI C，C++の形式

#include <dcmcf.h>
int  dc_mcf_sendrecv(DCLONG action, DCLONG commform, char *termnam,
                     char *resv01, char *senddata,
                     DCLONG sdataleng, char *recvdata,
                     DCLONG *rdataleng, DCLONG inbufleng,
                     DCLONG *time, DCLONG watchtime)

K&R版Cの形式

#include <dcmcf.h>
int  dc_mcf_sendrecv(action, commform, termnam, resv01,
                     senddata, sdataleng, recvdata, rdataleng,
                     inbufleng, time, watchtime)
DCLONG     action;
DCLONG     commform;
char       *termnam;
char       *resv01;
char       *senddata;
DCLONG     sdataleng;
char       *recvdata;
DCLONG     *rdataleng;
DCLONG     inbufleng;
DCLONG     *time;
DCLONG     watchtime;

機能

同期型でメッセージを送信したあと，同期型でメッセージを受信します。

相手システムへ送るメッセージのうち，一つのセグメントを送信します。セグメントの数だけdc_mcf_sendrecv関数を呼び出すと，一つの論理メッセージを送信できます。メッセージの最終セグメントを送信すると，dc_mcf_sendrecv関数は相手システムからの応答を待ちます。応答が届くと，そのメッセージの先頭セグメントを受信します。

中間セグメントまたは最終セグメントを受信する場合は，dc_mcf_recvsync関数を呼び出してください。

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

セグメントを送信する領域と受信する領域の形式をそれぞれ示します。Lは，バッファ形式1の場合は8バイト，バッファ形式2の場合は4バイトです。

UAPで値を設定する引数

●action

送信するセグメント，および使用するバッファ形式を，次の形式で設定します。

{DCMCFESI|DCMCFEMI}〔|{DCMCFBUF1|DCMCFBUF2}〕

DCMCFESI

先頭セグメントまたは中間セグメントを送信する場合に設定します。

DCMCFEMI

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

メッセージの送信の終了を連絡するために，最後は必ずこの値を設定してください。この値を設定してdc_mcf_sendrecv関数を呼び出すと，相手システムからの応答を待ちます。

DCMCFBUF1

バッファ形式1を使用する場合に設定します。

DCMCFBUF2

バッファ形式2を使用する場合に設定します。

●commform

同期型のメッセージの送受信を示す，DCMCFIOを設定します。

●termnam

メッセージを出力して応答を入力する論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●resv01

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

●senddata

送信するセグメントの内容を設定した領域を設定します。一つのセグメントで32000バイトまで送信できます。

先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときも，必ず設定してください。

●sdataleng

送信するセグメントの長さを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，0を設定してください。

●recvdata

セグメントを受信する領域を設定します。

単一セグメントまたは最終セグメントを送信するdc_mcf_sendrecv関数が終了すると，受信したメッセージの先頭セグメントが返されます。

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

●inbufleng

セグメントを受信する領域の長さを設定します。

●watchtime

dc_mcf_sendrecv関数を呼び出してから終了するまでの最大時間を設定します。0を設定した場合，MCFマネジャ定義のUAP共通定義で指定した同期型送受信監視時間（mcfmuap -t sndrcvtim）が設定されます。負の値を設定した場合は，時間を監視しません。

OpenTP1から値が返される引数

●recvdata

受信したメッセージの先頭セグメントの内容が返されます。

●rdataleng

受信したメッセージの先頭セグメントの長さが返されます。

●time

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

リターン値

リターン値

リターン値

（数値）

意味

DCMCFRTN_00000

0

正常に終了しました。

DCMCFRTN_71002

-12002

メッセージキューへの入出力処理時に障害が発生しました。

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

メッセージキューが割り当てられていません。

sdatalengに32000バイトを超える値を設定しています。

MCFが終了処理中のため，メッセージの送受信を受け付けられません。

DCMCFRTN_71003

-12003

メッセージキューが満杯です。

DCMCFRTN_71004

-12004

メッセージを格納するバッファをメモリ上に確保できませんでした。

DCMCFRTN_71108

-12108

メッセージを送信しようとしましたが，送信先の管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

DCMCFRTN_72000

-13000

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

DCMCFRTN_72001

-13001

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

termnamに設定した論理端末名称は，定義されていません。

dc_mcf_sendrecv関数を呼び出せない論理端末を設定しています。

DCMCFRTN_72005

-13005

＜actionでDCMCFESIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

DCMCFRTN_72013

-13013

inbuflengの指定値を超えるセグメントを受信しました。inbuflengの指定値を超えた部分は切り捨てられました。

DCMCFRTN_72016

-13016

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

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

引数に設定した値に間違いがあります。

DCMCFRTN_72024

-13024

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

DCMCFRTN_72026

-13026

actionに設定したセグメント種別(DCMCFESIまたはDCMCFEMI)の値が間違っています。

DCMCFRTN_72036

-13036

inbuflengの指定値が不足しています。バッファ形式1の場合は9バイト以上，バッファ形式2の場合は5バイト以上の領域を確保してください。

DCMCFRTN_72041

-13041

＜actionでDCMCFEMIを設定した場合＞

sdatalengに0バイト，またはマイナス値を設定しています。

actionにDCMCFESIを設定したdc_mcf_sendrecv関数を呼び出さないで，メッセージの送信の終了を連絡しています。

DCMCFRTN_73001

-14001

watchtimeに60秒を加算した時間が経過しましたが，相手システムまたはMCF通信プロセスからの応答がありません。

出力キューからのメッセージの読み込み時に障害が発生しました。

相手システムから受信打ち切りを受信しました。

dc_mcf_sendrecv関数を呼び出したあとで，UA障害またはコネクション障害が発生しました。

DCMCFRTN_73002

-14002

メッセージを送信しようとしましたが，送信バッファまたは編集バッファを確保できませんでした。

出力先の論理端末でMCF通信プロセスの内部障害が発生しました。

DCMCFRTN_73008

-14008

論理端末が閉塞中，またはMCFが終了処理中に，dc_mcf_sendrecv関数を呼び出しました。

DCMCFRTN_73010

-14010

入力または出力メッセージ編集UOCで障害が発生しました。

メッセージの編集エラーが発生しました。

DCMCFRTN_73015

-14015

出力先の論理端末は，ほかのUAPで仕掛り中です。

DCMCFRTN_73018

-14018

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

上記以外

−

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

（凡例）

−：該当しません。

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/User Agentが正常に受け付けたことを意味します。このため，相手システムとのコネクションの確立が正常に完了したことを示すものではありません。

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/User Agentが正常に受け付けたことを意味します。このため，論理端末の閉塞解除が正常に完了したことを示すものではありません。

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/User Agentが正常に受け付けたことを意味します。このため，相手システムとのコネクションの解放が正常に完了したことを示すものではありません。

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/User Agentが正常に受け付けたことを意味します。このため，論理端末の閉塞が正常に完了したことを示すものではありません。

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_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

要求したコネクションのプロトコル種別が設定されます。プロトコル種別の最後にはヌル文字が付けられます。

UA△

OSAS/UAプロトコル

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/User Agentで使用できる，COBOL-UAP作成用プログラムインタフェースについて説明します。

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

TP1/NET/User Agentで使用するCOBOL-UAP作成用プログラムインタフェースについて，COBOL言語，およびデータ操作言語に分けて説明します。

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

COBOL言語のプログラムインタフェース

COBOL言語でUAPを作成する場合，OpenTP1システムの関数に対応しているプログラムを，CALL文で呼び出してUAPを作成します。

COBOL言語のプログラムインタフェースの一覧を，次の表に示します。

表4‒1　COBOL言語のプログラムインタフェースの一覧

プログラム名

データ名Aに設定する要求コード

機能

CBLDCMCF

'RECEIVE△'

メッセージの受信

'RECVSYNC'

同期型の応答メッセージの受信

'REPLY△△△'

応答メッセージの送信

'RESEND△△'

メッセージの再送

'SEND△△△△'

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

'SENDRECV'

同期型のメッセージの送受信

'TACTCN△△'

コネクションの確立

'TACTLE△△'

論理端末の閉塞解除

'TDCTCN△△'

コネクションの解放

'TDCTLE△△'

論理端末の閉塞

'TLSCN△△△'

コネクションの状態取得

'TLSLE△△△'

論理端末の状態取得

その他のプログラムについては，マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。

データ操作言語のプログラムインタフェース

データ操作言語（DML）を使用した，通信文について説明します。データ操作言語の形式の詳細については，マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。

データ操作言語のプログラムインタフェースの一覧を，次の表に示します。

表4‒2　データ操作言語のプログラムインタフェースの一覧

通信文

機能

対応するCALLインタフェース

データコミュニケーション機能

RECEIVE

メッセージの受信

「表4-4　RECEIVE文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応」，および「表4-5　SEND文（データコミュニケーション機能）の指定とC言語のライブラリ関数との対応」を参照してください。

SEND

メッセージの送信

注

dc_mcf_resend（メッセージの再送）に対応するデータ操作言語のインタフェースはありません。

その他の通信文については，マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」を参照してください。

通信記述項について

TP1/NET/User Agentのメッセージ送受信の通信文で，通信記述項に指定できる句の指定要否を，次の表に示します。

表4‒3　通信記述項に指定できる句の指定要否

データ名を指定する句

データ領域の値の設定元

1.

2.

3.

4.

5.

6.

7.

STATUS KEY

B

B

B

B

B

B

B

SYMBOLIC TERMINAL

B

U₁※

U₁

U₁

−

−

U₁

MESSAGE DATE

B

B

−

−

−

−

−

MESSAGE TIME

B

B

−

−

−

−

−

SYNCHRONOUS MODE

U₂

U₂

U₂

U₂

U₂

U₂

U₁

SWITCHING MODE

−

−

U₂

U₂

−

−

−

DETAIL MODE

−

−

U₂

U₂

U₂

U₂

−

WAITING TIME

−

−

−

−

−

−

U₂

（凡例）

1.：先頭セグメントの非同期受信（RECEIVE）

2.：中間，最終セグメントの非同期受信（RECEIVE）

3.：一方送信メッセージの先頭，中間セグメントの非同期送信（SEND）

4.：一方送信メッセージの単一，最終セグメントの非同期送信（SEND）

5.：応答メッセージの先頭，中間セグメントの非同期送信（SEND）

6.：応答メッセージの単一，最終セグメントの非同期送信（SEND）

7.：単一セグメントの同期送受信（SEND）

B：OpenTP1から値が返されます。省略できます。

U₁：UAPで値を設定します。省略できません。

U₂：UAPで値を設定します。省略できます。

−：該当しません。設定しても無効です。

注※

先頭メッセージ受信時のRECEIVE文と同一のCD句を用いた場合は省略できます。

データコミュニケーション機能と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/User Agentのデータ操作言語ではサポートしていない関数です。

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/User Agentではサポートしていない関数です。

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).
   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)  VALUE SPACE.
   02 データ名R  PIC X(8)  VALUE SPACE.
   02 データ名T  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名U  PIC 9(x)  COMP.
   02 データ名V  PIC X(x).
   02 データ名Y  PIC X(n).

機能

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

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

CBLDCMCF('RECEIVE△')で受信できるメッセージの種類を次に示します。

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

MCFイベント

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

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

UAPで値を設定するデータ領域

●データ名A

メッセージの受信を示す要求コード「VALUE 'RECEIVE△'」を設定します。

●データ名C

受信するセグメントを設定します。次のどちらかを設定します。

VALUE 'FRST'

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

VALUE 'SEG△'

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

●データ名D

空白を設定します。

●データ名G

セグメントを受信する領域の長さを設定します。

●データ名H，データ名I，データ名J，データ名K，データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファ形式を設定します。

VALUE '1'

バッファ形式1を使用する場合に設定します。

VALUE '2'

バッファ形式2を使用する場合に設定します。

空白

省略されたものとして，「VALUE '1'」（バッファ形式1）が設定されます。

●データ名N

MCFで使用する領域です。

●データ名O

空白を設定します。

●データ名P

中間セグメントまたは最終セグメントを受信する場合は，入力元の論理端末名称を設定します。先頭セグメントの受信時に返された論理端末名称を設定してください。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

先頭セグメントまたは単一セグメントの受信処理終了後，データ名PにはOpenTP1から値が返されます。

●データ名Q

MCFで使用する領域です。

●データ名R

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名V

【バッファ形式1の場合】　PIC X(8)

【バッファ形式2の場合】　PIC X(2)

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

●データ名E

メッセージを受信した日付がYYYYMMDD（YYYY：西暦年　MM：月　DD：日）の形式で返されます。

●データ名F

メッセージを受信した時刻がHHMMSS00（HH：時　MM：分　SS：秒　00は固定）の形式で返されます。

●データ名P

先頭セグメントまたは単一セグメントを受信する場合，入力元の論理端末名称が返されます。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろが空白で埋められます。

中間セグメントまたは最終セグメントを受信する場合，ここで返された論理端末名称をデータ名Pに設定します。

●データ名U

【バッファ形式1の場合】　PIC 9(9)

受信したセグメントの長さが返されます。

【バッファ形式2の場合】　PIC 9(4)

受信したセグメントの長さ＋4が返されます。

●データ名Y

受信したセグメントの内容が返されます。

ステータスコード

ステータスコード

意味

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の指定値を超えた部分は切り捨てられました。

72016

データ名Dに設定した値が間違っています。

データ名Nまたはデータ名Tに設定した値が間違っています。

データ名M7に設定した値が間違っています。

72024

データ名Oに設定した値が間違っています。

72025

データ名Cに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72036

データ名Gの指定値が不足しています。バッファ形式1の場合は9バイト以上，バッファ形式2の場合は5バイト以上の領域を確保してください。

上記以外

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

CBLDCMCF('RECVSYNC') − 同期型のメッセージの受信（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'    USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8)  VALUE 'RECVSYNC'.
   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.
   02 データ名M6 PIC X(1)  VALUE SPACE.
   02 データ名M7 PIC X(1).
   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)  VALUE SPACE.
   02 データ名R  PIC X(8)  VALUE SPACE.
   02 データ名T  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名U  PIC 9(x)  COMP.
   02 データ名V  PIC X(x).
   02 データ名Y  PIC X(n).

機能

相手システムから届いた同期型の受信メッセージのうち，先頭セグメント以外の後続する一つのセグメントを受信します。先頭セグメントを受信するCBLDBMCF('SENDRECV')のあとに，後続するセグメントの数だけCBLDCMCF('RECVSYNC')を呼び出すと，一つの論理メッセージを受信できます。

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

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

UAPで値を設定するデータ領域

●データ名A

同期型のメッセージの受信を示す要求コード「VALUE 'RECVSYNC'」を設定します。

●データ名C

中間セグメントまたは最終セグメントの受信を示す「VALUE 'SEG△'」を設定します。

●データ名D

空白を設定します。

●データ名G

セグメントを受信する領域の長さを設定します。

●データ名H，データ名I，データ名J，データ名K，データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファ形式を設定します。

VALUE '1'

バッファ形式1を使用する場合に設定します。

VALUE '2'

バッファ形式2を使用する場合に設定します。

空白

省略されたものとして，「VALUE '1'」（バッファ形式1）が設定されます。

●データ名N

MCFで使用する領域です。

●データ名O

空白を設定します。

●データ名P

入力元の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名Q，データ名R

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名V

【バッファ形式1の場合】　PIC X(8)

【バッファ形式2の場合】　PIC X(2)

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

●データ名E

メッセージを受信した日付がYYYYMMDD（YYYY：西暦年　MM：月　DD：日）の形式で返されます。

●データ名F

メッセージを受信した時刻がHHMMSS00（HH：時　MM：分　SS：秒　00は固定）の形式で返されます。

●データ名U

【バッファ形式1の場合】　PIC 9(9)

受信したセグメントの長さが返されます。

【バッファ形式2の場合】　PIC 9(4)

受信したセグメントの長さ＋4が返されます。

●データ名Y

受信したセグメントの内容が返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71001

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

このステータスコードが返されたあとに，再び次のセグメントを受信するCBLDCMCF('RECVSYNC')を呼び出した場合は，ステータスコード72000が返されます。

71108

メッセージ受信に必要な管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

72000

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('RECVSYNC')を呼び出しています。

ステータスコード71001が返されたあとに，再びCBLDCMCF('RECVSYNC')を呼び出しています。

72001

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

データ名Pに設定した論理端末名称は，定義されていません。

CBLDCMCF('RECVSYNC')を呼び出せない論理端末を設定しています。

72013

データ名Gの指定値を超えるセグメントを受信しました。データ名Gの指定値を超えた部分は切り捨てられました。

72016

データ名Nまたはデータ名Tに設定した値が間違っています。

データ名Qに設定した値が間違っています。

データ名M7に設定した値が間違っています。

72024

データ名Oに設定した値が間違っています。

72025

データ名Cに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72036

データ名Gの指定値が不足しています。バッファ形式1の場合は9バイト以上，バッファ形式2の場合は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).
   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).
   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 データ名T  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名U  PIC 9(x)  COMP.
   02 データ名V  PIC X(x).
   02 データ名W  PIC X(n).

機能

問い合わせをしたシステムへ送る応答メッセージのうち，一つのセグメントを送信します。セグメントの数だけCBLDCMCF('REPLY△△△')を呼び出すと，一つの論理メッセージを送信できます。

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

セグメントを送信する領域（一意名3で示す領域）の形式を示します。

UAPで値を設定するデータ領域

●データ名A

応答メッセージの送信を示す要求コード「VALUE 'REPLY△△△'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名E，データ名F

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H

送信するセグメントを設定します。次のどちらかを設定します。

VALUE 'ESI△'

先頭セグメントまたは中間セグメントを送信する場合に設定します。

VALUE 'EMI△'

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

メッセージの送信の終了を連絡するために，最後は必ずこの値を設定してください。

●データ名I，データ名J

空白を設定します。

●データ名K

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

VALUE 'SEQ△'

出力通番を付ける場合に設定します。

ただし，非応答型のアプリケーションの場合は，VALUE 'SEQ△'を指定しても，MCFは応答メッセージに出力通番を付けません。

VALUE 'NSEQ'

出力通番を付けない場合に設定します。

空白

省略されたものとして，「VALUE 'NSEQ'」（出力通番は付けない）が設定されます。

●データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4，データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファ形式を設定します。

VALUE '1'

バッファ形式1を使用する場合に設定します。

VALUE '2'

バッファ形式2を使用する場合に設定します。

空白

省略されたものとして，「VALUE '1'」（バッファ形式1）が設定されます。

●データ名N

MCFで使用する領域です。

●データ名O，データ名P，データ名Q，データ名R

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名U

【バッファ形式1の場合】　PIC 9(9)

送信するセグメントの長さを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，0を設定してください。

【バッファ形式2の場合】　PIC 9(4)

送信するセグメントの長さ＋4を設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，4を設定してください。

●データ名V

【バッファ形式1の場合】　PIC X(8)

【バッファ形式2の場合】　PIC X(2)

MCFで使用する領域です。

●データ名W

送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。

先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときも，必ず設定してください。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

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

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

メッセージキューが割り当てられていません。

バッファ形式1の場合はデータ名Uに32000バイトを超える値を設定しています。バッファ形式2の場合はデータ名Uに32004バイトを超える値を設定しています。

MCFが終了処理中のため，メッセージの送信を受け付けられません。

71003

メッセージキューが満杯です。

71004

メッセージを格納するバッファをメモリ上に確保できませんでした。

71108

メッセージを送信しようとしましたが，送信先の管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

72000

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

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('REPLY△△△')を呼び出しています。

非応答型のアプリケーションからCBLDCMCF('REPLY△△△')を呼び出しています。

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

SPPではCBLDCMCF('REPLY△△△')を呼び出せません。

72001

入力元論理端末は，応答メッセージの送信をサポートしていません。

72005

＜データ名HでVALUE 'ESI△'を設定した場合＞

バッファ形式1の場合はデータ名Uに0バイト，またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト，またはマイナス値を設定しています。

72008

最終セグメントを送信するCBLDCMCF('REPLY△△△')を呼び出したあとで，再びCBLDCMCF('REPLY△△△')を呼び出しています。

応答型のアプリケーションからCBLDCMCF('EXECAP△△')を呼び出して応答型のアプリケーションを起動したあとで，CBLDCMCF('REPLY△△△')を呼び出しています。

72016

データ名Nまたはデータ名Tに設定した値が間違っています。

データ名M7に設定した値が間違っています。

72017

データ名Kに設定した値が間違っています。

72019

データ名M6に設定した値が間違っています。

72020

データ名Iに設定した値が間違っています。

72026

データ名Hに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72041

＜データ名HでVALUE 'EMI△'を設定した場合＞

バッファ形式1の場合はデータ名Uに0バイト，またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト，またはマイナス値を設定しています。

データ名HにVALUE 'ESI△'を設定したCBLDCMCF('REPLY△△△')を呼び出さないで，メッセージの送信の終了を連絡しています。

72045

継続問い合わせ応答型のアプリケーションはサポートしていません。

72047

継続問い合わせ応答型のアプリケーションはサポートしていません。

上記以外

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

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)  VALUE SPACE.
   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，データ名M7

空白を設定します。

●データ名N

MCFで使用する領域です。

●データ名O

一方送信を示す「VALUE 'OUT△'」を設定します。

●データ名P

出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名Q，データ名R

空白を設定します。

●データ名S

MCFで使用する領域です。

●データ名T

再送するメッセージを検索するキーとして，以前に送信したメッセージの出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名U

再送するメッセージを検索するキーとして，以前に送信したメッセージの送信種別を設定します。

VALUE 'NORM'

一般の一方送信メッセージを対象とする場合に設定します。

VALUE 'PRIO'

優先の一方送信メッセージを対象とする場合に設定します。

空白

省略されたものとして，「VALUE 'NORM'」（一般の一方送信メッセージを対象）が設定されます。

「VALUE 'PRIO'」を設定した場合は，データ名Tに出力先の論理端末名称を設定できません。

●データ名V

再送するメッセージを検索するキーとして，以前に送信したメッセージの出力通番を設定します。データ名Wに「VALUE 'LAST'」を設定した場合は，ここに設定した値は無効となります。

●データ名W

最終出力通番を持つメッセージを再送するかどうかを設定します。

VALUE 'LAST'

最終出力通番を持つメッセージを再送する場合に設定します。

この値を設定した場合は，データ名Vに設定した値は無効となります。

空白

データ名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に設定した論理端末名称は，定義されていません。

CBLDCMCF('RESEND△△')を呼び出せない論理端末を設定しています。

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 VALUE ZERO.
   02 データ名M6 PIC X(1)  VALUE SPACE.
   02 データ名M7 PIC X(1).
   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 データ名T  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
   02 データ名U  PIC 9(x)  COMP.
   02 データ名V  PIC X(x).
   02 データ名W  PIC X(n).

機能

相手システムへ送る一方送信メッセージのうち，一つのセグメントを送信します。セグメントの数だけCBLDCMCF('SEND△△△△')を呼び出すと，一つの論理メッセージを送信できます。

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

セグメントを送信する領域（一意名3で示す領域）の形式を示します。

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，データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファ形式を設定します。

VALUE '1'

バッファ形式1を使用する場合に設定します。

VALUE '2'

バッファ形式2を使用する場合に設定します。

空白

省略されたものとして，「VALUE '1'」（バッファ形式1）が設定されます。

●データ名N

MCFで使用する領域です。

●データ名O

一方送信を示す「VALUE 'OUT△'」を設定します。

●データ名P

出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名Q，データ名R

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名U

【バッファ形式1の場合】　PIC 9(9)

送信するセグメントの長さを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，0を設定してください。

【バッファ形式2の場合】　PIC 9(4)

送信するセグメントの長さ＋4を設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，4を設定してください。

●データ名V

【バッファ形式1の場合】　PIC X(8)

【バッファ形式2の場合】　PIC X(2)

MCFで使用する領域です。

●データ名W

送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。

先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときも，必ず設定してください。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

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

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

メッセージキューが割り当てられていません。

バッファ形式1の場合はデータ名Uに32000バイトを超える値を設定しています。バッファ形式2の場合はデータ名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△'を設定した場合＞

バッファ形式1の場合はデータ名Uに0バイト，またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト，またはマイナス値を設定しています。

72016

データ名Nまたはデータ名Tに設定した値が間違っています。

データ名Jに設定した値が間違っています。

データ名M1に設定した値が間違っています。

データ名M7に設定した値が間違っています。

72017

データ名Kに設定した値が間違っています。

72019

データ名M6に設定した値が間違っています。

72020

データ名Iに設定した値が間違っています。

72024

データ名Oに設定した値が間違っています。

72026

データ名Hに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72041

＜データ名HでVALUE 'EMI△'を設定した場合＞

バッファ形式1の場合はデータ名Uに0バイト，またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト，またはマイナス値を設定しています。

データ名HにVALUE 'ESI△'を設定したCBLDCMCF('SEND△△△△')を呼び出さないで，メッセージの送信の終了を連絡しています。

上記以外

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

CBLDCMCF('SENDRECV') − 同期型のメッセージの送受信（COBOL言語）

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCMCF'    USING 一意名1 一意名2 一意名3 一意名4

DATA DIVISION の指定

01 一意名1.
   02 データ名A  PIC X(8)  VALUE 'SENDRECV'.
   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).
   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※.
   02 データ名M6 PIC X(1)  VALUE SPACE.
   02 データ名M7 PIC X(1).
   02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4)  VALUE 'IO  '.
   02 データ名P  PIC X(8).
   02 データ名Q  PIC X(8)  VALUE SPACE.
   02 データ名R  PIC X(8)  VALUE SPACE.
   02 データ名T  PIC X(28) VALUE LOW-VALUE.
 01 一意名3.
   02 データ名U  PIC 9(x)  COMP.
   02 データ名V  PIC X(x).
   02 データ名W  PIC X(n).
01 一意名4.
   02 データ名X  PIC 9(x)  COMP.
   02 データ名Y1 PIC X(x)  VALUE SPACE.
   02 データ名Y2 PIC X(1).
   02 データ名Z  PIC X(n).

注※

負の値を設定する場合，「PIC S9(9) COMP」としてください。

機能

同期型でメッセージを送信したあと，同期型でメッセージを受信します。

相手システムへ送るメッセージのうち，一つのセグメントを送信します。セグメントの数だけCBLDCMCF('SENDRECV')を呼び出すと，一つの論理メッセージを送信できます。

メッセージの最終セグメントを送信すると，CBLDCMCF('SENDRECV')は相手システムからの応答を待ちます。応答が届くと，そのメッセージの先頭セグメントを受信します。中間セグメントまたは最終セグメントを受信する場合は，CBLDCMCF('RECVSYNC')を呼び出してください。

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

セグメントを送信する領域（一意名3で示す領域）の形式を次に示します。

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

UAPで値を設定するデータ領域

●データ名A

同期型のメッセージの送受信を示す要求コード「VALUE 'SENDRECV'」を設定します。

●データ名C，データ名D

空白を設定します。

●データ名G

セグメントを受信する領域の長さを設定します。

●データ名H

送信するセグメントを設定します。次のどちらかを設定します。

VALUE 'ESI△'

先頭セグメントまたは中間セグメントを送信する場合に設定します。

VALUE 'EMI△'

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

メッセージの送信の終了を連絡するために，最後は必ずこの値を設定してください。この値を設定してCBLDCMCF('SENDRECV')を呼び出すと，相手システムからの応答を待ちます。

●データ名I，データ名J，データ名K，データ名L，データ名M1，データ名M2，データ名M3

空白を設定します。

●データ名M4

0を設定します。

●データ名M5

CBLDCMCF('SENDRECV')を呼び出してから終了するまでの最大時間を設定します。0を設定した場合，MCFマネジャ定義のUAP共通定義で指定した同期型送受信監視時間（mcfmuap -t sndrcvtim）が設定されます。負の値を設定した場合は，時間を監視しません。

●データ名M6

空白を指定します。

●データ名M7

使用するバッファ形式を設定します。

VALUE '1'

バッファ形式1を使用する場合に設定します。

VALUE '2'

バッファ形式2を使用する場合に設定します。

空白

省略されたものとして，「VALUE '1'」（バッファ形式1）が設定されます。

●データ名N

MCFで使用する領域です。

●データ名O

同期型のメッセージの送受信を示す「VALUE 'IO△△'」を設定します。

●データ名P

メッセージを出力して応答を入力する論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●データ名Q，データ名R

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名U

【バッファ形式1の場合】　PIC 9(9)

送信するセグメントの長さを設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，0を設定してください。

【バッファ形式2の場合】　PIC 9(4)

送信するセグメントの長さ＋4を設定します。先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，4を設定してください。

●データ名V

【バッファ形式1の場合】　PIC X(8)

【バッファ形式2の場合】　PIC X(2)

MCFで使用する領域です。

●データ名W

送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。

先頭セグメントの送信後，メッセージの送信の終了を連絡する場合で，セグメントの内容がないときも，必ず設定してください。

●データ名Y1

【バッファ形式1の場合】　PIC X(7)

【バッファ形式2の場合】　PIC X(1)

空白を設定します。

●データ名Y2

MCFで使用する領域です。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが，5けたの数字で返されます。

●データ名E

メッセージを受信した日付がYYYYMMDD（YYYY：西暦年　MM：月　DD：日）の形式で返されます。

●データ名F

メッセージを受信した時刻がHHMMSS00（HH：時　MM：分　SS：秒　00は固定）の形式で返されます。

●データ名X

【バッファ形式1の場合】　PIC 9(9)

受信したセグメントの長さが返されます。

【バッファ形式2の場合】　PIC 9(4)

受信したセグメントの長さ＋4が返されます。

●データ名Z

受信したセグメントの内容が返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

メッセージキューへの入出力処理時に障害が発生しました。

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

メッセージキューが割り当てられていません。

バッファ形式1の場合はデータ名Uに32000バイトを超える値を設定しています。バッファ形式2の場合はデータ名Uに32004バイトを超える値を設定しています。

MCFが終了処理中のため，メッセージの送受信を受け付けられません。

71003

メッセージキューが満杯です。

71004

メッセージを格納するバッファをメモリ上に確保できませんでした。

71108

メッセージを送信しようとしましたが，送信先の管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

72000

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('SENDRECV')を呼び出しています。

72001

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

データ名Pに設定した論理端末名称は，定義されていません。

CBLDCMCF('SENDRECV')を呼び出せない論理端末を設定しています。

72005

＜データ名HでVALUE 'ESI△'を設定した場合＞

バッファ形式1の場合はデータ名Uに0バイト，またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト，またはマイナス値を設定しています。

72013

データ名Gの指定値を超えるセグメントを受信しました。データ名Gの指定値を超えた部分は切り捨てられました。

72016

データ名Nまたはデータ名Tに設定した値が間違っています。

データ名M4に設定した値が間違っています。

データ名M7に設定した値が間違っています。

72019

データ名M6に設定した値が間違っています。

72024

データ名Oに設定した値が間違っています。

72026

データ名Hに設定した値が間違っています。

72028

データ名Aに設定した値が間違っています。

72036

データ名Gの指定値が不足しています。バッファ形式1の場合は9バイト以上，バッファ形式2の場合は5バイト以上の領域を確保してください。

72041

＜データ名HでVALUE 'EMI△'を設定した場合＞

バッファ形式1の場合はデータ名Uに0バイト，またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト，またはマイナス値を設定しています。

データ名HにVALUE 'ESI△'を設定したCBLDCMCF('SENDRECV')を呼び出さないで，メッセージの送信の終了を連絡しています。

73001

データ名M5に60秒を加算した時間が経過しましたが，相手システムまたはMCF通信プロセスからの応答がありません。

出力キューからのメッセージの読み込み時に障害が発生しました。

相手システムから受信打ち切りを受信しました。

CBLDCMCF('SENDRECV')を呼び出したあとで，UA障害またはコネクション障害が発生しました。

73002

メッセージを送信しようとしましたが，送信バッファまたは編集バッファを確保できませんでした。

出力先の論理端末でMCF通信プロセスの内部障害が発生しました。

73008

論理端末が閉塞中，またはMCFが終了処理中に，CBLDCMCF('SENDRECV')を呼び出しました。

73010

入力または出力メッセージ編集UOCで障害が発生しました。

メッセージの編集エラーが発生しました。

73015

出力先の論理端末は，ほかのUAPで仕掛り中です。

73018

データ名M5に設定した値が間違っています。

上記以外

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

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/User Agentが正常に受け付けたことを意味します。このため，相手システムとのコネクションの確立が正常に完了したことを示すものではありません。

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，データ名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/User Agentが正常に受け付けたことを意味します。このため，論理端末の閉塞解除が正常に完了したことを示すものではありません。

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).
    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/User Agentが正常に受け付けたことを意味します。このため，相手システムとのコネクションの解放が正常に完了したことを示すものではありません。

CBLDCMCF('TDCTCN△△')の呼び出し後にコネクションに関する何らかの処理をする場合は，CBLDCMCF('TLSCN△△△')を用いてコネクションの状態を確認してください。

UAPで値を設定するデータ領域

●データ名A

コネクション解放を示す要求コード「VALUE 'TDCTCN△△'」を設定します。

●データ名C

解放するコネクションの指定方法を設定します。

VALUE 'LE△△'

解放するコネクションを論理端末名称で指定するときに設定します。

VALUE 'CN△△'

解放するコネクションをコネクションIDで指定するときに設定します。

空白

省略されたものとして，「VALUE 'LE△△'」（論理端末名称を指定）が設定されます。

●データ名D1

解放するコネクションの指定方法を設定します。

VALUE '1'

コネクションを強制的に解放します。

VALUE '0'

コネクションを正常に解放します。

空白

省略されたものとして，'0'（正常解放）が設定されます。

●データ名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，0，または空白以外の値が設定されています。

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/User Agentが正常に受け付けたことを意味します。このため，論理端末の閉塞が正常に完了したことを示すものではありません。

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('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 'UA△△'

OSAS/UAプロトコル

●データ名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)  LOW-VALUE.
        03  データ名P   PIC X(4).
        03  データ名Q   PIC X(40) 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以外の値が設定されています。

RECEIVE − メッセージの受信（データ操作言語）

形式

DATA DIVISION（通信記述項）の指定

CD 通信記述名
   FOR {INPUT | I-O}
  〔STATUS KEY IS データ名1〕
  〔SYMBOLIC TERMINAL IS データ名2〕
  〔MESSAGE DATE IS データ名3〕
  〔MESSAGE TIME IS データ名4〕
  〔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△')

セグメントを受信する領域（一意名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は固定）の形式で返されます。

●データ名A

受信したセグメントの長さ＋4が返されます。

●データ名C

受信したセグメントの内容が返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71000

先頭セグメントを受信するRECEIVE文を2回以上実行しています。中間セグメントまたは最終セグメントを受信する場合は，FIRSTを設定しないでRECEIVE文を実行してください。

71001

メッセージの最終セグメントを受信したあとで，次のセグメントを受信するRECEIVE文を実行しています。直前に実行したRECEIVE文でメッセージはすべて受信しました。

このステータスコードが返されたあとに，再び次のメッセージを受信するRECEIVE文を実行した場合は，ステータスコード72000が返されます。

71002

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

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

メッセージキューが割り当てられていません。

MCFが終了処理中のため，メッセージの受信を受け付けられません。

71108

メッセージの受信に必要な管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

72000

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

非同期型のメッセージの先頭セグメントを受信するRECEIVE文を実行する前に，中間セグメントまたは最終セグメントを受信するRECEIVE文を実行しています。先頭セグメントを受信する場合は，FIRSTを設定してRECEIVE文を実行してください。

ステータスコード71000が返されたあとで，再び非同期型のメッセージを受信するRECEIVE文を実行しています。

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

SPPでは非同期型のメッセージを受信するRECEIVE文を実行できません。

72001

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

SYMBOLIC TERMINAL句に設定した論理端末名称は，定義されていません。

RECEIVE文を実行できない論理端末を設定しています。

SYNCHRONOUS MODE句にSYNCが設定されているか，データ名6に'1'が設定されています。

72013

一意名1のサイズを超えるセグメントを受信しました。一意名1のサイズを超えた部分は切り捨てられました。

72016

通信文にWAITING句が設定されています。

72020

SYNCHRONOUS MODE句に設定した値が間違っています。

72024

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

72036

一意名1のサイズが不足しています。5バイト以上の領域を確保してください。

上記以外

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

SEND − メッセージの送信（データ操作言語）

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

DATA DIVISION（通信記述項）の指定

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

DATA DIVISION（データ記述項）の指定

01  一意名1.
    02  データ名A   PIC 9(4)  COMP.
    02  データ名B   PIC X(2).
    02  データ名C   PIC X(n).
01  一意名3.
    02  データ名D   PIC 9(4)  COMP.
    02  データ名E   PIC X(2).
    02  データ名F   PIC X(n).

PROCEDURE DIVISION（通信文）の指定

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

形式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('SEND△△△△')

同期型のメッセージの送受信　CBLDCMCF('SENDRECV')

応答メッセージの送信　CBLDCMCF('REPLY△△△')

同期型のメッセージの送受信では，単一セグメントの論理メッセージだけを扱えます。

セグメントを送信する領域（一意名1で示す領域）の形式を次に示します。

同期型メッセージの送受信の場合，セグメントを受信する領域（一意名3で示す領域）も設定します。

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

UAPで値を設定する項目

●FOR句

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

OUTPUT

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

I-O

応答メッセージの送信，または同期型のメッセージの送受信

●SYMBOLIC TERMINAL句

論理端末名称を設定したデータ項目を設定します。データ名2に出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合，論理端末名称の後ろを空白で埋めてください。

●SYNCHRONOUS MODE句

非同期型でメッセージを送信するか，同期型でメッセージを送信するかを設定します。

SYNC

同期型のメッセージの送受信

同期型のメッセージの送受信のとき設定します。

ASYNC

非同期型のメッセージの送信

一方送信メッセージの送信，または応答メッセージの送信のとき設定します。

データ名6

次の値を設定したデータ項目

'0'または'△'：非同期型のメッセージの送信

'1'：同期型のメッセージの送受信

省略した場合は，ASYNC（非同期型メッセージの送信）が設定されます。

●SWITCHING MODE句

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

NORMAL

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

PRIOR

優先の一方送信メッセージ

データ名7

次の値を設定したデータ項目

'0'または'△'：一般の一方送信メッセージ

'1'：優先の一方送信メッセージ

省略した場合および非応答型のアプリケーションから応答メッセージを送信した場合は，NORMAL（一般の一方送信メッセージ）が設定されます。

●DETAIL MODE句

非同期型のメッセージの送信の場合に，出力通番を付けるかどうかを設定します。データ名10に次のどちらかを設定します。

データ名10

次の値を設定したデータ項目

'0'または'△'：出力通番を付けます。

'1'：出力通番を付けません。

省略した場合および非応答型のアプリケーションから応答メッセージを送信した場合は，出力通番を付けません。

●WAITING TIME句

SEND文を実行してから終了するまでの，最大時間を設定したデータ項目を設定します。同期型のメッセージの送受信の場合に設定します。

データ名11

監視時間の値をHHMMSS00（HH：時　MM：分　SS：秒　00は固定）の形式で設定したデータ項目を設定します。

省略した場合，またはデータ名11に'00000000'を設定した場合，MCFマネジャ定義のUAP共通定義で指定した同期型送受信監視時間（mcfmuap -t sndrcvtim）が設定されます。

●データ名A

送信するセグメントの長さ＋4を設定します。

●データ名B

MCFで使用する領域です。

●データ名C

送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。

●データ名E

MCFで使用する領域です。

●WITH句

送信するセグメントを設定します。非同期型のメッセージ送信の場合だけ設定します。

ESI

先頭セグメントまたは中間セグメントの送信

EMI

最終セグメントまたは単一セグメントの送信

一意名2

次の値を設定したデータ項目

'1'：ESI（先頭セグメントまたは中間セグメントの送信）

'2'：EMI（最終セグメントまたは単一セグメントの送信）

省略した場合は，EMI（最終セグメントまたは単一セグメントの送信）が設定されます。

なお，同期型のメッセージの送受信（SENDRECV）の場合は，EMIを指定するか，または指定を省略してください。

●BEFORE句

同期型のメッセージの送受信の場合に，セグメントを受信するデータ項目（一意名3）を設定します。一方送信メッセージの送信，または，応答メッセージの送信の場合，BEFORE句を省略します。

OpenTP1から値が返される項目

●STATUS KEY句

ステータスコードを受け取りたい場合に設定します。省略した場合は，ステータスコードを受け取れません。データ名1にステータスコードが返されます。

●データ名D

受信したセグメントの長さ＋4が返されます。

●データ名F

受信したセグメントの内容が返されます。

ステータスコード

ステータスコード

意味

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を設定）場合＞

入力元論理端末は，応答メッセージの送信をサポートしていません。

72005

＜WITH句にESIを設定またはWITH句に1を設定した一意名2を設定した場合＞

データ名Aに0から4バイト，またはマイナス値を設定しています。

72008

応答メッセージの最終セグメントを送信するSEND文を実行したあとに，再び応答メッセージを送信するSEND文を実行しています。

SEND文を実行して応答型のアプリケーションを起動させたあとで，再び応答メッセージを送信するSEND文を実行しています。

72013

データ名Fのサイズを超えるセグメントを受信しました。データ名Fのサイズを超えた部分は切り捨てられました。

72017

DETAIL MODE句に設定した値が間違っています。

72018

SWITCHING MODE句に設定した値が間違っています。

72020

SYNCHRONOUS MODE句に設定した値が間違っています。

72024

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

72026

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

72036

データ名Fのサイズが不足しています。5バイト以上の領域を確保してください。

72037

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

72041

＜WITH句を省略またはWITH句にEMIを設定またはWITH句に2を設定した一意名2を設定した場合＞

データ名Aに0から4バイト，またはマイナス値を設定しています。

＜メッセージの送信の終了を連絡した場合＞

WITH句にESIを設定またはWITH句に1を設定した一意名2を設定したSEND文を呼び出さないで，メッセージの送信の終了を連絡しています。

72045

継続問い合わせ応答型のアプリケーションはサポートしていません。

72047

継続問い合わせ応答型のアプリケーションはサポートしていません。

73001

データ名11に60秒を加算した時間が経過しましたが，相手システムまたはMCF通信プロセスからの応答がありません。

出力キューからのメッセージの読み込み時に障害が発生しました。

相手システムから受信打ち切りを受信しました。

同期型のメッセージを送信するSEND文を実行したあとで，UA障害またはコネクション障害が発生しました。

73002

メッセージを送信しようとしましたが，送信バッファまたは編集バッファを確保できませんでした。

出力先の論理端末でMCF通信プロセスの内部障害が発生しました。

73008

論理端末が閉塞中，またはMCFが終了処理中に，SEND文を呼び出しました。

73010

入力または出力メッセージ編集UOCで障害が発生しました。

メッセージの編集エラーが発生しました。

73015

出力先の論理端末は，ほかのUAPで仕掛り中です。

73018

WAITING TIME句に設定した値が間違っています。

上記以外

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

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

この章では，TP1/NET/User Agentに関連するユーザオウンコーディング，およびMCFイベントのインタフェースについて説明します。

5.1　ユーザオウンコーディングインタフェース

メッセージ送受信のUAPを，より多様な業務に対応させるために補助するプログラムを，ユーザオウンコーディング（以降，UOCと略します）といいます。

TP1/NET/User Agentで使用できるUOCを次に示します。

入力メッセージ編集UOC

出力メッセージ編集UOC

送信メッセージ通番編集UOC

UOCを使用する場合は，あらかじめMCFメイン関数またはUAPのメイン関数にUOC関数のアドレスを登録し，UOC関数のオブジェクトファイルをMCF通信プロセスまたはUAPの実行形式プログラムに結合（リンケージ）しておく必要があります。また，UOCはC言語で作成します。

5.1.1　入力メッセージの編集とアプリケーション名の決定

入力メッセージ編集UOCは，受信した論理メッセージをユーザ任意の形式に変換します。そして受信した論理メッセージを基に，ユーザ任意のアプリケーション名を決定できます。

UOCは，UAPを起動するメッセージの最終セグメントを受信すると起動します。ただし，MCFイベント発生時とUAPからのアプリケーションプログラム起動時には，UOCは起動しません。

ユーザは，MCFメイン関数でUOC関数アドレスを設定します。また，必要に応じてコネクション定義（mcftalccn -e）で，メッセージ編集用バッファグループ番号を定義します。

(1)　入力メッセージの編集

受信したメッセージが格納されている受信バッファ，およびMCF通信構成定義で指定した編集バッファを引き渡します。UOCでは，これらのバッファを使用して，入力メッセージの編集ができます。

また，UAPに通知するメッセージのセグメントは，受信バッファ，または編集バッファのどちらかに格納されたものを使用できます。どちらのセグメントを使用するかは，UOCから返されるリターンコードによって選択できます。

(2)　アプリケーション名の決定

該当するMCFに入力メッセージ編集UOCが登録されている場合，論理メッセージの受信と同時にアプリケーション名を決定できます。

UOCでアプリケーション名を決定する場合，アプリケーション名の形式は，アプリケーション名格納領域の先頭から，'¥0'の手前までの1〜8バイトの識別子です。先頭から9バイト目までに'¥0'がないときは，アプリケーション名を不正とし，ERREVT1を起動します。

アプリケーション名の決定の処理を次の図に示します。

図5‒1　アプリケーション名の決定の処理

(3)　UOCエラーリターン処理

UOCからDCMCF_UOC_MSG_NGでリターンした場合，MCFはメッセージログを出力し，相手システムにUERRを送信します。相手システムからのUERRに対する応答を受信したあとに，MCFは障害通知イベント（CERREVT）を起動します。

UOCで障害を検出し，エラー処理UAPを起動したい場合は，ユーザ任意のエラー処理UAPのアプリケーション名を設定します。このとき，MCFにはDCMCF_UOC_MSG_OK（_RCV）でリターンします。

(4)　UOCパラメタ不正の場合の処理

UOCで設定したパラメタに不正があった場合，MCFはメッセージログを出力し，相手システムにUERRを送信します。相手システムからのUERRに対する応答を受信したあとに，MCFは障害通知イベント（CERREVT）を起動します。

(5)　OpenTP1への組み込み方法

スタート関数（dc_mcf_svstart）を発行するMCFメイン関数に，作成したUOCの関数アドレスを設定します。入力メッセージ編集UOCの関数アドレスは任意に決められます。UOC関数をコンパイルして生成したUOCオブジェクトファイルを，UOC関数を登録したMCFメイン関数と結合して，TP1/NET/User Agentの実行形式プログラムを生成します。MCFメイン関数の詳細については，「8.2　MCFメイン関数の作成」を参照してください。

5.1.2　入力メッセージ編集UOCインタフェース

入力メッセージ編集UOCは，次に示す形式で呼び出します。

(1)　形式

ANSI C，C++の形式

#include <dcmcfuoc.h>
DCLONG uoc_func(dcmcf_uoc_min_n *parm)

K&R版 Cの形式

#include <dcmcfuoc.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;         …MCF使用領域
    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;

(4)　MCFが値を設定する項目

(a)　dcmcf_uoc_min_n

pro_kind

プロトコル種別として，次の値が設定されます。

DCMCF_UOC_PRO_OSAS

OSAS/UAプロトコル

le_name

メッセージを入力した論理端末名称が設定されます。

rcv_prim

受信サービスプリミティブとして，次の値が設定されます。

DCMCF_UOC_RCV_INQ

UINQ

DCMCF_UOC_RCV_REP

UREP

DCMCF_UOC_RCV_BRD

UBRD

DCMCF_UOC_RCV_REP_SR

sendrecv時のUREP受信

この場合，アプリケーション名は無効です。

buflist_adr

受信用バッファリストのアドレスが設定されます。

ebuflist_adr

編集用バッファリストのアドレスが設定されます。

メッセージ編集用バッファが未定義の場合，つまり，コネクション定義（mcftalccn）の-eオプションを省略した場合，ebuflist_adrにはNULLが設定されます。

aplname

アプリケーション名が設定されます。

pro_indv_ifa

MCFで使用するパラメタです。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

buf_num

バッファ情報の数が設定されます。

buf_array

バッファ情報の配列が設定されます。バッファ情報は，buf_numの数だけ設定されます。

(c)　dcmcf_uocbufinf_n（バッファ情報）

buf_adr

バッファのアドレスが設定されます。

buf_size

バッファの最大長が設定されます。

seg_size

送信，または受信用バッファリストの場合だけ，バッファの使用長が設定されます。

buff_id，buff_addr

MCFで使用するパラメタです。

(5)　ユーザが値を設定する項目

(a)　dcmcf_uoc_min_n

aplname

UOCで決定したアプリケーション名を設定します。

rtn_detail

詳細リターンコードを設定します。

このコードは，UOCがDCMCF_UOC_MSG_NGをリターンしたときに，MCFに渡されます。MCFは，詳細リターンコードをメッセージログファイルに出力します。詳細リターンコードは-19000〜-19999の範囲で指定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

used_buf_num

使用したバッファ情報の数を設定します。

(c)　dcmcf_uocbufinf_n（バッファ情報）

seg_size

バッファの使用長を設定します。

(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

バッファ情報は次の形式をしています。

5.1.3　出力メッセージの編集

出力メッセージの編集UOCは，応答メッセージまたは一方送信メッセージの編集をするUOCです。出力メッセージの編集UOCは，UAPが発行した送信メッセージを相手システムに実際に送信する前に処理するように位置させます。出力キューから全セグメントを読み出すと起動します。

ユーザは，MCFメイン関数でUOC関数アドレスを設定します。また，必要に応じてコネクション定義（mcftalccn -e）で，メッセージ編集用バッファグループ番号を定義します。

(1)　出力メッセージの編集

送信するメッセージが格納されている送信バッファ，およびコネクション定義で指定した編集バッファを引き渡します。UOCでは，これらのバッファを使用して，出力メッセージの編集処理ができます。

また，UOCからのリターンコードによってUAPに通知するメッセージとして送信バッファに格納されたものを使用するか，編集バッファに格納されたものを使用するかを選択できます。

(2)　UOCエラーリターン処理

UOCからDCMCF_UOC_MSG_NGでリターンした場合，MCFは次に示す処理をします。

reply型論理端末の場合

メッセージログを出力し，相手システムにUERRを送信します。相手システムからのUERRに対する応答を受信したあとに，MCFは障害通知イベント（CERREVT）を起動します。

request型論理端末またはsend型論理端末の場合

メッセージログを出力し，該当するメッセージを破棄します。

(3)　UOCパラメタ不正の場合の処理

UOCで設定した値に不正があった場合，MCFは次に示す処理をします。

reply型論理端末の場合

メッセージログを出力し，相手システムにUERRを送信します。相手システムからのUERRに対する応答を受信したあとに，MCFは障害通知イベント（CERREVT）を起動します。

request型論理端末またはsend型論理端末の場合

メッセージログを出力し，該当するメッセージを破棄します。

(4)　OpenTP1への組み込み方法

入力メッセージ編集UOCの組み込み方法と同じです。「5.1.1(5)　OpenTP1への組み込み方法」を参照してください。

5.1.4　出力メッセージ編集UOCインタフェース

出力メッセージ編集UOCは，次に示す形式で呼び出します。

(1)　形式

ANSI C，C++の形式

#include <dcmcfuoc.h>
DCLONG uoc_func(dcmcf_uoc_mout_n *parm)

K&R版Cの形式

#include <dcmcfuoc.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;         …MCF使用領域
    DCLONG rtn_detail;          …詳細リターンコード
    char reserve3[20];          …予備
} dcmcf_uoc_mout_n;

(b)　dcmcf_uocbuff_list_n（バッファリスト），dcmcf_uocbufinf_n（バッファ情報）の内容

「5.1.2　入力メッセージ編集UOCインタフェース」を参照してください。

(4)　MCFが値を設定する項目

(a)　dcmcf_uoc_mout_n

pro_kind

プロトコル種別として，次の値が設定されます。

DCMCF_UOC_PRO_OSAS

OSAS/UAプロトコル

le_name

メッセージを入力した論理端末名称が設定されます。

buflist_adr

送信用バッファリストのアドレスが設定されます。

ebuflist_adr

編集用バッファリストのアドレスが設定されます。

メッセージ編集用バッファが未定義の場合，つまり，コネクション定義（mcftalccn）の-eオプションを省略した場合，ebuflist_adrにはNULLが設定されます。

output_no

メッセージ出力通番が設定されます。ただし，outputno_flagがDCMCF_UOC_OUTPUTNO_OKのときだけ有効です。

msg_type

メッセージ種別として，次の値が設定されます。

'o'

問い合わせ応答メッセージ

'n'

一般一方送信メッセージ

'p'

優先一方送信メッセージ

's'

同期送信メッセージ

outputno_flag

メッセージ出力通番の有効フラグとして，次のどちらかの値が設定されます。

DCMCF_UOC_OUTPUTNO_OK

メッセージ出力通番を有効にします。

DCMCF_UOC_OUTPUTNO_NG

メッセージ出力通番を無効にします。

resend_flag

再送メッセージフラグとして，次のどちらかの値が設定されます。

'r'

再送メッセージです。

'n'

再送メッセージではありません。

pro_indv_ifa

MCFで使用するパラメタです。

(b)　dcmcf_uocbuff_list_n（バッファリスト），dcmcf_uocbufinf_n（バッファ情報）

「5.1.2　入力メッセージ編集UOCインタフェース」を参照してください。

(5)　ユーザが値を設定する項目

(a)　dcmcf_uoc_mout_n

rtn_detail

詳細リターンコードを設定します。

このコードは，UOCがDCMCF_UOC_MSG_NGをリターンしたときに，MCFに渡されます。MCFは，詳細リターンコードをメッセージログファイルに出力します。詳細リターンコードは-19000〜-19999の範囲で指定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト），dcmcf_uocbufinf_n（バッファ情報）

「5.1.2　入力メッセージ編集UOCインタフェース」を参照してください。

(6)　リターン値

uoc_func()は次のコードでリターンしてください。

リターン値

意味

DCMCF_UOC_MSG_OK

正常リターン（編集バッファでスケジューリング）

DCMCF_UOC_MSG_OK_SND

正常リターン（送信バッファでスケジューリング）

DCMCF_UOC_MSG_NG

メッセージ編集エラー

(7)　パラメタとバッファの関係

UOCインタフェース用のパラメタとバッファの関係は，入力メッセージ編集の場合と同じです。「5.1.2(7)　パラメタとバッファの関係」を参照してください。

5.1.5　送信メッセージの通番編集

(1)　出力通番編集

送信メッセージの通番編集UOCでは，受け取った出力通番を基に，ユーザ独自の処理ができます。例えば，出力通番を使用して編集した送信メッセージを再送要求します。

送信メッセージの通番編集UOCを起動する場合，メッセージ送信の関数で，出力通番を付けるように設定してください。UOCは，UAPがsend関数またはresend関数を発行したときに，MCFによって起動されます。したがって，このUOCでメッセージを編集する場合は，先頭セグメントしか編集できません。

(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_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

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

dataleng

送信メッセージ長が設定されます。

senddata

セグメントの内容が設定されます。

(3)　リターン値

リターン値

意味

DC_OK

正常に終了しました。

5.1.7　UOC作成上の注意事項

UOC作成上の注意事項を次に示します。

(1)　UOCの構造

UOCで使用するローカル変数のサイズの合計は，各UOCで1024バイト以内になるよう作成してください。また，UOCの中で関数の再帰呼び出しはしないでください。

(2)　UOCで使用できる関数

UOCを作成する場合，UOCでは次に示す関数だけが使用できます。ほかの関数を使用した場合，正常に動作しないことがあるためご注意ください。

メモリ操作をする関数

データ領域管理（例：malloc，free）

共有メモリ管理関数（例：shmctl，shmget，shmop）

メモリ操作（例：memcpy）

文字列操作（例：strcpy）

時間取得関数

(3)　UOCの異常処理

TP1/NET/User AgentのUOCで異常を検知した場合，MCFの所定のリターンコードを使用してMCFに異常の発生を通知してください。UOCでプロセス終了となるシグナル，またはabort()を呼び出すと，MCFが異常終了します。

(4)　UOCの実行タイミング

MCFが起動するUOCの実行タイミングは，OpenTP1システム，およびUAPの開始，終了シーケンスと同期しない場合があります。UAPより先にUOCが実行されたり，UAPがすべて終了してからUOCが呼ばれたりしてもよいように作成してください。

5.2　MCFイベントインタフェース

TP1/NET/User Agentでメッセージ送受信をすると，OpenTP1の各種システム情報がMHPに通知されます。これをMCFイベントといいます。メッセージ送受信処理でエラーや障害が発生した場合，システム内で何が起こっているのかがMCFイベントの内容でわかります。MCFイベントに対応するMHPをMCFイベント処理用MHPといいます。

MCFイベントは入力キューに渡されて，MCFイベント処理用MHPで回復処理をします。なお，MCFイベントの発生時は入力メッセージ編集UOCは呼び出しません。詳細についてはマニュアル「OpenTP1 プログラム作成の手引」を参照してください。

5.2.1　MCFイベントの種類

TP1/NET/User Agentが通知するMCFイベントの種類を次の表に示します。

表5‒1　TP1/NET/User Agentが通知するMCFイベントの種類

MCFイベント名

MCFイベントコード

発生した原因

MCFイベント処理用MHPの処理の例

不正アプリケーション名検出通知イベント

ERREVT1

メッセージのアプリケーション名がMCFアプリケーション定義にありません。

該当するアプリケーション名がなかったことを報告します。

問い合わせメッセージの場合は，応答メッセージを出力できます。

メッセージ廃棄通知イベント

ERREVT2

次の理由で受信メッセージを破棄しました。

入力キューに障害が発生しました。

入力メッセージ最大格納数を超過しました。

動的共用メモリが不足しました。

キューファイルが満杯になりました。

MHPのサービス，サービスグループまたはアプリケーションが閉塞しています。

スケジュール閉塞されているサービスグループの入力キューに未処理受信メッセージが残った状態で，OpenTP1を正常終了または計画停止Aで終了しました。

MHPのサービスグループ，またはアプリケーションがセキュア状態です。

MHPで呼び出すreceive関数にセグメントを渡す前に，MHPが異常終了しました。

アプリケーション名に相当するMHPのサービスがありません。

ユーザサーバ未起動などによって，MHPの起動に失敗しました。

DBMSの障害などによって，トランザクションの開始に失敗しました。

メッセージを廃棄したことを報告します。

問い合わせメッセージの場合は，応答メッセージを出力できます。

UAP異常終了通知イベント

ERREVT3

MHPのセグメント受信関数に，セグメントを渡したあとにMHPの異常終了※が発生しました。

UAP異常終了時の対処障害メッセージを送信します。

問い合わせメッセージの場合は，応答メッセージを出力できます。

タイマ起動メッセージ廃棄通知イベント

ERREVT4

アプリケーションのタイマ起動時に障害が発生しました。

メッセージを廃棄したことを報告します。

未処理送信メッセージ廃棄通知イベント

ERREVTA

次の理由で未処理送信メッセージを破棄しました。

MCFの正常終了処理時に，未処理送信メッセージの滞留時間監視の時間切れ（タイムアウト）が発生しました。

運用コマンド（mcftdlqle）の入力，またはAPI（dc_mcf_tdlqle関数もしくはCBLDCMCF('TDLQLE△△')）の発行によって，出力キューが削除されました。

閉塞されている論理端末の出力キューに未処理送信メッセージが残った状態で，dcstopコマンドが実行されました。

未処理送信メッセージを廃棄したことを報告します。

障害通知イベント

CERREVT

通信管理プログラムのコネクション障害，または論理端末障害が発生しました。

コネクション，または論理端末に障害が発生したことを報告します。

状態通知イベント

COPNEVT

コネクションが確立しました。または，論理端末が閉塞解除しました。

コネクションが確立したことまたは論理端末が閉塞解除したことを報告します。

CCLSEVT

コネクションが正常に解放されました。

コネクションが解放されたことを報告します。

注※

アプリケーション属性定義（mcfaalcap -g）のrecvmsg オペランドにrを指定した場合，またはdc_mcf_rollbackのactionにDCMCFRTRYまたはDCMCFRRTNを指定した場合は除きます。

5.2.2　MCFイベント通知時のセグメント構成

MCFイベントをMHPに通知する場合，先頭セグメントにMCFイベント情報を設定します。エラーイベント（ERREVTn）の場合は，第2セグメント以降に処理できなかったメッセージセグメントを最終セグメントまで設定します。

MCFイベント通知時のセグメント構成を次の図に示します。

図5‒3　MCFイベント通知時のセグメント構成

MCFイベントは，UAPを作成した言語によって，UAPに通知されるデータの形式が異なります。

エラーイベントの場合はバッファ形式1とバッファ形式2で先頭の内容が異なります。

このため，それ以降の項目の位置にずれがあります。「5.2.4　MCFイベント情報の形式（COBOL言語）」のエラーイベントの表ではERREVT1，ERREVT2，ERREVT3，およびERREVTA のバッファ形式別に位置（バイト）を分けて説明しています。

なお，ERREVT4については，マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。

5.2.3　MCFイベント情報の形式（C言語）

MCFイベント情報は構造体で，MCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は，MCFイベントの種類によって異なります。ただし，MCFイベント情報の先頭部分の形式は，各イベントで共通です。

エラーイベント（ERREVTn）で使用する構造体は，<dcmcf.h>で定義してあります。なお，dcmoum_statevtは，<dcmoum.h>で定義されています。<dcmoum.h>の前に<dcmcf.h>を取り込んでおいてください。

(1)　MCFイベントの共通ヘッダ

(a)　形式

struct dc_mcf_evtheader {
  char mcfevt_name[9];       …MCFイベントコード
  char le_name[16];          …入力元論理端末名称
                               (ERREVT1,ERREVT2,ERREVT3の場合)
                               出力先論理端末名称
                               (ERREVTAの場合)
  char cn_name[9];           …コネクション名
  unsigned char format_kind; …MCF使用領域
  char reserve01;            …予備
  DCLONG time;               …メッセージ入力時刻
};

(b)　MCFイベントとして設定される項目

le_name

ERREVT1，ERREVT2，またはERREVT3では，メッセージを入力した論理端末名称が設定されます。

ただし，ERREVT2またはERREVT3で，次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで，障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

ERREVTAでは，メッセージを出力する論理端末名称が設定されます。

CERREVTでは，論理端末障害が発生した論理端末名称が設定されます。コネクション障害時は無効です。

COPNEVTでは，閉塞解除した論理端末名称が設定されます。コネクション確立時は無効です。

CCLSEVTでは無効です。

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

次に示すどちらかが設定されます。

形式不正の場合…不正となったアプリケーション名

定義されていない場合…定義されていないアプリケーション名

アプリケーション名は，MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は，ヌル文字が設定されます。

(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のアプリケーション名が設定されます。

アプリケーション名は，MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は，ヌル文字が設定されます。

reason_code

ERREVT2の理由コードが設定されます。理由コードの詳細については，「付録H　理由コード一覧」を参照してください。

(4)　ERREVT3

(a)　形式

struct dc_mcf_evt3_type {
  struct dc_mcf_evtheader  evtheader ;
                             …MCFイベント共通ヘッダ
  char reserve01[12] ;       …予備
  char map_name[10] ;        …MCF使用領域
  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イベントとして設定される項目

ap_name

異常が発生したMHPのアプリケーション名が設定されます。

アプリケーション名は，MHPから送信されたメッセージの場合に設定されます。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] ;        …MCF使用領域
  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イベントとして設定される項目

ap_name

正常終了したメッセージのアプリケーション名が設定されます。

アプリケーション名は，MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は，ヌル文字が設定されます。

(6)　CERREVT

(a)　形式

typedef struct {
  struct dc_mcf_evtheader  header ;
                             …MCFイベント共通ヘッダ
  DCLONG err_fact ;          …障害要因コード（4バイト）
  DCLONG err_reason1 ;       …理由コード1（4バイト）
  DCLONG err_reason2 ;       …理由コード2（4バイト）
  DCLONG err_rcv_action ;    …MCF使用領域
  char rname[16] ;           …MCF使用領域
  char reserve1[26] ;        …予備
} dcmoum_cerrevt ;

(b)　MCFイベントとして設定される項目

err_fact

CERREVTの障害要因コードが，次に示す値で設定されます。

(00000030)₁₆

コネクション障害発生

(00000031)₁₆

論理端末障害発生

err_reason1，err_reason2

CERREVTの理由コードが設定されます。「付録H　理由コード一覧」を参照してください。

(7)　COPNEVT，CCLSEVT

(a)　形式

typedef struct {
  struct dc_mcf_evtheader  header ;
                             …MCFイベント共通ヘッダ
  DCLONG notice_fact ;       …通知要因コード
  char reserve1[12] ;        …予備
  char rname[16] ;           …MCF使用領域
  char reserve2[26] ;        …予備
} dcmoum_statevt ;

(b)　MCFイベントとして設定される項目

notice_fact

COPNEVTの場合，通知された要因が次に示す値で設定されます。

(00000030)₁₆

コネクション確立

(00000031)₁₆

論理端末閉塞解除

5.2.4　MCFイベント情報の形式（COBOL言語）

COBOL言語の場合はセグメントの並びとして渡されます。COBOL言語のUAPの場合，MCFイベント情報の内容を以降の表に示します。

表5‒2　COBOL言語のMCFイベント情報の内容（ERREVT1）

項目

位置（バイト）

長さ

（バイト）

属性

内容

形式1

形式2

予備（形式1のときだけ）

0

−

2

−

−

予備（形式1のときだけ）

2

−

2

−

−

エラーイベントコード

4

0

3

英数字

'ERR'が設定されます。

7

3

3

−

−

10

6

2

英数字

ERREVT1を示す'1△'が設定されます。

入力元論理端末名称

12

8

8

英数字

メッセージを入力した論理端末名称です。

予備

20

16

20

−

−

アプリケーション名

40

36

8

英数字

次に示すどれかが設定されます。

形式不正となったアプリケーション名

定義されていないアプリケーション名

予備

48

44

8

−

−

予備

56

52

8

−

−

予備

64

60

8

−

−

コネクション名

72

68

8

英数字

コネクション名です。

予備

80

76

16

−

−

メッセージが入力された日付

96

92

8

外部10進数字

端末入力メッセージを入力した日付です。YYYYMMDDの形式です。

YYYY：西暦の年

MM：月

DD：日

メッセージが入力された時刻

104

100

8

外部10進数字

端末入力メッセージを入力した時刻です。HHMMSS00の形式です。

HH：時

MM：分

SS：秒

00は固定です。

予備

112

108

16

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒3　COBOL言語のMCFイベント情報の内容（ERREVT2）

項目

位置（バイト）

長さ

（バイト）

属性

内容

形式1

形式2

予備（形式1のときだけ）

0

−

2

−

−

予備（形式1のときだけ）

2

−

2

−

−

エラーイベントコード

4

0

3

英数字

'ERR'が設定されます。

7

3

3

−

−

10

6

2

英数字

ERREVT2を示す'2△'が設定されます。

入力元論理端末名称

12

8

8

英数字

メッセージを入力した論理端末名称です。次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで，障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

20

16

20

−

−

アプリケーション名

40

36

8

英数字

エラーになったUAPのアプリケーション名です。

予備

48

44

8

−

−

予備

56

52

8

−

−

予備

64

60

8

−

−

コネクション名

72

68

8

英数字

コネクション名です。次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで，障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

80

76

16

−

−

メッセージが入力された日付

96

92

8

外部10進数字

端末入力メッセージを入力した日付です。YYYYMMDDの形式です。

YYYY：西暦の年

MM：月

DD：日

メッセージが入力された時刻

104

100

8

外部10進数字

端末入力メッセージを入力した時刻です。HHMMSS00の形式です。

HH：時

MM：分

SS：秒

00は固定です。

理由コード※

112

108

4

外部10進数字

理由コードが設定されます。

予備

116

112

12

−

−

（凡例）

−：該当しません。または，使用されません。

注※

理由コードの詳細については，「付録H　理由コード一覧」を参照してください。

表5‒4　COBOL言語のMCFイベント情報の内容（ERREVT3）

項目

位置（バイト）

長さ

（バイト）

属性

内容

形式1

形式2

予備（形式1のときだけ）

0

−

2

−

−

予備（形式1のときだけ）

2

−

2

−

−

エラーイベントコード

4

0

3

英数字

'ERR'が設定されます。

7

3

3

−

−

10

6

2

英数字

ERREVT3を示す'3△'が設定されます。

入力元論理端末名称

12

8

8

英数字

メッセージを入力した論理端末名称です。次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで，障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

20

16

20

−

−

予備

40

36

8

−

−

マップ名

48

44

8

−

MCFが使用します。

アプリケーション名

56

52

8

英数字

異常が発生したメッセージのアプリケーション名です。

予備

64

60

8

−

−

コネクション名

72

68

8

英数字

コネクション名です。次に示す場合は，'*'が設定されます。

SPPからアプリケーション起動機能で起動したMHPで，障害が発生した場合

上記の障害が発生したあとに，MCFイベントとして起動したMHPからさらにアプリケーション起動機能で起動したMHPで，障害が発生した場合

予備

80

76

16

−

−

メッセージが入力された日付

96

92

8

外部10進数字

端末入力メッセージを入力した日付です。YYYYMMDDの形式です。

YYYY：西暦の年

MM：月

DD：日

メッセージが入力された時刻

104

100

8

外部10進数字

端末入力メッセージを入力した時刻です。HHMMSS00の形式です。

HH：時

MM：分

SS：秒

00は固定です。

予備

112

108

16

−

−

サービス名

128

124

31

英数字

異常が発生したUAPのアプリケーション名に対応するサービス名です。

予備

159

155

1

−

−

サービスグループ名

160

156

31

英数字

異常が発生したUAPのサービスグループ名です。

予備

191

187

1

−

−

トランザクションブランチID（BID）

192

188

36

英数字

異常が発生したトランザクションのBIDです。

トランザクションブランチIDの形式については，表5-5を参照してください。

予備

228

224

28

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒5　トランザクションブランチIDの形式

項目

位置（バイト）

長さ（バイト）

属性

OpenTP1システムノードID

0

8

英数字

トランザクションブランチ番号

8

4

2進数字

OpenTP1使用領域

12

4

−

予備

16

20

−

表5‒6　COBOL言語のMCFイベント情報の内容（ERREVTA）

項目

位置（バイト）

長さ

（バイト）

属性

内容

形式1

形式2

予備（形式1のときだけ）

0

−

2

−

−

予備（形式1のときだけ）

2

−

2

−

−

エラーイベントコード

4

0

3

英数字

'ERR'が設定されます。

7

3

3

−

−

10

6

2

英数字

ERREVTAを示す'A△'が設定されます。

出力先論理端末名称

12

8

8

英数字

メッセージを出力する論理端末名称です。

予備

20

16

20

−

−

予備

40

36

8

−

−

マップ名

48

44

8

−

MCFが使用します。

アプリケーション名

56

52

8

英数字

正常終了したメッセージのアプリケーション名です。

MHPから送信されたメッセージの場合設定されます。MHP以外から送信された場合は空白が設定されます。

予備

64

60

8

−

−

予備

72

68

8

−

−

予備

80

76

16

−

−

メッセージが入力された日付

96

92

8

外部10進数字

端末入力メッセージを入力した日付です。YYYYMMDDの形式です。

YYYY：西暦の年

MM：月

DD：日

メッセージが入力された時刻

104

100

8

外部10進数字

端末入力メッセージを入力した時刻です。HHMMSS00の形式です。

HH：時

MM：分

SS：秒

00は固定です。

予備

112

108

16

−

−

予備

128

124

31

−

−

予備

159

155

1

−

−

予備

160

156

31

−

−

予備

191

187

1

−

−

予備

192

188

36

−

−

予備

228

224

28

−

−

（凡例）

−：該当しません。または，使用されません。

表5‒7　COBOL言語のMCFイベント情報の内容（CERREVT）

項目

位置（バイト）

長さ（バイト）

属性

内容

イベントコード

0

8

英数字

イベントコード「CERREVT」が設定されます。

入力元論理端末名称

8

8

英数字

障害の発生した論理端末名称が設定されます。コネクション障害時は無効です。

予備

16

8

−

−

入力元コネクション名

24

8

英数字

コネクション名が設定されます。

メッセージ入力日付

32

8

外部10進数字

CERREVTを入力した日付です。

メッセージ入力時刻

40

8

外部10進数字

CERREVTを入力した時刻です。

障害要因コード

48

4

2進数字

障害要因が設定されます。

(00000030)₁₆：コネクション障害

(00000031)₁₆：論理端末障害

理由コード1※

52

4

2進数字

理由コード1が設定されます。

理由コード2※

56

4

2進数字

理由コード2が設定されます。

予備

60

48

−

−

（凡例）

−：該当しません。または，使用されません。

注

相手システムからUERRを受信した場合で，UERRの利用者情報が設定されていたとき，利用者情報をCERREVTの第2セグメントに設定します。

注※

理由コード1，および理由コード2は，「付録H　理由コード一覧」を参照してください。

表5‒8　COBOL言語のMCFイベント情報の内容（COPNEVT，CCLSEVT）

項目

位置（バイト）

長さ（バイト）

属性

内容

イベントコード

0

8

英数字

イベントコード「COPNEVT」，または「CCLSEVT」が設定されます。

入力元論理端末名称

8

8

英数字

論理端末の閉塞解除を通知するCOPNEVTの場合は，閉塞解除した論理端末名称が設定されます。

コネクション確立を通知するCOPNEVTおよびCCLSEVTでは無効です。

予備

16

8

−

−

入力元コネクション名

24

8

英数字

コネクション名が設定されます。

メッセージ入力日付

32

8

外部10進数字

COPNEVT，CCLSEVTを入力した日付です。

メッセージ入力時刻

40

8

外部10進数字

COPNEVT，CCLSEVTを入力した時刻です。

通知要因

48

4

2進数字

COPNEVTの場合に，イベントが通知された要因が設定されます。

(00000030)₁₆：コネクション確立

(00000031)₁₆：論理端末閉塞解除

予備

52

56

−

−

（凡例）

−：該当しません。または，使用されません。

6　システム定義

この章では，OSAS/UAプロトコルを使用するために必要な，OpenTP1のシステム定義の中でのTP1/NET/User Agent固有のシステム定義について説明します。また，自システム内にある通信管理プログラムと関連づける内容，相手システムの通信定義と関連づける内容，およびシステム定義例について説明します。

TP1/NET/User Agentの定義の概要

TP1/NET/User Agentのシステム定義は，OpenTP1のネットワークコミュニケーション定義の中で定義します。また，自システムの通信管理プログラムや相手システムの通信定義と，システム定義内容を関連づける必要があります。

OpenTP1のネットワークコミュニケーション定義の中での定義

OpenTP1のネットワークコミュニケーション定義のうち，TP1/NET/User Agentに固有の定義について説明します。

使用する定義ファイル

MCFおよびTP1/NET/User Agentを起動するには，定義ファイルに環境情報を設定する必要があります。MCFで使用する定義ファイルを次の表に示します。

表6‒1　MCFで使用する定義ファイル

定義の種類

定義のソースファイル

定義の内容

MCFマネジャ定義

MCFマネジャ定義ソースファイル

MCF全体の実行環境

MCF通信構成定義

共通定義ソースファイル

プロトコルごとの実行環境

プロトコル固有定義ソースファイル

MCFアプリケーション定義

MCFアプリケーション定義ソースファイル

アプリケーションの属性

定義のソースファイルは，定義コマンド，オプション，およびオペランドを指定して作成します。それらの中には，プロトコルで共通のものと，プロトコルに固有のものがあります。次の定義には，TP1/NET/User Agentに固有の定義があります。

MCFマネジャ定義

MCF通信構成定義

この章では，TP1/NET/User Agentに固有の定義コマンド，オプション，およびオペランドについて説明します。プロトコル共通の定義については，マニュアル「OpenTP1 システム定義」を参照してください。ただし，mcftbuf（バッファグループ定義）のlength，countオペランドの指定値については，「mcftalccn（コネクション定義の開始）」の注意事項に記載してあります。

TP1/NET/User Agentの組み込み時に必要なファイル

次に示すファイルは，TP1/NET/User AgentをOpenTP1システムに組み込むときに必要なファイルです。

システムサービス情報定義ファイル

システムサービス共通情報定義ファイル

MCF定義オブジェクトファイル

この章では，システムサービス情報定義ファイルとシステムサービス共通情報定義ファイルの記述内容，およびMCF定義オブジェクトファイルを生成するユティリティの起動コマンドについて説明します。TP1/NET/User Agentを組み込む方法については，「8.　組み込み方法」を参照してください。

通信定義の内容の関連づけ

OSAS/UAプロトコルを使用して相手システムと通信するためには，TP1/NET/User Agentのシステム定義内容を自システムの通信管理プログラムや，相手システムの通信定義と関連づける必要があります。

この章では，自システムの通信管理プログラム（XNF/LS，またはXNF/AS）と関連づける内容を示します。また，相手システム（TMS-4V/SPまたはXDM/DCCM3）のネットワーク定義と関連づける内容を示します。

TP1/NET/User Agent固有のシステム定義の種類

OpenTP1のネットワークコミュニケーション定義のうち，TP1/NET/User Agentに固有の定義の一覧を次の表に示します。

表6‒2　TP1/NET/User Agent固有の定義の一覧

定義名

コマンド

オプション・オペランド

定義内容

指定値((値範囲))《省略時解釈値》

MCFマネジャ定義

mcfmuap

-t

sndrcvtim

同期型送受信監視時間

符号なし整数 ((0〜65535))《0》（単位：秒）

MCF通信構成定義

共通定義

mcftcomn

-x

termrls

MCF終了時のコネクションの解放方法

nomal｜error｜《no》

プロトコル固有定義

mcftalccn（コネクション定義の開始）

指定数：1〜512

-c

−

コネクションID

1〜8文字の識別子

-p

−

プロトコルの種別

ua

-n

−

自システムのPSAPアドレス

1〜142けたの16進数字

-g

sndbuf

メッセージ送信用バッファグループ番号

符号なし整数((1〜512))

rcvbuf

メッセージ受信用バッファグループ番号

符号なし整数((1〜512))

-e

msgbuf

メッセージ編集用バッファグループ番号

符号なし整数((1〜512))

count

メッセージ編集用バッファ数

符号なし整数((1〜131070))

-m

mode

使用する通信管理

tli｜xnfas

-i

−

コネクションの確立方法

auto｜《manual》

-o

−

OSAS/UAプロトコル種別

old｜new

-u

−

UINTを重畳するMPDU

ht｜ws

-w

nomltim

プロトコル監視時間

符号なし整数((0，10〜65535))《60》（単位：秒）

usertim

問い合わせ監視時間

符号なし整数((0，10〜65535))《60》（単位：秒）

-b

bretry

コネクション確立障害時の確立再試行するかどうかを指定

《yes》｜no

bretrycnt

コネクション確立障害時の確立再試行回数

符号なし整数((0〜65535))《0》（単位：回）

bretryint

コネクション確立障害時の確立再試行間隔

符号なし整数((0〜2550))《60》（単位：秒）

-k

−

すべてのUAの開局モード

《together》｜each

-d

−

端末識別子の文字数

符号なし整数((0，5〜125))《5》

-y

−

制御UAの端末識別子

5〜125文字の英数字記号または10〜250けた（偶数けた）の16進数字

-q

−

相手システムのPSAPアドレス

1〜186けたの16進数字

-z

slot

仮想スロット番号

符号なし整数((0〜65535))

-l

−

TLクラス

0

-f

leopnevt

論理端末の閉塞解除時に，状態通知イベント（COPNEVT）を起動するかどうかを指定

use｜《nouse》

negomsg

システム構成の縮退を通知するメッセージを出力するかどうかを指定

use｜《nouse》

-T

device

デバイス名称

/と-を含む1〜64文字の識別子

mcftalcle（論理端末定義）

指定数：1〜2048

-l

−

論理端末名称

1〜8文字の識別子

-t

−

論理端末の端末タイプ

reply｜request｜send｜receive

-m

mmsgcnt

メモリ出力メッセージ最大格納数

符号なし整数((0〜65535))《0》

dmsgcnt

ディスク出力メッセージ最大格納数

符号なし整数((0〜65535))《0》

-k

quekind

出力メッセージの割り当て先

《memory》｜disk

quegrpid

キューグループID

1〜8文字の識別子

-o

aj

メッセージ送信完了ジャーナルを取得するかどうかを指定

《yes》｜no

mcftalcua（UA定義）

指定数：1〜2048

-u

−

UA番号

符号なし整数((1〜2048))

-y

−

一般UAの端末識別子

5〜125文字の英数字記号または10〜250けた（偶数けた）の16進数字

mcftalced（コネクション定義の終了）

指定数：mcftalccnと同数

−

−

コネクション定義の終了

−

（凡例）

−：該当する内容がないことを表します。

注

TP1/NET/User Agentに固有の定義だけ記載してあります。このほかにも，プロトコルで共通の定義コマンド，オプション，オペランドがあります。それらについては，マニュアル「OpenTP1 システム定義」を参照してください。

定義の指定順序

TP1/NET/User Agentのプロトコル固有定義コマンドの指定順序を次の図に示します。

図6‒1　TP1/NET/User Agentのプロトコル固有定義コマンドの指定順序

TP1/NET/User Agentのプロトコル固有定義の指定には次の条件があります。

mcftalcuaコマンドは省略できません。

mcftalccnコマンドとmcftalcleコマンドとの関係は1対nです。

mcftalcleコマンドとmcftalcuaコマンドの関係は1対1です。

コネクション1個に対し，論理端末を3個定義した場合のプロトコル固有定義の例を次の図に示します。

図6‒2　プロトコル固有定義の例

mcfmuap（UAP共通定義）

形式

mcfmuap           ：
         〔-t "〔sndrcvtim=同期型送受信監視時間〕"〕
                  ：

機能

同期型のメッセージの送受信の監視時間を定義します。

オプション

この定義コマンドには，ほかにもオプションがあります。詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

●-t

（オペランド）

sndrcvtim=同期型送受信監視時間　　〜〈符号なし整数〉((0〜65535))《0》（単位：秒）

同期型のメッセージの送受信の仕掛り開始（sendrecv（EMI）発行）から仕掛り終了（sendrecv終了）までの限界監視時間を指定します。このオペランドでは，相手システムからの応答時間を監視します。0を指定した場合，送受信時間の監視はしません。

このオペランドは，問い合わせ監視時間（コネクション定義（mcftalccn -w）のusertimオペランドで指定）より，60秒多い値を指定してください。

mcftalccn（コネクション定義の開始）

形式

mcftalccn  -c コネクションID
           -p ua
           -n x'自システムのPSAPアドレス'
           -g "sndbuf=メッセージ送信用バッファグループ番号
               rcvbuf=メッセージ受信用バッファグループ番号"
         〔-e "msgbuf=メッセージ編集用バッファグループ番号
               count=メッセージ編集用バッファ数"〕
           -m "mode=tli｜xnfas"
         〔-i auto｜manual〕
           -o old｜new
           -u ht｜ws
         〔-w "〔nomltim=プロトコル監視時間〕
               〔usertim=問い合わせ監視時間〕"〕
         〔-b "〔bretry=yes｜no〕
               〔bretrycnt=コネクション確立障害時の確立再試行回数〕
               〔bretryint=コネクション確立障害時の確立再試行間隔〕"〕
         〔-k together｜each〕
         〔-d 端末識別子の文字数〕
         〔-y e'制御UAの端末識別子'｜x'制御UAの端末識別子'〕
           -q x'相手システムのPSAPアドレス'
           -z "slot=仮想スロット番号"
         〔-l 0〕
         〔-f "〔leopnevt=use｜nouse〕
               〔negomsg=use｜nouse〕"〕
         〔-T "device=デバイス名称"〕

機能

コネクションに関する環境を定義します。

オプション

●-c コネクションID　　〜〈1〜8文字の識別子〉

OpenTP1システム内で，一意となるコネクションIDを指定します。

●-p ua

プロトコルの種別を指定します。

ua

OSAS/UAプロトコル

●-n x'自システムのPSAPアドレス'　　〜〈1〜142けたの16進数字〉

自システムのPSAPアドレスを指定します。xは，16進数形式で指定することを意味します。

自システムのPSAPアドレスの形式を次に示します。

ほかのコネクションが使用するPSAPアドレスと重複しないPSAPアドレスを指定してください。また，XNF/LSを使用する場合，ほかのプロセスが使用するTセレクタ値と重複しないTセレクタ値を指定してください。

●-g

（オペランド）

sndbuf=メッセージ送信用バッファグループ番号　　〜〈符号なし整数〉((1〜512))

メッセージ送信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

-nオプションで指定する自システムのPSAPアドレスの値が，ほかのmcftalccn定義コマンドの値と同じ場合，このオペランドもほかのmcftalccn定義コマンドと同じ値を指定してください。

rcvbuf=メッセージ受信用バッファグループ番号　　〜〈符号なし整数〉((1〜512))

メッセージ受信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

-nオプションで指定する自システムのPSAPアドレスの値が，ほかのmcftalccn定義コマンドの値と同じ場合，このオペランドもほかのmcftalccn定義コマンドと同じ値を指定してください。

●-e

（オペランド）

msgbuf=メッセージ編集用バッファグループ番号　　〜〈符号なし整数〉((1〜512))

入力，出力メッセージ編集UOC呼び出し時に，メッセージ編集用として使用するバッファグループ番号を指定します。

このオペランドを省略した場合は，メッセージ編集用バッファは確保されません。メッセージ編集用バッファグループ番号は，mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

count=メッセージ編集用バッファ数　　〜〈符号なし整数〉((1〜131070))

入力，出力編集メッセージUOC呼び出し時に，メッセージ編集用として使用するバッファの数を指定します。

msgbufオペランドで指定するメッセージ編集用バッファグループ番号に対応するmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定するバッファ数の中から，メッセージ編集用に使用するバッファ数を指定してください。

メッセージ編集用バッファグループ番号に対応するmcftbufのcountオペランドおよびextendオペランドには，すべての論理端末で入力メッセージ編集UOCおよび出力メッセージ編集UOCが，同時に動作した場合を考慮した面数を指定してください。

また，このオペランドの指定はmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定されたバッファ数の合計値を超える指定はできません。

msgbufオペランドを省略した場合は，このオペランドの指定は無効です。

msgbufオペランドを指定した場合，このオペランドを省略できません。省略した場合，定義オブジェクト生成時にKFCA11519-Eメッセージを出力してエラーとなります。

●-m

（オペランド）

mode=tli｜xnfas

使用する通信管理を指定します。

tli

XNF/LSを使用します。

xnfas

XNF/ASを使用します。

このオペランドは必ず指定してください。

●-i auto｜manual　　〜《manual》

OpenTP1システム開始時および再開始時にコネクションを自動的に確立するかどうかを指定します。

auto

OpenTP1システム開始時および再開始時にコネクションを自動的に確立します。

manual

MCF起動後，コネクションを確立します。コネクションの確立は，運用コマンド（mcftactcn）の入力，またはAPI（dc_mcf_tactcn関数もしくはCBLDCMCF('TACTCN△△')）の発行で行います。

●-o old｜new

OSAS/UAプロトコルの種別を指定します。

old

旧OSAS/UAプロトコル

new

新OSAS/UAプロトコル

TMS-4V/SPのシステムと接続する場合，oldを指定してください。また，XDM/DCCM3のシステムと接続する場合，newを指定してください。

●-u ht｜ws

初期設定メッセージ（UINT）を重畳するNIF/OSI層のMPDUを指定します。

ht

UINTをInvoke（問い合わせ）MPDUに重畳します。

ws

UINTをInvoke（初期設定要求）MPDUおよびACSE層の初期設定要求に重畳します。

●-w

（オペランド）

nomltim=プロトコル監視時間　　〜〈符号なし整数〉((0，10〜65535))《60》（単位：秒）

usertimオペランド以外のOSAS/UAプロトコルで規定する監視時間を指定します（初期設定監視時間（T12），個別開局監視時間（T11），後続送信指示監視時間（T7），後続送信直後の監視時間（T9），例外報告監視時間（T11））。

0を指定した場合は，時間監視をしません。

注意事項

監視時間の精度は秒単位です。また，タイマ定義（mcfttim -t）のbtimオペランドで指定する時間の間隔でタイムアウトが発生したかどうかを監視しています。このため，このオペランドで指定した監視時間と実際にタイムアウトを検出する時間には秒単位の誤差が生じます。そのため，タイミングによっては，指定した監視時間よりも短い時間でタイムアウトすることがあります。

usertim=問い合わせ監視時間　　〜〈符号なし整数〉((0，10〜65535))《60》（単位：秒）

問い合わせメッセージ送信後，応答メッセージを受信するまでの監視時間を指定します。

0を指定した場合は，時間監視をしません。また，このオペランドは，同期型送受信監視時間（コネクション定義（mcfmuap -t）のsndrcvtimオペランドで指定）より少ない値を必ず指定してください。

注意事項

監視時間の精度は秒単位です。また，タイマ定義（mcfttim -t）のbtimオペランドで指定する時間の間隔でタイムアウトが発生したかどうかを監視しています。このため，このオペランドで指定した監視時間と実際にタイムアウトを検出する時間には秒単位の誤差が生じます。そのため，タイミングによっては，指定した監視時間よりも短い時間でタイムアウトすることがあります。

●-b

（オペランド）

bretry=yes｜no　　〜《yes》

コネクション確立時に障害が発生した場合，コネクション確立再試行をするかどうかを指定します。

yes

コネクション確立再試行をします。

no

コネクション確立再試行をしません。

bretrycnt=コネクション確立障害時の確立再試行回数　　〜〈符号なし整数〉((0〜65535))《0》（単位：回）

コネクションの確立再試行をする場合の確立再試行回数を指定します。

このオペランドを省略した場合，または0を指定した場合は，無限に確立再試行を繰り返します。

bretryオペランドでnoを指定した場合，bretrycntオペランドの指定は無効になります。

通信管理から再試行不可能な障害が通知された場合，または相手システムから確立要求に対する拒否応答を受けた場合は，再試行を中止します。

bretryint=コネクション確立障害時の確立再試行間隔　　〜〈符号なし整数〉((0〜2550))《60》（単位：秒）

コネクションの確立再試行をする場合の確立再試行間隔を指定します。0を指定した場合，障害が発生するたびにコネクションの確立再試行をします。

bretryオペランドでnoを指定した場合，bretryintオペランドの指定は無効になります。

注意事項

再試行間隔の精度は秒単位です。また，タイマ定義（mcfttim -t）のbtimオペランドで指定する時間の間隔で再試行するかどうかをチェックします。このため，このオペランドで指定した再試行間隔と実際に再試行する時間には秒単位の誤差が生じます。

●-k together｜each　　〜《together》

コネクション確立時，このコネクションのすべてのUAの開局モードを指定します。

together

コネクション確立と同時にすべてのUAを開局します（一括開局）。

each

すべてのUAを閉局した状態でコネクションを確立します（個別開局）。

●-d 端末識別子の文字数　　〜〈符号なし整数〉((0，5〜125))《5》

制御UAおよび一般UAの端末識別子の文字数を指定します。

旧OSAS/UAプロトコルを使用する場合（コネクション定義（mcftalccn）の-oオプションでoldを指定），このオプションを省略するか，5以上の値を指定してください。

新OSAS/UAプロトコルを使用する場合（コネクション定義（mcftalccn）の-oオプションでnewを指定），0を指定してください。

●-y e'制御UAの端末識別子'｜x'制御UAの端末識別子'

制御UAの端末識別子を指定します。

旧OSAS/UAプロトコルを使用する場合，このオプションを必ず指定してください。新OSAS/UAプロトコルを使用する場合，このオプションを省略してください。

この-yオプションで指定する制御UAの端末識別子の文字数は-dオプションで指定した文字数と一致しなければなりません。

なお，制御UAの端末識別子は，ほかのmcftalccn定義コマンドで指定する制御UAの端末識別子と重複して指定できません。

e　　〜〈5〜125文字の英数字記号〉

EBCDICコードに変換することを意味します。

x　　〜〈10〜250けた（偶数けた）の16進数字〉

16進数形式で指定することを意味します。

●-q x'相手システムのPSAPアドレス'　　〜〈1〜186けたの16進数字〉

相手システムのPSAPアドレスを指定します。xは，16進数形式で指定することを意味します。

相手システムのPSAPアドレスの形式を次に示します。なお，NSAP値の形式については，マニュアル「通信管理 XNF/AS NSAPアドレス概説編」，またはマニュアル「通信管理 XNF/LS 使用の手引」を参照してください。

-nオプションで指定する自システムのPSAPアドレスと，-qオプションで指定する相手システムのPSAPアドレスの組み合わせは，ほかのコネクションが使用する組み合わせと重複しないでください。

●-z

（オペランド）

slot=仮想スロット番号　　〜〈符号なし整数〉((0〜65535))

仮想スロット番号を指定します。

通信管理の定義で指定した仮想スロット番号を指定してください。

●-l 0

使用するTLクラスを指定します。

0

TLクラス0

XNF/ASを使用する場合，このオプションを必ず指定してください。XNF/LSを使用する場合，このオプションを省略してください。

●-f

（オペランド）

leopnevt=use｜nouse　　〜《nouse》

論理端末が閉塞解除したときに，状態通知イベント（COPNEVT）を起動するかどうかを指定します。

このオプションの設定値にかかわらず，コネクション確立時の自動開局によって閉塞解除した場合は，COPNEVTは起動しません。

use

論理端末の閉塞解除時にCOPNEVTを起動します。

nouse

論理端末の閉塞解除時にCOPNEVTを起動しません。

negomsg=use｜nouse　　〜《nouse》

相手システムの構成と自システムの構成が不一致（相手システムのUA＜自システムのUA）であった場合に，相手システムの構成に合わせて自システムの構成を縮退することを通知するメッセージ（KFCA13257-W）を出力するかどうかを指定します。

use

自システムの構成縮退を通知するメッセージを出力します。

nouse

自システムの構成縮退を通知するメッセージを出力しません。

●-T

（オペランド）

device=デバイス名称　　〜〈/と-を含む1〜64文字の識別子〉

通信管理プログラムが使用するデバイス名称を指定します。

XNF/LSを使用する場合，/dev/xnfw/cotsを指定してください。

XNF/ASを使用する場合，このオペランドは指定できません。

注意事項

-gオプションおよび-eオプションで指定するバッファグループ番号に対応するバッファグループ定義のmcftbufコマンドでは，1コネクション単位に次の表に示す資源が必要です。バッファグループ定義については，マニュアル「OpenTP1 システム定義」を参照してください。

バッファ種別

lengthオペランド

countオペランド

sndbuf

最大セグメント長

または

（端末識別子の文字数※＋14）×UA数の最大値　以上

（最大セグメント

分割数＋1）

×UA数　以上

rcvbuf

sndbufと同じ

同上

msgbuf

最大セグメント長以上

同上

注※

mcftalccnコマンドの-dオプションで指定します。

なお，mcftbufコマンドのlengthオペランドでは，ユーザレベルでの最大セグメント長を指定します。相手システムによって，相手システムのバッファ資源として，次に示す長さで定義する場合があるので注意してください。

（最大セグメント長）＋（プロトコルヘッダ長）

mcftalced（コネクション定義の終了）

形式

mcftalced

機能

一つのコネクション定義の終了を示します。

オプション

ありません。

mcftalcle（論理端末定義）

形式

mcftalcle -l 論理端末名称
          -t reply｜request｜send｜receive
        〔-m "〔mmsgcnt=メモリ出力メッセージ最大格納数〕
              〔dmsgcnt=ディスク出力メッセージ最大格納数〕"〕
        〔-k "〔quekind=memory｜disk〕
              〔quegrpid=キューグループID〕"〕
        〔-o "〔aj=yes｜no〕"〕

機能

論理端末に関する環境を定義します。

オプション

●-l 論理端末名称　　〜〈1〜8文字の識別子〉

OpenTP1システム内で，一意となる論理端末名称を指定します。

●-t reply｜request｜send｜receive

この論理端末の端末タイプを指定します。

reply

応答型論理端末

request

問い合わせ型論理端末

send

送信型論理端末

receive

受信型論理端末

●-m

（オペランド）

mmsgcnt=メモリ出力メッセージ最大格納数　　〜〈符号なし整数〉((0〜65535))《0》

メモリキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後UAPからの送信要求（dc_mcf_send 関数またはSEND 文）はエラーリターン（リターン値DCMCFRTN_71003またはステータスコード71003）となります。

0を指定した場合，または省略した場合，メモリキューで待ち合わせをする出力メッセージの数は指定可能な最大数（65535）となります。ただし，実際に待ち合わせをできる出力メッセージ数は動的共用メモリの容量に依存します。

dmsgcnt=ディスク出力メッセージ最大格納数　　〜〈符号なし整数〉((0〜65535))《0》

ディスクキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後UAPからの送信要求（dc_mcf_send 関数またはSEND 文）はエラーリターン（リターン値DCMCFRTN_71003またはステータスコード71003）となります。

0を指定した場合，または省略した場合，ディスクキューで待ち合わせをする出力メッセージの数は指定可能な最大数（65535）となります。ただし，実際に待ち合わせをできる出力メッセージ数はメッセージキューファイルの容量に依存します。

●-k

（オペランド）

quekind=memory｜disk　　〜《memory》

出力メッセージの割り当て先（メモリキューまたはディスクキュー）を指定します。

memory

メモリキューだけに割り当てます。

disk

ディスクキューおよびメモリキューに割り当てます。

diskを指定した場合，必ずquegrpidオペランドを指定してください。

quegrpid=キューグループID　　〜〈1〜8文字の識別子〉

ディスクキューで待ち合わせをする出力メッセージに使用するキューグループIDを指定します。MCFマネジャ定義の，mcfmqgidコマンドで指定するキューグループID（キューグループ種別はotq）のどれかを指定してください。

このquegrpidオペランドは，quekindオペランドでdiskを指定した場合だけ指定します。

●-o

（オペランド）

aj=yes｜no　　〜《yes》

メッセージ送信が完了した場合に，メッセージ送信完了ジャーナル（AJ）を取得するかどうかを指定します。

yes

メッセージ送信完了ジャーナルを取得します。

no

メッセージ送信完了ジャーナルを取得しません。

mcftalcua（UA定義）

形式

mcftalcua -u UA番号
          〔-y e'一般UAの端末識別子'｜x'一般UAの端末識別子'〕

機能

一般UAに関する環境を定義します。

オプション

●-u UA番号　　〜〈符号なし整数〉((1〜2048))

UA番号を指定します。

UA番号には，一つのコネクション（mcftalccn定義）に対して1から始まる昇順でかつ連続した番号を指定してください。

●-y e'一般UAの端末識別子'｜x'一般UAの端末識別子'

一般UAの端末識別子を指定します。

旧OSAS/UAプロトコルを使用する場合，このオプションを必ず指定してください。新OSAS/UAプロトコルを使用する場合，このオプションを省略してください。

このオプションで指定する一般UAの端末識別子の文字数は，コネクション定義（mcftalccn -d）で指定した端末識別子の文字数と一致しなければなりません。

なお，一般UAの端末識別子は，ほかのmcftalcua定義コマンドで指定する一般UAの端末識別子と重複して指定できません。

e　　〜〈5〜125文字の英数字記号）

EBCDICコードに変換することを意味します。

x　　〜〈10〜250けた（偶数けた）の16進数字〉

16進数形式で指定することを意味します。

mcftcomn（MCF通信構成共通定義）

形式

mcftcomn          ：
         〔-x "termrls=nomal｜error｜no"〕

機能

MCF終了時のコネクションの解放方法を定義します。

オプション

この定義コマンドには，ほかにもオプションがあります。詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

●-x

（オペランド）

termrls=nomal｜error｜no　　〜《no》

MCF終了時（正常終了，計画停止A，計画停止B）のコネクションの解放方法を指定します。

コネクション確立，解放処理中にMCF終了要求があった場合，異常解放（UERR送信）します。ただし，コネクション確立再試行をしている場合に，このオプションでnoを指定していると，再試行の処理を継続する場合があります。コネクション確立再試行を行う運用の場合には，このオプションでno以外を指定してください。

なお，このオプションはTP1/NET/User Agent固有です。

nomal

正常解放（UEND送信）

error

異常解放（UERR送信）

no

解放処理はしません。MCF通信プロセスの終了で解放します。

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

MCFサービスはユーザが作るシステムサービスで，OpenTP1のシステムサービスと同じ位置づけになります。

システムサービス情報定義では，MCF通信サービスを起動するための環境を定義します。ユーザがMCFサービスを作成するときに定義する必要があります。

システムサービス情報定義は，テキストエディタを使用して作成します。

システムサービス情報定義の完全パス名を次に示します。

$DCDIR/lib/sysconf/定義ファイル名

定義ファイル名には，システムサービス情報定義のmoduleオペランドで指定する実行形式プログラム名を指定します。この定義ファイル名をMCFマネジャ定義のmcfmcnameコマンドに指定します。

形式

set形式

  set module="TP1/NET/User Agentの実行形式プログラム名"
〔set mcf_prf_trace=Y|N〕

機能

プロセスサービスがMCF通信サービスを起動するための環境を定義します。

各MCF通信サービスに対して一つ，システムサービス情報定義を作成できます。また，複数のMCF通信サービスで一つのシステムサービス情報定義を共用することもできます。

説明

set形式のオペランド

●module="TP1/NET/User Agentの実行形式プログラム名"　　〜〈1〜8文字の識別子〉

MCF通信サービスを起動するための実行形式プログラム名を指定します。

MCF実行形式プログラムには，MCF通信プロセスのためのものとアプリケーション起動プロセスのためのものがあります。

MCF実行形式プログラムは，MCF通信プロセス同士，アプリケーション起動プロセス同士で共有できます。

TP1/NET/User Agentの実行形式プログラム名には，先頭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をインストールしていない場合の動作は保証できません。

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

TP1/NET/User Agentで定義したシステム構成の内容によっては，OpenTP1のシステムサービス共通情報定義を指定する必要があります。

システムサービス共通情報定義の完全パス名を次に示します。

$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/User Agentの場合，コネクションの総数を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/User AgentのMCF通信プロセスで使用できるファイル記述子の最大数は，適用OSによって次のように異なります。

OS

1プロセスで使用できるファイル記述子の最大数

AIX，HP-UX

2048

Linux

1024

TP1/NET/User AgentのMCF通信プロセスで，max_socket_descriptorsオペランドとmax_open_fdsオペランドの和が1プロセスで使用できるファイル記述子の最大数を超えている場合，TP1/NET/User Agentの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/User Agent固有の出力情報や取得タイミングについては，「付録F　MCF性能検証用トレースの取得」を参照してください。

オペランドの指定に誤りがある場合は，OpenTP1開始処理中にOpenTP1が異常終了します。

このオペランドの使用は，TP1/Extension 1をインストールしていることが前提です。TP1/Extension 1をインストールしていない場合の動作は保証できません。

注意事項

max_socket_descriptorsオペランドの指定値とmax_open_fdsオペランドの指定値の合計は，OSのシステムパラメタで指定する「1プロセスでオープンできるファイル数」を超えないようにする必要があります。システム定義の変更などによって，上記のオペランドの指定値の合計が増加する場合は，OSのシステムパラメタの指定を変更してください。

MCF定義オブジェクトの生成

MCF定義オブジェクト生成ユティリティでは，MCFの定義ファイルの構文のチェックと定義オブジェクトファイルへの変換をします。ここでは，MCF定義オブジェクト生成ユティリティの起動コマンドについて説明します。

形式

mcfosua -i 〔パス名〕入力ファイル名
        -o 〔パス名〕出力オブジェクトファイル名
      〔-r ｛no｜rep｝〕

機能

MCF通信構成定義のTP1/NET/User Agentのプロトコル固有定義ファイルの構文をチェックし，定義オブジェクトファイルを作成します。

ただし，開始から再開始の間に定義オブジェクトファイルを変更しないでください。変更した場合，再開始時に正常に動作しないことがあるためご注意ください。

TP1/NET/User Agentのプロトコル固有定義オブジェクトファイル以外の生成ユティリティについては，マニュアル「OpenTP1 システム定義」を参照してください。

オプション

●-i 〔パス名〕入力ファイル名　　〜〈パス名〉〈1〜8文字の識別子〉

定義ソースが格納されているファイル名を指定します。

●-o 〔パス名〕出力オブジェクトファイル名　　〜〈パス名〉〈1〜8文字の英数字〉

定義オブジェクトを格納するファイル名を指定します。

次に示す条件を満たした名称を指定してください。

先頭3文字が_muで始まる最大8文字の名称

通信サービス定義（mcfmcname -s）のmcfsvnameオペランドで指定するMCF通信サーバ名

●-r ｛no｜rep｝　　〜《no》

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

no

定義オブジェクトファイルを上書きしないで，KFCA10332-Eメッセージを出力します。

rep

定義オブジェクトファイルを上書きします。

自システムの通信管理プログラムと関連づける内容

TP1/NET/User Agentの定義には，通信管理プログラムと関連づける項目があります。

通信管理プログラムがXNF/LSの場合（mcftalccn -m "mode=tli"）

相手システムとの接続時に使用したい機能によって，必要となる通信管理プログラムは次のとおり異なります。

OSI拡張機能を使用する場合

XNF/LS/BASE

XNF/LS/OSI Extension

自局IPアドレス指定機能を使用する場合

XNF/LS/BASE

XNF/LS/OSI Extension

XNF/LS/OSI Extension/Cluster

OSI拡張高信頼化機能を使用する場合

XNF/LS/BASE

XNF/LS/OSI Extension

XNF/LS/Host Adaptor

通信管理プログラムの詳細については，マニュアル「通信管理 XNF/LS 使用の手引」を参照してください。

どの通信管理プログラムの機能を使用する場合でも，コネクション定義（mcftalccn）で指定する定義の内容と，XNF/LSのシステム定義時に指定する定義の内容とを関連づける必要があります。関連づける必要のある項目を次に示します。

コネクション数

Tセレクタ値の種類数※

仮想スロット番号

注※

例えば，次の図に示すように三つのmcftalccnコマンドを定義した場合は，Tセレクタ値の種類数である2をXNF/LSの通信構成定義と関連づけます。

関連づける項目は，使用する機能によって異なります。使用する機能別に，次に示します。

OSI拡張機能を使用する場合

OSI拡張機能を使用する場合は，次の表に示すとおりに定義を関連づけてください。

表6‒3　OSI拡張機能を使用する場合のXNF/LSの定義との関連づけ

項番

TP1/NET/User Agentでの定義内容

XNF/LSでの定義内容

コマンド

内容

定義文

オペランド

1

mcftalccn

コネクション数（定義数）

configuration

max_TPTCP_connection

2

Tセレクタ値の種類数（-nオプションのTセレクタ値）

max_TSAP

3

仮想スロット番号（-zオプションのslotオペランド）

TPTCP_define

VASS

自局IPアドレス指定機能を使用する場合

自局IPアドレス指定機能を使用する場合は，次の表に示すとおりに定義を関連づけてください。

表6‒4　自局IPアドレス指定機能を使用する場合のXNF/LSの定義との関連づけ

項番

TP1/NET/User Agentでの定義内容

XNF/LSでの定義内容

コマンド

内容

定義文

オペランド

1

mcftalccn

コネクション数（定義数）

configuration

max_TPTCP_connection

2

Tセレクタ値の種類数（-nオプションのTセレクタ値）

max_TSAP

3

仮想スロット番号（-zオプションのslotオペランド）

TPTCP_slot

VASS

OSI拡張高信頼化機能を使用する場合

OSI拡張高信頼化機能を使用する場合は，次の表に示すとおりに定義を関連づけてください。

表6‒5　OSI拡張高信頼化機能を使用する場合のXNF/LSの定義との関連づけ

項番

TP1/NET/User Agentでの定義内容

XNF/LSでの定義内容

コマンド

内容

定義文

オペランド

1

mcftalccn

コネクション数（定義数）

configuration

max_TPTCP_connection

2

Tセレクタ値の種類数（-nオプションのTセレクタ値）

max_TSAP

3

仮想スロット番号（-zオプションのslotオペランド）

TPTCP_VC

VASS

通信管理プログラムがXNF/ASの場合（mcftalccn -m "mode=xnfas"）

相手システムとの接続時に使用したい機能によって，使用する通信管理プログラムは次のとおり異なります。

OSI拡張機能を使用する場合

XNF/AS/BASE

XNF/AS/OSI Extension

自局IPアドレス指定機能を使用する場合

XNF/AS/BASE

XNF/AS/OSI Extension

XNF/AS/OSI Extension/Cluster

OSI拡張高信頼化機能を使用する場合

XNF/AS/BASE

XNF/AS/OSI Extension

XNF/AS/Host Adaptor

通信管理プログラムの詳細については，マニュアル「通信管理 XNF/AS 解説・運用編」およびマニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

どの通信管理プログラムの機能を使用する場合でも，コネクション定義（mcftalccn）で指定する定義の内容と，XNF/ASのシステム定義時に指定する定義の内容とを関連づける必要があります。関連づける必要のある項目を次に示します。

コネクション数

Tセレクタ値の種類数※

仮想スロット番号

注※

例えば，次の図に示すように三つのmcftalccnコマンドを定義した場合は，Tセレクタ値の種類数である2をXNF/ASの通信構成定義と関連づけます。

関連づける項目は，使用する機能によって異なります。使用する機能別に，次に示します。

OSI拡張機能を使用する場合

OSI拡張機能を使用する場合は，次の表に示すとおりに定義を関連づけてください。

表6‒6　OSI拡張機能を使用する場合のXNF/ASの定義との関連づけ

項番

TP1/NET/User Agentでの定義内容

XNF/ASでの定義内容

コマンド

内容

定義文

オペランド

1

mcftalccn

コネクション数（定義数）

configuration

max_OSI_association

max_TPTCP_connection

2

Tセレクタ値の種類数（-nオプションのTセレクタ値）

max_TSAP

3

仮想スロット番号（-zオプションのslotオペランド）

TPTCP_define

VASS

自局IPアドレス指定機能を使用する場合

自局IPアドレス指定機能を使用する場合は，次の表に示すとおりに定義を関連づけてください。

表6‒7　自局IPアドレス指定機能を使用する場合のXNF/ASの定義との関連づけ

項番

TP1/NET/User Agentでの定義内容

XNF/ASでの定義内容

コマンド

内容

定義文

オペランド

1

mcftalccn

コネクション数（定義数）

configuration

max_OSI_association

max_TPTCP_connection

2

Tセレクタ値の種類数（-nオプションのTセレクタ値）

max_TSAP

3

仮想スロット番号（-zオプションのslotオペランド）

TPTCP_slot

VASS

OSI拡張高信頼化機能を使用する場合

OSI拡張高信頼化機能を使用する場合は，次の表に示すとおりに定義を関連づけてください。

表6‒8　OSI拡張高信頼化機能を使用する場合のXNF/ASの定義との関連づけ

項番

TP1/NET/User Agentでの定義内容

XNF/ASでの定義内容

コマンド

内容

定義文

オペランド

1

mcftalccn

コネクション数（定義数）

configuration

max_OSI_association

max_TPTCP_connection

2

Tセレクタ値の種類数（-nオプションのTセレクタ値）

max_TSAP

3

仮想スロット番号（-zオプションのslotオペランド）

TPTCP_VC

VASS

相手システムの通信定義と関連づける内容

TMS-4V/SPのシステムとの接続

TMS-4V/SPのシステムと接続してTP1/NET/User Agentを使用する場合のネットワーク構成の例を次の図に示します。

図6‒3　ネットワーク構成の例（TMS-4V/SPのシステムと接続する場合）

TP1/NET/User Agentは，図6-3の例のような場合，XNF，およびTMS-4V/SPと定義を関連づける必要があります。

相手システムがXNFとTMS-4V/SPの場合のTP1/NET/User Agentの定義と関連づける内容を示します。

XNFの定義と関連づける内容

TP1/NET/User Agentのシステム定義とXNFの定義との関係を以降の図に示します。XNFの定義については，マニュアル「XNF TCP/IP接続機能 XNF/TCP 定義とコマンド」を参照してください。

図6‒4　XNFの定義との関係（OSI拡張機能または自局IPアドレス指定機能を使用する場合）

図6‒5　XNFの定義との関係（OSI高信頼化機能を使用する場合）

TMS-4V/SPシステム定義と関連づける内容

TP1/NET/User Agentのシステム定義とTMS-4V/SPシステム定義との関係を次の図に示します。TMS-4V/SPの定義については，マニュアル「TMS-4V/SP OSAS/AP間通信サービス-UA OSAS/UA/4VSP」を参照してください。

図6‒6　TMS-4V/SPシステム定義との関係

XDM/DCCM3のシステムとの接続

XDM/DCCM3のシステムと接続してTP1/NET/User Agentを使用する場合のネットワーク構成の例を次の図に示します。

図6‒7　ネットワーク構成の例（XDM/DCCM3のシステムと接続する場合）

TP1/NET/User Agentは，図6-7の例のような場合，XNFおよびXDM/DCCM3と定義を関連づける必要があります。

相手システムがXNF，およびXDM/DCCM3の場合のTP1/NET/User Agentの定義と関連づける内容を示します。

XNFの定義と関連づける内容

TP1/NET/User Agentのシステム定義とXNFの定義との関係については，図6-4と図6-5を参照してください。

XDM/DCCM3システム定義と関連づける内容

TP1/NET/User Agentのシステム定義とXDM/DCCM3システム定義との関係を次の図に示します。XDM/DCCM3の定義については，マニュアル「OSIアプリケーション共通機能/AP間通信サービス/DCCM3 OSAS/UA2/DCCM3」を参照してください。

図6‒8　XDM/DCCM3システム定義との関係

OpenTP1システムの変更に影響する定義

OpenTP1システムの変更に伴って見直しが必要となる定義およびOpenTP1ファイルについて説明します。

IPアドレスの変更

IPアドレスを変更する場合に，見直しが必要な定義および変更手順について説明します。

IPアドレスを変更する場合に見直しが必要な定義

IPアドレスを変更する場合，見直す必要のある定義の一覧と発生する条件を次の表に示します。

表6‒9　IPアドレスを変更する場合に見直しが必要な定義の一覧

定義ファイル名

定義

見直しが必要な条件

MCF通信構成定義

mcftalccn -q※1

OSI拡張機能を使用する場合（OSI拡張高信頼化機能を除く）

XNFの構成定義文

TPTCP_slotのIP_address※2

自局IPアドレス指定機能を使用する場合

注※1

OSI拡張機能を使用する場合，NSAPアドレスにIPアドレスが含まれています。NSAPアドレスの形式については，マニュアル「通信管理 XNF/AS NSAPアドレス概説編」またはマニュアル「通信管理 XNF/LS 使用の手引」を参照してください。

注※2

詳細については，マニュアル「通信管理 XNF/AS 構成定義編」またはマニュアル「通信管理 XNF/LS 使用の手引」を参照してください。

IPアドレスの変更手順

IPアドレスは，次の手順で変更してください。

OpenTP1を正常停止します。

XNF/ASまたはXNF/LSを停止します。

MCF通信構成定義およびXNFの構成定義文について，変更前のIPアドレスをgrepコマンドを使用して検索します。

検索の結果，変更前のIPアドレスが見つかった場合には，変更します。

MCF通信構成定義を変更した場合，MCF通信構成定義の定義オブジェクトファイルを再作成します。XNFの構成定義文を変更した場合，ゼネレーションを行います。

コネクション（論理端末）の追加

コネクション（論理端末）を追加する場合に見直す必要のある定義の一覧，および再見積もりが発生する条件を次の表に示します。

表6‒10　コネクション（論理端末）を追加する場合に見直しが必要な定義の一覧

定義ファイル名

定義

再見積もりが発生する条件

システム環境定義

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ファイルの一覧，および再見積もりが発生する条件を次の表に示します。

表6‒11　コネクション（論理端末）を追加する場合に見直しが必要なOpenTP1ファイルの一覧

OpenTP1ファイル

再見積もりが発生する条件

ステータスファイル

次に示すどれかの条件の場合，再見積もりが必要

メッセージ出力通番を使用する場合

拡張予約定義を定義している場合

状態を引き継ぐ論理端末が増える場合

メッセージキューファイル

入力キューまたは出力キューにディスクキューを割り当てていて，同時に送受信するメッセージ数が増加する場合

また，TP1/NET/User Agentの「リリースノート」を参照し，MCF通信プロセスが使用するローカルメモリのメモリ所要量も見直してください。

定義例

ここでは，次に示す2種類の定義例を示します。

新OSAS/UAプロトコルを使用する場合の定義例

旧OSAS/UAプロトコルを使用する場合の定義例

新OSAS/UAプロトコルを使用する場合の定義例

新OSAS/UAプロトコルを使用した場合に，TP1/NET/User Agentを使用したシステム定義の例を示します。

TP1/NET/User Agentのシステム構成例を次の図に，この構成に沿った定義例をそのあとに示します。

なお，この定義のコーディング例を次のファイルで提供しています。

適用OSがAIX，HP-UXの場合

/BeTRAN/examples/mcf/UserAgent/conf/com_c2

/BeTRAN/examples/mcf/UserAgent/conf/com_d2

適用OSがLinuxの場合

/opt/OpenTP1/examples/mcf/UserAgent/conf/com_c2

/opt/OpenTP1/examples/mcf/UserAgent/conf/com_d2

図6‒9　TP1/NET/User Agentのシステム構成例（新OSAS/UAプロトコル使用時）

コーディング例（新OSAS/UAプロトコルでXNF/AS使用時のTP1/NET/User Agentの共通定義）

 ###########################################################
 ### MCF通信構成定義 共通定義                            ###
 ###########################################################
 #
 ### MCF環境定義
 mcftenv    -s      01                                     ¥
            -a      _aplfil1
 #
 ### MCF通信構成共通定義
 mcftcomn
 #
 ### トレース環境定義
 mcfttrc
 #
 ### バッファグループ定義（メッセージ送信バッファグループ）
 mcftbuf    -g      "groupno=1                             ¥
                    length=4096                            ¥
                    count=256"
 #
 ### バッファグループ定義（メッセージ受信バッファグループ）
 mcftbuf    -g      "groupno=2                             ¥
                    length=4096                            ¥
                    count=256"
 #
 ### バッファグループ定義（メッセージ編集用バッファグループ）
 mcftbuf    -g      "groupno=3                             ¥
                    length=4096                            ¥
                    count=256"

コーディング例（新OSAS/UAプロトコルでXNF/AS使用時のTP1/NET/User Agentのプロトコル固有定義）

 ############################################################
 ### MCF通信構成定義 TP1/NET/User Agentプロトコル固有定義###
 ############################################################
 #
 ### コネクション定義の開始（coua01）
 mcftalccn  -c  coua01                                      ¥
            -p  ua                                          ¥
            -n  x'0a81008202001283020012'                   ¥
            -g  "sndbuf=1                                   ¥
                rcvbuf=2"                                   ¥
            -e  "msgbuf=3                                   ¥
                count=5"                                    ¥
            -m  "mode=xnfas"※1                              ¥
            -i  auto                                        ¥
            -o  new                                         ¥
            -u  ht                                          ¥
            -b  "bretrycnt=10"                              ¥
            -k  each                                        ¥
            -d  0                                           ¥
      -q  x'16810082008302ffff840c540072872203192066024001' ¥
            -z  "slot=3"                                    ¥
            -l  0※2
 ### 論理端末/UA定義（reply型：leid11）
    mcftalcle  -l  leid11                                   ¥
               -t  reply                                    ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  1
 ### 論理端末/UA定義（reply型：leid12）
    mcftalcle  -l  leid12                                   ¥
               -t  reply                                    ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  2
 ### 論理端末/UA定義（reply型：leid13）
    mcftalcle  -l  leid13                                   ¥
               -t  reply                                    ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  3
 ### 論理端末/UA定義（request型：leid14）
    mcftalcle  -l  leid14                                   ¥
               -t  request                                  ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  4
 ### 論理端末/UA定義（request型：leid15）
    mcftalcle  -l  leid15                                   ¥
               -t  request                                  ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  5
 ### コネクション定義の終了（coua01）
    mcftalced

注※1

XNF/AS用に提供するファイルの内容です。

XNF/LSで使用する場合は次のように変更してください。

-m  "mode=tli"

注※2

XNF/AS用に提供するファイルの内容です。

XNF/LSで使用する場合は次のように変更してください。

-T  "device=/dev/xnfw/cots"

旧OSAS/UAプロトコルを使用する場合の定義例

旧OSAS/UAプロトコルを使用した場合に，TP1/NET/User Agentを使用したシステム定義の例を示します。

TP1/NET/User Agentのシステム構成例を次の図に，この構成に沿った定義例をそのあとに示します。

なお，この定義のコーディング例を次のファイルで提供しています。

適用OSがAIX，HP-UXの場合

/BeTRAN/examples/mcf/UserAgent/conf/com_c1

/BeTRAN/examples/mcf/UserAgent/conf/com_d1

適用OSがLinuxの場合

/opt/OpenTP1/examples/mcf/UserAgent/conf/com_c1

/opt/OpenTP1/examples/mcf/UserAgent/conf/com_d1

図6‒10　TP1/NET/User Agentのシステム構成例（旧OSAS/UAプロトコル使用時）

コーディング例（旧OSAS/UAプロトコルでXNF/AS使用時のTP1/NET/User Agentの共通定義）

 ############################################################
 ### MCF通信構成定義 共通定義                             ###
 ############################################################
 #
 ### MCF環境定義
 mcftenv    -s      01                                     ¥
            -a      _aplfil1
 #
 ### MCF通信構成共通定義
 mcftcomn
 #
 ### トレース環境定義
 mcfttrc
 #
 ### バッファグループ定義（メッセージ送信バッファグループ）
 mcftbuf    -g      "groupno=1                             ¥
                    length=4096                            ¥
                    count=256"
 #
 ### バッファグループ定義（メッセージ受信バッファグループ）
 mcftbuf    -g      "groupno=2                             ¥
                    length=4096                            ¥
                    count=256"
 #
 ### バッファグループ定義（メッセージ編集用バッファグループ）
 mcftbuf    -g      "groupno=3                             ¥
                    length=4096                            ¥
                    count=256"

コーディング例（旧OSAS/UAプロトコルでXNF/AS使用時のTP1/NET/User Agentのプロトコル固有定義）

 ############################################################
 ### MCF通信構成定義 TP1/NET/User Agentプロトコル固有定義###
 ############################################################
 #
 ### コネクション定義の開始（coua01）
 mcftalccn  -c  coua01                                      ¥
            -p  ua                                          ¥
            -n  x'0a81008202001283020012'                   ¥
            -g  "sndbuf=1                                   ¥
                rcvbuf=2"                                   ¥
            -e  "msgbuf=3                                   ¥
                count=5"                                    ¥
            -m  "mode=xnfas"※1                              ¥
            -i  auto                                        ¥
            -o  old                                         ¥
            -u  ht                                          ¥
            -b  "bretrycnt=10"                              ¥
            -k  each                                        ¥
            -d  5                                           ¥
            -y  e'T1000'                                    ¥
      -q  x'16810082008302ffff840c540072872203192066024001' ¥
            -z  "slot=3"                                    ¥
            -l  0※2
 ### 論理端末/UA定義（reply型：leid11）
    mcftalcle  -l  leid11                                   ¥
               -t  reply                                    ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  1                                    ¥
                   -y  e'T1001'
 ### 論理端末/UA定義（reply型：leid12）
    mcftalcle  -l  leid12                                   ¥
               -t  reply                                    ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  2                                    ¥
                   -y  e'T1002'
 ### 論理端末/UA定義（reply型：leid13）
    mcftalcle  -l  leid13                                   ¥
               -t  reply                                    ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  3                                    ¥
                   -y  e'T1003'
 ### 論理端末/UA定義（request型：leid14）
    mcftalcle  -l  leid14                                   ¥
               -t  request                                  ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  4                                    ¥
                   -y  e'T1004'
 ### 論理端末/UA定義（request型：leid15）
    mcftalcle  -l  leid15                                   ¥
               -t  request                                  ¥
               -m  "mmsgcnt=20                              ¥
                   dmsgcnt=20"                              ¥
               -k  "quekind=disk                            ¥
                   quegrpid=otqgrp01"                       ¥
               -o  "aj=no"
        mcftalcua  -u  5                                    ¥
                   -y  e'T1005'
 ### コネクション定義の終了（coua01）
    mcftalced

注※1

XNF/AS用に提供するファイルの内容です。

XNF/LSで使用する場合は次のように変更してください。

-m  "mode=tli"

注※2

XNF/AS用に提供するファイルの内容です。

XNF/LSで使用する場合は次のように変更してください。

-T  "device=/dev/xnfw/cots"

7　運用コマンド

この章では，TP1/NET/User Agentで使用する運用コマンドについて説明します。

TP1/NET/User Agentの運用コマンド

ここでは，TP1/NET/User Agentに関係のあるオプションについてだけ説明しています。ほかのオプション，運用コマンドの入力方法，およびその他の運用コマンドについては，マニュアル「OpenTP1 運用と操作」を参照してください。

TP1/NET/User Agentで使用する運用コマンドの一覧を，次の表に示します。

表7‒1　TP1/NET/User Agentの運用コマンド

機能

コマンド名称

定義中組み込み

オフライン中に実行

オンライン中に実行

UAPから実行

コネクション管理

コネクションの確立

mcftactcn

×

×

○

○

コネクションの解放

mcftdctcn

×

×

○

○

コネクションの状態表示

mcftlscn

×

×

○

○

論理端末管理

論理端末の閉塞解除

mcftactle

×

×

○

○

論理端末の閉塞

mcftdctle

×

×

○

○

論理端末の状態表示

mcftlsle

×

×

○

○

（凡例）

○：組み込み，または実行ができます。

×：組み込み，または実行ができません。

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は，一度に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

ヘルプメッセージ

標準出力

KFCA13130-E

TP1/NET/User Agentでエラーが発生しました。

標準エラー出力

KFCA13132-E

コネクション確立済みのため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13133-E

コネクション確立処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13134-E

コネクション解放処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13143-E

コネクション確立が着呼指定のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftactcnコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftactle（論理端末の閉塞解除）

形式

mcftactle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
            -l 論理端末名称

機能

論理端末の閉塞を解除します。

オプション

●-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に対応する論理端末の名称を指定します。

論理端末名称は，一度に8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定するときは，引用符（"）で囲んで，論理端末名称と論理端末名称との間を空白で区切ります。同一論理端末名称は，重複して指定できません。

また，論理端末名称は，*を使って一括指定ができます。一括指定と一括指定以外の論理端末名称を混在して指定できません。一括指定するときは，引用符（"）で囲んで指定します。

*：すべての論理端末の閉塞を解除します。

先行文字列*：先行文字列で始まるすべての論理端末の閉塞を解除します。

〈複数指定の例〉　len1，len2，len3を指定する場合

-l "len1△len2△len3"

〈一括指定の例〉　lenで始まるすべての論理端末を指定する場合

-l "len*"

出力メッセージ

出力メッセージ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

ヘルプメッセージ

標準出力

KFCA13131-E

コネクションが未確立のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13136-E

構成合わせで使用不可となった論理端末のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13137-E

論理端末が閉塞解除済みのため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13138-E

論理端末が閉塞解除処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13139-E

論理端末が閉塞処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13142-E

論理端末が相手システムからの受信拒否解除通知待ちのため，運用コマンドは受け付けられません。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftactleコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftdctcn（コネクションの解放）

形式

mcftdctcn 〔-s MCF通信プロセス識別子〕 -c コネクションID 〔-f〕

機能

コネクションを解放します。

このコマンド入力時，該当するコネクションに仕掛り中のUAがある場合，このコマンド処理は異常終了します。仕掛り中のUAがないことを確認してからコネクションを正常解放してください。

コマンド入力時に送信中であったメッセージの扱いについては，「9.1　障害の種類と対応処理」を参照してください。なお，コネクションが強制的に解放されても，UAPからの送信要求はできます。

オプション

●-s MCF通信プロセス識別子　　〜〈数字（0〜9），a〜f〉((01〜ef))

処理対象のコネクションを制御するMCF通信サービスのMCF通信プロセス識別子を指定します。

MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCF通信サービスに対して，mcftdctcnコマンドを実行します。したがって，MCF通信サービスを検索するオーバヘッドが，運用コマンドの処理に加わります。

MCF通信サービスが多い構成や運用コマンドを多数入力する運用を行う場合は，-sオプションで，MCF通信プロセス識別子を指定する運用設計を行ってください。

●-c コネクションID　　〜〈1〜8文字の識別子〉

解放するコネクションのコネクションIDを指定します。

コネクションIDは，一度に8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定するときは，引用符（"）で囲んで，コネクションIDとコネクションIDとの間を空白で区切ります。同一コネクションIDは，重複して指定できません。

また，コネクションIDは，*を使って一括指定ができます。一括指定と一括指定以外のコネクションIDを混在して指定できません。一括指定するときは，引用符（"）で囲んで指定します。

*：すべてのコネクションを解放します。

先行文字列*：先行文字列で始まるすべてのコネクションを解放します。

〈複数指定の例〉　cnn1，cnn2，cnn3を指定する場合

-c "cnn1△cnn2△cnn3"

〈一括指定の例〉　cnnで始まるすべてのコネクションを指定する場合

-c "cnn*"

●-f

該当するコネクションを強制的に解放します。

このオプションを指定すると，該当するコネクションが仕掛り中の場合，仕掛り中の処理を終了しないで無条件に解放します。

このオプションの指定を省略すると，該当するコネクションが仕掛り中の場合，このコマンドは異常終了します。

出力メッセージ

出力メッセージ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

ヘルプメッセージ

標準出力

KFCA13131-E

コネクションが未確立のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13133-E

コネクション確立処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13134-E

コネクション解放処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13141-E

論理端末が仕掛り中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

mcftdctcnコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

mcftdctle（論理端末の閉塞）

形式

mcftdctle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
            -l 論理端末名称

機能

論理端末を閉塞します。

コマンド入力時に送信中であったメッセージの扱いについては，「9.1　障害の種類と対応処理」を参照してください。なお，論理端末が閉塞されても，UAPからの送信要求はできます。

オプション

●-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に対応する論理端末の名称を指定します。

論理端末名称は，一度に8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定するときは，引用符（"）で囲んで，論理端末名称と論理端末名称との間を空白で区切ります。同一論理端末名称は，重複して指定できません。

また，論理端末名称は，*を使って一括指定ができます。一括指定と一括指定以外の論理端末名称を混在して指定できません。一括指定するときは，引用符（"）で囲んで指定します。

*：すべての論理端末を閉塞します。

先行文字列*：先行文字列で始まるすべての論理端末を閉塞します。

〈複数指定の例〉　len1，len2，len3を指定する場合

-l "len1△len2△len3"

〈一括指定の例〉　lenで始まるすべての論理端末を指定する場合

-l "len*"

出力メッセージ

出力メッセージ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

ヘルプメッセージ

標準出力

KFCA13131-E

コネクションが未確立のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13135-E

論理端末は閉塞済みのため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13136-E

構成合わせで使用不可となった論理端末のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13138-E

論理端末が閉塞解除処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA13139-E

論理端末が閉塞処理中のため，運用コマンドは受け付けられません。

標準エラー出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

注意事項

受信仕掛り中に運用コマンド（mcftdctle）を入力した場合，受信仕掛り中のメッセージを破棄します。以降の受信メッセージは入力キューに登録しません。

送信仕掛り中に運用コマンド（mcftdctle）を入力した場合は，送信処理が中断されます。UAPからの送信メッセージは，出力キュー上に格納されます。

mcftdctleコマンドが正常に受け付けられたかどうかは，コマンドのリターン値で判断しないでください。コマンドが出力したメッセージの内容で判断してください。

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は，一度に8個まで指定できます。多数入力する運用を行う場合は，次に示す複数指定または一括指定を使用して，一つの運用コマンドで行う並列処理数を増やし，運用コマンド入力数を減らすように運用設計を行ってください。

複数指定するときは，引用符（"）で囲んで，コネクションIDとコネクションIDとの間を空白で区切ります。同一コネクションIDは，重複して指定できません。

また，コネクションIDは，*を使って一括指定ができます。一括指定と一括指定以外のコネクションIDを混在して指定できません。一括指定するときは，引用符（"）で囲んで指定します。

*：すべてのコネクションの状態を表示します。

先行文字列*：先行文字列で始まるすべてのコネクションの状態を表示します。

〈複数指定の例〉　cnn1，cnn2，cnn3を指定する場合

-c "cnn1△cnn2△cnn3"

〈一括指定の例〉　cnnで始まるすべてのコネクションを指定する場合

-c "cnn*"

●-d

コネクションの状態と該当するコネクションに対応する論理端末の情報を表示します。

このオプションの指定を省略すると，コネクションの状態だけを表示します。

出力形式

mmm cccccccc ppp sssss dddd
    llllllll ttt uuuu xxxx

注

-dオプションを指定しないでmcftlscnコマンドを実行した場合は，「mmm cccccccc ppp sssss dddd」の行だけ出力されます。

mmm：MCF識別子

cccccccc：コネクションID

ppp：プロトコル種別

UA…OSAS/UAプロトコル

sssss：コネクションの状態

ACT…確立

ACT/B…確立処理中

DCT…解放

DCT/B…解放処理中

dddd：詳細ステータス（保守情報）

llllllll：論理端末名称

ttt：論理端末タイプ

REQ…request型

RLY…reply型

SND…send型

RCV…receive型

uuuu：UA番号

xxxx：UAステータス（保守情報）

出力メッセージ

出力メッセージ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

ヘルプメッセージ

標準出力

KFCA13118-E

バッファ取得に失敗しました。

メッセージログファイル

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

KFCA16429-I

付加情報を示します。

標準出力

mcftlsle（論理端末の状態表示）

形式

mcftlsle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
           -l 論理端末名称 〔-q〕

機能

論理端末の状態を標準出力に出力します。

オプション

●-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〕
    SYNC xxxxxxxxxx yyyyyyyyyy zzzzzzzzzz
      IO     ：         ：         ：
    PRIO     ：         ：         ：
    NORM     ：         ：         ：
    iii ooo

mmm：MCF識別子

llllllll：論理端末名称

sss：論理端末の状態

ACT…閉塞解除状態

DCT…閉塞状態

tttt：論理端末のテストモード状態（TP1/Message Control/Testerの使用時だけ表示）

TEST…テストモード

空白…非テストモード

SYNC：同期型メッセージ

IO：非同期型問い合わせ応答メッセージ

PRIO：非同期型一方送信メッセージ（優先）

NORM：非同期型一方送信メッセージ（一般）

xxxxxxxxxx：未送信メッセージ数

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

指定したコネクションには未接続の論理端末名称が指定されています。

標準エラー出力

KFCA10505-I

ヘルプメッセージ

標準出力

KFCA16402-E

RPC障害が発生しました。

標準エラー出力

8　組み込み方法

この章では，TP1/NET/User AgentをOpenTP1システムに組み込む方法について説明します。

8.1　TP1/NET/User Agentの組み込みの流れ

TP1/NET/User AgentをOpenTP1システムに組み込むときの作業の流れを示します。

MCFメイン関数の作成

TP1/NET/User Agentを起動するためには，MCFメイン関数をコーディングし，コンパイル，およびリンケージしておく必要があります。詳細は，「8.2　MCFメイン関数の作成」を参照してください。

MCFサービス名の登録

TP1/NET/User Agentを実行するために，MCFサービス名をシステムサービス構成定義で定義しておく必要があります。

MCFサービス名はMCFマネジャ定義オブジェクトファイル名と一致させてください。

詳細は，マニュアル「OpenTP1 システム定義」を参照してください。

システムサービス情報定義ファイルの作成

システムサービス情報定義ファイルをテキストエディタで作成します。作成するファイルのパス名は，「$DCDIR/lib/sysconf/システムサービス情報定義ファイル名」です。ファイルの定義形式については，「システムサービス情報定義」を参照してください。

定義オブジェクトファイルの生成

OpenTP1のネットワークコミュニケーション定義の各ソースファイルから定義オブジェクトファイルを生成します。詳細は，「8.3　定義オブジェクトファイルの生成」を参照してください。

8.2　MCFメイン関数の作成

TP1/NET/User Agentは，OpenTP1プロセスサービスによって起動されます。

TP1/NET/User Agentを起動するためには，ユーザがMCFメイン関数を作成し，コンパイル，およびリンケージを行ってTP1/NET/User Agentの実行形式プログラムを作成する必要があります。リンケージには，mcfpluaコマンドを使用します。

MCFメイン関数では，スタート関数（dc_mcf_svstart）を呼び出します。UOCを使用する場合は，MCFメイン関数でUOCの関数アドレスを指定してください。

UOCは，MCFメイン関数と同じ言語（ANSI C，C++またはK&R版 C）で作成してください。

MCFメイン関数のコーディング概要を図8-1と図8-2に示します。また，ディレクトリへの組み込み方法を図8-3に示します。

なお，これらのコーディング例は，次のファイルで提供しています。

適用OSがAIX，HP-UXの場合

/BeTRAN/examples/mcf/UserAgent/cmlib/ansi/com.c

/BeTRAN/examples/mcf/UserAgent/cmlib/c/com.c

適用OSがLinuxの場合

/opt/OpenTP1/examples/mcf/UserAgent/cmlib/ansi/com.c

/opt/OpenTP1/examples/mcf/UserAgent/cmlib/c/com.c

図8‒1　MCFメイン関数のコーディング概要（ANSI C，C++の場合）

図8‒2　MCFメイン関数のコーディング概要（K&R版 Cの場合）

TP1/NET/User Agentで提供するヘッダファイルを取り込みます。

使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。

UOCをまったく使用しない場合，このコーディングは必要ありません。

UOCテーブルをextern宣言します。UOCを使用する場合，必ずこのとおりにコーディングしてください。

UOCをまったく使用しない場合，このコーディングは必要ありません。

各UOC関数のアドレスを，次に示すシステム提供変数に設定します。使用するUOCだけコーディングしてください。

dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス*/
dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス*/

UOCをまったく使用しない場合，このコーディングは必要ありません。

スタート関数を呼び出します。MCFメイン関数には必ずコーディングしてください。

スタート関数を呼び出したあとは，MCFメイン関数に制御が戻りません。そのため，スタート関数のあとにコーディングした処理は実行されませんので注意してください。

図8‒3　MCFメイン関数のディレクトリへの組み込み方法の概要

注※1

UOCを使用しない場合は，必要ありません。

注※2

mcfpluaコマンドでリンケージします。

mcfpluaコマンドの詳細については，TP1/NET/User Agentの「リリースノート」を参照してください。

注※3

TP1/NET/User Agentの実行形式プログラム名は，先頭がmcfuで始まる8文字以内の名称にしてください。

8.3　定義オブジェクトファイルの生成

定義オブジェクトファイルを次の手順で生成します。

ただし，開始から再開始の間に定義オブジェクトファイルを変更しないでください。変更した場合，再開始時に正常に動作しない場合がありますのでご注意ください。

テキストエディタを使用して，MCFの定義ファイルから，次に示す定義ソースファイルを作成します。

MCFマネジャ定義ソースファイル

MCF通信構成定義の共通定義ソースファイル

MCF通信構成定義のTP1/NET/User Agentのプロトコル固有定義ソースファイル

MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティを使用して，定義ソースファイルから，次に示すオブジェクトファイルを作成します。

MCFマネジャ定義オブジェクトファイル

MCF通信構成定義の共通定義オブジェクトファイル

MCF通信構成定義のTP1/NET/User Agentのプロトコル固有定義オブジェクトファイル

MCFアプリケーション定義オブジェクトファイル

MCF定義結合ユティリティを使用して，MCF通信構成定義の共通定義とプロトコル固有定義のオブジェクトファイルを結合し，次に示すオブジェクトファイルを作成します。

MCF 通信構成定義オブジェクトファイル

定義オブジェクトファイルの作成方法の概要を次の図に示します。

図8‒4　定義オブジェクトファイルの作成方法の概要

注※1

次に示すコマンドで生成します。

mcfXXXX△-i△〔パス名〕入力ファイル名
       △-o△〔パス名〕出力オブジェクトファイル名

mcfXXXXは，ソースファイルごとに異なります。

mcfmngr：MCFマネジャ定義ソースファイル

mcfcomn：MCF通信構成定義のソースファイル

mcfosua：MCF通信構成定義のプロトコル（TP1/NET/User Agent）固有定義ソースファイル

mcfapli：MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティのmcfosuaコマンドについては，「MCF定義オブジェクトの生成」を，その他のコマンドについてはマニュアル「OpenTP1 システム定義」を参照してください。

注※2

次に示すコマンドで，MCF通信構成定義の二つのオブジェクトファイルを結合します。

mcflink△-i△共通定義オブジェクトファイル名
       △TP1/NET/User Agent定義オブジェクトファイル名
       △-o△出力オブジェクトファイル名

注※3

定義オブジェクトファイルはシステム環境定義のDCCONFPATHで指定したディレクトリに格納してください。システム環境定義については，マニュアル「OpenTP1 システム定義」を参照してください。

9　障害対策

この章では，TP1/NET/User Agetnt運用中に発生する障害と，TP1/NET/User Agentの対応処理，およびメッセージの処理について説明します。

9.1　障害の種類と対応処理

TP1/NET/User Agentの障害発生時の処理について，次に示す障害の種類ごとに説明します。

コネクション（アソシエーション）障害

UA（論理端末）障害

入力メッセージ編集UOCの障害

入力キュー，スケジュールサービス，ネームサービス，またはRPCの障害

出力キューおよび出力メッセージ編集UOCの障害

ジャーナル障害

送信バッファ障害

受信バッファ障害

編集バッファ障害

UAP障害

MCFの障害

OpenTP1の障害

9.1.1　コネクション（アソシエーション）障害

コネクション障害の発生個所に応じたTP1/NET/User Agentの障害処理については，「9.2　コネクション障害」を参照してください。

表9‒1　コネクション障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

・UA層論理矛盾

・下位層障害

・リトライオーバ

・mcftdctcn -fコマンド入力

など

各UAの障害処理をします（「9.1.2　UA（論理端末）障害」参照）。

CERREVT（コネクション障害）を起動します。

コネクション障害を通知するメッセージログ（KFCA13102-E）を出力します。

コネクションを解放します。

障害の要因を取り除いたあと，次のどちらかの方法で再びコネクションを確立します。

・運用コマンド（mcftactcn）を入力する

・API（dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')）を発行する

9.1.2　UA（論理端末）障害

表9‒2　UA障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

・UA障害

・UA層検出異常

・タイムアウト

・mcftdctleコマンド入力

など

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

CERREVT（UA障害）を起動します。

論理端末を閉塞します。

UA（論理端末）の端末タイプに従って処理します。※1

障害の要因を取り除いたあと，次のどちらかの方法でUA開局処理をします。

・運用コマンド（mcftactle）を入力する

・API（dc_mcf_tactle関数またはCBLDCMCF('TACTLE△△')）を発行する

受信メッセージと論理端末の端末タイプの不一致

受信メッセージを破棄します。※2

相手システムにUERRを送信します。

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

CERREVT（UA障害）を起動します。

論理端末を閉塞します。

相手システムとの構成を見直してください。

送信メッセージと論理端末の端末タイプの不一致

dc_mcf_send，dc_mcf_reply，dc_mcf_sendrecv，dc_mcf_recvsyncがエラーリターンします。

UAPで後処理をする必要があります。

UA再開局処理の失敗

該当するUAを縮退させます。

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

CERREVT（UA障害）を起動します。

論理端末を閉塞します。

障害の要因を取り除いたあと，次のどちらかの方法で再びコネクションを確立します。

・運用コマンド（mcftactcn）を入力する

・API（dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')）を発行する

注※1

論理端末の端末タイプごとの処理内容を次の表に示します。

論理端末の端末タイプ

TP1/NET/User Agentの処理

reply

問い合わせメッセージ（UINQ）受信障害の場合は，受信メッセージを無効にします。

応答メッセージ（UREP）送信障害の場合は，次に示す処理をします。

送信メッセージを送信済み扱いにします。

送信破棄を通知するメッセージログ（KFCA10607-W）を出力します。

request

一方送信メッセージ（UINQ）送信障害，および一方送信メッセージ（UREP）受信障害の場合は，次に示す処理をします。

一方送信メッセージ（UINQ）の先頭セグメントからの再送準備をします。

送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

UA再開局後，一方送信メッセージ（UINQ）を再送します。

送信完了通知（UINF）送信障害です。

request（send-recv時）

一方送信メッセージ（UINQ）送信障害，および一方送信メッセージ（UREP）受信障害の場合は，問い合わせメッセージ（UINQ）を送信済みにし，UAPにエラーリターンします。

送信完了通知（UINF）送信障害です。

send

一方送信メッセージ（UBRD）送信障害，および送信完了通知（UINF）受信障害の場合は，次に示す処理をします。

一方送信メッセージ（UBRD）の先頭セグメントからの再送準備をします。

送信中断を通知するメッセージログ（KFCA13108-W）を出力します。

UA再開局後，一方送信メッセージ（UBRD）を再送します。

receive

一方送信メッセージ（UBRD）受信障害の場合は，一方送信メッセージを無効にします。

処理完了通知（UINF）送信障害です。

注※2

1論理メッセージの組み立て以前に不一致が検出されるため，ERREVTは起動しません。

9.1.3　入力メッセージ編集UOCの障害

表9‒3　入力メッセージ編集UOCの障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

・UOCエラーリターン

・UOC指定誤り

UOCエラーを通知するメッセージログ（KFCA10611-E），UOC指定誤りを通知するメッセージログ（KFCA10620-E），およびアプリケーション不正を通知するメッセージログ（KFCA10610-E）を出力します。

UA（論理端末）の端末タイプに従って処理します。※

UOCの処理を見直してください。

注※

論理端末の端末タイプごとの処理内容を次の表に示します。

論理端末の端末タイプ

TP1/NET/User Agentの処理

reply

相手システムにUERRを送信します。

CERREVT（UOC障害）を起動します。

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

論理端末を閉塞します。

request

相手システムにUERRを送信します。

CERREVT（UOC障害）を起動します。

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

送信メッセージ（UINQ）は送信済み扱いとします。

論理端末を閉塞します。

request（send-recv時）

相手システムにUERRを送信します。

CERREVT（UOC障害）を起動します。

UAPにエラーリターンします。

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

送信メッセージ（UINQ）は送信済み扱いとします。

論理端末を閉塞します。

send

該当しません。

receive

相手システムにUERRを送信します。

CERREVT（UOC障害）を起動します。

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

論理端末を閉塞します。

9.1.4　入力キュー，スケジュールサービス，ネームサービス，またはRPCの障害

表9‒4　入力キュー，スケジュールサービス，ネームサービス，またはRPCの障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

・アプリケーション閉塞

・サービス閉塞

・アプリケーション名不正※1

・入力キュー書き込み障害（メモリ含む）

入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。

入力メッセージの種類に従って次に示す処理をします。

通信メッセージ入力障害の場合は，ERREVT1またはERREVT2を起動します。

ERREVT1，ERREVT2，ERREVT3，ERREVT4，またはERREVTAの場合は，メッセージを破棄します。

CERREVT，COPNEVT，またはCCLSEVTの場合は，イベントを破棄します。

障害要因を取り除いてください。

アプリケーション名の形式不正

アプリケーション不正を通知するメッセージログ（KFCA10610-E）を出力します。

相手システムにUERRを送信します。

アプリケーション名の形式を見直してください。

同期メッセージリターン時障害※2

同期エラーを通知するメッセージログ（KFCA10606-E）を出力します。

UAPではタイムアウトが発生します。

リターンの種類に従って次に示す処理をします。

正常にリターンした場合は，次のように処理します。

1. 相手システムにUERRを送信します。

2. CERREVTを起動します。

3. UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

4. 論理端末を閉塞します。

エラーリターンした場合は，無視して処理を続けます。

障害の要因を取り除いたあと，次のどちらかの方法で再びコネクションを確立します。

・運用コマンド（mcftactcn）を入力する

・API（dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△')）を発行する

注※1

アプリケーション名の形式が不正の場合，ERREVT1を起動します。このERREVT1に対する応答メッセージを送信しなかった場合，相手システムにUERRを送信後，CERREVTを起動します。

注※2

RPCだけで発生する障害です。

9.1.5　出力キューおよび出力メッセージ編集UOCの障害

表9‒5　出力キューおよび出力メッセージ編集UOCの障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

・出力キュー読み込み障害（メモリ含む）

・UOCエラーリターン

・UOC指定誤り

UOCエラーを通知するメッセージログ（KFCA10611-E），UOC指定誤りを通知するメッセージログ（KFCA10620-E），および出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

UA（論理端末）の端末タイプに従って処理します。※

障害要因を取り除いてください。

・メッセージ送信済み障害

・メッセージリセット障害

メッセージ送信後の障害を通知するメッセージログ（KFCA10617-E）を出力します。

処理を続けます。

注※

論理端末の端末タイプごとの処理内容を次の表に示します。

論理端末の端末タイプ

TP1/NET/User Agentの処理

reply

該当するメッセージを送信済み扱いとし，送信破棄を通知するメッセージログ（KFCA10607-W）を出力します。

相手システムにUERRを送信します。

UA障害を通知するメッセージログ（KFCA13103-E），およびUA閉局を通知するメッセージログ（KFCA13115-I）を出力します。

CERREVT（出力キュー障害）を起動します。

論理端末を閉塞します。

request

該当するメッセージを送信済み扱いとし，送信破棄を通知するメッセージログ（KFCA10607-W）を出力します。

該当するメッセージを破棄し，次メッセージのサービスをします。

request（send-recv時）

該当するメッセージを送信済み扱いとし，送信破棄を通知するメッセージログ（KFCA10607-W）を出力します。

UAPにエラーリターンします。

該当するメッセージを破棄し，次メッセージのサービスをします。

send

該当するメッセージを送信済み扱いとし，送信破棄を通知するメッセージログ（KFCA10607-W）を出力します。

該当するメッセージを破棄し，次メッセージのサービスをします。

receive

該当しません。

9.1.6　ジャーナル障害

表9‒6　ジャーナル障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

ジャーナル取得障害（AJ/IJ/OJ）

ジャーナル障害を通知するメッセージログ（KFCA10609-E）を出力します。

処理を続けます。

9.1.7　送信バッファ障害

表9‒7　送信バッファ障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

サイズ不足

出力キュー読み込み障害として扱います。

出力障害を通知するメッセージログ（KFCA10605-E），および送信破棄を通知するメッセージログ（KFCA10607-W）を出力します。

論理端末を閉塞します。

CERREVT（メッセージ出力障害）を起動します。

システム定義を修正してください。

バッファ数不足

出力キュー読み込み障害として扱います。

バッファ不足を通知するメッセージログ（KFCA10618-E），および送信破棄を通知するメッセージログ（KFCA10607-E）を出力します。

コネクションを解放します。

CERREVT（バッファ取得障害）を起動します。

システム定義を修正してください。

9.1.8　受信バッファ障害

表9‒8　受信バッファ障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

サイズ不足

不正データ受信を通知するメッセージログ（KFCA13274-E）を出力します。

コネクションを解放します。

CERREVT（受信障害）を起動します。

相手システムとの構成を見直してください。

バッファ数不足

バッファ不足を通知するメッセージログ（KFCA13213-E）を出力します。

コネクションを解放します。

CERREVT（受信障害）を起動します。

システム定義を修正してください。

9.1.9　編集バッファ障害

表9‒9　編集バッファ障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

サイズ不足

ありません。

必要に応じて，UOCでエラーリターンしてください。

バッファ数不足

バッファ不足を通知するメッセージログ（KFCA10618-E）を出力します。

障害の発生した処理に応じて，次に示す処理をします。

送信処理の場合は，次のように処理します。

1. 送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

2. 送信メッセージを再送します。

受信処理の場合は，受信メッセージを破棄します。

コネクションを解放します。

CERREVT（バッファ取得障害）を起動します。

システム定義を修正してください。

9.1.10　UAP障害

表9‒10　UAP障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

UAP異常終了

rollback（UAP 終了指定）呼び出し

reply型の論理端末を使用している場合は，相手システムにUERRを送信します。

UAPを見直してください。

9.1.11　MCFの障害

表9‒11　MCFの障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

・内部論理矛盾

・他PPとのインタフェースエラー

KFCA13197-E，KFCA13198-E，またはKFCA13199-Eを出力します。

メモリダンプを出力します。

必要に応じて，MCFのプロセスを異常終了します（回復できる場合は終了しません）。

保守情報（$DCDIR/spoolディレクトリ以下）を退避してください。

・MCFプログラムエラー

・UOCプログラムエラー

OSによるコアダンプを出力します。

保守情報（$DCDIR/spoolディレクトリ以下）を退避してください。

9.1.12　OpenTP1の障害

表9‒12　OpenTP1の障害発生時の処理

障害の内容

TP1/NET/User Agentの処理

ユーザの処理

OpenTP1異常終了

OSによるコアダンプを出力します。

保守情報（$DCDIR/spoolディレクトリ以下）を退避してください。

9.2　コネクション障害

コネクションの処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所に応じたTP1/NET/User Agentの障害処理について，次の表に示します。

図9‒1　コネクション障害の発生個所

表9‒13　コネクション障害の発生個所に応じた障害処理

障害発生個所

内容

メッセージログの出力内容

TP1/NET/User Agentの処理

1.

コネクション確立時のリトライオーバ（下位層の障害，またはタイムアウトによるリトライ）

コネクション障害

CERREVTを起動します。

コネクションを解放します。

解放後は運用コマンド（mcftactcn）またはAPI（dc_mcf_tactcn関数もしくはCBLDCMCF('TACTCN△△')）で再確立できます。

2.

入力キュー書き込みエラー（COPNEVT）

メッセージ入力障害

メッセージを破棄します。

3.

コネクション確立後のコネクション障害

コネクション障害

UA障害を処理します。

CERREVTを起動します。

コネクションを解放します。

解放後は運用コマンド（mcftactcn）またはAPI（dc_mcf_tactcn関数もしくはCBLDCMCF('TACTCN△△')）で再確立できます。

4.

コネクション解放中のコネクション障害

コネクション障害

CERREVTを起動します。

コネクションを解放します。

解放後は運用コマンド（mcftactcn）またはAPI（dc_mcf_tactcn関数もしくはCBLDCMCF('TACTCN△△')）で再確立できます。

5.

入力キュー書き込みエラー（CCLSEVT）

メッセージ入力障害

メッセージを破棄します。

9.3　問い合わせメッセージ，応答メッセージ障害

9.3.1　問い合わせメッセージ送信時の障害

TP1/NET/User Agentからの問い合わせメッセージ，およびそれに対する相手システムからの応答メッセージ処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所に応じたTP1/NET/User Agentの障害処理について，次の表に示します。

図9‒2　問い合わせメッセージ送信時，応答メッセージ受信時の障害の発生個所

表9‒14　問い合わせメッセージ送信時，応答メッセージ受信時の障害の発生個所に応じた障害処理

障害発生個所

内容

メッセージログの出力内容

TP1/NET/User Agentの処理

メッセージの扱い

UAPでできる処理

1.

メモリ読み込みエラー

メッセージ出力障害

UAPへエラーリターンします。

論理端末の閉塞処理はしません。

送信メッセージを破棄します。

UAPへリターン後に再送できます。または障害処理ができます。

2.

問い合わせ応答時のUA障害（UA障害通知，コネクション障害通知）

UA障害（コネクション障害時を除く）

UAPへエラーリターンします。

CERREVTを起動します。

論理端末を閉塞します。

送信メッセージを破棄します。

CERREVT処理

UAPへリターン後に再送できます。または障害処理ができます。

受信打ち切り受信時

送信メッセージの受信打ち切り

UAPへエラーリターンします。

論理端末の閉塞処理はしません。

送信メッセージを破棄します。

UAPへリターン後に再送できます。または障害処理ができます。

受信拒否受信時

送信メッセージの受信拒否

UAPへエラーリターンします。

CERREVTを起動します。

論理端末を閉塞します。

送信メッセージを破棄します。

CERREVT処理

UAPへリターン後に再送できます。または障害処理ができます。

3.

応答エラー

メッセージ入力障害

UAPへエラーリターンします。

論理端末を閉塞します。

受信メッセージを破棄します。

UAPへリターン後に再送できます。または障害処理ができます。

9.3.2　応答メッセージ送信時の障害

相手システムからの問い合わせメッセージ，およびTP1/NET/User Agentからの応答メッセージ処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所に応じたTP1/NET/User Agentの障害処理について，次の表に示します。

図9‒3　問い合わせメッセージ受信時，応答メッセージ送信時の障害の発生個所

表9‒15　問い合わせメッセージ受信時，応答メッセージ送信時の障害の発生個所に応じた障害処理

障害発生個所

内容

メッセージログの出力内容

TP1/NET/User Agentの処理

メッセージの扱い

UAPでできる処理

1.

問い合わせメッセージ受信時UA障害

（UA障害通知またはコネクション障害通知）

UA障害（コネクション障害時を除く）

CERREVTを起動します。

論理端末を閉塞します。

該当しません。

CERREVT処理

送信中断受信時

相手局がメッセージの送信を中断

論理端末の閉塞処理はしません。

受信メッセージを破棄します。

ありません。

2.

入力キュー書き込みエラー

メッセージ入力障害

ERREVT1またはERREVT2を起動します。

論理端末の閉塞処理はしません。

ERREVT1，またはERREVT2で受信メッセージの障害を通知します。

ERREVT1，またはERREVT2で応答メッセージを送信できるようになります。

3.

UAP異常終了

ありません。

ERREVT3を起動します。

該当しません。

ERREVT3で応答メッセージを送信できるようになります。

4.

出力キュー読み込みエラー

メッセージ出力障害

CERREVTを起動します。

論理端末を閉塞します。

送信済みとします。

CERREVT処理

5.

応答メッセージ送信時

UA障害

（UA障害通知，コネクション障害通知）

UA障害（コネクション障害時を除く）

CERREVTを起動します。

論理端末を閉塞します。

送信済みとします。

CERREVT処理

6.

出力キュー送信メッセージ送信済み要求エラー

メッセージ送信後処理障害

処理を続けます。

送信済みとします。

ありません。

9.4　一方送信メッセージ障害

TP1/NET/User Agentからの一方送信メッセージ，および相手システムからの一方送信メッセージの処理中に，障害の発生する個所の区分を次の図に示します。また，障害発生個所に応じたTP1/NET/User Agentの障害処理について，次の表に示します。

図9‒4　一方送信メッセージ障害の発生個所

表9‒16　一方送信メッセージ障害の発生個所に応じた障害処理

障害発生個所

内容

メッセージログの出力内容

TP1/NET/User Agentの処理

メッセージの扱い

UAPでできる処理

1.

出力キュー読み込みエラー

メッセージ出力障害

次の問い合わせメッセージの送信処理をします。

送信済みとします。

ありません。

2.

一方送信メッセージ送受信時UA障害

（UA障害通知，コネクション障害通知）

UA障害（コネクション障害時を除く）

CERREVTを起動します。

論理端末を閉塞します。

論理端末の閉塞を解除したあと，メッセージを再送します。

CERREVT処理

受信打ち切り受信時

送信メッセージの受信打ち切り

ERREVTAを起動します。

送信メッセージを破棄します。

ERREVTA処理

受信拒否受信時

送信メッセージの受信拒否

論理端末を閉塞します。

相手局からの受信拒否解除受信後，メッセージを再送します。

ありません。

3.

出力キュー送信メッセージ送信済み要求エラー

メッセージ送信後処理障害

処理を続けます。

送信済みとします。

ありません。

4.

入力キュー書き込みエラー

メッセージ入力障害

ERREVT1またはERREVT2を起動します。

CERREVTを起動します。

論理端末を閉塞します。

ERREVT1，またはERREVT2で受信メッセージを通知します。

ERREVT1処理またはERREVT2処理

CERREVT処理

9.5　論理端末の端末タイプ不正

論理端末ごとに端末タイプを定義できるため，次の図の1.と2.に示す個所で論理端末の端末タイプ不正が発生することがあります。

図9‒5　論理端末の端末タイプ不正

受信メッセージ不正

図9-5の1.の個所では，論理端末で受信できるメッセージと，実際に受信したメッセージが整合しない場合に，受信メッセージ不正が発生します。

例えば，request型の論理端末で問い合わせメッセージ（UINQ）を受信した場合，受信メッセージが該当する論理端末でサービスできないときは，UERRを送信し，論理端末を閉塞します。

送信先論理端末の端末タイプ不正

図9-5の2.の個所では，送信先の論理端末の端末タイプと送信種別が整合しない場合に，送信先論理端末の端末タイプ不正が発生します。

例えば，reply型の論理端末に対する一方送信要求では，送信先論理端末の端末タイプ不正の発生時，UAPにエラーリターンします。

付録

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

各バージョンでの変更点を次に示す分類ごとに示します。

関数，定義およびコマンドの追加・変更・削除

動作の変更

関数，定義およびコマンドのデフォルト値の変更

付録A.1　07-50での変更点

TP1/NET/User Agent 07-50での関数，定義およびコマンドの追加・変更・削除を次の表に示します。

表A‒1　TP1/NET/User Agent 07-50での関数，定義およびコマンドの追加・変更・削除

種別

分類

内容

追加

関数

なし

定義

コネクション定義の開始（mcftalccn）

-Tオプションのdeviceオペランド

コマンド

mcfosuaコマンド

-rオプション

変更

なし

削除

関数

なし

定義

コネクション定義の開始（mcftalccn）

-zオプションのdteaオペランド

-zオプションのalt1_dteaオペランド

-zオプションのalt2_dteaオペランド

-zオプションのalt3_dteaオペランド

-zオプションのalt4_dteaオペランド

-zオプションのalt5_dteaオペランド

-zオプションのalt6_dteaオペランド

-zオプションのalt7_dteaオペランド

-zオプションのalt1_slotオペランド

-zオプションのalt2_slotオペランド

-zオプションのalt3_slotオペランド

-zオプションのalt4_slotオペランド

-zオプションのalt5_slotオペランド

-zオプションのalt6_slotオペランド

-zオプションのalt7_slotオペランド

コマンド

なし

TP1/NET/User Agent 07-50での動作の変更点はありません。

TP1/NET/User Agent 07-50でのデフォルト値の変更はありません。

付録A.2　07-00での変更点

TP1/NET/User Agent 07-00での関数，定義およびコマンドの追加・変更・削除はありません。

TP1/NET/User Agent 07-00での動作の変更点はありません。

TP1/NET/User Agent 07-00でのデフォルト値の変更はありません。

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

旧製品から移行する場合の注意事項を示します。

付録B.1　ソースの互換性

バージョン6以前からバージョン7へ移行する場合の各種ソースファイルの互換性について説明します。

表B‒1　バージョン6以前で使用していたソースファイルの互換性

ソースファイルの種類

ソースファイルを作成した言語

互換性

UAP

C言語

ソースファイルを変更しないで使用できます。※

COBOL言語

ソースファイルを変更しないで使用できます。

UOC

C言語

ソースファイルを変更しないで使用できます。※

MCF通信構成定義（プロトコル固有の定義）

−

ソースファイルを変更しないで使用できます。

（凡例）

−：該当する内容がないことを表します。

注※

バージョン7では，メッセージ送受信インタフェース，UOC，およびMCFイベントインタフェースのそれぞれの引数ならびにパラメタの型が変更されていますが，この変更によるUAPやUOCの処理への影響はありません。

詳細については，「付録C　インタフェースの変更一覧（バージョン6以前から移行する場合）」を参照してください。

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

バージョン6以前のインタフェースの変更一覧を示します。

ここで説明するインタフェースを次に示します。

表C‒1　インタフェースの変更一覧

変更されたインタフェース

バージョン7のマニュアルの該当個所

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

dc_mcf_receive

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

dc_mcf_recvsync

「dc_mcf_recvsync − 同期型のメッセージの受信（C言語）」

dc_mcf_reply

「dc_mcf_reply − 応答メッセージの送信（C言語）」

dc_mcf_resend

「dc_mcf_resend − メッセージの再送（C言語）」

dc_mcf_send

「dc_mcf_send − 一方送信メッセージの送信（C言語）」

dc_mcf_sendrecv

「dc_mcf_sendrecv − 同期型のメッセージの送受信（C言語）」

ユーザオウンコーディング

入力メッセージ編集UOC

「5.1.2　入力メッセージ編集UOCインタフェース」

出力メッセージ編集UOC

「5.1.4　出力メッセージ編集UOCインタフェース」

送信メッセージの通番編集UOC

「5.1.6　送信メッセージの通番編集UOCインタフェース」

MCFイベントインタフェース

「5.2.3　MCFイベント情報の形式（C言語）」

MCFメイン関数のコーディング概要

「8.2　MCFメイン関数の作成」

以降，バージョン6以前のインタフェースと，バージョン7のインタフェースの変更一覧を示します。変更個所には，下線を付与しています。

付録C.1　メッセージ送受信インタフェース

(1)　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;

(2)　dc_mcf_recvsync − 同期型のメッセージの受信

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_recvsync(long action,
                     long commform,
                     char *termnam,
                     char *resv01,
                     char *recvdata,
                     long *rdataleng,
                     long inbufleng,
                     long *time,
                     long resv02)

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

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_recvsync(action,
                     commform,
                     termnam,
                     resv01,
                     recvdata,
                     rdataleng,
                     inbufleng,
                     time,
                     resv02)
long       action;
long       commform;
char       *termnam;
char       *resv01;
char       *recvdata;
long       *rdataleng;
long       inbufleng;
long       *time;
long       resv02;

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

(3)　dc_mcf_reply − 応答メッセージの送信

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_reply(long action,
                  long commform,
                  char *resv01,
                  char *resv02,
                  char *senddata,
                  long sdataleng,
                  char *resv03,
                  long opcd)

#include <dcmcf.h>
int  dc_mcf_reply(DCLONG action,
                  DCLONG commform,
                  char *resv01,
                  char *resv02,
                  char *senddata,
                  DCLONG sdataleng,
                  char *resv03,
                  DCLONG opcd)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_reply(action,
                  commform,
                  resv01,
                  resv02,
                  senddata,
                  sdataleng,
                  resv03,
                  opcd)
long       action;
long       commform;
char       *resv01;
char       *resv02;
char       *senddata;
long       sdataleng;
char       *resv03;
long       opcd;

#include <dcmcf.h>
int  dc_mcf_reply(action,
                  commform,
                  resv01,
                  resv02,
                  senddata,
                  sdataleng,
                  resv03,
                  opcd)
DCLONG     action;
DCLONG     commform;
char       *resv01;
char       *resv02;
char       *senddata;
DCLONG     sdataleng;
char       *resv03;
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_sendrecv − 同期型のメッセージの送受信

(a)　ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_sendrecv(long action,
                     long commform,
                     char *termnam,
                     char *resv01,
                     char *senddata,
                     long sdataleng,
                     char *recvdata,
                     long *rdataleng,
                     long inbufleng,
                     long *time,
                     long watchtime)

#include <dcmcf.h>
int  dc_mcf_sendrecv(DCLONG action,
                     DCLONG commform,
                     char *termnam,
                     char *resv01,
                     char *senddata,
                     DCLONG sdataleng,
                     char *recvdata,
                     DCLONG *rdataleng,
                     DCLONG inbufleng,
                     DCLONG *time,
                     DCLONG watchtime)

(b)　K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
int  dc_mcf_sendrecv(action,
                     commform,
                     termnam,
                     resv01,
                     senddata,
                     sdataleng,
                     recvdata,
                     rdataleng,
                     inbufleng,
                     time,
                     watchtime)
long       action;
long       commform;
char       *termnam;
char       *resv01;
char       *senddata;
long       sdataleng;
char       *recvdata;
long       *rdataleng;
long       inbufleng;
long       *time;
long       watchtime;

#include <dcmcf.h>
int  dc_mcf_sendrecv(action,
                     commform,
                     termnam,
                     resv01,
                     senddata,
                     sdataleng,
                     recvdata,
                     rdataleng,
                     inbufleng,
                     time,
                     watchtime)
DCLONG     action;
DCLONG     commform;
char       *termnam;
char       *resv01;
char       *senddata;
DCLONG     sdataleng;
char       *recvdata;
DCLONG     *rdataleng;
DCLONG     inbufleng;
DCLONG     *time;
DCLONG     watchtime;

付録C.2　ユーザオウンコーディング

(1)　入力メッセージ編集UOC

(a)　形式

ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcfuoc.h>
long uoc_func(dcmcf_uoc_min_n *parm)

#include <dcmcfuoc.h>
DCLONG uoc_func(dcmcf_uoc_min_n *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcfuoc.h>
long uoc_func(parm)

dcmcf_uoc_min_n   *parm ;

#include <dcmcfuoc.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>
long uoc_func(dcmcf_uoc_mout_n *parm)

#include <dcmcfuoc.h>
DCLONG uoc_func(dcmcf_uoc_mout_n *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcfuoc.h>
long uoc_func(parm)

dcmcf_uoc_mout_n *parm ;

#include <dcmcfuoc.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)　パラメタの内容」を参照してください。

(3)　送信メッセージの通番編集UOC

(a)　形式

ANSI C，C++の形式

バージョン6以前

バージョン7

#include <dcmcf.h>
long send_uoc(long flags,
              char *termname,
              long sendno,
              long sendid,
              long dataleng,
              char *senddata)

#include <dcmcf.h>
DCLONG send_uoc(DCLONG flags,
                char *termname,
                DCLONG sendno,
                DCLONG sendid,
                DCLONG dataleng,
                char *senddata)

K&R版 Cの形式

バージョン6以前

バージョン7

#include <dcmcf.h>
long send_uoc(flags,
              termname,
              sendno,
              sendid,
              dataleng,
              senddata)
long    flags;
char    *termname;
long    sendno;
long    sendid;
long    dataleng;
char    *senddata;

#include <dcmcf.h>
DCLONG send_uoc(flags,
                termname,
                sendno,
                sendid,
                dataleng,
                senddata)
DCLONG    flags;
char      *termname;
DCLONG    sendno;
DCLONG    sendid;
DCLONG    dataleng;
char      *senddata;

付録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)　CERREVTの形式

バージョン6以前

バージョン7

typedef struct {
  struct dc_mcf_evtheader  header ;
  long err_fact ;
  long err_reason1 ;
  long err_reason2 ;
  long err_rcv_action ;
  char rname[16] ;
  char reserve1[26] ;
} dcmoum_cerrevt ;

typedef struct {
  struct dc_mcf_evtheader  header ;
  DCLONG err_fact ;
  DCLONG err_reason1 ;
  DCLONG err_reason2 ;
  DCLONG err_rcv_action ;
  char rname[16] ;
  char reserve1[26] ;
} dcmoum_cerrevt ;

(7)　COPNEVT，CCLSEVTの形式

バージョン6以前

バージョン7

typedef struct {
  struct dc_mcf_evtheader  header ;
  long notice_fact ;
  char reserve1[12] ;
  char rname[16] ;
  char reserve2[26] ;
} dcmoum_statevt ;

typedef struct {
  struct dc_mcf_evtheader  header ;
  DCLONG notice_fact ;
  char reserve1[12] ;
  char rname[16] ;
  char reserve2[26] ;
} dcmoum_statevt ;

付録C.4　MCFメイン関数のコーディング概要

MCFメイン関数のコーディング概要の変更一覧を示します。変更個所は，図中の網掛け部分です。

(1)　ANSI C，C++の場合

(a)　バージョン6以前

(b)　バージョン7

(2)　K&R版 Cの場合

(a)　バージョン6以前

(b)　バージョン7

付録D　メッセージ送受信の処理の流れ

メッセージを送受信するときのデータの流れ，ジャーナルの取得タイミングなどを，メッセージの種類ごとに示します。

付録D.1　一方送信メッセージ

(1)　一方送信メッセージ送信時の処理の流れ（request型論理端末）

(a)　UAサービスデータ単位分割なしの場合

図D‒1　request型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割なしの場合）

(b)　UAサービスデータ単位分割ありの場合

図D‒2　request型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割ありの場合）

(2)　一方送信メッセージ送信時の処理の流れ（send型論理端末）

(a)　UAサービスデータ単位分割なしの場合

図D‒3　send型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割なしの場合）

(b)　UAサービスデータ単位分割ありの場合

図D‒4　send型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割ありの場合）

(3)　一方送信メッセージ受信時の処理の流れ

(a)　UAサービスデータ単位分割なしの場合

図D‒5　receive型論理端末への一方送信メッセージの処理の流れ（UAサービスデータ単位分割なしの場合）

(b)　UAサービスデータ単位分割ありの場合

図D‒6　receive型論理端末への一方送信メッセージの処理の流れ（UAサービスデータ単位分割ありの場合）

付録D.2　問い合わせメッセージ，および応答メッセージ

(1)　問い合わせメッセージ送信時の処理の流れ

(a)　UAサービスデータ単位分割なしの場合

図D‒7　問い合わせメッセージ送信時の処理の流れ（UAサービスデータ単位分割なしの場合）

(b)　UAサービスデータ単位分割ありの場合

図D‒8　問い合わせメッセージ送信時の処理の流れ（UAサービスデータ単位分割ありの場合）

(2)　応答メッセージ送信時の処理の流れ

(a)　UAサービスデータ単位分割なしの場合

図D‒9　応答メッセージ送信時の処理の流れ（UAサービスデータ単位分割なしの場合）

(b)　UAサービスデータ単位分割ありの場合

図D‒10　応答メッセージ送信時の処理の流れ（UAサービスデータ単位分割ありの場合）

付録E　障害発生時の処理の流れ

メッセージを送受信するときに発生した障害処理の流れについて示します。

付録E.1　一方送信メッセージ障害

(1)　UINQ送信時のUA障害

図E‒1　UINQ送信時のUA障害の処理の流れ（一方送信メッセージ障害の場合）

(2)　入力メッセージ編集UOCエラー

図E‒2　入力メッセージ編集UOCエラーの処理の流れ（一方送信メッセージ障害の場合）

付録E.2　応答メッセージ障害

(1)　UINQ受信時のUA障害

図E‒3　UINQ受信時UA障害の処理の流れ（応答メッセージ障害の場合）

(2)　入力メッセージ編集UOCエラー

図E‒4　入力メッセージ編集UOCエラーの処理の流れ（応答メッセージ障害の場合）

(3)　UAP異常終了

図E‒5　UAP異常終了の処理の流れ（応答メッセージ障害の場合）

付録E.3　相手システム（XDM/DCCM3）接続時の障害

(1)　受信打ち切りを受信

図E‒6　受信打ち切り受信時の処理の流れ（相手システム接続時の障害の場合）

(2)　受信拒否・受信拒否解除を受信

図E‒7　受信拒否・受信拒否解除を受信時の処理の流れ（相手システム接続時の障害の場合）

(3)　送信中断を受信

図E‒8　送信中断受信時の処理の流れ（相手システム接続時の障害の場合）

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

TP1/Message Controlを使用したメッセージ送受信での主なイベントで，MCF識別子などのトレース情報を取得しています。これをMCF性能検証用トレースと呼びます。

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

付録F.1　MCF固有情報の出力情報

ここでは，UOC呼び出し時のMCF性能検証用トレースのダンプ出力情報について説明します。

(1)　UOC呼び出し時

TP1/NET/User Agentで使用するUOCの情報を取得します。MCF固有情報のダンプ出力情報，およびUOC名称の出力情報を，以降の表に示します。

表F‒1　UOC呼び出し時のMCF固有情報のダンプ出力情報

イベントID

オフセット

0x0000〜0x0003

0x0004〜0x0007

0x0008〜0x000f

0x0010〜0x0017

0x0018〜0x001f

0xa070

MCF識別子

スレッドID

−

−

UOC名称

0xa071

−

−

（凡例）

−：情報を取得しません。

表F‒2　UOC名称の出力情報

UOCの種類

UOC名称出力情報

入力メッセージ編集UOC

"MSGRCV"

出力メッセージ編集UOC

"MSGSEND"

送信メッセージ通番編集UOC

"SEND_UOC"

付録F.2　MCF性能検証用トレースの取得タイミング

MCF性能検証用トレースの取得タイミングを，使用する送受信形態別に説明します。

(1)　一方送信メッセージ送信時

一方送信メッセージ送信時のMCF性能検証用トレースの取得タイミングについて，次の図に示します。

図F‒1　一方送信メッセージ送信時のMCF性能検証用トレースの取得タイミング（request型論理端末）

注※

送信メッセージの通番編集UOC使用時に該当します。

図F‒2　一方送信メッセージ送信時のMCF性能検証用トレースの取得タイミング（send型論理端末）

注※

送信メッセージの通番編集UOC使用時に該当します。

(2)　一方送信メッセージ受信時

一方送信メッセージ受信時のMCF性能検証用トレースの取得タイミングについて，次の図に示します。

図F‒3　一方送信メッセージ受信時のMCF性能検証用トレースの取得タイミング

(3)　問い合わせメッセージ受信時

問い合わせメッセージ受信時のMCF性能検証用トレースの取得タイミングについて，次の図に示します。

図F‒4　問い合わせメッセージ受信時のMCF性能検証用トレースの取得タイミング

注※

送信メッセージの通番編集UOC使用時に該当します。

(4)　同期型メッセージ送受信時

同期型メッセージ送受信時のMCF性能検証用トレースの取得タイミングについて，次の図に示します。

図F‒5　同期型メッセージ送受信時のMCF性能検証用トレースの取得タイミング

付録F.3　MCF性能検証用トレースの取得量

1回のメッセージ送受信で取得するMCF性能検証用トレースのトレース取得量を，次の表に示します。

表F‒3　MCF性能検証用トレースの取得量

メッセージの送受信形態

トレース取得量

（単位：キロバイト）

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

request型論理端末

3.7

send型論理端末

1.7

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

2.0

問い合わせメッセージの受信

3.0

同期型のメッセージの送受信

0.9

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

UAPの作成例として，処理の流れを次の図に示し，その流れに沿ったコーディング例をC言語（K&R版）およびCOBOL言語で示します。

図G‒1　処理の流れ

付録G.1　コーディング例

図G-1の処理の流れについて，使用する言語ごとにUAPのコーディング例を示します。

(1)　C言語（K&R版）

C言語（K&R版）を使用したUAPのコーディング例を次に示します。

#include <dcmcf.h>
ex_uap1()
{
   char termnam[9] ;
   char recvdata[2048] ;
   DCLONG rdataleng ;
   DCLONG time ;
   DCLONG inbufleng=2048 ;
   char senddata[512] ;
   static char resv01[9]="¥0" ;
   static char resv02[9]="¥0" ;
   static char resv03[9]="¥0" ;
   char *workadd = recvdata ;
                              /* 問い合わせメッセージの受信 */
   dc_mcf_receive(DCMCFFRST,DCNOFLAGS,termnam,resv01,
                  workadd,&rdataleng,2048,&time) ;
   workadd = workadd + rdataleng + 8 ;
   inbufleng = 2048 - (workadd - recvdata) ;
   while(dc_mcf_receive(DCMCFSEG,DCNOFLAGS,termnam,resv01,
                        workadd,&rdataleng,inbufleng,&time)
         == DCMCFRTN_00000)
      {
         workadd = workadd + rdataleng + 8 ;
         inbufleng = inbufleng - (workadd - recvdata) ;
       }

   /*        データの処理                         */

   dc_mcf_send(DCMCFEMI,DCMCFOUT,"HOSTB",
               resv01,senddata,504,resv02,DCNOFLAGS) ;
                              /* 一方送信メッセージの送信 */
   dc_mcf_reply(DCMCFEMI,DCNOFLAGS,resv03,
                resv01,senddata,504,resv02,DCNOFLAGS) ;
                              /* 応答メッセージの送信 */
}

(2)　COBOL言語

COBOL言語を使用したUAPのコーディング例を次に示します。

 IDENTIFICATION DIVISION.
 PROGRAM-ID. EXUAP1.

 ENVIRONMENT DIVISION.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01  RCV.
     02  MSG-REC       PIC X(8) VALUE 'RECEIVE '.
     02  STATUS-CODE1  PIC X(5).
     02  FILLER        PIC X(3).
     02  SEG-CODE      PIC X(4) VALUE 'FRST'.
     02  RTN-CODE      PIC X(4) VALUE SPACE.
     02  DAY-ID        PIC 9(8).
     02  TIME-ID       PIC 9(8).
     02  SEG-LENG      PIC 9(9) COMP VALUE 2048.
     02  MCFUSE1       PIC X(4) VALUE SPACE.
     02  MCFUSE2       PIC X(4) VALUE SPACE.
     02  MCFUSE3       PIC X(4) VALUE SPACE.
     02  MCFUSE4       PIC X(4) VALUE SPACE.
     02  MCFUSE5       PIC X(8) VALUE SPACE.
     02  MCFUSE6       PIC X(4) VALUE SPACE.
     02  MCFUSE7       PIC X(8) VALUE SPACE.
     02  MCFUSE8       PIC X(4) VALUE SPACE.
     02  MCFUSE9       PIC 9(9) COMP VALUE ZERO.
     02  MCFUSE10      PIC 9(9) COMP VALUE ZERO.
     02  MCFUSE11      PIC X(1) VALUE SPACE.
     02  MCFUSE12      PIC X(1) VALUE SPACE.
     02  MCFUSE13      PIC X(14) VALUE LOW-VALUE.
 01  CD1.
     02  SEG-CODE1     PIC X(4) VALUE SPACE.
     02  TERM-CODE     PIC X(8).
     02  MCFUSE14      PIC X(8) VALUE SPACE.
     02  MCFUSE15      PIC X(8) VALUE SPACE.
     02  MCFUSE16      PIC X(28) VALUE LOW-VALUE.
 01  DATA1.
     02  MSGSEG-LENG1  PIC 9(9) COMP.
     02  MCFUSE17      PIC X(4).
     02  MCFUSE18      PIC X(2).
     02  MCFUSE19      PIC X(1).
     02  MCFUSE20      PIC X(1).
     02  REC-MSGSEG1   PIC X(2048).
 01  SND.
     02  MSG-SEND      PIC X(8) VALUE 'SEND    '.
     02  STATUS-CODE2  PIC X(5).
     02  FILLER        PIC X(3).
     02  MCFUSE21      PIC X(4) VALUE SPACE.
     02  MCFUSE22      PIC X(4) VALUE SPACE.
     02  MCFUSE23      PIC 9(8).
     02  MCFUSE24      PIC 9(8).
     02  MCFUSE25      PIC 9(9) COMP VALUE ZERO.
     02  SEND-SEG      PIC X(4) VALUE 'EMI '.
     02  SEND-SYNC     PIC X(4) VALUE 'ASYN'.
     02  SEND-NORM     PIC X(4) VALUE 'NORM'.
     02  SEND-SEQ      PIC X(4) VALUE 'NSEQ'.
     02  MCFUSE26      PIC X(8) VALUE SPACE.
     02  SEND-CODE     PIC X(4) VALUE SPACE.
     02  MCFUSE27      PIC X(8) VALUE SPACE.
     02  MCFUSE28      PIC X(4) VALUE SPACE.
     02  MCFUSE29      PIC 9(9) COMP VALUE ZERO.
     02  MCFUSE30      PIC 9(9) COMP.
     02  MCFUSE31      PIC X(1) VALUE SPACE.
     02  MCFUSE32      PIC X(1) VALUE SPACE.
     02  MCFUSE33      PIC X(14) VALUE LOW-VALUE.
 01  CD2.
     02  SENDSEG-CODE2 PIC X(4) VALUE 'OUT '.
     02  TERM-CODE2    PIC X(8) VALUE 'HOSTB'.
     02  MCFUSE34      PIC X(8) VALUE SPACE.
     02  MCFUSE35      PIC X(8) VALUE SPACE.
     02  MCFUSE36      PIC X(28) VALUE LOW-VALUE.
 01  DATA2.
     02  MSGSEG-LENG2  PIC 9(9) COMP VALUE 512.
     02  MCFUSE37      PIC X(8).
     02  REC-MSGSEG2   PIC X(512).
 01  RPLY.
     02  MSG-REPLY     PIC X(8) VALUE 'REPLY   '.
     02  STATUS-CODE3  PIC X(5).
     02  FILLER        PIC X(3).
     02  MCFUSE41      PIC X(4) VALUE SPACE.
     02  MCFUSE42      PIC X(4) VALUE SPACE.
     02  MCFUSE43      PIC 9(8).
     02  MCFUSE44      PIC 9(8).
     02  MCFUSE45      PIC 9(9) COMP VALUE ZERO.
     02  SEND-SEG1     PIC X(4) VALUE 'EMI '.
     02  SEND-SYNC1    PIC X(4) VALUE 'ASYN'.
     02  MCFUSE46      PIC X(4) VALUE SPACE.
     02  SEND-SEQ1     PIC X(4) VALUE SPACE.
     02  MCFUSE47      PIC X(8) VALUE SPACE.
     02  SEND-CODE1    PIC X(4) VALUE SPACE.
     02  MCFUSE48      PIC X(8) VALUE SPACE.
     02  MCFUSE49      PIC X(4) VALUE SPACE.
     02  MCFUSE50      PIC 9(9) COMP VALUE ZERO.
     02  MCFUSE51      PIC 9(9) COMP.
     02  MCFUSE52      PIC X(1) VALUE SPACE.
     02  MCFUSE53      PIC X(1) VALUE SPACE.
     02  MCFUSE54      PIC X(14) VALUE LOW-VALUE.
 01  CD3.
     02  SEND-CODE3    PIC X(4) VALUE SPACE.
     02  TERM-CODE3    PIC X(8) VALUE SPACE.
     02  MCFUSE55      PIC X(8) VALUE SPACE.
     02  MCFUSE56      PIC X(8) VALUE SPACE.
     02  MCFUSE57      PIC X(28) VALUE LOW-VALUE.

 PROCEDURE DIVISION.
 CALL 'CBLDCMCF'USING RCV CD1 DATA1.
*(問い合わせメッセージの受信)
*
*   処理 1
*
 CALL 'CBLDCMCF'USING SND CD2 DATA2.
*(一方送信メッセージの送信)
*
*   処理 2
*
 CALL 'CBLDCMCF'USING RPLY CD3 DATA2.
*(応答メッセージの送信)
*
*   処理 3
*
 EXIT PROGRAM.

付録G.2　提供するサンプルコーディング

ここでは，TP1/NET/User Agentが提供するサンプルコーディングの格納場所について言語ごとに示します。

(1)　C言語

適用OSがLinuxの場合

/opt/OpenTP1/examples/mcf/UserAgent/aplib/c/ap.c

適用OSがAIXまたはHP-UXの場合

/BeTRAN/examples/mcf/UserAgent/aplib/c/ap.c

(2)　COBOL言語

適用OSがLinuxの場合

/opt/OpenTP1/examples/mcf/UserAgent/aplib/cobol/ap.cbl

適用OSがAIXまたはHP-UXの場合

/BeTRAN/examples/mcf/UserAgent/aplib/cobol/ap.cbl

付録H　理由コード一覧

ERREVT2発生時の理由コードを表H-1に，CERREVT発生時の理由コードを表H-2に示します。

表H‒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の障害などによって，トランザクションの開始に失敗しました。

表H‒2　CERREVTの理由コード一覧

理由コード1

（16進数）

理由コード2

（16進数）

発生条件

発生個所

DCMOUM_RSN1_MCF

（00000001）

DCMOUM_RSN2_ITQ

（00000000）

メッセージ入力障害

UA，論理端末

DCMOUM_RSN2_APL

（00000001）

アプリケーション名取得障害

UA，論理端末

DCMOUM_RSN2_OTGET

（00000002）

メッセージ出力障害

UA，論理端末

DCMOUM_RSN2_OTCMP

（00000003）

メッセージ送信完了処理障害

UA，論理端末

DCMOUM_RSN2_DCTLE

（00000004）

mcftdctleによるUA，論理端末の閉塞

UA，論理端末

DCMOUM_RSN2_UAPAB

（00000005）

reply型UAP異常終了によるUERR送信

UA，論理端末

DCMOUM_RSN2_SYCER

（00000006）

UAPへの同期リターン失敗

UA，論理端末

DCMOUM_RSN2_ENDER

（00000007）

終了処理中のメッセージ受信によるUERR送信（入力抑止）

UA，論理端末

DCMOUM_RSN2_OPNRJ

（00000008）

UA開局要求拒否

UA，論理端末

（11ff000a）

UINQを受信できない端末タイプ（論理端末定義（mcftalcle -t）で指定）の論理端末でUINQを受信

論理端末

（11ff000e）

UBRDを受信できない端末タイプ（論理端末定義（mcftalcle -t）で指定）の論理端末でUBRDを受信

論理端末

DCMOUM_RSN2_DCTCN_F

（20000000）

mcftdctcn -fによる強制解放

コネクション

DCMOUM_RSN2_NOBUF

（20000002）

バッファ取得失敗による強制解放

コネクション

その他

上記以外の障害

（理由コード2は保守情報）

UA，論理端末，コネクション

DCMOUM_RSN1_UERR

（00000002）

RRRRDDDD

（受信障害コード）

UERR送受信，または下位層障害

UA，論理端末，コネクション

DCMOUM_RSN1_UOC

（00000003）

詳細リターンコード

ユーザ（UOC）検出障害

論理端末，コネクション

DCMOUM_RSN1_UAP

（00000004）

RRRRDDDD

（送信障害コード）

send（エラー送信）による閉局

UA，論理端末

DCMOUM_RSN1_ACTER

（00000005）

RRRRDDDD

（受信障害コード）

コネクションの確立失敗

（UERR送受信，または下位層障害）

コネクション

DCMOUM_RSN1_ACTLERJ

（00000006）

RRRR0000

（拒否理由）

個別開局の拒否応答の受信

UA，論理端末

その他

不定

上記以外の障害

（理由コード1，2は保守情報）

UA，論理端末，コネクション

（凡例）

RRRR：障害理由または拒否理由（下位層障害時は0000を設定します。）

DDDD：OSAS/UAプロトコルで規定される障害理由詳細（下位層障害時は0000を設定します。）

付録I　このマニュアルの参考情報

付録I.1　関連マニュアル

●OpenTP1 Version 7

●通信管理

通信管理 XNF/AS 解説・運用編（3000-3-B61）

通信管理 XNF/AS 構成定義編（3000-3-B62）

通信管理 XNF/AS NSAPアドレス概説編(3000-3-B43）

通信管理 XNF/LS 使用の手引（3000-3-B51）

●相手システム（VOS3）

TMS-4V/SP OSAS/AP間通信サービス-UA OSAS/UA/4VSP（6190-6-126）

OSIアプリケーション共通機能/AP間通信サービス/DCCM3 OSAS/UA2/DCCM3（6190-6-371）

XNF TCP/IP接続機能 XNF/TCP 定義とコマンド（6190-3-584）

付録I.2　このマニュアルでの表記

(1)　製品名

このマニュアルでの表記と正式名称を次の表に示します。

表記

製品名

IPF

Itanium(R) Processor Family

TP1/Message Control

uCosminexus TP1/Message Control

TP1/NET/Library

uCosminexus TP1/NET/Library

TP1/NET/User Agent

uCosminexus TP1/NET/User Agent

UNIX

AIX

AIX V6.1

AIX V7.1

AIX V7.2

HP-UX

HP-UX 11i

HP-UX 11i V2（PA-RISC）

HP-UX 11i V2（IPF）

Linux

Red Hat Enterprise Linux(R) Server 6 (32-bit x86)

Red Hat Enterprise Linux(R) Server 6 (64-bit x86_64)

Red Hat Enterprise Linux(R) Server 7 (64-bit x86_64)

(2)　JISコード配列のキーボードとASCIIコード配列のキーボードとの違いについて

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

コード

JISコード配列

ASCIIコード配列

(5c)₁₆

'¥'（円記号）

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

(7e)₁₆

'￣'（オーバライン）

'~'（チルダ）

付録I.3　英略語

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

英略語

英字での表記

ACSE

Association Control Service Element

AP

Application Program

LE

Logical Entity

MCF

Message Control Facility

MHP

Message Handling Program

NIF/OSI

Network Interface Feature/Open Systems Interconnection

OS

Operating System

OSAS/UA

Open Systems Interconnection Application Support Common Facility/User Agent

OSI

Open Systems Interconnection

SPP

Service Providing Program

TCP/IP

Transmission Control Protocol/Internet Protocol

UA

User Agent

UAM

UA Manager

UAP

User Application Program

UASDU

User Agent Service Data Unit

UOC

User Own Cording

UPDU

User Agent Protocol Data Unit

付録I.4　KB（キロバイト）などの単位表記について

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

付録J　用語解説

（英字）

AJ（メッセージ送信完了ジャーナル）

MCFが取得する統計用の履歴情報の一つです。メッセージ出力通番，出力先論理端末名などで構成されます。

AJの取得タイミングは，メッセージの種類で異なります。一方送信メッセージ（UINQ）の場合は，一方送信メッセージ（UREP）の最終セグメントを受信した直後です。一方送信メッセージ（UBRD）の場合は，一方送信メッセージ（UBRD）の最終セグメントを送信したあと，相手システムからUINFを受信した直後です。応答メッセージ（UREP）の場合は，応答メッセージ（UREP）の最終セグメントを送信した直後です。

GJ（メッセージ受信ジャーナル）

MCFが取得する統計用の履歴情報の一つです。入力メッセージサイズ，入力論理端末名などで構成されます。

GJの取得タイミングは，非同期受信関数を発行して，MHPが受信メッセージを入力キューから取り出した直後です。

IJ（メッセージ入力ジャーナル）

MCFが取得する統計用の履歴情報の一つです。メッセージ入力通番，入力論理端末名，入力メッセージ種別，および入力メッセージなどで構成されます。

IJの取得タイミングは，相手システムから受信したメッセージを入力キューに格納する直前です。

MJ（メッセージジャーナル）

MCFが取得する統計用の履歴情報の一つです。入力論理端末名または，出力論理端末名，メッセージジャーナル種別，入力または出力メッセージ（入力メッセージ編集前のデータ，または出力メッセージ編集後のデータ）などで構成されます。

MJの取得タイミングは，入力メッセージの場合，入力メッセージ編集UOCを呼び出す直前です。また，出力メッセージの場合，出力メッセージ編集UOCを呼び出した直後です。

OJ（メッセージ出力ジャーナル）

MCFが取得する統計用の履歴情報の一つです。メッセージ出力通番，出力論理端末名，出力メッセージ種別，出力メッセージなどで構成されます。

OJの取得タイミングは，非同期送信関数を発行して，UAPが送信メッセージを出力キューに格納した直後です。

OSAS/UAプロトコル

拡張HNAのアプリケーションプロファイルの一つとして規定した，分散処理ネットワークでのトランザクション処理を実現するためのプロトコルです。

UA

OSAS/UAプロトコルで指定された手順を実行するエンティティです。データの送受信をします。

UAには，一般UAと制御UAがあります。一般UAは，一般UAの開局，閉局，およびデータの送受信に使用します。制御UAは，コネクションの確立と解放に使用します。

（カ行）

コネクション

MCFの通信管理側の通信接点であり，MCFと通信管理はコネクション単位に送受信をします。OSAS/UAプロトコルのアソシエーションに対応します。

（ラ行）

論理端末

TP1/NET/User AgentとUAPとの通信接点です。TP1/NET/User AgentとUAPは，論理端末単位にメッセージの送受信をします。

索引

A

AJ（メッセージ送信完了ジャーナル）[1]

APIによるUAの個別開局[1]

APIによるUAの閉局[1]

AP間通信[1]

AP間通信の概要[1]

AP間通信の形態[1]

AP間通信の仕組み[1]

AP間通信メッセージの送受信[1]

C

CBLDCMCF('RECEIVE ')[1]

CBLDCMCF('RECVSYNC')[1]

CBLDCMCF('REPLY ')[1]

CBLDCMCF('RESEND ')[1]

CBLDCMCF('SENDRECV')[1]

CBLDCMCF('SEND ')[1]

CBLDCMCF('TACTCN ')[1]

CBLDCMCF('TACTLE ')[1]

CBLDCMCF('TDCTCN ')[1]

CBLDCMCF('TDCTLE ')[1]

CBLDCMCF('TLSCN ')[1]

CBLDCMCF('TLSLE ')[1]

CCLSEVT[1]、[2]

CERREVT[1]、[2]

CERREVTの理由コード一覧[1]

COBOL言語のプログラムインタフェース[1]

COBOL言語のプログラムインタフェースの一覧[1]

COBOL-UAP作成用プログラムインタフェース[1]

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

COPNEVT[1]、[2]

C言語のライブラリ関数[1]

C言語のライブラリ関数の一覧[1]、[2]

D

dc_mcf_receive[1]

dc_mcf_recvsync[1]

dc_mcf_reply[1]

dc_mcf_resend[1]

dc_mcf_send[1]

dc_mcf_sendrecv[1]

dc_mcf_tactcn[1]

dc_mcf_tactle[1]

dc_mcf_tdctcn[1]

dc_mcf_tdctle[1]

dc_mcf_tlscn[1]

dc_mcf_tlsle[1]

E

ERREVT1[1]、[2]

ERREVT2[1]、[2]

ERREVT2の理由コード一覧[1]

ERREVT3[1]、[2]

ERREVTA[1]、[2]

G

GJ（メッセージ受信ジャーナル）[1]

I

IJ（メッセージ入力ジャーナル）[1]

M

max_open_fds[1]

max_socket_descriptors[1]

MCF[1]

mcfmuap[1]

mcfosua[1]

mcftactcn[1]

mcftactle[1]

mcftalccn[1]

mcftalced[1]

mcftalcle[1]

mcftalcua[1]

mcftbuf[1]、[2]、[3]、[4]、[5]

mcftcomn[1]

mcftdctcn[1]

mcftdctle[1]

mcftlscn[1]

mcftlsle[1]

MCFアプリケーション定義[1]

MCFイベント[1]

MCFイベントインタフェース[1]

MCFイベント情報の形式（COBOL言語）[1]

MCFイベント情報の形式（C言語）[1]

MCFイベント処理用MHP[1]

MCFイベント通知時のセグメント構成[1]、[2]

MCFイベントの共通ヘッダ[1]

MCFイベントの種類[1]

MCF検出障害時のUAの閉局[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]、[2]

MJ（メッセージジャーナル）[1]

O

OJ（メッセージ出力ジャーナル）[1]

OpenTP1システムの変更に影響する定義[1]

OpenTP1システムを使用したネットワーク構成例[1]

OpenTP1の障害[1]

OSAS/UAプロトコル[1]

OSAS/UAプロトコルの種別[1]

R

RECEIVE[1]

receive型論理端末への一方送信メッセージの処理の流れ（UAサービスデータ単位分割ありの場合）[1]

receive型論理端末への一方送信メッセージの処理の流れ（UAサービスデータ単位分割なしの場合）[1]

request型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割ありの場合）[1]

request型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割なしの場合）[1]

S

SEND[1]

send型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割ありの場合）[1]

send型論理端末からの一方送信メッセージの処理の流れ（UAサービスデータ単位分割なしの場合）[1]

T

TMS-4V/SPシステム定義と関連づける内容[1]

TMS-4V/SPのシステムとの接続[1]

TP1/Message Control[1]

TP1/NET/Library[1]

TP1/NET/User Agentが適用するAP間通信のプロトコル[1]

TP1/NET/User Agentからのコネクションの確立（運用コマンド入力時またはオンライン開始時）[1]

TP1/NET/User AgentのOSI7層構造の中での機能範囲[1]

TP1/NET/User AgentのUAプロトコルデータ単位[1]

TP1/NET/User Agentの運用コマンド[1]

TP1/NET/User Agentの組み込みの流れ[1]

TP1/NET/User Agentの定義の概要[1]

TP1/NET/User Agentを組み込んだソフトウェア構成の例[1]

TP1/NET/User Agentを使用したAP間通信の例[1]

U

UA[1]

UA（論理端末）障害[1]

UAP異常終了[1]

UAP異常終了通知イベント[1]

UAP共通定義[1]

UAP障害[1]

UAサービスデータ単位[1]

UA定義[1]

UAの開局[1]

UAの開局と閉局[1]

UAの開局モード[1]

UAの数によるTP1/NET/User Agentのコネクション確立[1]

UAの閉局[1]

UA番号[1]

UAプロトコルデータ単位[1]

UINQ受信時のUA障害[1]

UINQ送信時のUA障害[1]

UOC作成上の注意事項[1]

UOCの異常処理[1]

UOCの構造[1]

UOCの実行タイミング[1]

X

XDM/DCCM3システム定義と関連づける内容[1]

XDM/DCCM3のシステムとの接続[1]

XNFの定義と関連づける内容[1]、[2]

あ

相手システム（XDM/DCCM3）接続時の障害[1]

相手システムからのUAの閉局[1]

相手システムからのコネクションの解放[1]

相手システムのPSAPアドレス[1]

相手システムの通信定義と関連づける内容[1]

アプリケーションの型[1]

アプリケーション名[1]

アプリケーション名の決定[1]

アプリケーション名の決定の処理[1]

い

一般UAの端末識別子[1]

一方受信形態[1]

一方送信メッセージ[1]、[2]

一方送信メッセージ受信時の処理の流れ[1]

一方送信メッセージ障害[1]、[2]

一方送信メッセージ送信時の処理の流れ（request型論理端末）[1]

一方送信メッセージ送信時の処理の流れ（send型論理端末）[1]

一方送信メッセージの送信（COBOL言語）[1]

一方送信メッセージの送信（C言語）[1]

一方送信メッセージの送信と受信[1]、[2]

う

運用コマンド[1]

運用コマンドによるUAの個別開局[1]

運用コマンドによるUAの閉局[1]

お

応答メッセージ[1]

応答メッセージ障害[1]

応答メッセージ送信時の障害[1]

応答メッセージ送信時の処理の流れ[1]

応答メッセージ送信時の処理の流れ（UAサービスデータ単位分割ありの場合）[1]

応答メッセージ送信時の処理の流れ（UAサービスデータ単位分割なしの場合[1]

応答メッセージの送信[1]

応答メッセージの送信（COBOL言語）[1]

応答メッセージの送信（C言語）[1]

か

概要[1]

仮想スロット番号[1]

き

機能[1]

キューグループID[1]

く

組み込み方法[1]

こ

コネクション[1]、[2]、[3]

コネクション（アソシエーション）障害[1]

コネクションID[1]

コネクション確立再試行[1]

コネクション確立障害時の確立再試行回数[1]

コネクション確立障害時の確立再試行間隔[1]

コネクション障害[1]

コネクション定義の開始[1]

コネクション定義の終了[1]

コネクションと論理端末の関係[1]

コネクションの解放[1]、[2]

コネクションの解放（COBOL言語）[1]

コネクションの解放（C言語）[1]

コネクションの解放方法[1]

コネクションの確立[1]、[2]

コネクションの確立（COBOL言語）[1]

コネクションの確立（C言語）[1]

コネクションの確立と解放[1]

コネクションの状態取得（COBOL言語）[1]

コネクションの状態取得（C言語）[1]

コネクションの状態表示[1]

し

自システムからのコネクションの解放（API発行時）[1]

自システムからのコネクションの解放（運用コマンド入力時またはオンライン終了時）[1]

自システムのPSAPアドレス[1]

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

システムサービス情報定義[1]

システムサービス情報定義ファイルの作成[1]

システム定義[1]

ジャーナル障害[1]

受信打ち切りを受信[1]

受信拒否・受信拒否解除を受信[1]

受信バッファ障害[1]

受信メッセージ不正[1]

出力キューおよび出力メッセージ編集UOCの障害[1]

出力メッセージの編集[1]

出力メッセージの編集UOC[1]

出力メッセージの割り当て先[1]

出力メッセージ編集UOCインタフェース[1]

障害対策[1]

障害通知イベント[1]

障害の種類と対応処理[1]

障害発生時の処理の流れ[1]

状態通知イベント[1]

新OSAS/UAプロトコルを使用する場合の定義例[1]

せ

制御UAの端末識別子[1]

そ

送信先論理端末の端末タイプ不正[1]

送信中断を受信[1]

送信バッファ障害[1]

送信メッセージの通番編集[1]

送信メッセージの通番編集UOCインタフェース[1]

ソケット用ファイル記述子の最大数[1]

ソフトウェアの構成の例[1]

た

タイマ起動メッセージ廃棄通知イベント[1]

端末識別子の文字数[1]

端末タイプ[1]

つ

通信管理プログラムと関連づける内容[1]

て

定義オブジェクトファイルの生成[1]、[2]

定義の指定順序[1]

定義例[1]

ディスク出力メッセージ最大格納数[1]

データ操作言語のプログラムインタフェース[1]

データ操作言語のプログラムインタフェースの一覧[1]

デバイス名称[1]

と

問い合わせ応答形態[1]

問い合わせ監視時間[1]

問い合わせメッセージ[1]

問い合わせメッセージ，応答メッセージ障害[1]

問い合わせメッセージ，および応答メッセージ[1]

問い合わせメッセージ送信時の障害[1]

問い合わせメッセージ送信時の処理の流れ[1]

問い合わせメッセージ送信時の処理の流れ（UAサービスデータ単位分割ありの場合）[1]

問い合わせメッセージ送信時の処理の流れ（UAサービスデータ単位分割なしの場合）[1]

問い合わせメッセージの受信と応答メッセージの送信[1]

問い合わせメッセージの送信[1]

問い合わせメッセージの送信と応答メッセージの受信[1]

同期型送受信監視時間[1]

同期型のメッセージの受信（COBOL言語）[1]

同期型のメッセージの受信（C言語）[1]

同期型のメッセージの送受信（COBOL言語）[1]

同期型のメッセージの送受信（C言語）[1]

同期問い合わせ応答形態[1]

トランザクションブランチIDの形式[1]

に

入力キュー，スケジュールサービス，ネームサービス，またはRPCの障害[1]

入力メッセージの編集[1]

入力メッセージの編集とアプリケーション名の決定[1]

入力メッセージ編集UOC[1]

入力メッセージ編集UOCインタフェース[1]

入力メッセージ編集UOCエラー[1]、[2]

入力メッセージ編集UOCの障害[1]

ね

ネットワーク構成の例（TMS-4V/SPのシステムと接続する場合）[1]

ネットワーク構成の例（XDM/DCCM3のシステムと接続する場合）[1]

ふ

不正アプリケーション名検出通知イベント[1]

プロトコル監視時間[1]

分岐送信形態[1]

へ

編集バッファ障害[1]

み

未処理送信メッセージ廃棄通知イベント[1]

め

メッセージ受信用バッファグループ番号[1]

メッセージ制御機能[1]

メッセージ送受信の処理の流れ[1]

メッセージ送信用バッファグループ番号[1]

メッセージの再送（COBOL言語）[1]

メッセージの再送（C言語）[1]

メッセージの受信（COBOL言語）[1]

メッセージの受信（C言語）[1]

メッセージの受信（データ操作言語）[1]

メッセージの送信（データ操作言語）[1]

メッセージのデータ形式[1]

メッセージの分割と組み立て[1]

メッセージ廃棄通知イベント[1]

メッセージ編集用バッファグループ番号[1]

メッセージ編集用バッファ数[1]

メモリ出力メッセージ最大格納数[1]

ゆ

ユーザアプリケーションプログラムの作成例[1]

ユーザオウンコーディング[1]

ユーザオウンコーディングインタフェース[1]

り

理由コード一覧[1]

ろ

論理端末[1]、[2]

論理端末，メッセージ，アプリケーションの型，UAPインタフェース，および通信形態の関係[1]

論理端末定義[1]

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

論理端末の状態取得（COBOL言語）[1]

論理端末の状態取得（C言語）[1]

論理端末の状態表示[1]

論理端末の端末タイプ[1]

論理端末の端末タイプ不正[1]

論理端末の閉塞[1]

論理端末の閉塞（COBOL言語）[1]

論理端末の閉塞（C言語）[1]

論理端末の閉塞解除[1]

論理端末の閉塞解除（COBOL言語）[1]

論理端末の閉塞解除（C言語）[1]

論理端末名称[1]

論理メッセージ[1]