OpenTP1 Version 7

分散トランザクション処理機能

OpenTP1 プロトコル TP1/NET/X25編

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

3000-3-D76

目　　次

前書き

はじめに

1.　概要

1.1　AP間通信の概要

1.2　AP間通信の形態

1.2.1　通信形態

1.2.2　適用範囲

1.3　ソフトウェアの構成

1.3.1　前提プログラム

1.3.2　ソフトウェア構成の例

2.　PVCの機能

2.1　PVCのAP間通信の仕組み

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

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

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

2.1.4　論理端末の閉塞と閉塞解除

2.1.5　メッセージとセグメントの関係

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

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

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

3.　VCの機能

3.1　VCのAP間通信の仕組み

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

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

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

3.1.4　論理端末の閉塞と閉塞解除

3.1.5　メッセージとセグメントの関係

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

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

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

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

メッセージ送受信インタフェースの一覧

dc_mcf_receive － 一方送信メッセージの受信（C言語）

dc_mcf_resend － メッセージの再送（C言語）

dc_mcf_send － 一方送信メッセージの送信（C言語）

CBLDCMCF('RECEIVE ') － 一方送信メッセージの受信（COBOL言語）

CBLDCMCF('RESEND ') － メッセージの再送（COBOL言語）

CBLDCMCF('SEND ') － 一方送信メッセージの送信（COBOL言語）

RECEIVE － メッセージの受信（データ操作言語）

SEND － 一方送信メッセージの送信（データ操作言語）

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

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

5.1　ユーザオウンコーディングインタフェース

5.1.1　入力メッセージの編集とアプリケーション名の決定

5.1.2　入力メッセージ編集UOCインタフェース

5.1.3　出力メッセージの編集

5.1.4　出力メッセージ編集UOCインタフェース

5.1.5　送信メッセージの通番編集

5.1.6　送信メッセージの通番編集UOCインタフェース

5.1.7　UOC作成上の注意事項

5.2　MCFイベントインタフェース

5.2.1　MCFイベントの種類

5.2.2　MCFイベント通知時のセグメント構成

5.2.3　MCFイベント情報の形式（C言語）

5.2.4　MCFイベント情報の形式（COBOL言語）

6.　システム定義

TP1/NET/X25の定義の概要

TP1/NET/X25固有のシステム定義の種類

mcftalccn（コネクション定義の開始） － PVC

mcftalccn（コネクション定義の開始） － VC

mcftalced（コネクション定義の終了） － PVC

mcftalced（コネクション定義の終了） － VC

mcftalcle（論理端末定義） － PVC

mcftalcle（論理端末定義） － VC

mcftcomn（MCF通信構成共通定義） － PVC

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

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

MCF定義オブジェクトの生成

自システムの通信管理プログラムと関連づける内容

定義例

7.　運用コマンド

TP1/NET/X25の運用コマンド

mcftactcn（コネクションの確立）

mcftactle（論理端末の閉塞解除）

mcftdctcn（コネクションの解放）

mcftdctle（論理端末の閉塞）

mcftlscn（コネクションの状態表示）

mcftlsle（論理端末の状態表示）

8.　組み込み方法

8.1　TP1/NET/X25の組み込みの流れ

8.2　MCFメイン関数の作成

8.3　定義オブジェクトファイルの生成

9.　PVCの障害対策

9.1　障害の種類と対応処理（PVC）

9.2　コネクション障害（PVC）

9.3　スケジュール関係の障害（PVC）

9.4　UAP障害（PVC）

10.　VCの障害対策

10.1　障害の種類と対応処理（VC）

10.2　コネクション障害（VC）

10.3　スケジュール関係の障害（VC）

10.4　UAP障害（VC）

付録

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

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

付録B.1　PVCの障害

付録B.2　VCの障害

付録C　理由コード一覧

付録C.1　ERREVT2の理由コード

付録C.2　PVCの理由コード

付録C.3　VCの理由コード

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

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

付録E.1　07-00での変更点

付録F　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2009, Hitachi, Ltd.

前書き

■ 対象製品

・適用OS：AIX 5L V5.1，AIX 5L V5.2，AIX 5L V5.3

P-1M64-3131　 uCosminexus TP1/Message Control　 07-00
P-1M64-3231　 uCosminexus TP1/NET/Library　 07-00
P-F1M64-32313　 uCosminexus TP1/NET/X25　 07-00

これらのプログラムプロダクトのほかにも，このマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。
これらの製品は，ISO9001およびTickITの認証を受けた品質マネジメントシステムで開発されました。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。

■ 発行

2009年1月（第1版）3000-3-D76

■ 著作権

All Rights Reserved. Copyright (C) 2009, Hitachi, Ltd.

はじめに

このマニュアルは，TP1/NET/X25の概要，機能，操作，および運用について説明したものです。

このマニュアルに記載するプログラムプロダクトは次のとおりです。

適用OS：AIX 5L V5.1，AIX 5L V5.2，AIX 5L V5.3

P-1M64-3131　uCosminexus TP1/Message Control

P-1M64-3231　uCosminexus TP1/NET/Library

P-F1M64-32313　uCosminexus TP1/NET/X25

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

＜はじめにの構成＞

対象読者

マニュアルの構成

関連マニュアル

読書手順

図中で使用する記号

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

文法の記号

このマニュアルでの表記

略語一覧

常用漢字以外の漢字の使用について

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

謝辞

対象読者

OpenTP1システムの通信にX.25プロトコルを使用するシステム管理者およびシステム設計者を対象としています。また，オンラインや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/X25を使用したシステム間の通信（AP間通信）の概要について説明しています。

第2章　PVCの機能

PVCの場合のコネクションの確立方法などのAP間通信の仕組み，およびメッセージ送受信の流れについて説明しています。

第3章　VCの機能

VCの場合のコネクションの確立方法などのAP間通信の仕組み，およびメッセージ送受信の流れについて説明しています。

第4章　メッセージ送受信インタフェース

TP1/NET/X25を使用してメッセージを送受信するUAPの作成方法，および作成例について説明しています。

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

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

第6章　システム定義

X.25プロトコルを使用するために必要な，OpenTP1システム定義の中でのTP1/NET/X25固有の定義について説明しています。また，自システム内にある通信管理プログラムと関連づける内容，およびシステム定義例について説明しています。

第7章　運用コマンド

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

第8章　組み込み方法

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

第9章　PVCの障害対策

PVCを使用した場合の障害時の処理とユーザの対策，および障害発生時の処理の流れについて説明しています。

第10章　VCの障害対策

VCを使用した場合の障害時の処理とユーザの対策，および障害発生時の処理の流れについて説明しています。

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

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

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

障害が発生したときの処理の流れをPVCとVCに分けて説明しています。

付録C　理由コード一覧

ERREVT2通知時の理由コード，および障害通知イベント（CERREVT）通知時の理由コードについて説明しています。

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

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

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

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

付録F　用語解説

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

関連マニュアル

読書手順

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

図中で使用する記号

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

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

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

コード | JISコード配列 | ASCIIコード配列
（5c)₁₆ | '¥'（円記号) | '＼'（バックスラッシュ）
（7e)₁₆ | '￣'（オーバライン） | '～'（チルド）

文法の記号

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

(1)文法記述記号

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

文法記述記号
意味

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

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

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

｜
（ストローク）
この記号で区切られた項目は選択できることを示します。

（例）-l auto｜manual

-lオプションにautoまたはmanualを指定できることを示します。

ただし，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に依存）

このマニュアルでの表記

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

製品名称 | 略称
AIX 5L V5.1 | AIX
AIX 5L V5.2
AIX 5L V5.3
uCosminexus TP1/Message Control | TP1/Message Control
uCosminexus TP1/Message Control/Tester | TP1/Message Control/Tester
uCosminexus TP1/NET/Library | TP1/NET/Library
uCosminexus TP1/NET/X25 | TP1/NET/X25
uCosminexus TP1/Server Base | TP1/Server Base
XNF/AS/BASE | XNF/AS | XNF
XNF/AS/NLI

略語一覧

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

英略語 | 英字での表記
AP | Application Program
INS | Information Network System
ISDN | Integrated Services Digital Network
LAN | Local Area Network
LE | Logical Entity
MCF | Message Control Facility
MHP | Message Handling Program
OS | Operating System
PVC | Permanent Virtual Circuit
RPC | Remote Procedure Call
SPP | Service Providing Program
UAP | User Application Program
UOC | User Own Coding
VC | Virtual Call
WAN | Wide Area Network

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

個所（かしょ）　閉塞（へいそく）

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

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

謝辞

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

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

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

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

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

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

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

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

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

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

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

1.　概要

TP1/NET/X25は，OpenTP1システムを構成するプログラムの一つです。ホストコンピュータ，端末などをX.25プロトコルによって論理的に接続し，メッセージを送受信します。この章では，TP1/NET/X25を使用したシステム間の通信（AP間通信）の概要について説明します。

＜この章の構成＞

1.1　AP間通信の概要

1.2　AP間通信の形態

1.3　ソフトウェアの構成

1.1　AP間通信の概要

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

TP1/NET/X25は，OpenTP1システムと各種コンピュータシステムをX.25プロトコルで接続し，AP間通信をするプログラムです。TP1/NET/X25を使用したAP間通信では，相手システムで発生したトランザクションを自システムで処理したり，その結果を相手システムへ送ったりできます。

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

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

TP1/NET/X25では，X.25プロトコルの通信相手の選択方式として，PVCとVCを支援しています。PVCとVCについて説明します。

PVC

通信相手を固定して通信する方式です。

VC

通信相手を固定しないで選択して通信する方式です。

このマニュアルでは，PVCとVCで違いがある場合には，分けて説明しているか，どちらかの場合に限定して説明しています。特に分けていない場合は，PVCとVCで共通の内容です。

1.2　AP間通信の形態

＜この節の構成＞

1.2.1　通信形態

1.2.2　適用範囲

1.2.1　通信形態

TP1/NET/X25を使用したAP間通信の形態には，分岐送信形態と一方受信形態があります。

＜この項の構成＞

(1)　分岐送信形態

(2)　一方受信形態

(1)　分岐送信形態

自システムから別のシステムにメッセージを送信する形態です。自システムから相手システムに送信するメッセージを，一方送信メッセージといいます。

分岐送信形態のAP間通信の例を次の図に示します。

図1-2　分岐送信形態のAP間通信の例

(2)　一方受信形態

相手システムからメッセージを受信する形態です。相手システムから受信するメッセージも，分岐送信形態の場合と同様に一方送信メッセージといいます。

一方受信形態のAP間通信の例を次の図に示します。

図1-3　一方受信形態のAP間通信の例

1.2.2　適用範囲

＜この項の構成＞

(1)　伝送動作モード

(1)　伝送動作モード

TP1/NET/X25で適用する伝送動作モードを次に示します。

X.25(80)PVC

X.25(80)VC　発呼

X.25(80)VC　着呼

X.25(84)VC　発呼

X.25(84)VC　着呼

1.3　ソフトウェアの構成

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

この節では，TP1/NET/X25を使用したMCFを実現するための前提プログラムと，TP1/NET/X25を組み込んだソフトウェア構成について説明します。

＜この節の構成＞

1.3.1　前提プログラム

1.3.2　ソフトウェア構成の例

1.3.1　前提プログラム

TP1/NET/X25を使用したMCFを実現するための前提プログラムは次のとおりです。

適用OS：AIX

P-1M64-2131　TP1/Server Base　07-00以降

P-1M14-511　XNF/AS/BASE※

R-F1M141-518　XNF/AS/NLI※

注※

前提となるXNFのバージョンは，AIX 5L V5.1以降に対応するバージョン以降です。

1.3.2　ソフトウェア構成の例

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

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

注※

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

2.　PVCの機能

一般に，AP間通信をするときには，自システムと相手システムとの間であらかじめ通信上の規約（プロトコル）を決める必要があります。TP1/NET/X25は，二つのシステムの間にコネクションという論理的通信路を設定し，メッセージを送受信します。この章では，PVCの場合のコネクションの確立方法などのAP間通信の仕組み，およびメッセージ送受信の流れについて説明します。

＜この章の構成＞

2.1　PVCのAP間通信の仕組み

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

2.1　PVCのAP間通信の仕組み

TP1/NET/X25のPVCを使用する場合の，コネクションや論理端末を使用したAP間通信の仕組みについて説明します。

＜この節の構成＞

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

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

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

2.1.4　論理端末の閉塞と閉塞解除

2.1.5　メッセージとセグメントの関係

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

＜この項の構成＞

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

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

(3)　コネクション切断後の再確立

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

TP1/NET/X25は，AP間通信をするために，自システムと相手システムとの間に論理的な通信路（コネクション）を確立します。

オンライン開始時に指定した定義オブジェクトファイルの内容，またはオンライン運用中の運用コマンドの入力によってコネクションを確立し，メッセージの送受信ができる状態になります。

TP1/NET/X25は，状態通知イベント（COPNEVT）によって，ユーザアプリケーションプログラム（以降，UAPと記述します）にコネクションの確立を通知します。

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

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

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

オンライン終了時，または運用コマンドの入力によって，TP1/NET/X25はコネクションを解放します。運用コマンドの入力でコネクションの解放が完了すると，TP1/NET/X25は，状態通知イベント（CCLSEVT）によって，UAPにコネクションの解放を通知します。ただし，オンライン終了時は，このイベントは通知されません。

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

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

注※　オンライン終了時は通知されません。

(3)　コネクション切断後の再確立

TP1/NET/X25は，通信管理から回線障害の情報を受信するとコネクションを切断状態にします。コネクションが切断状態になると，TP1/NET/X25は，状態通知イベント（CERREVT）によって，障害の発生とコネクションの切断をUAPに通知します。コネクション切断時の障害対策については，「9.2　コネクション障害（PVC）」を参照してください。

コネクション切断時の流れを，次の図に示します。

図2-3　コネクション切断時の流れ

コネクション切断後，オンライン開始時に指定した定義オブジェクトファイルの内容，または運用コマンドの入力によってコネクションを再確立できます。

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

TP1/NET/X25は，論理端末（LE）を通して，自システムのUAPとメッセージを送受信します。論理端末は，TP1/NET/X25とUAPの通信接点に当たります。これに対してコネクションとは，TP1/NET/X25が通信管理を通して，相手システムのUAPとメッセージを送受信するときに確立するものです。コネクションと論理端末の指定を対応させると，自システムとの論理的通信路が確立でき，AP間通信ができるようになります。コネクションと論理端末は，システム定義時に対応させます。

システム定義では，コネクション一つに対し，論理端末を一つ指定します。

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

TP1/NET/X25では，メッセージを送受信するために，論理端末の端末タイプとアプリケーションの型をシステム定義時に指定します。TP1/NET/X25で扱う論理端末の端末タイプはany（任意型）です。論理端末の端末タイプは，MCF通信構成定義（mcftalcle -t）で指定します。

アプリケーションは，ユーザが通常，送受信データに指定したアプリケーション名をキーとして一つのUAP（MHP）プロセスで実行されます。アプリケーションには，処理形態によって型があります。TP1/NET/X25で扱うアプリケーションの型は，非応答型（noans）です。アプリケーションの型は，MCFアプリケーション定義（mcfaalcap -n）で指定します。MCFアプリケーション定義については，マニュアル「OpenTP1 システム定義」を参照してください。

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

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

論理端末の端末タイプ | メッセージの種類 | アプリケーションの型 | 通信形態 | UAPインタフェース
any（任意型） | 一方送信メッセージ | 非応答型（noans） | 一方受信形態 | receive
分岐送信形態 | send
resend

2.1.4　論理端末の閉塞と閉塞解除

TP1/NET/X25は，コネクション確立後，または確立と同時に論理端末の閉塞を解除してメッセージの送受信をします。論理端末の状態について次に示します。

閉塞状態
UAPが送信要求したメッセージを出力キューから取り出し，相手システムに送信できない状態です。UAPは該当する論理端末に対して送信要求ができ，相手システムからの受信メッセージのスケジュールもできます。

閉塞解除状態
論理端末が持つ機能を使用できる状態です。

閉塞解除状態で，送信スケジュール抑止状態
1と同じ内容です。コネクション未確立，または送信完了を待っている間は，この状態になります。

＜この項の構成＞

(1)　論理端末の閉塞

(2)　論理端末の閉塞解除

(1)　論理端末の閉塞

コネクションの解放または切断と同時に論理端末を自動的に閉塞します。また，オンライン中の任意の時点で，運用コマンド（mcftdctle）を入力して閉塞できます。

(2)　論理端末の閉塞解除

コネクション確立直後，論理端末は通常，閉塞状態です。メッセージを送受信するには，論理端末の閉塞解除をする必要があります。

TP1/NET/X25は，コネクション確立と同時に，自動的に論理端末の閉塞解除をします。

また，コネクション確立状態の任意の時点で，運用コマンド（mcftactle）を入力して論理端末の閉塞解除ができます。論理端末が閉塞解除状態のときにmcftactleコマンドを入力した場合，コマンドはエラーとなります。

2.1.5　メッセージとセグメントの関係

一つの業務で処理するメッセージを，論理メッセージといいます。

TP1/NET/X25では，相手システムとのメッセージ送受信の場合，一つの論理メッセージが一つのセグメントで構成されます。

UAPとTP1/NET/X25との間では，セグメント単位でメッセージを送受信します。TP1/NET/X25を使用するUAPは，相手システムとのメッセージ送受信の場合，常に単一セグメントのメッセージを扱います。

論理メッセージは，他システムへ送信されるときに，パケット分割をされる場合があります。パケット分割をすると性能が低下するため，送信メッセージ長を，通信管理で指定するパケットサイズ以下にすることをお勧めします。

メッセージ送受信の関数で処理するセグメントの先頭には，MCFで使用するヘッダ領域があります。このヘッダ領域の長さによって，バッファ形式1とバッファ形式2があります。通常，バッファ形式1を使用します。

MCF通信構成定義（mcftalccn -o）のctlheaderオペランドで，制御ヘッダを付けることを指定した場合，メッセージ送信時にはセグメントに制御ヘッダを付けてください。また，メッセージ受信時にはセグメントに制御ヘッダが付けられます。次の機能を使用する場合，制御ヘッダを付けてください。

PADメッセージ（Qビット付きデータパケット）の送受信
PADメッセージの送受信をする場合，MCF通信構成定義（mcftalccn）のctlheaderオペランドで，制御ヘッダを付けることを指定してください。また，PADメッセージ送信時は，制御ヘッダにPADメッセージであることを設定してください。PADメッセージ受信時には，制御ヘッダにPADメッセージであることが設定されます。

制御ヘッダの内容については，「4.　メッセージ送受信インタフェース」を参照してください。

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

TP1/NET/X25は，AP間通信メッセージの送受信をします。TP1/NET/X25で使用するメッセージは一方送信メッセージです。

＜この節の構成＞

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

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

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

自システムのUAPから相手システムへメッセージを送る形態です。

TP1/NET/X25が，通信相手システムに一方送信メッセージを送信する手順を説明します。

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

図2-4　PVCのメッセージ送信の流れ

UAPは，一方送信メッセージの送信要求をします。

TP1/NET/X25は，出力キューに書き込まれたメッセージを取り出します。

出力メッセージ編集UOCでメッセージを編集します。UOCが登録されていない場合，UOCを呼び出さないで次の処理へ続きます。

相手システムへメッセージを送信します。このとき，パケット分割される場合もあります。

送信が完了すると，TP1/NET/X25は，出力キューにある送信済みのメッセージを消去します。

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

相手システムから一方的に送られたメッセージを受ける形態です。

TP1/NET/X25が，通信相手システムから一方送信メッセージを受信する手順を説明します。

メッセージ受信の流れを次の図に示します。

図2-5　PVCのメッセージ受信の流れ

TP1/NET/X25は，相手システムからメッセージを受信します。パケット分割されている場合，最終パケットまで受け取り，一つのメッセージに組み立てます。

入力メッセージ編集UOCでメッセージを編集します。UOCが登録されていない場合，UOCを呼び出さないで次の処理へ続きます。

メッセージを入力キューに書き込みます。

UAPはreceive関数を呼び出してメッセージを受け取ります。

3.　VCの機能

この章では，VCの場合のコネクションの確立方法などのAP間通信の仕組み，およびメッセージ送受信の流れについて説明します。

＜この章の構成＞

3.1　VCのAP間通信の仕組み

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

3.1　VCのAP間通信の仕組み

TP1/NET/X25のVCを使用する場合の，コネクションや論理端末を使用したAP間通信の仕組みについて説明します。

＜この節の構成＞

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

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

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

3.1.4　論理端末の閉塞と閉塞解除

3.1.5　メッセージとセグメントの関係

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

TP1/NET/X25は，AP間通信をするために，自システムと相手システムとの間に論理的な通信路（コネクション）を確立します。VCでは，属性によってコネクションを分類しています。コネクションには，発呼コネクションと着呼コネクションがあります。コネクションの種類はMCF通信構成定義で指定します。定義の詳細については，「6.　システム定義」を参照してください。

コネクションの種類と内容について説明します。

発呼コネクション（MCF通信構成定義 mcftalccn -t intを指定）

自システムから相手システムに対して確立するコネクションです。

MCF通信構成定義（mcftalccn -q）で接続する相手システムを指定し，指定した相手システムとのコネクションを確立します。

着呼コネクション（MCF通信構成定義 mcftalccn -t rspを指定）

相手システムから自システムに対して確立するコネクションです。

MCF通信構成定義（mcftalccn -q）で指定した相手システムからのコネクション確立要求を受信したときだけコネクションを確立します。

＜この項の構成＞

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

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

(3)　コネクションの切断

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

コネクションの確立方法には，自動確立と手動確立があります。

自動確立

OpenTP1開始時および再開始時に自動的にコネクションを確立します。MCF通信構成定義（mcftalccn -i）でautoを指定した場合に確立します。

手動確立

運用コマンド（mcftactcn）で確立します。ただし，発呼コネクションの場合に確立します。着呼コネクションの場合は，mcftactcnコマンドを入力するとエラーとなります。

VCの場合のコネクション確立の流れを次に示します。

(a)　発呼コネクションの確立

発呼コネクションの場合のコネクション確立について，次の図に示します。

図3-1　VCのコネクション確立の流れ（発呼）

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

TP1/NET/X25は，相手システムにコネクションの確立要求をします。

相手システムからコネクションの確立を受け付けたことを通知します。

コネクションが確立されます。

コネクションが確立されると状態通知イベント（COPNEVT）を通知します。MCFアプリケーション定義にCOPNEVTが定義されていない場合は，MHPは起動しません。

(b)　着呼コネクションの確立

着呼コネクションの場合のコネクション確立について，次の図に示します。

図3-2　VCのコネクション確立の流れ（着呼）

OpenTP1システムの開始時および再開始時，定義オブジェクトファイルの内容によって，相手システムからのコネクション確立要求を待ちます。

相手システムからコネクションの確立要求を受け付けます。

コネクションの確立を受け付けたことを通知します。

コネクションが確立されます。

コネクションが確立されると状態通知イベント（COPNEVT）を通知します。MCFアプリケーション定義にCOPNEVTが定義されていない場合は，MHPは起動しません。

(c)　コネクション確立の再試行

コネクション確立を失敗した場合，次の条件を満たしていれば自動的にコネクション確立を再試行します。

MCF通信構成定義（mcftalccn -a）で"aretry=yes"を指定した場合

通信管理から取得する障害回復再試行可否情報が回復可能な場合

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

コネクションの解放方法には，自動解放と手動解放があります。

自動解放

OpenTP1終了時に自動的にコネクションを解放します。

手動解放

運用コマンド（mcftdctcn）を入力してコネクションを解放します。コネクションが解放されると，状態通知イベント（CCLSEVT）を通知します。

コネクションの解放は，コネクションの種類には関係なく，自システムからと相手システムからの解放に分けられます。VCの場合のコネクション解放の流れを次に示します。

(a)　自システムからのコネクションの解放

自システムからのコネクションの解放について，次の図に示します。

図3-3　自システムからのコネクション解放の流れ

OpenTP1システムの終了，または運用コマンド（mcftdctcn）を入力します。

TP1/NET/X25は，相手システムに対してコネクションの解放要求をします。

コネクションが解放されます。

コネクションが解放されると状態通知イベント（CCLSEVT）を通知します。ただし，OpenTP1システム終了時とMCFアプリケーション定義にCCLSEVTが定義されていない場合は，MHPは起動しません。

(b)　相手システムからのコネクションの解放

相手システムからのコネクションの解放について，次の図に示します。

図3-4　相手システムからのコネクション解放の流れ

相手システムからのコネクション解放要求を受け取ります。

TP1/NET/X25は，通信管理との間でコネクションの解放処理をします。

コネクションが解放されます。

コネクションが解放されると状態通知イベント（CCLSEVT）または障害通知イベント（CERREVT）を通知します。どちらを通知するかは，MCF通信構成定義（mcftalccn -f）のkindオペランドで指定します。

(3)　コネクションの切断

回線の障害などでコネクションが切断されます。コネクションが切断されると，CCLSEVTまたはCERREVTを通知します。どちらのイベントを通知するかはMCF通信構成定義（mcftalccn）のkindオペランドで指定します。定義の詳細は「6.　システム定義」を参照してください。

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

TP1/NET/X25は，論理端末（LE）を通して，自システムのUAPとメッセージの送受信をします。論理端末は，TP1/NET/X25とUAPの通信接点に当たります。これに対してコネクションは，TP1/NET/X25が通信管理を通して，相手システムのUAPとメッセージの送受信をするときに確立されます。コネクションと論理端末の指定を対応させると，自システムとの論理的通信路が確立でき，AP間通信ができるようになります。コネクションと論理端末はシステム定義時に対応させます。

システム定義では，コネクション一つに対し，論理端末を一つ指定します。

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

TP1/NET/X25では，メッセージの送受信をするために，論理端末の端末タイプとアプリケーションの型をシステム定義時に指定します。TP1/NET/X25で扱う論理端末の端末タイプはany（任意型）です。論理端末の端末タイプはMCF通信構成定義（mcftalcle -t）で指定します。

アプリケーションは，ユーザが通常，送受信データに指定したアプリケーション名をキーとして一つのUAP(MHP)プロセスで実行されます。アプリケーションには，処理形態によって型があります。TP1/NET/X25で扱うアプリケーションの型は，非応答型（noans）です。アプリケーションの型は，MCFアプリケーション定義（mcfaalcap -n）で指定します。MCFアプリケーション定義については，マニュアル「OpenTP1 システム定義」を参照してください。

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

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

論理端末の端末タイプ | メッセージの種類 | アプリケーションの型 | 通信形態 | UAPインタフェース
any（任意型） | 一方送信メッセージ | 非応答型（noans） | 一方受信形態 | receive
分岐送信形態 | send
resend

3.1.4　論理端末の閉塞と閉塞解除

TP1/NET/X25は，コネクション確立後，または確立と同時に論理端末の閉塞を解除してメッセージの送受信をします。論理端末の状態について次に示します。

閉塞状態
UAPが送信要求したメッセージを出力キューから取り出し，相手システムに送信できない状態です。UAPは該当する論理端末に対して送信要求ができ，相手システムからの受信メッセージのスケジュールもできます。

閉塞解除状態
論理端末が持つ機能を使用できる状態です。

閉塞解除状態で，送信スケジュール抑止状態
1と同じ内容です。コネクション未確立，または送信完了を待っている間は，この状態になります。

＜この項の構成＞

(1)　論理端末の閉塞

(2)　論理端末の閉塞解除

(1)　論理端末の閉塞

VCの場合，コネクションの解放または切断と同時に論理端末を自動的に閉塞します。

また，オンライン中の任意の時点で，運用コマンド（mcftdctle）を入力して閉塞できます。

(2)　論理端末の閉塞解除

VCの場合，コネクション確立と同時に，自動的に論理端末の閉塞解除をします。

また，コネクション確立状態の任意の時点で，運用コマンド（mcftactle）を入力して論理端末の閉塞解除ができます。論理端末が閉塞解除状態のときにmcftactleコマンドを入力した場合，コマンドはエラーとなります。

3.1.5　メッセージとセグメントの関係

一つの業務で処理するメッセージを論理メッセージといいます。TP1/NET/X25では，相手システムとのメッセージ送受信の場合，一つの論理メッセージが一つのセグメントで構成されます。

UAPとTP1/NET/X25との間では，セグメント単位でメッセージの送受信をします。TP1/NET/X25を使用するUAPは，相手システムとのメッセージ送受信の場合，常に単一セグメントのメッセージを扱います。

論理メッセージは，他システムへ送信されるときに，パケット分割をされる場合があります。パケット分割をすると性能が低下するため，送信メッセージ長を，通信管理で指定するパケットサイズ以下にすることをお勧めします。

メッセージ送受信の関数で処理するセグメントの先頭には，MCFで使用するヘッダ領域があります。このヘッダ領域の長さによって，バッファ形式1とバッファ形式2があります。通常，バッファ形式1を使用します。

MCF通信構成定義（mcftalccn -o）のctlheaderオペランドで，制御ヘッダを付けることを指定した場合，メッセージ送信時にはセグメントに制御ヘッダを付けてください。また，メッセージ受信時にはセグメントに制御ヘッダが付けられます。次の機能を使用する場合，制御ヘッダを付けてください。

PADメッセージ（Qビット付きデータパケット）の送受信
PADメッセージの送受信をする場合，MCF通信構成定義（mcftalccn -o）のctlheaderオペランドで，制御ヘッダを付けることを指定してください。また，PADメッセージ送信時には，制御ヘッダにPADメッセージであることを設定してください。PADメッセージ受信時には，制御ヘッダにPADメッセージであることが設定されます。

割り込みメッセージ（割り込みパケット）の受信通知
割り込みメッセージの受信通知をする場合，MCF通信構成定義（mcftalccn -o）で，制御ヘッダを付けること（ctlheaderオペランド），および割り込みメッセージの受信を通知すること（itdataオペランド）を指定してください。すると，割り込みメッセージ受信時に，制御ヘッダに割り込みメッセージであることが設定されます。

制御ヘッダの内容については，「4.　メッセージ送受信インタフェース」を参照してください。

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

TP1/NET/X25は，AP間通信メッセージの送受信をします。VCで使用するメッセージは一方送信メッセージです。一方送信メッセージの送信と受信について次に示します。

＜この節の構成＞

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

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

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

自システムのUAPから相手システムへメッセージを送る形態です。

TP1/NET/X25が相手システムに一方送信メッセージを送信する手順を説明します。

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

図3-5　VCのメッセージ送信の流れ

UAPは，一方送信メッセージの送信要求をします。

TP1/NET/X25は，出力キューに書き込まれたメッセージを取り出します。

出力メッセージ編集UOCでメッセージを編集します。UOCが登録されていない場合，UOCを呼び出さないで次の処理へ続きます。

相手システムへメッセージを送信します。このとき，パケット分割される場合もあります。

送信が完了すると，TP1/NET/X25は，出力キューにある送信済みのメッセージを消去します。

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

相手システムからのメッセージを受ける形態です。

TP1/NET/X25が相手システムから一方送信メッセージを受信する手順を説明します。

VCのメッセージ受信の流れを次の図に示します。

図3-6　VCのメッセージ受信の流れ

TP1/NET/X25は，相手システムからメッセージを受信します。パケット分割されている場合，最終パケットまで受け取り，一つのメッセージに組み立てます。

入力メッセージ編集UOCでメッセージを編集します。UOCが登録されていない場合，UOCを呼び出さないで次の処理へ続きます。

メッセージを入力キューに書き込みます。

UAPはreceive関数を呼び出してメッセージを受け取ります。

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

TP1/NET/X25を使用してメッセージを送受信する場合，ユーザは個別の業務に対応させるため，UAPを作成します。この章では，UAPの作成方法，および作成例について説明します。

＜この章の構成＞

メッセージ送受信インタフェースの一覧

dc_mcf_receive － 一方送信メッセージの受信（C言語）

dc_mcf_resend － メッセージの再送（C言語）

dc_mcf_send － 一方送信メッセージの送信（C言語）

CBLDCMCF('RECEIVE ') － 一方送信メッセージの受信（COBOL言語）

CBLDCMCF('RESEND ') － メッセージの再送（COBOL言語）

CBLDCMCF('SEND ') － 一方送信メッセージの送信（COBOL言語）

RECEIVE － メッセージの受信（データ操作言語）

SEND － 一方送信メッセージの送信（データ操作言語）

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

メッセージ送受信インタフェースの一覧

TP1/NET/X25で使用するメッセージ送受信インタフェースについて，C言語，COBOL言語，およびデータ操作言語に分けて説明します。

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

C言語のメッセージ送受信

C言語でメッセージを送受信する場合は，OpenTP1システムで提供する関数を使用してUAPを作成します。

メッセージ送受信の関数を次の表に示します。

表4-1　メッセージ送受信の関数（C言語）

関数名 | 機能
dc_mcf_receive | 一方送信メッセージの受信
dc_mcf_resend | メッセージの再送
dc_mcf_send | 一方送信メッセージの送信

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

COBOL言語のメッセージ送受信

COBOL言語でメッセージを送受信する場合は，OpenTP1システムで提供する関数に対応しているプログラムを，CALL文で呼び出してUAPを作成します。

メッセージ送受信の関数に対応するプログラムを次の表に示します。

表4-2　メッセージ送受信の関数に対応するプログラム（COBOL言語）

プログラム名 | データ名 | 機能
CBLDCMCF | 'RECEIVE△' | 一方送信メッセージの受信
'RESEND△△' | メッセージの再送
'SEND△△△△' | 一方送信メッセージの送信

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

データ操作言語（COBOL言語）のメッセージ送受信

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

TP1/NET/X25固有の通信文について，次の表に示します。

表4-3　メッセージ送受信の通信文（データ操作言語）

通信文 | 機能 | 対応するCALLインタフェース
データコミュニケーション機能 | RECEIVE | 一方送信メッセージの受信 | CBLDCMCF('RECEIVE△')
SEND | 一方送信メッセージの送信 | CBLDCMCF('SEND△△△△')

注

メッセージの再送－CBLDCMCF('RESEND△△')のデータ操作言語のインタフェースはありません。

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関数を呼び出すと，一つの論理メッセージを受信できます。

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

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

MCFイベント

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

TP1/NET/X25を使用して通信する場合，相手システムから送信されるメッセージは，常に単一セグメントで構成されます。

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

制御ヘッダは，MCF通信構成定義でmcftalccn -o ctlheader=useを指定したときだけ付けられます。制御ヘッダの内容を次に示します。

XX

【PVCの場合】

リセットパケットの原因コード。この値は相手システムに依存します。

【VCの場合】

予備（0）

YY

【PVCの場合】

リセットパケットの診断コード。この値は相手システムに依存します。

【VCの場合】

予備（0）

ZZ

【PVCの場合】

2⁷ビット：相手システムから受信したデータパケットのQビット

2⁶～2⁵ビット：メッセージ種別

(10)₂：リセットメッセージ（テキスト部は存在しません）

(00)₂：通常メッセージ

2⁴～2⁰ビット：予備（0）

【VCの場合】

2⁷ビット：相手システムから受信したデータパケットのQビット

2⁶～2⁵ビット：メッセージ種別

(11)₂：割り込みメッセージ

(00)₂：通常メッセージ

2⁴～2⁰ビット：予備（0）

制御ヘッダの構造体は，PVCの場合は<dcmx25c.h>に，VCの場合は<dcmx2m.h>に定義してあります。

各構造体の形式を次に示します。

【PVCの場合】dcmx25c.hに定義

typedef struct {
   unsigned char   id;                …制御ヘッダID (20)₁₆
   unsigned char   cause;             …リセットパケットの原因コード
   unsigned char   diag;              …リセットパケットの診断コード
   unsigned char   dcmx25_ctlbit;
} dcmx25_ctl_type;

【VCの場合】dcmx2m.hに定義

typedef struct {
   unsigned char   id;                …制御ヘッダID (20)₁₆
   unsigned char   rsv1;              …予備
   unsigned char   rsv2;              …予備
   unsigned char   dcmx2m_ctlbit;
} dcmx2m_ctl_type;

制御ヘッダに対してビット単位でアクセスできません。制御ヘッダ内への設定・参照は，ビット演算で実行するようにしてください。

設定例

データパケットのQビット設定時の例

dcmx25_ctlbit |= 0x80 ;

UAPで値を設定する引数

●action

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

｛DCMCFFRST｜DCMCFSEG｝〔｜｛DCMCFBUF1｜DCMCFBUF2｝〕

DCMCFFRST

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

DCMCFSEG

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

DCMCFBUF1

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

DCMCFBUF2

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

●commform

DCNOFLAGSを設定します。

●termnam

中間セグメントまたは最終セグメントを受信する場合は，入力元の論理端末名称を設定します。論理端末名称には，先頭セグメントを受信したときに返された論理端末名称を設定します。

先頭セグメントの処理終了後，termnamにはOpenTP1から値が返ります。

●resv01

ヌル文字を設定します。

●recvdata

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

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

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

●inbufleng

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

OpenTP1から値が返される引数

●termnam

先頭セグメントを受信する場合だけ，入力元の論理端末名称が返されます。

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

●recvdata

受信したセグメントの内容が返されます。VCの場合，0バイトセグメントは受信しないで破棄します。

●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_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を返します。このため，使用するメッセージキューの種別ではディスクキューを指定するとともに，メッセージキューファイルの容量および保持メッセージ数（メッセージキューサービス定義のquegrpコマンドの-mオプションで指定）に余裕を持った値を指定してください。

UAPで値を設定する引数

●action

再送するメッセージに出力通番を付け直すかどうか，一般か優先かどうか，および最終出力通番のメッセージを再送するかどうかを，次の形式で設定します。

｛DCMCFSEQ｜DCMCFNSEQ｝〔｜｛DCMCFNORM｜DCMCFPRIO｝〕〔｜DCMCFLAST〕

DCMCFSEQ

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

DCMCFNSEQ

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

DCMCFNORM

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

DCMCFPRIO

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

DCMCFLAST

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

●commform

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

●rtermnam

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

●resv01

ヌル文字を設定します。

●oseqid

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

DCMCFRID_NORM

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

DCMCFRID_PRIO

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

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

●orgseq

再送するメッセージを検索するキーとして，以前に送信したメッセージの出力通番を設定します。actionでDCMCFLASTを設定した場合は，ここに設定した値は無効になります。

●otermnam

再送するメッセージを検索するキーとして，以前に送信したメッセージの出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

●resv02，resv03，resv04

ヌル文字を設定します。

●opcd

DCNOFLAGSを設定します。

リターン値

リターン値
リターン値
（数値）
意味

DCMCFRTN_00000
0
正常に終了しました。

DCMCFRTN_NOMSG
-11904
該当するメッセージがありません。

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）の値が間違っています。

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

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

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;

機能

相手システムへ一方送信メッセージを送信します。一方送信メッセージは，一つのセグメントで構成されます。

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

制御ヘッダは，MCF通信構成定義でmcftalccn -o ctlheader=useを指定したときだけ付けます。制御ヘッダの内容を次に示します。

XX

予備（0）

YY

予備（0）

ZZ

2⁷ビット：相手システムへ送信されるデータパケットのQビット

2⁶～2⁰ビット：予備（0）

制御ヘッダの構造体は，PVCの場合は<dcmx25c.h>に，VCの場合は<dcmx2m.h>に定義してあります。

各構造体の形式を次に示します。

【PVCの場合】dcmx25c.hに定義

typedef struct {
   unsigned char   id;                …制御ヘッダID (20)₁₆
   unsigned char   cause;             …リセットパケットの原因コード
   unsigned char   diag;              …リセットパケットの診断コード
   unsigned char   dcmx25_ctlbit;
} dcmx25_ctl_type;

【VCの場合】dcmx2m.hに定義

typedef struct {
   unsigned char   id;                …制御ヘッダID (20)₁₆
   unsigned char   rsv1;              …予備
   unsigned char   rsv2;              …予備
   unsigned char   dcmx2m_ctlbit;
} dcmx2m_ctl_type;

制御ヘッダに対してビット単位でアクセスできません。制御ヘッダ内への設定・参照は，ビット演算で実行するようにしてください。

設定例

データパケットのQビット設定時の例

dcmx25_ctlbit |= 0x80 ;

UAPで値を設定する引数

●action

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

DCMCFEMI〔｜｛DCMCFNORM｜DCMCFPRIO｝〕〔｜｛DCMCFSEQ｜DCMCFNSEQ｝〕〔｜｛DCMCFBUF1｜DCMCFBUF2｝〕

DCMCFEMI

単一セグメントを示すDCMCFEMIを設定します。

DCMCFNORM

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

DCMCFPRIO

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

DCMCFSEQ

出力通番が必要な場合に設定します。

DCMCFNSEQ

出力通番が必要ない場合に設定します。

DCMCFBUF1

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

DCMCFBUF2

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

●commform

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

●termnam

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

●resv01

ヌル文字を設定します。

●senddata

送信するメッセージのセグメントの内容を設定した領域を設定します。32000バイト（制御ヘッダを付けた場合，制御ヘッダの4バイトを含みます）まで送信できます。なお，制御ヘッダを使用する場合，4バイト以下のメッセージは送信しないで，出力キューから削除されます。

●sdataleng

送信するメッセージのセグメントの長さを設定します。

●resv02

ヌル文字を設定します。

●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に設定した出力先の論理端末名称は，MCFで定義していません。

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

DCMCFRTN_72016
-13016
actionに設定したセグメント種別（DCMCFNORMまたはDCMCFPRIO）の値が間違っています。

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

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

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

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

DCMCFRTN_72017
-13017
actionに設定した出力通番の要否（DCMCFSEQまたはDCMCFNSEQ）の値が間違っています。

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

DCMCFRTN_72026
-13026
actionに設定したメッセージ種別（DCMCFEMI）の値が間違っています。

DCMCFRTN_72041
-13041
sdatalengに0，またはマイナスの値を設定しています。

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

（凡例）

－：該当しません。

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.
     03 データ名Y1 PIC X(n).
     03 データ名Y2 REDEFINES データ名Y1.
        04 データ名Y3.
           05 データ名Y4 PIC 9(1).
           05 データ名Y5 PIC 9(1).
           05 データ名Y6 PIC 9(1).
           05 データ名Y7.
              06 データ名Y8  PIC 1(1).
              06 データ名Y9  PIC 1(2).
              06 データ名Y10 PIC 1(5).
        04 データ名Y11 PIC X(n-4).

機能

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

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

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

MCFイベント

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

TP1/NET/X25を使用して通信する場合，相手システムから送信されるメッセージは，常に単一セグメントで構成されます。

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

制御ヘッダを使用する場合（MCF通信構成定義　mcftalccn -o ctlheader=useを指定）

制御ヘッダを使用しない場合（MCF通信構成定義　mcftalccn -o ctlheader=nouseを指定，または-oオプションを省略）

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

中間セグメントまたは最終セグメントを受信する場合，入力元の論理端末名称を設定します。先頭セグメントの受信時に返された論理端末名称を設定してください。

先頭セグメントの受信処理終了後，データ名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

先頭セグメントを受信する場合，入力元の論理端末名称が返されます。

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

●データ名U

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

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

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

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

●データ名Y1【制御ヘッダを付けなかった場合】

受信したセグメントの内容が返されます。32000バイトまで受信できます。

●データ名Y4【制御ヘッダを付けた場合】

制御ヘッダ識別子（X'20'）が返されます。

●データ名Y5【制御ヘッダを付けた場合】

【PVCの場合】

リセットパケットの原因コードが返されます。

【VCの場合】

予備の領域です。

●データ名Y6【制御ヘッダを付けた場合】

【PVCの場合】

リセットパケットの診断符号が返されます。

【VCの場合】

予備の領域です。

●データ名Y8【制御ヘッダを付けた場合】

受信したデータパケットのQビットが返されます。

●データ名Y9【制御ヘッダを付けた場合】

【PVCの場合】

メッセージ種別が次の値で返されます。

(10)₂：リセットメッセージ

(00)₂：通常メッセージ

【VCの場合】

メッセージ種別が次の値で返されます。

(11)₂：割り込みメッセージ

(00)₂：通常メッセージ

●データ名Y10【制御ヘッダを付けた場合】

予備の領域です。

●データ名Y11【制御ヘッダを付けた場合】

受信したセグメントの内容が返されます。31996バイトまで受信できます。VCの場合，0バイトセグメントは受信しないで破棄します。

ステータスコード

ステータスコード
意味

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

＜バッファ形式2の場合＞
32763バイトを超えるセグメントを受信しました。32763バイトを超えた部分は切り捨てられました。

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

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

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

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

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

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

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

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

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を返します。このため，使用するメッセージキューの種別ではディスクキューを指定するとともに，メッセージキューファイルの容量および保持メッセージ数（メッセージキューサービス定義のquegrpコマンドの-mオプションで指定）に余裕を持った値を指定してください。

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
該当するメッセージがありません。

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

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オプションでは，CBLDCMCF('RESEND△△')で使用するセグメントの最大長よりも大きな値を設定しておいてください。

-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.
     03 データ名W1 PIC X(n).
     03 データ名W2 REDEFINES データ名W1.
        04 データ名W3.
           05 データ名W4 PIC 9(1).
           05 データ名W5 PIC 9(2).
           05 データ名W6.
              06 データ名W7 PIC 1(1).
              06 データ名W8 PIC 1(7).
        04 データ名W9 PIC X(n-4).

機能

相手システムへ一方送信メッセージを送信します。一方送信メッセージは，一つのセグメントで構成されます。

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

制御ヘッダを使用する場合（MCF通信構成定義　mcftalccn -o ctlheader=useを指定）

制御ヘッダを使用しない場合（MCF通信構成定義　mcftalccn -o ctlheader=nouseを指定，または-oオプションを省略）

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

●データ名A

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

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

空白を設定します。

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

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H

単一セグメントの送信を示す「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)

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

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

送信するセグメントの長さ＋4を設定します。

●データ名V

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

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

MCFで使用する領域です。

●データ名W1【制御ヘッダを付けなかった場合】

送信するメッセージの内容を設定します。32000バイトまで送信できます。

●データ名W4【制御ヘッダを付けた場合】

制御ヘッダ識別子 (20)₁₆を設定します。

●データ名W5【制御ヘッダを付けた場合】

0を設定します。

●データ名W7【制御ヘッダを付けた場合】

送信するデータパケットのQビットを設定します。

●データ名W8【制御ヘッダを付けた場合】

0を設定します。

●データ名W9【制御ヘッダを付けた場合】

送信するメッセージの内容を設定します。31996バイトまで送信できます。

なお，制御ヘッダを使用する場合，4バイト以下のメッセージは送信しないで，出力キューから削除されます。

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

●データ名B

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

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

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

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

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

データ名Uに32000バイトを超える値を設定しています。

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

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

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

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

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

72000
＜MHPの実行でリターンした場合＞
先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，CBLDCMCF('SEND△△△△')を呼び出しています。

＜SPPの実行でリターンした場合＞
トランザクションでないSPPの処理から，CBLDCMCF('SEND△△△△')を呼び出しています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

RECEIVE － メッセージの受信（データ操作言語）

形式

DATA DIVISION（通信記述項）の指定

CD  通信記述名
   FOR INPUT
  〔STATUS  KEY  IS データ名1〕
  〔SYMBOLIC  TERMINAL  IS データ名2〕
  〔MESSAGE  DATE  IS データ名3〕
  〔MESSAGE  TIME  IS データ名4〕.

PROCEDURE DIVISION（通信文）の指定

RECEIVE 通信記述名
   〔FIRST〕 SEGMENT
       INTO 一意名1.

機能

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

一方送信メッセージの受信　CBLDCMCF('RECEIVE△')

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

●FOR句

次の値を指定します。

INPUT

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

●STATUS KEY句

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

●SYMBOLIC TERMINAL句

入力元の論理端末名称を参照するデータ項目を指定します。

●MESSAGE DATE句

メッセージを受信した日付を参照するデータ項目を指定します。YYMMDD（YY：西暦の下2けた　MM：月　DD：日）の形式で参照できます。

●MESSAGE TIME句

メッセージを受信した時刻を参照するデータ項目を指定します。HHMMSS00（HH：時　MM：分　SS：秒　00は固定）の形式で参照できます。

通信文に指定する項目

●FIRST

先頭セグメントを受信する場合に指定します。

●一意名1

セグメントを受信するデータ項目を指定します。一意名1の形式を次に示します。

制御ヘッダは，MCF通信構成定義でmcftalccn -o ctlheader=useを指定したときだけ付けられます。制御ヘッダの内容を次に示します。

XX

【PVCの場合】

リセットパケットの原因コード。この値は相手システムに依存します。

【VCの場合】

予備（0）

YY

【PVCの場合】

リセットパケットの診断コード。この値は相手システムに依存します。

【VCの場合】

予備（0）

ZZ

【PVCの場合】

2⁷ビット：相手システムから受信したデータパケットのQビット

2⁶～2⁵ビット：メッセージ種別

(10)₂リセットメッセージ（テキスト部は存在しません）

(00)₂通常メッセージ

2⁴～2⁰ビット：予備（0）

【VCの場合】

2⁷ビット：相手システムから受信したデータパケットのQビット

2⁶～2⁵ビット：メッセージ種別

(11)₂：割り込みメッセージ

(00)₂：通常メッセージ

2⁴～2⁰ビット：予備（0）

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

71000
先頭セグメントを受信するRECEIVE文を，2回以上実行しています。中間セグメントまたは最終セグメントを受信する場合は，FIRSTを指定しないでRECEIVE文を実行してください。

71001
メッセージの最終セグメントを受信したあとで，次のセグメントを受信するRECEIVE文を実行しています。直前に実行したRECEIVE文でメッセージはすべて受信しました。
このステータスコードが返されたあとに，再びRECEIVE文を実行した場合は，ステータスコード72000が返されます。

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

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

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

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

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

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

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

先頭セグメントを受信するRECEIVE文を実行する前に，中間セグメントまたは最終セグメントを受信するRECEIVE文を実行しています。先頭セグメントを受信する場合は，FIRSTを指定してRECEIVE文を実行してください。

ステータスコード71001が返されたあとで，RECEIVE文を実行しています。

＜SPPの実行でリターンした場合＞
SPPではRECEIVE文を実行できません。

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

RECEIVE文を実行できない論理端末を設定しています。

72013
一意名1のLの指定値を超えるセグメントを受信しました。一意名1のLの指定値を超える部分は切り捨てられました。
32763バイトを超えるセグメントを受信しました。32763バイトを超えた部分は切り捨てられました。

72020
SYNCHRONOUS MODE句に設定した値が間違っています。

72024
FOR句に設定した値が間違っています。

72036
一意名1のLが不足しています。5バイト以上の領域を確保してください。

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

SEND － 一方送信メッセージの送信（データ操作言語）

形式

DATA DIVISION（通信記述項）の指定

CD  通信記述名
    FOR OUTPUT
   〔STATUS  KEY  IS データ名1〕
   〔SYMBOLIC  TERMINAL  IS データ名2〕
   〔SYNCHRONOUS  MODE  IS ｛ASYNC｜データ名6｝〕
   〔SWITCHING  MODE  IS ｛NORMAL｜PRIOR｜データ名7｝〕
   〔DETAIL  MODE  IS データ名10〕.

PROCEDURE DIVISION（通信文）の指定

SEND 通信記述名 FROM 一意名1
    〔WITH ｛EMI｜一意名2｝〕.

機能

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

一方送信メッセージの送信　CBLDCMCF('SEND△△△△')

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

●FOR句

次の値を指定します。

OUTPUT

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

●STATUS KEY句

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

●SYMBOLIC TERMINAL句

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

●SYNCHRONOUS MODE句

メッセージ送信の型を指定します。

ASYNC

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

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

データ名6

次の値を設定したデータ項目

'0'：一方送信メッセージの送信

省略した場合は，一方送信メッセージの送信（ASYNC）が設定されます。

●SWITCHING MODE句

一般か優先かを指定します。

NORMAL

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

PRIOR

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

データ名7

次の値を設定したデータ項目

'0'または'△'：一般の一方送信メッセージ

'1'：優先の一方送信メッセージ

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

●DETAIL MODE句

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

データ名10

次の値を設定したデータ項目

'0'または'△'：出力通番を付けます。

'1'：出力通番を付けません。

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

通信文に指定する項目

●一意名1

メッセージを送信するデータ項目を指定します。32000バイト（制御ヘッダを付けた場合，制御ヘッダの4バイトを含みます）まで送信できます。一意名1の形式を次に示します。

制御ヘッダは，MCF通信構成定義でmcftalccn -o ctlheader=useを指定したときだけ付けます。制御ヘッダの内容を次に示します。なお，制御ヘッダを使用する場合，4バイト以下のメッセージは送信しないで，出力キューから削除されます。

XX

予備（0）

YY

予備（0）

ZZ

2⁷ビット：相手システムへ送信されるデータパケットのQビット

2⁶～2⁰ビット：予備（0）

●WITH句

次の値で，単一セグメントのメッセージを送信するかどうかを指定します。

EMI

単一セグメントの送信

一意名2

次の値を設定したデータ項目

'2'：EMI（単一セグメントの送信）

省略した場合は，EMI（単一セグメントの送信）が設定されます。

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

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

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

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

一意名1のLに32000バイトを超える値を設定しています。

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

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

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

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

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

72000
＜MHPの実行でリターンした場合＞
先頭セグメントを受信するRECEIVE文を実行する前に，SEND文を実行しています。

＜SPPの実行でリターンした場合＞
トランザクションでないSPPの処理から，SEND文を実行しています。

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

SEND文を実行できない論理端末を設定しています。

72005
先頭セグメントまたは中間セグメントを送信するSEND文で，長さが0バイトのセグメントを送信しています。

72008
応答メッセージを送信するSEND文を実行したあとに，再び応答メッセージを送信するSEND文を実行しています。

SEND文を実行して応答型のアプリケーションを起動させたあとに，応答メッセージを送信するSEND文を実行しています。

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

32763バイトを超えるセグメントを受信しました。32763バイトを超えた部分は切り捨てられました。

72017
DETAIL MODE句に設定した値が間違っています。

72018
SWITCHING MODE句に設定した値が間違っています。

72020
SYNCHRONOUS MODE句に設定した値が間違っています。

72024
FOR句に設定した値が間違っています。

72026
WITH句に設定した値が間違っています。

72041
メッセージを送信するSEND文で，長さが4バイト以下のメッセージを送信しています。

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

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

UAP作成例の処理の流れを次の図に示し，その流れに沿ったコーディング例を，C言語，COBOL言語，およびデータ操作言語別に示します。なお，コーディング例は，MCF通信構成定義（mcftalccn -o）のctlheaderオペランドでuseを指定した場合の例です。

図4-1　UAP作成例の処理の流れ

C言語

C言語（K&R版）を使用したUAPコーディング例を示します。

このコーディング例は，次に示すファイルで提供しています。

PVCの場合：/BeTRAN/examples/mcf/X25/aplib/c/ap1.c

VCの場合：/BeTRAN/examples/mcf/X25/aplib/c/ap2.c

#include <dcmcf.h>
#include <dcmx25c.h>※¹
ex_uap1()
{

  char termnam[9] ;
  struct {
   char             mcfuse[8];
   dcmx25_ctl_type  x25_hd ;※²
   char             data[2048];
  } recvdata ;
  DCLONG rdataleng ;
  DCLONG time ;
  DCLONG inbufleng ;
  struct {
   char            mcfuse[8];
   dcmx25_ctl_type x25_hd;※²
   char            data[2048];
  } senddata ;
  static char resv01[9] = "¥0" ;     /* 予備領域の初期化 */
  static char resv02[9] = "¥0" ;     /* 予備領域の初期化 */
  static char resv03[9] = "¥0" ;     /* 予備領域の初期化 */

  char *workadd = (char *)&recvdata ;
  inbufleng = sizeof(recvdata) ;
  memset(&senddata, 0x00, sizeof(senddata)) ;
  senddata.x25_hd.id = 0x20 ;

  dc_mcf_receive(DCMCFFRST,DCNOFLAGS,termnam,resv01,
                                       /* メッセージの受信 */
                 workadd,&rdataleng,inbufleng,&time) ;

（データの処理）

  dc_mcf_send(DCMCFEMI,DCMCFOUT,"SYSTEM1",
                                   /* メッセージの送信(分岐送信) */
              resv01,&senddata,504,resv02,DCNOFLAGS) ;

  dc_mcf_send(DCMCFEMI,DCMCFOUT,"TERMNAM1",
                                   /* メッセージの送信(一方送信) */
              resv01,&senddata,504,resv02,DCNOFLAGS) ;
}

注※1

PVCの場合のコーディングです。VCの場合は，次のようにコーディングします。

#include <dcmx2m.h>

注※2

PVCの場合のコーディングです。VCの場合は，次のようにコーディングします。

dcmx2m_ctl_type x25_hd;

COBOL言語

COBOL言語を使用したUAPコーディング例を示します。

このコーディング例は，/BeTRAN/examples/mcf/X25/aplib/cobol/ap.cblのファイルで提供しています。

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  MCFUSE01        PIC X(4) VALUE SPACE.
 02  MCFUSE02        PIC X(4) VALUE SPACE.
 02  MCFUSE03        PIC X(4) VALUE SPACE.
 02  MCFUSE04        PIC X(4) VALUE SPACE.
 02  MCFUSE05        PIC X(8) VALUE SPACE.
 02  MCFUSE06        PIC X(4) VALUE SPACE.
 02  MCFUSE07        PIC X(8) VALUE SPACE.
 02  MCFUSE08        PIC X(4) VALUE SPACE.
 02  MCFUSE09        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  CTL-ID1         PIC X(1) VALUE X'20'.
 02  CTL-CAUSE1      PIC 9(1).
 02  CTL-DIAG1       PIC 9(1).
 02  CTL-QBIT1       PIC 1(1) BIT.
 02  CTL-MSGK1       PIC 1(2) BIT.
 02  FILLER          PIC 1(5) BIT.
 02  REC-MSGSEG1     PIC X(2044).
01  SND1.
 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 SPACE.
 02  SEND-NORM       PIC X(4) VALUE 'NORM'.
 02  SEND-NO         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 VALUE ZERO.
 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 'SYSTEM1'.
 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  CTL-ID2         PIC X(1) VALUE X'20'.
 02  FILLER          PIC 9(1).
 02  FILLER          PIC 9(1).
 02  CTL-QBIT2       PIC 1(1) BIT.
 02  CTL-MSGK2       PIC 1(2) BIT.
 02  FILLER          PIC 1(5) BIT.
 02  REC-MSGSEG2     PIC X(508).
01  SND2.
 02  MSG-SEND1       PIC X(8) VALUE 'SEND    '.
 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 SPACE.
 02  SEND-NORM1      PIC X(4) VALUE 'NORM'.
 02  SEND-NO1        PIC X(4) VALUE 'NSEQ'.
 02  MCFUSE46        PIC X(8) VALUE SPACE.
 02  SEND-CODE1      PIC X(4) VALUE SPACE.
 02  MCFUSE47        PIC X(8) VALUE SPACE.
 02  MCFUSE48        PIC X(4) VALUE SPACE.
 02  MCFUSE49        PIC 9(9) COMP VALUE ZERO.
 02  MCFUSE50        PIC 9(9) COMP VALUE ZERO.
 02  MCFUSE51        PIC X(1) VALUE SPACE.
 02  MCFUSE52        PIC X(1) VALUE SPACE.
 02  MCFUSE53        PIC X(14) VALUE LOW-VALUE.
01  CD3.
 02  SENDSEG-CODE3   PIC X(4) VALUE 'OUT '.
 02  TERM-CODE3      PIC X(8) VALUE 'TERMNAM1'.
 02  MCFUSE54        PIC X(8) VALUE SPACE.
 02  MCFUSE55        PIC X(8) VALUE SPACE.
 02  MCFUSE56        PIC X(28) VALUE LOW-VALUE.
        :
        :

PROCEDURE DIVISION.
CALL 'CBLDCMCF' USING RCV CD1 DATA1.         ** メッセージの受信 **

処理1

CALL 'CBLDCMCF' USING SND1 CD2 DATA2.         **メッセージの送信(分岐送信)**

処理2

CALL 'CBLDCMCF' USING SND2 CD3 DATA2.         **メッセージの送信(一方送信)**

処理3

EXIT PROGRAM.

データ操作言語

データ操作言語を使用したUAPコーディング例を示します。

このコーディング例は，/BeTRAN/examples/mcf/X25/aplib/dml/ap.cblのファイルで提供しています。

*
****  MHPサービスプログラム  ****
*
IDENTIFICATION DIVISION.

PROGRAM-ID. SVRA.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*
****  ワーク変数  ****
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
****  メッセージ受信領域  ****
*
 01  RECV-AREA.
   02  RE-DATALENG   PIC 9(4) COMP VALUE 1028.
   02  RE-RSV1       PIC X(2).
   02  RE-ID         PIC 9(2) COMP VALUE 32.
   02  FILLER        PIC 9(1).
   02  FILLER        PIC 9(1).
   02  RE-QBIT       PIC 1(1) BIT.
   02  RE-MSGK       PIC 1(2) BIT.
   02  FILLER        PIC 1(5) BIT.
   02  RE-DATA       PIC X(1024).
*
****  一方送信メッセージ送信領域  ****
*
 01  SEND-IO-AREA.
   02  IO-DATALENG   PIC 9(4) COMP VALUE 20.
   02  IO-RSV1       PIC X(2).
   02  IO-ID         PIC X(1) VALUE X'20'.
   02  IO-CAUSE      PIC 9(1).
   02  IO-DIAG       PIC 9(1).
   02  IO-QBIT       PIC 1(1) BIT.
   02  IO-MSGK       PIC 1(2) BIT.
   02  FILLER        PIC 1(5) BIT.
   02  IO-DATA       PIC X(16) VALUE 'SVRA SEND DATA1'.
*
****  通信記述項  ****
*
COMMUNICATION SECTION.
*
****  メッセージの受信の通信記述項  ****
*
CD RECV-INF
  FOR INPUT
  STATUS KEY IS     RE-STATUS
  SYMBOLIC TERMINAL IS RE-TERMNAM
  MESSAGE DATE IS   RE-DATE
  MESSAGE TIME IS   RE-TIME.
*
****  メッセージ送信の通信記述項  ****
*
CD SEND-IO
  FOR OUTPUT
  STATUS KEY IS        SE-STATUS-IO
  SYMBOLIC TERMINAL IS SE-TERMNAM-IO.

PROCEDURE DIVISION.

*
****  メッセージの受信 1  ****
*
RECEIVE RECV-INF
        FIRST SEGMENT
        INTO RECV-AREA.
*
****  一方送信メッセージの送信 2  ****
*
MOVE 'SYSTEM1' TO SE-TERMNAM-IO.
SEND SEND-IO
     FROM SEND-IO-AREA
     WITH EMI.
*
****  一方送信メッセージの送信 3  ****
*
MOVE 'TERMNAM1' TO SE-TERMNAM-IO.
SEND SEND-IO
     FROM SEND-IO-AREA
     WITH EMI.

EXIT PROGRAM.

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

この章では，TP1/NET/X25のユーザオウンコーディングのインタフェース，およびMCFイベントのインタフェースについて説明します。

＜この章の構成＞

5.1　ユーザオウンコーディングインタフェース

5.2　MCFイベントインタフェース

5.1　ユーザオウンコーディングインタフェース

メッセージ送受信のUAPを，より多様な業務に対応させるために補助するプログラムを，ユーザオウンコーディング（以降，UOCと略します）といいます。

TP1/NET/X25で使用できるUOCを次に示します。

入力メッセージ編集UOC

出力メッセージ編集UOC

送信メッセージの通番編集UOC

UOCはC言語で作成します。UOCを使用する場合は，あらかじめMCFメイン関数またはUAPのメイン関数にUOC関数のアドレスを登録し，UOC関数のオブジェクトファイルをMCF通信プロセスまたはUAPの実行形式プログラムに結合（リンケージ）しておく必要があります。

次に，それぞれのUOCの詳細を説明します。

＜この節の構成＞

5.1.1　入力メッセージの編集とアプリケーション名の決定

5.1.2　入力メッセージ編集UOCインタフェース

5.1.3　出力メッセージの編集

5.1.4　出力メッセージ編集UOCインタフェース

5.1.5　送信メッセージの通番編集

5.1.6　送信メッセージの通番編集UOCインタフェース

5.1.7　UOC作成上の注意事項

5.1.1　入力メッセージの編集とアプリケーション名の決定

入力メッセージ編集UOCは，受信した論理メッセージをユーザ任意の形式に変換します。また，受信した論理メッセージを基に，ユーザ任意のアプリケーション名を決定できます。

UOCは，MHPを起動するメッセージのセグメントを受信すると起動します。ただし，MCFイベント発生時と，UAPからのアプリケーションプログラム起動時はUOCは起動しません。

ユーザは，MCFメイン関数でUOC関数アドレスを設定します。また，必要に応じてMCF通信構成定義でメッセージ編集用バッファグループ番号（mcftalccn -e msgbuf）を定義します。

＜この項の構成＞

(1)　入力メッセージの編集

(2)　アプリケーション名の決定

(3)　UOCエラーリターン処理

(4)　UOCパラメタ不正の場合の処理

(5)　OpenTP1への組み込み方法

(1)　入力メッセージの編集

受信したメッセージが格納されている受信バッファ，およびMCF通信構成定義で指定した編集バッファを引き渡します。UOCでは，これらのバッファを使用して，入力メッセージの編集ができます。

また，UAPに通知するメッセージのセグメントは，受信バッファ，または編集バッファのどちらかに格納されたものを使用できます。どちらのセグメントを使用するかは，UOCから返されるリターンコードによって選択できます。

(2)　アプリケーション名の決定

該当するMCFに入力メッセージ編集UOCが登録されている場合，論理メッセージの編集と同時にアプリケーション名を決定できます。

アプリケーション名は，入力メッセージ編集UOCが登録されていれば，UOCで決定します。入力メッセージ編集UOCが登録されていなければ，MCF通信構成定義（mcftalcle -v）で指定したアプリケーション名を採用します。さらに，PVCの場合で，MCF通信構成定義（mcftalcle -v）でも指定されていないときは，メッセージの先頭から8バイト以内をアプリケーション名とします。

入力メッセージ編集UOCでアプリケーション名を決定する場合のアプリケーション名の形式は，アプリケーション名格納領域の先頭から，'￥0'の手前までの1～8バイトの英数字です。先頭から9バイト目までに'￥0'がないときは，アプリケーション名を不正とし，不正アプリケーション名検出通知イベント（ERREVT1）をUAPに通知します。

メッセージの先頭からアプリケーション名を決定する場合（PVC）のアプリケーション名の形式は，メッセージの先頭から，空白の手前までの1～8バイトの英数字です。先頭から9バイト目までに空白がないとき，または先頭に空白がある場合は，アプリケーション名を不正とし，不正アプリケーション名検出通知イベント（ERREVT1）をUAPに通知します。

アプリケーション名の決定の処理を次の図に示します。

図5-1　アプリケーション名の決定の処理

注

MCF通信構成定義（mcftalccn -o）で"ctlheader=use"を指定した場合，必ず入力メッセージ編集UOCかMCF通信構成定義（mcftalcle -v）でアプリケーション名を決定してください。

(3)　UOCエラーリターン処理

UOCからDCMCF_UOC_MSG_NGでリターンした場合，MCFはメッセージログを出力し，障害通知イベント（CERREVT）を通知します。

UOCで障害を検出し，エラー処理UAPを起動したい場合は，ユーザ任意のエラー処理UAPのアプリケーション名を設定します。このとき，MCFにはDCMCF_UOC_MSG_OK，またはDCMCF_UOC_MSG_OK_RCVでリターンします。この場合，MCFは正常なメッセージとして処理するため，受信メッセージの破棄などの障害処理はしません。

(4)　UOCパラメタ不正の場合の処理

UOCで設定した値に不正があった場合，MCFはメッセージログを出力し，障害通知イベント（CERREVT）を通知します。

(5)　OpenTP1への組み込み方法

スタート関数（dc_mcf_svstart）を発行するMCFメイン関数に，作成したUOCの関数アドレスを設定します。入力メッセージの編集UOCの関数アドレスは任意に決められます。UOC関数をコンパイルして生成したUOCオブジェクトファイルを，UOC関数を登録したMCFメイン関数と結合して，TP1/NET/X25の実行形式プログラムを生成します。MCFメイン関数の詳細については，「8.2　MCFメイン関数の作成」を参照してください。

5.1.2　入力メッセージ編集UOCインタフェース

入力メッセージ編集UOCは，次に示す形式で呼び出します。

＜この項の構成＞

(1)　形式

(2)　説明

(3)　パラメタの内容

(4)　MCFが値を設定する項目

(5)　ユーザが値を設定する項目

(6)　リターン値

(7)　パラメタとバッファの関係

(1)　形式

ANSI C，C++の場合

#include <dcmcf.h>
#include <dcmcfuoc.h>

DCLONG    uoc_func(dcmcf_uoc_min_n *parm)

K&R版 Cの場合

#include <dcmcf.h>
#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;                … バッファアドレス
   DCLONG buf_size;                … バッファ最大長
   DCLONG seg_size;                … バッファ使用長
   char   reserve1[4];             … 予備
   dcmcfuoc_w_type buff_id;        … MCF内部情報1
   DCLONG buff_addr;               … MCF内部情報2
   char   reserve2[4];             … 予備
} dcmcf_uocbufinf_n;

(4)　MCFが値を設定する項目

(a)　dcmcf_uoc_min_n

pro_kind
プロトコル種別として，次のどちらかの値が設定されます。

DCMCF_UOC_PRO_X25

X.25プロトコル（TP1/NET/X25のPVC）

DCMCF_UOC_PRO_X25VC

X.25プロトコル（TP1/NET/X25のVC）

le_name
メッセージを入力した論理端末の名称が設定されます。

rcv_prim
受信サービスプリミティブとして，次の値が設定されます。

DCMCF_UOC_RCV_BRD

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

buflist_adr
受信用バッファリストのアドレスが設定されます。

ebuflist_adr
編集用バッファリストのアドレスが設定されます。
メッセージ編集用バッファが未定義の場合，つまり，MCF通信構成定義のmcftalccnコマンドの-eオプションを省略した場合，ebuflist_adrにはNULLが設定されます。

aplname
MCF通信構成定義（mcftalcle -v）で指定したアプリケーション名が設定されます。

pro_indv_ifa
MCFで使用するパラメタです。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

buf_num
バッファ情報の数として1が設定されます。

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は，詳細リターンコードをメッセージログファイルに出力します。
詳細リターンコードは，-19999～-19000の範囲で指定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

used_buf_num
使用したバッファ情報の数を設定します。使用バッファ情報数には，1を設定してください。

(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

MCF通信構成定義（mcftalccn -e）を指定しなければ，ヌル文字となり，バッファリストとバッファは確保されません。

注※2

バッファ情報は32バイトで次の形式をしています。

5.1.3　出力メッセージの編集

出力メッセージの編集UOCは，送信する論理メッセージの編集をするUOCです。出力メッセージの編集UOCは，UAPが発行した送信メッセージを相手システムに実際に送信する前に処理するように位置させます。出力メッセージ編集UOCは，出力キューから全セグメントを読み出すと起動します。

ユーザは，MCFメイン関数でUOC関数アドレスを設定します。また，必要に応じてMCF通信構成定義でメッセージ編集用バッファグループ番号（mcftalccn -e msgbuf）を定義します。

＜この項の構成＞

(1)　出力メッセージの編集

(2)　UOCエラーリターン処理

(3)　UOCパラメタ不正の場合の処理

(4)　OpenTP1への組み込み方法

(1)　出力メッセージの編集

送信するメッセージが格納されている送信バッファ，およびMCF通信構成定義で指定した編集バッファを引き渡します。UOCでは，これらのバッファを使用して，出力メッセージを編集処理できます。

また，送信するメッセージのセグメントは，送信バッファ，または編集バッファのどちらかに格納されたものを使用できます。どちらのセグメントを使用するかは，UOCから返されるリターンコードによって選択できます。

(2)　UOCエラーリターン処理

UOCからDCMCF_UOC_MSG_NGでリターンした場合，MCFはメッセージログを出力し，障害通知イベント（CERREVT）を通知します。該当するメッセージは破棄します。

(3)　UOCパラメタ不正の場合の処理

UOCで設定した値に不正があった場合，MCFはメッセージログを出力し，障害通知イベント（CERREVT）を通知します。該当するメッセージは破棄します。

(4)　OpenTP1への組み込み方法

入力メッセージ編集UOCの組み込み方法と同じです。「5.1.1(5)　OpenTP1への組み込み方法」を参照してください。

5.1.4　出力メッセージ編集UOCインタフェース

出力メッセージ編集UOCは，次に示す形式で呼び出します。

＜この項の構成＞

(1)　形式

(2)　説明

(3)　パラメタの内容

(4)　MCFが値を設定する項目

(5)　ユーザが値を設定する項目

(6)　リターン値

(7)　パラメタとバッファの関係

(1)　形式

ANSI C，C++の場合

#include <dcmcf.h>
#include <dcmcfuoc.h>

DCLONG    uoc_func(dcmcf_uoc_mout_n *parm)

K&R版 Cの場合

#include <dcmcf.h>
#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（バッファ情報）の内容

入力メッセージ編集UOCインタフェースのバッファリストおよびバッファ情報の内容と同じです。「5.1.2(3)(b)　dcmcf_uocbuff_list_n（バッファリスト）の内容」および「5.1.2(3)(c)　dcmcf_uocbufinf_n（バッファ情報）の内容」を参照してください。

(4)　MCFが値を設定する項目

(a)　dcmcf_uoc_mout_n

pro_kind
プロトコル種別として，次のどちらかの値が設定されます。

DCMCF_UOC_PRO_X25

X.25プロトコル（TP1/NET/X25のPVC）

DCMCF_UOC_PRO_X25VC

X.25プロトコル（TP1/NET/X25のVC）

le_name
メッセージを入力した論理端末の名称が設定されます。

buflist_adr
送信用バッファリストのアドレスが設定されます。

ebuflist_adr
編集用バッファリストのアドレスが設定されます。
メッセージ編集用バッファが未定義の場合，つまり，MCF通信構成定義のmcftalccnコマンドの-eオプションを省略した場合，ebuflist_adrにはNULLが設定されます。

output_no
メッセージ出力通番が設定されます。ただし，outputno_flagがDCMCF_UOC_OUTPUTNO_OKのときだけ有効です。

msg_type
メッセージ種別として，次のどちらかの値が設定されます。ただし，outputno_flagがDCMCF_UOC_OUTPUTNO_OKのときだけ有効です。

'n'

一般一方送信メッセージ

'p'

優先一方送信メッセージ

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（バッファ情報）

入力メッセージ編集UOCインタフェースのバッファリストおよびバッファ情報の内容と同じです。「5.1.2(4)(b)　dcmcf_uocbuff_list_n（バッファリスト）」および「5.1.2(4)(c)　dcmcf_uocbufinf_n（バッファ情報）」を参照してください。

(5)　ユーザが値を設定する項目

(a)　dcmcf_uoc_mout_n

rtn_detail
詳細リターンコードを設定します。
このコードは，UOCがDCMCF_UOC_MSG_NGをリターンしたときに，MCFに渡されます。MCFは，詳細リターンコードをメッセージログファイルに出力します。詳細リターンコードは，-19999～-19000の範囲で設定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト），dcmcf_uocbufinf_n（バッファ情報）

入力メッセージ編集UOCインタフェースのバッファリストおよびバッファ情報の内容と同じです。「5.1.2(5)(b)　dcmcf_uocbuff_list_n（バッファリスト）」および「5.1.2(5)(c)　dcmcf_uocbufinf_n（バッファ情報）」を参照してください。

(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)　送信メッセージの通番編集

(2)　OpenTP1への組み込み方法

(1)　送信メッセージの通番編集

送信メッセージの通番編集UOCは，受け取った通番を基に，ユーザ独自の処理をするためのUOCです。例えば，通番を使用して編集した送信メッセージを再送要求します。

送信メッセージの通番編集UOCを起動する場合，メッセージ送信の関数で，出力通番を付けるように設定してください。送信メッセージの通番編集UOCは，UAPがsend関数またはresend関数を発行したときに，MCFによって起動されます。

(2)　OpenTP1への組み込み方法

UAPのメイン関数の中に，UOCの関数アドレスを登録しておきます。UAPのメイン関数に登録するdc_mcf_regster関数の形式を次に示します。

(a)　形式

ANSI C，C++の場合

#include <dcmcf.h>

int    dc_mcf_regster(DCLONG  flags,
                     DCLONG  (*uoc_addr)
                     (DCLONG flags,
                     char    *termname,
                     DCLONG  sendno,
                     DCLONG  sendid,
                     DCLONG  dataleng,
                     char *senddata))

K&R版 Cの場合

#include <dcmcf.h>
int dc_mcf_regster(flags,uoc_addr)
DCLONG flags;
DCLONG (*uoc_addr)();

(b)　ユーザが値を設定する引数

flags
DCMCF_SEND_UOCを指定します。

uoc_addr
flagsに対応するUOCのアドレスを指定します。

(c)　リターン値

リターン値 | 意味
DC_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();
}

5.1.6　送信メッセージの通番編集UOCインタフェース

送信メッセージの通番編集UOCは，次に示す形式で呼び出します。

＜この項の構成＞

(1)　形式

(2)　MCFから値が渡される引数

(3)　リターン値

(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の構造

(2)　UOCで使用できる関数

(3)　UOCの異常処理

(4)　UOCの実行タイミング

(5)　ユーザ情報の操作方法

(1)　UOCの構造

UOCで使用するローカル変数のサイズの合計は，各UOCで1024バイト以内になるよう設計してください。また，UOCの中で関数の再帰呼び出しはしないでください。

(2)　UOCで使用できる関数

UOCを作成する場合，UOCでは次に示す関数だけが使用できます。ほかの関数を使用した場合，正常に動作しないことがあるため，ご注意ください。

メモリを操作する関数

データ領域管理（例：malloc，free）

共有メモリ管理関数／システムコール（例：shmctl，shmget，shmop）

メモリ操作（例：memory）

文字列操作（例：string）

時間取得関数

(3)　UOCの異常処理

TP1/NET/X25のUOCで異常を検知した場合，MCFの所定のリターンコードを使用して，MCFに異常の発生を通知してください。UOCでプロセス終了となるシグナル，またはabort()を発行すると，MCFが異常終了します。

(4)　UOCの実行タイミング

MCFが起動するUOCの実行タイミングは，OpenTP1システム，およびUAPの開始，終了シーケンスと同期しない場合があります。UAPより先にUOCが実行されたり，UAPがすべて終了してからUOCが実行されたりしてもよいように作成してください。

(5)　ユーザ情報の操作方法

UOCでユーザ情報を参照，または設定する場合，ユーザ情報の先頭アドレスがバウンダリ調整されていない場合があります。ユーザ情報の参照および設定方法によっては，バウンダリアクセス例外が発生する場合があります。必要に応じて，メモリ操作関数（memcpy，memsetなど）を使用してください。

5.2　MCFイベントインタフェース

OpenTP1でメッセージの送受信をすると，OpenTP1の各種システム情報がMHPに通知されます。これをMCFイベントといいます。メッセージ送受信処理でエラーや障害が発生した場合，システム内で何が起こっているかがMCFイベント内容でわかります。MCFイベントに対応するMHPをMCFイベント処理用MHPといいます。

MCFイベントは入力キューに渡されて，MCFイベント処理用MHPで回復処理をします。なお，MCFイベントの発生時は，入力メッセージの編集UOCは呼び出しません。

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

＜この節の構成＞

5.2.1　MCFイベントの種類

5.2.2　MCFイベント通知時のセグメント構成

5.2.3　MCFイベント情報の形式（C言語）

5.2.4　MCFイベント情報の形式（COBOL言語）

5.2.1　MCFイベントの種類

TP1/NET/X25が通知するMCFイベントを次の表に示します。

表5-1　MCFイベント一覧

MCFイベント名
MCFイベントコード
発生した原因
MCFイベント処理用MHPの処理の例

不正アプリケーション名検出通知イベント
ERREVT1
メッセージのアプリケーション名がMCFアプリケーション定義にありません。
該当するアプリケーション名がなかったことを通知します。

メッセージ廃棄通知イベント
ERREVT2
次の理由で受信メッセージを廃棄しました。

入力キューに障害が発生しました。

MHPのサービス，サービスグループ，アプリケーションが閉塞しました。

MHPのセグメント受信関数に，セグメントを渡す前にMHPの異常終了が発生しました。

アプリケーション名に相当するMHPのサービスがありません。

アプリケーション起動時（即時起動の場合）に障害が発生しました。

MHPのアプリケーション，サービスグループがセキュア状態です。

メッセージを廃棄したことを報告します。

UAP異常終了通知イベント
ERREVT3
MHPのセグメント受信関数に，セグメントを渡したあとにMHPの異常終了が発生しました。
UAP異常終了時の対処障害メッセージを送信します。

タイマ起動メッセージ廃棄通知イベント
ERREVT4
アプリケーション起動時（タイマ起動の場合）に障害が発生しました。
メッセージを廃棄したことを報告します。

未処理送信メッセージ廃棄通知イベント
ERREVTA
次の理由で未処理送信メッセージを破棄しました。

MCFの正常終了処理時に，未処理送信メッセージの滞留時間監視の時間切れ（タイムアウト）が発生しました。

運用コマンド（mcftdlqle）の入力によって，出力キューが削除されました。

未処理送信メッセージを廃棄したことを報告します。

障害通知イベント
CERREVT
通信管理プログラムのコネクション障害，または論理端末障害が発生しました。
コネクション，または論理端末に障害が発生したことを報告します。

状態通知イベント
COPNEVT
メッセージの送受信ができる状態になりました。
メッセージの送受信ができることを報告します。

CCLSEVT
メッセージの送受信ができない状態になりました。
メッセージの送受信ができないことを報告します。

5.2.2　MCFイベント通知時のセグメント構成

MCFイベントをMHPに通知する場合，先頭セグメントにMCFイベント情報を設定します。エラーイベント（ERREVTn）の場合は，第2セグメントに処理できなかったメッセージセグメントを設定します。

MCFイベント通知時のセグメント構成を次の図に示します。

図5-3　MCFイベント通知時のセグメント構成

MCFイベントは，作成したUAPがC言語の場合とCOBOL言語の場合で，UAPへ渡されるデータ形式が異なります。それぞれの言語の場合について，次に示します。

COBOL言語を使用したエラーイベント（ERREVTn）の場合は，バッファ形式1とバッファ形式2とで先頭の内容が異なります。このため，それ以降の項目の位置にずれがあります。「5.2.4　MCFイベント情報の形式（COBOL言語）」のエラーイベントの表ではERREVT1，ERREVT2，ERREVT3，およびERREVTAのバッファ形式別に位置（バイト）を分けて説明しています。

なお，ERREVT4については，マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。

5.2.3　MCFイベント情報の形式（C言語）

MCFイベント情報は構造体で，MCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は，MCFイベントの種類によって異なります。ただし，MCFイベント情報の先頭部分の形式は，各イベントで共通です。

PVCの場合，MCFイベントの共通ヘッダ（dc_mcf_evtheader），およびエラーイベント（ERREVTn）で使用する構造体は<dcmcf.h>で定義されています。また，CERREVT通知インタフェース（dcmpcm_cerrevt）は<dcmpcm.h>で，COPNEVT，CCLSEVT通知インタフェース（dcmx25_statevt）は<dcmx25.h>で定義されています。<dcmcf.h>，<dcmpcm.h>，<dcmx25.h>の順に取り込んでください。

VCの場合，MCFイベントの共通ヘッダ（dc_mcf_evtheader），およびエラーイベント（ERREVTn）で使用する構造体は<dcmcf.h>で定義されています。また，CERREVT通知インタフェース（dcmx2m_cerrevt），およびCOPNEVT，CCLSEVT通知インタフェース（dcmx2m_statevt）は，共に<dcmx2m.h>で定義されています。<dcmcf.h>，<dcmx2m.h>の順に取り込んでください。

MCFイベントとして設定される項目を次に示します。

＜この項の構成＞

(1)　MCFイベントの共通ヘッダ

(2)　ERREVT1

(3)　ERREVT2

(4)　ERREVT3

(5)　ERREVTA

(6)　CERREVT

(7)　COPNEVT，CCLSEVT

(1)　MCFイベントの共通ヘッダ

(a)　形式

struct dc_mcf_evtheader {
 char   mcfevt_name[9] ;             … MCFイベント情報コード
 char   le_name[16] ;                … 論理端末名称
 char   cn_name[9] ;                 … コネクション名
 unsigned char format_kind ;         … MCFが使用
 char   reserve01 ;                  … 予備
 DCLONG time ;                       … メッセージ入力時刻
} ;

(b)　MCFイベントとして設定される項目

le_name
メッセージを入力した論理端末名称が設定されます。
ERREVT2またはERREVT3で，次に示す場合は，'*'が設定されます。

SPPがアプリケーション起動をしたMHPで，障害が発生した場合

上記の障害発生時にMCFイベントとして起動されたMHPが，さらにアプリケーション起動をしたMHPで，障害が発生した場合

ERREVTAの場合は，メッセージを出力する論理端末名称が設定されます。
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の理由コードが設定されます。理由コードの内容については，「付録C　理由コード一覧」を参照してください。

(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)　PVCの場合の形式

PVCのCERREVT通知インタフェースdcmpcm_cerrevtの形式を示します。

typedef struct {
struct dc_mcf_evtheader  header ;
                          … MCFイベント情報共通ヘッダ（40バイト）
 DCLONG err_fact ;        … 障害要因コード（4バイト）
 DCLONG err_reason1 ;     … 理由コード1（4バイト）
 DCLONG err_reason2 ;     … 理由コード2（4バイト）
 DCLONG recover_code ;    … 回復可否識別（4バイト）
 DCLONG retry_code ;      … 自動リトライ有無識別
} dcmpcm_cerrevt ;

typedef struct {
 dcmpcm_cerrevt comheader ;   … プロトコル共通ヘッダ
 char reserve[36] ;           … 予備
} dcmx25_cerrevt ;

(b)　VCの場合の形式

VCのCERREVT通知インタフェースdcmx2m_cerrevtの形式を示します。

typedef struct {
 struct dc_mcf_evtheader header ;
                           … MCFイベント情報共通ヘッダ（40バイト）
 DCLONG err_fact ;         … 障害要因コード（4バイト）
 DCLONG err_reason1;       … 理由コード1（4バイト）
 DCLONG err_reason2 ;      … 理由コード2（4バイト）
 DCLONG err_dctreason ;    … 切断理由コード
 char   rname[16] ;        … MCFが使用
 char   reserve1[26] ;     … 予備
} dcmx2m_cerrevt ;

(c)　MCFイベントとして設定される項目

err_fact
CERREVTの障害要因コードが次に示す値で設定されます。
(00000030)₁₆：コネクション障害発生
(00000031)₁₆：論理端末障害発生

err_reason1，err_reason2
CERREVTの理由コードが設定されます。「付録C　理由コード一覧」を参照してください。

recover_code
障害が回復できるかどうかを示す値が設定されます。
(00000000)₁₆：回復可能
(00000010)₁₆：回復不可能

retry_code
障害回復後，自動再確立をするかどうかを示す値が設定されます。
(00000000)₁₆：自動再確立をします。
(00000010)₁₆：自動再確立をしません。

err_dctreason
XNF/AS/NLIから渡されたコネクション切断理由を，加工しないで設定します。コネクション切断理由については，マニュアル「通信管理 XNF/AS 解説・運用編」を参照してください。
自システムから切断した場合は，(00000000)₁₆を通知します。
この領域は，障害要因コードがコネクション障害（err_factで示すコードが(00000030)₁₆）のときだけ有効です。

(7)　COPNEVT，CCLSEVT

(a)　PVCの場合の形式

PVCのCOPNEVT，CCLSEVT通知インタフェースdcmx25_statevtの形式を示します。

typedef struct {
 struct dc_mcf_evtheader  header ;   … MCFイベント情報共通ヘッダ
 char reserve1[56] ;                 … 予備
} dcmx25_statevt ;

(b)　VCの場合の形式

VCのCOPNEVT，CCLSEVT通知インタフェースdcmx2m_statevtの形式を示します。

typedef struct {
 struct dc_mcf_evtheader header ;   … MCFイベント情報共通ヘッダ
 char reserve[16] ;                 … 予備
 char rname[16] ;                   … MCFが使用
 char reserve1[26] ;                … 予備
} dcmx2m_statevt ;

5.2.4　MCFイベント情報の形式（COBOL言語）

COBOL言語の場合はセグメントの並びとして渡されます。COBOL言語のUAPの場合のMCFイベントの内容を表5-2～表5-7に示します。

表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
－
－

（凡例）

－：該当しません。または，使用されません。

注※

理由コードの内容については，「付録C　理由コード一覧」を参照してください。

表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
2進数字
異常が発生したトランザクションのBIDです。

予備
228
224
28
－
－

（凡例）

－：該当しません。または，使用されません。

表5-5　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-6　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
4
2進数字
障害を回復できるかどうかを示す値が設定されます。
(00000000)₁₆：回復可能状態
(00000010)₁₆：回復不可能状態

自動リトライ有無識別
64
4
2進数字
障害発生後，自動再確立をするかどうかを示す値が設定されます。
(00000000)₁₆：自動再確立をします
(00000010)₁₆：自動再確立をしません

予備
68
36
－
－

VCの場合，60バイト目以降は次のようになります。

切断理由コード※²
60
4
2進数字
XNF/AS/NLIから渡されたコネクション切断理由を，加工しないで設定します。
自システムから切断した場合は，(00000000)₁₆を通知します。
この項目は，障害要因コードがコネクション障害(00000030)₁₆のときだけ有効です。

予備
64
16
－
－

予備
80
28
－
－

（凡例）

－：該当しません。または使用されません。

注※1

理由コード1および理由コード2については，「付録C　理由コード一覧」を参照してください。

注※2

切断理由コードについては，マニュアル「通信管理 XNF/AS 解説・運用編」を参照してください。

表5-7　COBOL言語のMCFイベント情報の内容（COPNEVT，CCLSEVT）

項目
位置
（バイト）
長さ
（バイト）
属性
内容

イベントコード
0
8
英数字
イベントコード「COPNEVT」，または「CCLSEVT」が設定されます。

入力元論理端末名称
8
8
英数字
無効です。

予備
16
8
－
－

入力元コネクション名
24
8
英数字
コネクション名が設定されます。

メッセージ入力日付
32
8
外部10進数字
COPNEVT，CCLSEVTを入力した日付です。

メッセージ入力時刻
40
8
外部10進数字
COPNEVT，CCLSEVTを入力した時刻です。

予備
48
56
－
－

VCの場合，48バイト目以降は次のようになります。

予備 | 48 | 16 | － | －
予備 | 64 | 16 | － | －
予備 | 80 | 28 | － | －

（凡例）

－：該当しません。または，使用されません。

6.　システム定義

この章では，X.25プロトコルを使用するために必要な，OpenTP1システム定義の中でのTP1/NET/X25固有の定義について説明します。また，自システム内にある通信管理プログラムと関連づける内容，およびシステム定義例について説明します。

＜この章の構成＞

TP1/NET/X25の定義の概要

TP1/NET/X25固有のシステム定義の種類

mcftalccn（コネクション定義の開始） － PVC

mcftalccn（コネクション定義の開始） － VC

mcftalced（コネクション定義の終了） － PVC

mcftalced（コネクション定義の終了） － VC

mcftalcle（論理端末定義） － PVC

mcftalcle（論理端末定義） － VC

mcftcomn（MCF通信構成共通定義） － PVC

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

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

MCF定義オブジェクトの生成

自システムの通信管理プログラムと関連づける内容

定義例

TP1/NET/X25の定義の概要

TP1/NET/X25のシステム定義は，OpenTP1のネットワークコミュニケーション定義の中で定義します。

OpenTP1のネットワークコミュニケーション定義の中での定義

OpenTP1のネットワークコミュニケーション定義のうち，TP1/NET/X25に固有の定義について説明します。

使用する定義ファイル

TP1/NET/X25を起動するには，定義ファイルに環境情報を設定する必要があります。MCFで使用する定義ファイルを次の表に示します。

表6-1　MCFで使用する定義ファイル

定義の種類 | 定義のソースファイル | 定義の内容
MCFマネジャ定義 | MCFマネジャ定義ソースファイル | MCF全体の実行環境
MCF通信構成定義 | 共通定義ソースファイル | プロトコルごとの実行環境
プロトコル固有定義ソースファイル
MCFアプリケーション定義 | MCFアプリケーション定義ソースファイル | アプリケーションの属性

定義のソースファイルは，定義コマンド，オプション，およびオペランドを使用して作成します。それらの中には，プロトコルで共通のものと，プロトコルに固有のものがあります。表6-1の定義の中で，TP1/NET/X25に固有の定義があるものを次に示します。

MCF通信構成定義

この章では，TP1/NET/X25に固有の定義コマンド，オプション，およびオペランドについて説明します。プロトコルで共通の定義については，マニュアル「OpenTP1 システム定義」を参照してください。ただし，mcftbuf（バッファグループ定義）のcountオペランド，lengthオペランドの指定値については，「mcftalccn（コネクション定義の開始）」の「注意事項」を参照してください。

TP1/NET/X25の組み込み時に必要なファイル

次に示すファイルは，TP1/NET/X25をOpenTP1システムに組み込むときに必要なファイルです。

システムサービス情報定義ファイル

システムサービス共通情報定義ファイル

MCF定義オブジェクトファイル

この章では，システムサービス情報定義ファイルとシステムサービス共通情報定義ファイルの記述内容，およびMCF定義オブジェクトファイルを生成するユティリティの起動コマンドについて説明します。TP1/NET/X25を組み込む方法については，「8.　組み込み方法」を参照してください。

通信定義の内容の関連づけ

X.25プロトコルを使用して相手システムと通信するためには，TP1/NET/X25のシステム定義内容を自システムの通信管理プログラムと関連づける必要があります。

この章では，通信相手の選択形式（PVCまたはVC）ごとに，自システムの通信管理プログラムと関連づける内容を示します。

TP1/NET/X25固有のシステム定義の種類

OpenTP1のネットワークコミュニケーション定義のうち，TP1/NET/X25に固有の定義の一覧を次の表に示します。

表6-2　TP1/NET/X25固有の定義の一覧

定義名
コマンド
オプション・オペランド
定義内容
指定値
((値範囲))
《省略時解釈値》

MCF通信構成定義
共通定義
mcftcomn※（PVCの場合）
（MCF通信構成共通定義）
指定数：1
-b※
bufretry
受信バッファ空き待ち有無
《yes》｜no

retrycnt
受信バッファ空き待ち再試行回数
符号なし整数((0～128))《1》

retryint
受信バッファ空き待ち時間
符号なし整数((1～65535))《180》（単位：秒）

PVCのプロトコル固有定義
mcftalccn（コネクション定義の開始）
指定数：1～512
-c
－
コネクションID
1～8文字の識別子

-p
－
プロトコルの種別
x25

-g
sndbuf
送信用バッファグループ番号
符号なし整数((1～512))

rcvbuf
受信用バッファグループ番号
符号なし整数((1～512))

-e
msgbuf
編集用バッファグループ番号
符号なし整数((1～512))

-i
－
コネクション確立方法
auto｜《manual》

-j
－
接続プロトコル
pvc

-z
vslot
仮想スロット番号
符号なし整数((1～1000))

-n
group
論理チャネルグループ番号
符号なし整数((0～15))

number
論理チャネル番号
符号なし整数((1～255))

-x
－
コネクション自動再確立の指定
auto｜《manual》

-a
aretrycnt
コネクション確立再試行回数
符号なし整数((0～65535))《0》

aretryint
コネクション確立再試行間隔
符号なし整数((0～2550))《0》（単位：秒）

-l
－
論理端末の閉塞解除の方法
auto｜《manual》

-o
ctlheader
制御ヘッダ使用の有無
use｜《nouse》

resetind
リセットパケットの処置方法
use｜《nouse》｜error

-u
spktsize
送信パケットサイズ
符号なし整数((128，256，512，1024，2048，4096))《1024》

rpktsize
受信パケットサイズ
符号なし整数((128，256，512，1024，2048，4096))《1024》

-w
swndsize
送信ウィンドウサイズ
符号なし整数((1～7))《2》

rwndsize
受信ウィンドウサイズ
符号なし整数((1～7))《2》

mcftalcle（論理端末定義）
指定数：mcftalccnと同数
-l
－
論理端末名称
1～8文字の識別子

-t
－
論理端末の端末タイプ
any

-m
mmsgcnt
メモリ出力メッセージ最大格納数
符号なし整数　((0～65535))　《0》

dmsgcnt
ディスク出力メッセージ最大格納数
符号なし整数　((0～65535))　《0》

-k
quekind
出力キューの媒体の種類
《memory》｜disk

quegrpid
キューグループID
1～8文字の識別子

-o
aj
送信完了情報取得の要否
《yes》｜no

-v
－
アプリケーション名
1～8文字の識別子

mcftalced（コネクション定義の終了）指定数：mcftalccnと同数
－
－
コネクション定義の終了
－

VCのプロトコル固有定義
mcftalccn（コネクション定義の開始）
指定数：1～512
-c
－
コネクションID
1～8文字の識別子

-p
－
プロトコルの種別
x25

-g
sndbuf
送信用バッファグループ番号
符号なし整数　((1～512))

rcvbuf
受信用バッファグループ番号
符号なし整数((1～512))

-e
msgbuf
編集用バッファグループ番号
符号なし整数((1～512))

-i
－
コネクション確立方法
auto｜《manual》

-j
－
接続プロトコル
vc

-z
vslot
仮想スロット番号
符号なし整数((1～1000))

-a
aretry
コネクション確立再試行の有無
《yes》｜no

aretrycnt
コネクション確立再試行回数
符号なし整数((0～65535))《0》

aretryint
コネクション確立再試行間隔
符号なし整数((0～2550))《0》（単位：秒）

-o
ctlheader
制御ヘッダ使用の有無
use｜《nouse》

itdata
割り込みメッセージ
受信通知の要否
use｜《nouse》

-t
－
コネクションの種類
int｜《rsp》

-q
snpa
相手SNPAアドレス
1～30けたの数字

inserv
INSサービス種別
4けたの16進数字

inspeed
INS回線速度
4けたの16進数字

-f
kind
MCFイベントの種別
cerr｜《ccls》

mcftalcle（論理端末定義）
指定数：mcftalccnと同数
-l
－
論理端末名称
1～8文字の識別子

-t
－
論理端末の端末タイプ
any

-m
mmsgcnt
メモリ出力メッセージ最大格納数
符号なし整数((0～65535))《0》

dmsgcnt
ディスク出力メッセージ最大格納数
符号なし整数((0～65535))《0》

-k
quekind
出力キューの媒体の種類
《memory》｜disk

quegrpid
キューグループID
1～8文字の識別子

-o
aj
送信完了情報取得の要否
《yes》｜no

-v
－
アプリケーション名
1～8文字の識別子

mcftalced（コネクション定義の終了）指定数：mcftalccnと同数
－
－
コネクション定義の終了
－

（凡例）

－：該当しません。

注※

TP1/NET/X25に固有の定義だけ記載してあります。このほかにも，プロトコルで共通の定義コマンド，オプション，オペランドがあります。それらについては，マニュアル「OpenTP1 システム定義」を参照してください。

定義コマンドの指定順序

TP1/NET/X25のプロトコル固有定義コマンドの指定順序を次の図に示します。

図6-1　プロトコル固有定義コマンドの指定順序

注

mcftalccnとmcftalcleの指定は，1対1になるようにしてください。

mcftalccn（コネクション定義の開始） － PVC

形式

mcftalccn -c コネクションID
         -p x25
         -g "sndbuf=メッセージ送信用バッファグループ番号
             rcvbuf=メッセージ受信用バッファグループ番号"
       〔-e "〔msgbuf=メッセージ編集用バッファグループ番号〕"〕
       〔-i auto｜manual〕
         -j pvc
         -z "vslot=仮想スロット番号"
         -n "group=論理チャネルグループ番号
             number=論理チャネル番号"
       〔-x auto｜manual〕
       〔-a "〔aretrycnt=｛コネクション障害時再試行回数｜0｝〕
             〔aretryint=｛コネクション障害時再試行間隔｜0｝〕"〕
       〔-l auto｜manual〕
       〔-o "〔ctlheader=use｜nouse〕
             〔resetind=use｜nouse｜error〕"〕
       〔-u "〔spktsize=送信パケットサイズ〕
             〔rpktsize=受信パケットサイズ〕"〕
       〔-w "〔swndsize=送信ウィンドウサイズ〕
             〔rwndsize=受信ウィンドウサイズ〕"〕

機能

コネクションに関する環境を定義します。

オプション

●-c コネクションID　　～〈1～8文字の識別子〉

OpenTP1システム内で，一意となるコネクションIDを指定します。

●-p x25

プロトコルの種別を指定します。

x25

X.25プロトコル

●-g

（オペランド）

sndbuf=メッセージ送信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ送信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

rcvbuf=メッセージ受信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ受信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

●-e

（オペランド）

msgbuf=メッセージ編集用バッファグループ番号　　～〈符号なし整数〉((1～512))

入力，出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファグループ番号を指定します。

このオペランドを省略した場合は，メッセージ編集用バッファは確保されません。メッセージ編集用バッファグループ番号は，mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

●-i auto｜manual　　～《manual》

MCF開始時および再開始時に，コネクションを自動的に確立するかどうかを指定します。

auto

コネクションを自動的に確立します。

manual

MCF起動後，運用コマンド（mcftactcn）を入力して，コネクションを確立します。

●-j pvc

接続プロトコルに，PVCを示すpvcを指定します。

●-z

（オペランド）

vslot=仮想スロット番号　　～〈符号なし整数〉((1～1000))

仮想スロット番号を指定します。通信管理の構成定義のlink定義文のVASSオペランドで指定した仮想スロット番号を指定してください。

●-n

（オペランド）

group=論理チャネルグループ番号　　～〈符号なし整数〉((0～15))

論理チャネルグループ番号を指定します。相手システムと対応する値を指定してください。

number=論理チャネル番号　　～〈符号なし整数〉((1～255))

論理チャネル番号を指定します。相手システムと対応する値を指定してください。

●-x auto｜manual　　～《manual》

障害によるコネクション切断後，自動的にコネクションを再確立するかどうかを指定します。

auto

コネクションを自動的に再確立します。

manual

運用コマンド（mcftactcn）を入力して，コネクションを再確立します。

●-a

（オペランド）

aretrycnt=コネクション障害時再試行回数｜0　　～〈符号なし整数〉((0～65535))《0》（単位：回）

コネクション障害が発生した場合，MCFによる障害時再試行の回数を指定します。このオペランドを省略した場合，または0を指定した場合は，無限に再試行します。

また，-xオプションを省略した場合，または-xオプションでmanualを指定した場合，このオペランドの指定は無効になります。

aretryint=コネクション障害時再試行間隔｜0　　～〈符号なし整数〉((0～2550))《0》（単位：秒）

コネクション障害が発生した場合，MCFによる障害時再試行の時間間隔を指定します。このオペランドを省略した場合，または0を指定した場合，MCFは障害時直ちに再試行します。

また，-xオプションを省略した場合，または-xオプションでmanualを指定した場合，このオペランドの指定は無効になります。

●-l auto｜manual　　～《manual》

コネクションの確立と同時に論理端末の閉塞を解除するかどうかを指定します。

auto

論理端末の閉塞を自動的に解除します。

manual

運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

●-o

（オペランド）

ctlheader=use｜nouse　　～《nouse》

UAPとTP1/NET/X25のメッセージ送受信時に制御ヘッダを使用するかどうかを指定します。

use

メッセージに制御ヘッダを付けます。

nouse

メッセージに制御ヘッダを付けません。

PADメッセージの送受信をする場合，およびresetindオペランドでuseを指定する場合，必ずuseを指定してください。

また，このオペランドでuseを指定する場合，アプリケーション名を決定するために，必ず，次のどちらかの処理をしてください。

mcftalcle定義コマンドの-vオプションの指定。

アプリケーション名を決定する入力メッセージ編集UOCの組み込み。

resetind=use｜nouse｜error　　～《nouse》

リセットパケットを受信した場合の処置方法を指定します。

use

リセットパケットを受信したことをリセットメッセージによってUAPに通知します。このオペランドでuseを指定した場合，必ず，ctlheaderオペランドでuseを指定してください。

nouse

リセットパケットを受信したことをUAPに通知しません。

error

コネクションを切断し，閉塞します。リセットパケットを受信したことをUAPに通知します。

この場合，送信データがパケット交換網，または回線上で破棄されていることがあります。リセットメッセージを受信した時，UAPはデータの通番合わせや再送の処理が必要です。

●-u

（オペランド）

spktsize=送信パケットサイズ｜1024　　～〈符号なし整数〉((128，256，512，1024，2048，4096))《1024》

送信パケットサイズを指定します。

次の条件を満たした値を指定してください。

自システムの通信管理の構成定義（link文のmax_DPDUオペランド）で指定した値以下

相手システムの受信パケットサイズと同じ

rpktsize=受信パケットサイズ｜1024　　～〈符号なし整数〉((128，256，512，1024，2048，4096))《1024》

受信パケットサイズを指定します。

次の条件を満たした値を指定してください。

自システムの通信管理の構成定義（link文のmax_DPDUオペランド）で指定した値以下

相手システムの送信パケットサイズと同じ

●-w

（オペランド）

swndsize=送信ウィンドウサイズ｜2　　～〈符号なし整数〉((1～7))《2》

送信ウィンドウサイズを指定します。

パケット交換網への加入時に申請した値を指定してください。

rwndsize=受信ウィンドウサイズ｜2　　～〈符号なし整数〉((1～7))《2》

受信ウィンドウサイズを指定します。

パケット交換網への加入時に申請した値を指定してください。

注意事項

-gオプションおよび-eオプションで指定するバッファグループ番号は，バッファグループ定義のmcftbufコマンドに対応しています。mcftbufコマンドでは，1コネクション単位に次の表に示す資源が必要です。バッファグループ定義については，マニュアル「OpenTP1 システム定義」を参照してください。

バッファ種別 | mcftbufコマンド
lengthオペランド | countオペランド
sndbuf | 送信最大メッセージ長 | 1以上
rcvbuf | 受信最大メッセージ長 | 1以上※¹
msgbuf※² | メッセージ編集UOCで編集後の最大メッセージ長 | 1

注※1

多くの受信メッセージが連続して発生するコネクションについては，バッファグループを分けて定義してください。

注※2

UOCでメッセージの編集をしない場合は，指定しません。

mcftalccn（コネクション定義の開始） － VC

形式

mcftalccn -c コネクションID
         -p x25
         -g "sndbuf=メッセージ送信バッファグループ番号
             rcvbuf=メッセージ受信バッファグループ番号"
       〔-e "〔msgbuf=メッセージ編集用バッファグループ番号〕"〕
       〔-i auto｜manual〕
         -j vc
       〔-z "〔vslot=仮想スロット番号〕"〕
       〔-a "〔aretry=yes｜no〕
             〔aretrycnt=コネクション確立時障害の確立再試行回数〕
             〔aretryint=コネクション確立時障害の確立再試行間隔〕"〕
       〔-o "〔ctlheader=use｜nouse〕
             〔itdata=use｜nouse〕"〕
       〔-t int｜rsp〕
         -q  "snpa=相手SNPAアドレス
             〔inserv=x'INSサービス種別'〕
             〔inspeed=x'INS回線速度'〕"
       〔-f "〔kind=cerr｜ccls〕"〕

機能

VCのコネクションに関する環境を定義します。

オプション

●-c コネクションID　　～〈1～8文字の識別子〉

OpenTP1システム内で，一意となるコネクションIDを指定します。

●-p x25

プロトコルの種別を指定します。

x25

X.25プロトコル

●-g

（オペランド）

sndbuf=メッセージ送信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ送信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

rcvbuf=メッセージ受信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ受信用バッファのグループ番号を指定します。mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

複数のコネクション定義を指定した場合，このオペランドの指定値は，ほかのコネクション定義と同じにしなければなりません。

●-e

（オペランド）

msgbuf=メッセージ編集用バッファグループ番号　　～〈符号なし整数〉((1～512))

入力，出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファグループ番号を指定します。

このオペランドを省略した場合は，メッセージ編集用バッファは確保されません。mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

●-i auto｜manual　　～《manual》

MCF開始時および再開始時に，コネクションを自動的に確立するかどうかを指定します。

auto

コネクションを自動的に確立します。発呼コネクションの場合に自動的に確立します。

manual

MCF起動後，運用コマンドのmcftactcnコマンドを入力して，コネクションを確立します。

同一相手システムに対し，複数のコネクション定義を指定した場合，このオプションの指定値は，該当するコネクション定義で同じにしなければなりません。

●-j vc

接続プロトコルに，VCを示すvcを指定します。

●-z

（オペランド）

vslot=仮想スロット番号　　～〈符号なし整数〉((1～1000))

仮想スロット番号を指定します。

このオペランドは，発呼コネクションの場合，必ず指定してください。

着呼コネクションの場合は指定を省略してください。指定しても無効となります。

通信管理の構成定義のlink文のVASSオペランドで指定した仮想スロット番号を指定してください。

●-a

（オペランド）

aretry=yes｜no　　～《yes》

コネクション確立時に障害が発生した場合，コネクション確立の再試行をするかどうかを指定します。

yes

コネクション確立の再試行をします。

no

コネクション確立の再試行をしません。

aretrycnt=コネクション確立時障害の確立再試行回数｜0　　～〈符号なし整数〉((0～65535))《0》

コネクション確立時に障害が発生した場合，コネクション確立の再試行をする回数を指定します。

このオペランドを省略した場合，または0を指定した場合，無限に再試行をします。aretryオペランドでnoを指定した場合，このオペランドの指定は無効です。

なお，通信管理から再試行不可能な障害が通知された場合は，再試行を中止します。

aretryint=コネクション確立時障害の確立再試行間隔｜0　　～〈符号なし整数〉((0～2550))《0》(単位:秒)

コネクション確立時に障害が発生した場合，コネクション確立の再試行をする時間間隔を指定します。

このオペランドを省略した場合，または0を指定した場合，障害後直ちに再試行をします。aretryオペランドでnoを指定した場合，このオペランドの指定は無効です。

●-o

（オペランド）

ctlheader=use｜nouse　　～《nouse》

UAPとTP1/NET/X25のメッセージ送受信時に制御ヘッダを使用するかどうかを指定します。

use

メッセージに制御ヘッダを付けます。

nouse

メッセージに制御ヘッダを付けません。

PADメッセージの送受信をする場合，およびitdataオペランドでuseを指定する場合，必ずuseを指定してください。また，このオペランドでuseを指定する場合，アプリケーション名を決定するために，必ず次のどちらかの処理をしてください。

mcftalcle定義コマンドの-vオプションの指定

アプリケーション名を決定する入力メッセージ編集UOCの組み込み

itdata=use｜nouse　　～《nouse》

割り込みメッセージ（割り込みパケット）の受信を制御ヘッダで通知するかどうかを指定します。

use

割り込みメッセージの受信を通知します。

nouse

割り込みメッセージの受信を通知しません。割り込みメッセージのデータは破棄します。

また，このオペランドでuseを指定する場合，次の指定をしたときに有効です。

mcftalccn -o ctlheader=use

●-t int｜rsp　　～《rsp》

コネクションの種類を指定します。

int

発呼コネクションとして使用します。

rsp

着呼コネクションとして使用します。

●-q

（オペランド）

snpa=相手SNPAアドレス　　～〈1～30けたの数字〉

相手SNPAアドレスを指定します。

このオペランドは，必ず指定してください。

inserv=x'INSサービス種別'　　～〈4けたの16進数字〉

INSサービス種別を指定します。

通信管理が設定する値を指定してください。

このオペランドは，ISDN接続の場合，必ず指定してください。また，このオペランドを指定するときは，inspeedオペランドも必ず指定してください。

xは，16進数字で指定することを意味します。

inspeed=x'INS回線速度'　　～〈4けたの16進数字〉

INSサービスを使用するときの回線速度を指定します。

通信管理が設定する値を指定してください。xは，16進数字で指定することを意味します。

このオペランドは，inservオペランドを指定したときだけ有効です。また，ISDN接続の場合，必ず指定してください。

●-f

（オペランド）

kind=cerr｜ccls　　～《ccls》

コネクションの切断時（自システムからのコネクション解放は除く）にVCから通知するMCFイベントの種別を指定します。

cerr

CERREVTを通知します。

ccls

CCLSEVTを通知します。

注意事項

-gオプションおよび-eオプションで指定するバッファグループ番号は，バッファグループ定義のmcftbufコマンドに対応しています。mcftbufコマンドでは，1コネクション単位に次の表に示す資源が必要です。バッファグループ定義については，マニュアル「OpenTP1 システム定義」を参照してください。

バッファ種別 | mcftbufコマンド
lengthオペランド | countオペランド
sndbuf | 送信最大メッセージ長 | 1以上
rcvbuf | 受信最大メッセージ長 | 相手システムから連続して送信されるメッセージ数
msgbuf※ | メッセージ編集UOCで編集後の最大メッセージ長 | 1

注※

UOCでメッセージの編集をしない場合は，指定の必要はありません。

送受信バッファは，コネクション確立時にも使用します。

複数コネクションでバッファグループを共用する場合，バッファ数はコネクションごとの和を，バッファサイズはコネクション間で最大の値を指定してください。また，コネクション間で同一のサイズを指定してください。

mcftalced（コネクション定義の終了） － PVC

形式

mcftalced

機能

一つのコネクションの定義の終了を示します。

オプション

ありません。

mcftalced（コネクション定義の終了） － VC

形式

mcftalced

機能

コネクションの定義の終了を示します。

オプション

ありません。

mcftalcle（論理端末定義） － PVC

形式

mcftalcle -l 論理端末名称
         -t any
       〔-m "〔mmsgcnt=メモリ出力メッセージ最大格納数〕
             〔dmsgcnt=ディスク出力メッセージ最大格納数〕"〕
       〔-k "〔quekind=memory｜disk〕
             〔quegrpid=キューグループID〕"〕
       〔-o "〔aj=yes｜no〕"〕
       〔-v アプリケーション名〕

機能

論理端末に関する環境を定義します。

オプション

●-l 論理端末名称　　～〈1～8文字の識別子〉

OpenTP1システム内で，一意となる論理端末名称を指定します。

●-t any

論理端末の端末タイプを指定します。

any

任意型論理端末

●-m

（オペランド）

mmsgcnt=メモリ出力メッセージ最大格納数　　～〈符号なし整数〉((0～65535))《0》

メモリキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後UAPからの送信要求（dc_mcf_send関数またはSEND文）はエラーリターンになります。0を指定した場合，メモリキューで待ち合わせをする出力メッセージの数は無制限になります。

dmsgcnt=ディスク出力メッセージ最大格納数　　～〈符号なし整数〉((0～65535))《0》

ディスクキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後UAPからの送信要求（dc_mcf_send関数またはSEND文）はエラーリターンになります。0を指定した場合，ディスクキューで待ち合わせをする出力メッセージの数は無制限になります。

●-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》

送信完了時の情報を取得するかどうかを指定します。

yes

取得します。

no

取得しません。

●-v アプリケーション名　　～〈1～8文字の識別子〉

該当する論理端末で受信したメッセージの起動先アプリケーション名を指定します。

MCFアプリケーション定義（mcfaalcap -n name）で指定した名称を指定してください。MCFアプリケーション定義については，マニュアル「OpenTP1 システム定義」を参照してください。

このオプションは，入力メッセージ編集UOCでアプリケーション名を決定する場合は不要です。

mcftalcle（論理端末定義） － VC

形式

mcftalcle -l 論理端末名称
         -t any
        〔-m "〔mmsgcnt=メモリ出力メッセージ最大格納数〕
              〔dmsgcnt=ディスク出力メッセージ最大格納数〕"〕
        〔-k "〔quekind=memory｜disk〕
              〔quegrpid=キューグループID〕"〕
        〔-o "〔aj=yes|no〕"〕
        〔-v アプリケーション名〕

機能

論理端末に関する環境を定義します。

オプション

●-l 論理端末名称　　～〈1～8文字の識別子〉

OpenTP1システム内で，一意となる論理端末名称を指定します。

●-t any

この論理端末の端末タイプを指定します。

any

任意型論理端末

●-m

（オペランド）

mmsgcnt=メモリ出力メッセージ最大格納数　　～〈符号なし整数〉((0～65535))《0》

メモリキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後UAPからの送信要求（dc_mcf_send関数またはSEND文）はエラーリターンとなります。

0を指定した場合，メモリキューで待ち合わせをする出力メッセージの数は無制限になります。

dmsgcnt=ディスク出力メッセージ最大格納数　　～〈符号なし整数〉((0～65535))《0》

ディスクキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後UAPからの送信要求（dc_mcf_send関数またはSEND文）はエラーリターンとなります。

0を指定した場合，ディスクキューで待ち合わせをする出力メッセージの数は無制限となります。

●-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》

送信完了時の情報を取得するかどうかを指定します。

yes

取得します。

no

取得しません。

●-v アプリケーション名　　～〈1～8文字の識別子〉

該当する論理端末で受信したメッセージの起動先アプリケーション名を指定します。

MCFアプリケーション定義（mcfaalcap -n name）で指定した名称を指定してください。MCFアプリケーション定義については，マニュアル「OpenTP1 システム定義」を参照してください。

このオプションは，入力メッセージ編集UOCでアプリケーション名を決定する場合は不要です。

mcftcomn（MCF通信構成共通定義） － PVC

形式

mcftcomn           ：
      〔-b"〔bufretry=yes｜no〕
           〔retrycnt=受信バッファ空き待ち再試行回数〕
           〔retryint=受信バッファ空き待ち時間〕"〕
                  ：

機能

PVCを使用する場合の，受信バッファ不足時のバッファ空き待ちタイマ値を定義します。

オプション

この定義コマンドには，ほかにもオプションがあります。詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

●-b

（オペランド）

bufretry=yes｜no　　～《yes》

受信バッファ不足時にバッファの空き待ちをするかどうかを指定します。

yes

受信バッファ不足時に空き待ちをします。

no

受信バッファ不足時に空き待ちをしません。

retrycnt=受信バッファ空き待ち再試行回数｜1　　～〈符号なし整数〉((0～128))《1》

受信バッファ空き待ち再試行回数を指定します。

このオペランドの指定値が0の場合，無限回のバッファ空き待ちをします。bufretryオペランドの指定がnoの場合，このオペランドの指定は無効です。

retryint=受信バッファ空き待ち時間｜180　　～〈符号なし整数〉((1～65535))《180》（単位：秒）

受信バッファ空き待ち時間を指定します。

bufretryオペランドの指定がnoの場合，このオペランドの指定は無効です。

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

MCFサービスはユーザが作るシステムサービスで，OpenTP1のシステムサービスと同じ位置づけになります。

システムサービス情報定義では，MCF通信サービスを起動するための環境を定義します。ユーザがMCFサービスを作成するときに定義する必要があります。

システムサービス情報定義は，テキストエディタを使用して作成します。

システムサービス情報定義の完全パス名を次に示します。

$DCDIR/lib/sysconf/定義ファイル名

定義ファイル名には，システムサービス情報定義のmoduleオペランドで指定する実行形式プログラム名を指定します。この定義ファイル名をMCFマネジャ定義のmcfmcnameコマンドに指定します。

形式

 set module="TP1/NET/X25の実行形式プログラム名"

機能

プロセスサービスがMCF通信サービスを起動するための環境を定義します。

各MCF通信サービスに対して一つ，システムサービス情報定義を作成できます。また，複数のMCF通信サービスで一つのシステムサービス情報定義を共用することもできます。

オペランド

●module="TP1/NET/X25の実行形式プログラム名"　　～〈1～8文字の識別子〉

MCF通信サービスを起動するための実行形式プログラム名を指定します。

MCF実行形式プログラムには，MCF通信プロセス用のものとアプリケーション起動プロセス用のものがあります。

MCF実行形式プログラムは，MCF通信プロセス同士，およびアプリケーション起動プロセス同士で共有できます。

TP1/NET/X25の実行形式プログラム名には，先頭4文字がmcfuで始まる最大8文字の名称を指定します。

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

TP1/NET/X25で定義したシステム構成の内容によっては，OpenTP1のシステムサービス共通情報定義を指定する必要があります。

システムサービス共通情報定義の完全パス名を次に示します。

$DCDIR/lib/sysconf/mcf

形式

set形式

set max_socket_descriptors=ソケット用ファイル記述子の最大数
set max_open_fds=MCF通信プロセスでアクセスするファイルの最大数

機能

システムサービス共通情報定義では，複数のMCF通信サービスに共通する情報を定義します。この定義ファイルは，標準値を定義した状態で製品に含まれています。次に示すオペランドについては，必要に応じて，テキストエディタを使用して定義値を変更してください。ほかのオペランドについては，変更しないでください。

説明

set形式のオペランド

●max_socket_descriptors=ソケット用ファイル記述子の最大数　　～〈符号なし整数〉((64～2048))

各MCF通信プロセスでソケット用に使用するファイル記述子数の中の最大数を指定します。

ソケット用ファイル記述子の最大数を求める計算式を次に示します。↑↑は，小数点以下を切り上げることを意味します。

↑（このMCF通信プロセスに対してメッセージ送信要求を行うUAPプロセス数※1
  ＋システムサービスプロセス数※2
  ＋このMCF通信プロセスに対して同時に処理要求を行う運用コマンド数
  ）／0.8↑

注※1

アプリケーション起動サーバに対するアプリケーション起動要求を行うUAPプロセス数も含みます。

注※2

システムサービスプロセス数とは，自OpenTP1システム内のシステムサービスプロセス数です。

自OpenTP1内のMCF通信プロセスごとに計算し，その結果の中で最大値が64より大きい場合は，その値を指定します。64以下の場合は，64を指定します。

●max_open_fds=MCF通信プロセスでアクセスするファイルの最大数　　～〈符号なし整数〉((100～2048))

各MCF通信プロセスでアクセスするファイルの数の中の最大値を指定します。

ファイル記述子の最大数を求める計算式を次に示します。

（プロトコル制御で使用するファイル記述子数※¹）＋30※²

注※1

コネクションの総数を2倍した値になります。

注※2

MCF通信プロセスが扱う定義ファイルなどの数の最大値です。

自OpenTP1内のMCF通信プロセスごとに計算し，その結果の中で最大値が500より大きい場合は，その値を指定します。500以下の場合は，500を指定します。指定値を超えてファイルのアクセスが発生した場合，その超過分は，ソケット用ファイル記述子使用数として扱われます。この場合，max_socket_descriptorsオペランドの指定値からmax_open_fdsオペランドの指定値を減算した超過分が，実際のソケット用ファイル記述子の最大数になりますので，ご注意ください。

なお，1プロセスで使用できるファイル記述子の最大数は2048であるため，このオペランドには，次の条件を満たす値を指定してください。

（「このオペランドの指定値」
＋同定義内の「max_socket_descriptorsオペランドの指定値」）≦2048

条件を満たさない指定をした場合は，このオペランドの指定値は次に示すように強制的に補正されます。

2048－（同定義内の「max_socket_descriptorsオペランドの指定値」）

注意事項

max_socket_descriptorsオペランドの指定値とmax_open_fdsオペランドの指定値の合計は，OSのシステムパラメタで指定する「1プロセスでオープンできるファイル数」を超えないようにする必要があります。システム定義の変更などによって，上記のオペランドの指定値の合計が増加する場合は，OSのシステムパラメタの指定を変更してください。

MCF定義オブジェクトの生成

MCF定義オブジェクト生成ユティリティでは，MCFの定義ファイルの構文のチェックと定義オブジェクトファイルへの変換をします。ここでは，MCF定義オブジェクト生成ユティリティの起動コマンドについて説明します。

形式

mcfx25 -i 〔パス名〕入力ファイル名
      -o 〔パス名〕出力オブジェクトファイル名

機能

MCF通信構成定義のTP1/NET/X25のプロトコル固有定義ファイルの構文のチェック，および定義オブジェクトファイルを作成します。

ただし，開始から再開始の間は定義オブジェクトファイルを変更できません。変更した場合，再開始時に正常に動作しないおそれがあるためご注意ください。

TP1/NET/X25のプロトコル固有定義オブジェクトファイル以外の生成ユティリティについては，マニュアル「OpenTP1 システム定義」を参照してください。

オプション

●-i 〔パス名〕入力ファイル名　　～〈パス名〉〈1～8文字の識別子〉

定義ソースが格納されているファイル名を指定します。

●-o 〔パス名〕出力オブジェクトファイル名　　～〈パス名〉〈1～8文字の英数字〉

定義オブジェクトを格納するファイル名を指定します。

自システムの通信管理プログラムと関連づける内容

TP1/NET/X25を使用してAP間通信をする場合，TP1/NET/X25の定義と自システム内の通信管理の定義とを関連づける必要があります。

PVCの場合

TP1/NET/X25のPVCを使用する場合の，自システムの通信管理との定義の関係を説明します。

TP1/NET/X25のMCF通信構成定義では，通信管理の構成定義の指定と一致させる値があります。MCF通信構成定義（mcftalccn -z）で指定する仮想スロット番号と，XNF/ASの構成定義（link文のVASSオペランド）の指定値を一致させてください。通信管理の構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

VCの場合

TP1/NET/X25のVCを使用する場合の，自システムの通信管理との定義の関係を説明します。

TP1/NET/X25のMCF通信構成定義では，通信管理の構成定義の指定と一致させる値があります。MCF通信構成定義（mcftalccn -z）で指定する仮想スロット番号と，XNF/ASの構成定義（link文のVASSオペランド）の指定値を一致させてください。通信管理の構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

定義例

PVCの定義例

PVCの場合のTP1/NET/X25のシステム構成例を次の図に示します。

図6-2　TP1/NET/X25のシステム構成例（PVCの場合）

ここでは，この図で示したシステム構成のコーディング例を示します。

コーディング例は，次に示すファイルで提供されています。

MCFマネジャ定義の例
/BeTRAN/examples/mcf/X25/conf/mngr1

共通定義の例
/BeTRAN/examples/mcf/X25/conf/com_c1

プロトコル固有定義の例
/BeTRAN/examples/mcf/X25/conf/com_d1

通信管理の構成定義の例（PVCの場合）

configuration
   version 1
   max_NLI_PVC 2
   max_PVC_network_connection 2
   max_X25_link 2
   max_X25_VASS 2
   max_line 2
   max_Line_adapter 1
   max_link 2
   ;

NLI_buffer
   name buffer1
   number 128
   size 128
   ;

Line_adapter
   name LP01
   location_code 37-08
   initial_status active
   ;

   group
       name X25
       type HDLC
       buffer_pool buffer1
       ;

       line
           name LINE01
           number 01
           speed 9.6K
           line_type public_PS
           line_mode 80PVC
           ;

       link
           name LINK01
           data_link_address 1
           data_link_address2 3
           connection_retry 7
           connection_time 3.2
           data_retry 10
           data_time 4.2
           busy_retry 8
           busy_time 5.0
           outstand 7
           max_DPDU 1024
           VASS 100 ※
           ;

       NL;

       line
           name LINE02
           number 02
           speed 9.6K
           line_type public_PS
           line_mode 80PVC
           ;

       link
           name LINK2
           data_link_address 1
           data_link_address2 3
           connection_retry 7
           connection_time 3.2
           data_retry 10
           data_time 4.2
           busy_retry 8
           busy_time 5.0
           outstand 7
           max_DPDU 1024
           VASS 200 ※
           ;

       NL;

注※

数字はMCF通信構成定義の仮想スロット番号に対応します。

TP1/NET/X25のMCFマネジャ定義の例（PVCの場合）

####  MCFマネジャ定義  ####

mcfmenv    -m  "name=mcfmngr"
mcfmcomn   -n  20                    ¥
          -p  100
mcfmcname  -s  "mcfsvname=_mufX25    ¥
               syssvname=mcfux25 "
mcfmuap    -d  1000                  ¥
          -t  "sndtim=600           ¥
               sndrcvtim=600"       ¥
          -j  32768                 ¥
          -l  "initseq=1            ¥
               maxseq=100           ¥
               minseq=1"            ¥
          -e  "segsize=4096"        ¥
          -u  "ntmetim=300"
mcfmqgid   -q  "quekind=otq          ¥
               quegrpid=quegrp01"
mcfmqgid   -q  "quekind=itq          ¥
               quegrpid=quegrp02"
mcfmexp    -g  2                     ¥
          -l  20

TP1/NET/X25の共通定義の例（PVCの場合）

####  MCF通信構成定義 共通定義  ####

mcftenv    -s  99                    ¥
          -a  mcfAPLI
mcftcomn
mcfttred
mcfttrc    -t  "size = 204800        ¥
               disk = yes           ¥
               bufcnt = 100"
### (送信用)
mcftbuf    -g  "groupno = 1          ¥
               length  = 512        ¥
               count   = 2 "

### (受信用)
mcftbuf    -g  "groupno = 2          ¥
               length  = 512        ¥
               count   = 4 "

### (編集用)
mcftbuf    -g  "groupno = 3          ¥
               length  = 512        ¥
               count   = 2 "

TP1/NET/X25のプロトコル固有定義の例（PVCの場合）

####  MCF通信構成定義(PVCのプロトコル固有定義)  ####

#---------------------<コネクション定義1>-----------------------#
mcftalccn  -c cx2501                 ¥
            -p x25                  ¥
            -g "sndbuf = 1          ¥
                rcvbuf = 2"         ¥
            -e "msgbuf = 3"         ¥
            -i auto                 ¥
            -j pvc                  ¥
            -z "vslot = 100" ※      ¥
            -n "group = 1           ¥
                number = 2"         ¥
            -x manual               ¥
            -l auto
#---------------------<論理端末定義1>---------------------------#
mcftalcle    -l leid01               ¥
            -t any                  ¥
            -v X25AP01              ¥
            -m "mmsgcnt  = 150      ¥
                dmsgcnt  = 0"       ¥
            -k "quekind  = disk     ¥
                quegrpid = quegrp01"¥
            -o "aj       = yes"
mcftalced
#---------------------<コネクション定義2>-----------------------#
mcftalccn  -c cx2502                 ¥
            -p x25                  ¥
            -g "sndbuf = 1          ¥
                rcvbuf = 2"         ¥
            -e "msgbuf = 3"         ¥
            -i auto                 ¥
            -j pvc                  ¥
            -z "vslot = 200" ※      ¥
            -n "group = 1           ¥
                number = 3"         ¥
            -x manual               ¥
            -l auto
#---------------------<論理端末定義2>---------------------------#
mcftalcle    -l leid02               ¥
            -t any                  ¥
            -v X25AP02              ¥
            -m "mmsgcnt  = 150      ¥
                dmsgcnt  = 0"       ¥
            -k "quekind  = disk     ¥
                quegrpid = quegrp01"¥
            -o "aj       = yes"
mcftalced

注※

数字は通信管理の構成定義の仮想スロット番号に対応します。

VCの定義例

VCの場合のTP1/NET/X25のシステム構成例を次の図に示します。

図6-3　TP1/NET/X25のシステム構成例（VCの場合）

ここでは，この図で示したシステム構成のコーディング例を示します。

コーディング例は，次に示すファイルで提供されています。

MCFマネジャ定義の例
/BeTRAN/examples/mcf/X25/conf/mngr2

共通定義の例
/BeTRAN/examples/mcf/X25/conf/com_c2

プロトコル固有定義の例
/BeTRAN/examples/mcf/X25/conf/com_d2

通信管理の構成定義の例（VCの場合）

configuration
   version 1
   max_NLI_VC 32
   max_VC_network_connection 32
   max_X25_link 150
   max_X25_VASS 150
   max_line 11
   max_Line_adapter 1
   max_link 11
   ;

Line_adapter
   location_code   37-08
   name            LADP01
   adapter_type    HDLC
   initial_status  active
   auto_start      yes
   ;

   group
       name PASSVC01
       type HDLC
       ;

       line
           name LINE01
           number 00
           line_type private_PS
           line_mode 84VC
           speed 9.6K
           modem_clock synch_ST2
           modem_type full
           RS_control on_fixed
           CDcheck no
           NRZI no
           ;

       link
           name LINK01
           VASS 100 ※
           data_link_address 1
           data_link_address2 3
           ;

       NL
           DTE_address 4400524
           min_VC_LCGN 13
           max_VC_LCGN 15
           min_VC_LCN 1
           max_VC_LCN 20
           send_window_size 2
           receive_window_size 2
           ;

       link
           name link102
           VASS 200 ※
           data_link_address 1
           data_link_address2 3
           ;

       NL
           DTE_address 4400529
           min_VC_LCGN 13
           max_VC_LCGN 15
           min_VC_LCN 1
           max_VC_LCN 20
           send_window_size 2
           receive_window_size 2
           ;

注※

数字はMCF通信構成定義の仮想スロット番号に対応します。

TP1/NET/X25のMCFマネジャ定義の例（VCの場合）

####  MCFマネジャ定義   ####

mcfmenv      -m  "name=mcfmngr"
mcfmcomn     -n  20                   ¥
            -p  100
mcfmcname    -s  "mcfsvname=_mufX25   ¥
                 syssvname=mcfux25 "
mcfmuap      -d  1000                 ¥
            -t  "sndtim=600          ¥
                 sndrcvtim=600"      ¥
            -j  32768                ¥
            -l  "initseq=1           ¥
                 maxseq=100          ¥
                 minseq=1"           ¥
            -e  "segsize=4096"       ¥
            -u  "ntmetim=300"
mcfmqgid     -q  "quekind=otq         ¥
                 quegrpid=quegrp01"
mcfmqgid     -q  "quekind=itq         ¥
                 quegrpid=quegrp02"
mcfmexp      -g  2                    ¥
            -l  20

TP1/NET/X25の共通定義の例（VCの場合）

####  MCF通信構成定義 共通定義  ####

mcftenv      -s  99                   ¥
            -a  mcfAPLI
mcftcomn
mcfttred
mcfttrc      -t "size = 204800        ¥
                disk = yes           ¥
                bufcnt = 100"
### (送信用)
mcftbuf      -g "groupno = 1          ¥
                length  = 512        ¥
                count   = 2 "

### (受信用)
mcftbuf      -g  "groupno = 2         ¥
                 length  = 512       ¥
                 count   = 4 "

### (編集用)
mcftbuf      -g  "groupno = 3         ¥
                 length  = 512       ¥
                 count   = 2 "

TP1/NET/X25のプロトコル固有定義の例（VCの場合）

####  MCF通信構成定義(VCのプロトコル固有定義)  ####

#---------------------<コネクション定義1>-----------------------#
mcftalccn  -c cx2501                  ¥
            -p x25                   ¥
            -g "sndbuf = 1           ¥
                rcvbuf = 2"          ¥
            -e "msgbuf = 3"          ¥
            -i auto                  ¥
            -j vc                    ¥
            -z "vslot = 100" ※       ¥
            -q "snpa  = 4400025"
#---------------------<論理端末定義1>---------------------------#
mcftalcle    -l leid01                ¥
            -t any                   ¥
            -v X25AP01               ¥
            -m "mmsgcnt  = 150       ¥
                dmsgcnt  = 0"        ¥
            -k "quekind  = disk      ¥
                quegrpid = quegrp01" ¥
            -o "aj       = yes"
mcftalced
#---------------------<コネクション定義2>-----------------------#
mcftalccn    -c  cx2502                ¥
            -p  x25                   ¥
            -g  "sndbuf = 1           ¥
                 rcvbuf = 2"          ¥
            -e  "msgbuf = 3"          ¥
            -i  auto                  ¥
            -j  vc                    ¥
            -z  "vslot = 200" ※       ¥
            -q  "snpa  = 4400026"
#---------------------<論理端末定義2>---------------------------#
mcftalcle    -l  leid02                ¥
            -t  any                   ¥
            -v  X25AP02               ¥
            -m  "mmsgcnt  = 150       ¥
                 dmsgcnt  = 0"        ¥
            -k  "quekind  = disk      ¥
                 quegrpid = quegrp01" ¥
            -o  "aj       = yes"
mcftalced

注※

数字は通信管理の構成定義の仮想スロット番号に対応します。

7.　運用コマンド

この章では，TP1/NET/X25で使用する運用コマンドについて説明します。

＜この章の構成＞

TP1/NET/X25の運用コマンド

mcftactcn（コネクションの確立）

mcftactle（論理端末の閉塞解除）

mcftdctcn（コネクションの解放）

mcftdctle（論理端末の閉塞）

mcftlscn（コネクションの状態表示）

mcftlsle（論理端末の状態表示）

TP1/NET/X25の運用コマンド

TP1/NET/X25は，オンライン中に運用コマンドを入力できます。

ここでは，TP1/NET/X25に関係のあるオプションについてだけ説明しています。ほかのオプション，運用コマンドの入力方法，およびその他の運用コマンドについては，マニュアル「OpenTP1 運用と操作」を参照してください。

TP1/NET/X25で使用する運用コマンドを次の表に示します。

表7-1　TP1/NET/X25で使用する運用コマンド

機能 | コマンド名称 | 定義中組み込み | オフライン中に実行 | オンライン中に実行 | UAPから実行
コネクション管理 | コネクションの確立 | mcftactcn | × | × | ○ | ○
コネクションの解放 | mcftdctcn | × | × | ○ | ○
コネクションの状態表示 | mcftlscn | × | × | ○ | ○
論理端末管理 | 論理端末の閉塞解除 | mcftactle | × | × | ○ | ○
論理端末の閉塞 | mcftdctle | × | × | ○ | ○
論理端末の状態表示 | mcftlsle | × | × | ○ | ○

（凡例）

○：組み込み，または実行ができます。

×：組み込み，または実行ができません。

mcftactcn（コネクションの確立）

形式

mcftactcn 〔-s MCF通信プロセス識別子〕 -c コネクションID

機能

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

オプション

●-s MCF通信プロセス識別子　　～〈16進数字〉((01～ef))

MCF通信プロセス識別子を指定します。

MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCFに対して，mcftactcnコマンドを実行します。

●-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 | 指定したコネクションは登録されていません。 | 標準エラー出力
KFCA10500-I | ヘルプメッセージ | 標準出力
KFCA14012-W | コネクション確立処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14013-W | コネクションが確立済みのため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14014-W | コネクション解放処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力
KFCA16424-E | 指定したコネクショングループは登録されていません。 | 標準エラー出力
KFCA16832-W | コネクションが確立済みのため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16833-W | コネクション確立処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16834-W | コネクション解放処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16839-W | 着呼コネクションのため，運用コマンドは受け付けられません。 | 標準エラー出力

mcftactle（論理端末の閉塞解除）

形式

mcftactle  〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
            -l 論理端末名称

機能

論理端末の閉塞を解除します。

オプション

●-s MCF通信プロセス識別子　　～〈16進数字〉((01～ef))

MCF通信プロセス識別子を指定します。

MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCFに対して，mcftactleコマンドを実行します。

●-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 | ヘルプメッセージ | 標準出力
KFCA14016-W | 論理端末自動起動指定のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14017-W | 論理端末が閉塞解除済みのため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力
KFCA16831-W | コネクションが未確立のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16833-W | コネクション確立処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16834-W | コネクション解放処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16836-W | 論理端末が閉塞解除済みのため，運用コマンドは受け付けられません。 | 標準エラー出力

mcftdctcn（コネクションの解放）

形式

mcftdctcn 〔-s MCF通信プロセス識別子〕 -c コネクションID
         〔-f〕

機能

コネクションを解放します。

オプション

●-s MCF通信プロセス識別子　　～〈16進数字〉((01～ef))

MCF通信プロセス識別子を指定します。

MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCFに対して，mcftdctcnコマンドを実行します。

●-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 | 指定したコネクションは登録されていません。 | 標準エラー出力
KFCA10501-I | ヘルプメッセージ | 標準出力
KFCA14014-W | コネクション解放処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14015-W | コネクションが未確立のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力
KFCA16424-E | 指定したコネクショングループは登録されていません。 | 標準エラー出力
KFCA16831-W | コネクションが未確立のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16833-W | コネクション確立処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16834-W | コネクション解放処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力

mcftdctle（論理端末の閉塞）

形式

mcftdctle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
          -l 論理端末名称

機能

論理端末を強制的に閉塞します。

PVCの場合，メッセージ送信中にこのコマンドが入力された場合，メッセージを出力キューから取り出す前の状態に戻します。その後，コネクションを強制的に解放します。

VCの場合，メッセージ送信中にこのコマンドが入力された場合，論理端末が使用中であるため，コマンドは拒否されます。その後，コネクションは解放されません。

なお，論理端末が閉塞状態でも，UAPから送信要求できます。

オプション

●-s MCF通信プロセス識別子　　～〈16進数字〉((01～ef))

MCF通信プロセス識別子を指定します。

MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCFに対して，mcftdctleコマンドを実行します。

●-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と論理端末名称の対応が正しくありません。 | 標準エラー出力
KFCA10504-I | ヘルプメッセージ | 標準出力
KFCA14016-W | 論理端末自動起動指定のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14018-W | 論理端末が閉塞済みのため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力
KFCA16835-W | 論理端末が閉塞済みのため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16838-W | 論理端末が使用中のため，運用コマンドは受け付けられません。 | 標準エラー出力

注意事項

メッセージの受信仕掛り中にこのコマンドを実行した場合，論理端末が閉塞状態でも，メッセージを受信します。論理端末閉塞によるメッセージ受信処理への影響はありません。

メッセージの送信仕掛り中にこのコマンドを実行した場合，mcftdctleコマンドはエラーリターンします。このとき，一方送信メッセージの送信仕掛り中であれば論理端末は閉塞されません。それ以外のときは，論理端末は閉塞されます。

mcftlscn（コネクションの状態表示）

形式

mcftlscn 〔-s MCF通信プロセス識別子〕 -c コネクションID 〔-d〕

機能

コネクションの状態を標準出力に表示します。

オプション

●-s MCF通信プロセス識別子　　～〈16進数字〉((01～ef))

MCF通信プロセス識別子を指定します。

MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCFに対して，mcftlscnコマンドを実行します。

●-c コネクションID　　～〈1～8文字の識別子〉

状態を表示するコネクションのコネクションIDを指定します。

コネクションIDは，一度に8個まで指定できます。ただし，同一コネクションIDは，重複して指定できません。複数指定するときは，引用符（"）で囲んで，コネクションIDとコネクションIDとの間を空白で区切ります。

また，コネクションIDは，*を使って一括指定ができます。一括指定は，一つだけ指定できます。一括指定と一括指定以外のコネクションIDを混在して指定できません。一括指定の場合も，引用符（"）で囲みます。

*：すべてのコネクションの状態を表示します。

先行文字列*：先行文字列で始まるすべてのコネクションの状態を表示します。

＜複数指定の例＞　cnn1，cnn2，cnn3を指定する場合

-c "cnn1△cnn2△cnn3"

＜一括指定の例＞　cnnで始まるすべてのコネクションを指定する場合

-c "cnn*"

●-d

コネクションの状態と該当するコネクションに対応する論理端末の情報を表示します。

このオプションの指定を省略すると，コネクションの状態だけを表示します。

出力形式

PVCの場合

mmm cccccccc ppp sssss ddd uuuuu
   llllllll ttt

注

-dオプションを指定しないでmcftlscnコマンドを実行した場合は，「mmm cccccccc ppp sssss ddd uuuuu」の行だけ出力されます。

mmm：MCF識別子

cccccccc：コネクションID

ppp：プロトコル種別
X25：X.25プロトコル

sssss：コネクション状態
ACT：確立
ACT/B：確立処理中
DCT：解放
DCT/B：解放処理中

ddd：詳細ステータス（保守情報）

uuuuu：接続プロトコル種別
(PVC)：PVC接続

llllllll：論理端末名称

ttt：論理端末の端末タイプ
ANY：any型

VCの場合

mmm cccccccc ppp sssss uuuu
   llllllll ttt

注

-dオプションを指定しないでmcftlscnコマンドを実行した場合は，「mmm cccccccc ppp sssss uuuu」の行だけ出力されます。

mmm：MCF識別子

cccccccc：コネクションID

ppp：プロトコル種別
X25：X.25プロトコル

sssss：コネクション状態
ACT：確立
ACT/B：確立処理中
DCT：解放
DCT/B：解放処理中

uuuu：接続プロトコル
(VC)：VC接続

llllllll：論理端末名称

ttt：論理端末の端末タイプ
ANY：any型

出力メッセージ

出力メッセージ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 | 状態表示を終了します。 | 標準出力
KFCA10371-I | mcftlscnコマンドを正常に受け付けました。 | 標準出力
KFCA10373-E | mcftlscnコマンドが異常終了しました。 | 標準エラー出力
KFCA10380-E | 相手プロセスの検索に失敗しました。 | 標準エラー出力
KFCA10381-E | 指定したコネクションは登録されていません。 | 標準エラー出力
KFCA10502-I | ヘルプメッセージ | 標準出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力
KFCA16424-E | 指定したコネクショングループは登録されていません。 | 標準エラー出力

mcftlsle（論理端末の状態表示）

形式

mcftlsle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
          -l 論理端末名称 〔-q〕〔-t〕

機能

論理端末の状態を標準出力に表示します。

オプション

●-s MCF通信プロセス識別子　　～〈16進数字〉((01～ef))

MCF通信プロセス識別子を指定します。

MCF通信プロセス識別子は複数指定できません。

このオプションの指定を省略すると，すべてのMCFに対して，mcftlsleコマンドを実行します。

●-c コネクションID　　～〈1～8文字の識別子〉

状態を表示したい論理端末に対応するコネクションのコネクションIDを指定します。

コネクションIDは複数指定できません。また，一括指定もできません。

●-l 論理端末名称　　～〈1～8文字の識別子〉

状態を表示する論理端末の名称を指定します。

-cオプションを指定した場合，指定したコネクションIDに対応する論理端末名称を指定してください

論理端末名称は，一度に8個まで指定できます。同一論理端末名称は，重複して指定できません。複数指定するときは，引用符（"）で囲んで，論理端末名称と論理端末名称との間を空白で区切ります。

また，論理端末名称は，*を使って一括指定ができます。一括指定は一つだけ指定できます。一括指定と一括指定以外の論理端末名称を混在して指定できません。一括指定の場合も，引用符（"）で囲みます。

*：すべての論理端末の状態を表示します。

先行文字列*：先行文字列で始まるすべての論理端末の状態を表示します。

＜複数指定の例＞　len1，len2，len3を指定する場合

-l "len1△len2△len3"

＜一括指定の例＞　lenで始まるすべての論理端末を指定する場合

-l "len*"

●-q

指定した論理端末に対応する出力キューの保留状態を表示します。

このオプションの指定を省略すると，論理端末に対応する出力キューの保留状態は表示しません。

●-t

指定した論理端末がセキュア状態かどうかを表示します。

出力形式

mmm 11111111 sss〔ggg〕〔tttt〕
     IO xxxxxxxxxx yyyyyyyyyy zzzzzzzzzz
   PRIO      :           :         :
   NORM      :           :         :
   iii ooo

mmm：MCF識別子

11111111：論理端末名称

sss：論理端末状態
ACT：閉塞解除
DCT：閉塞

ggg：論理端末のセキュア状態（-tオプション指定時だけ表示）
NOS：非セキュア状態
SEC：セキュア状態

tttt：論理端末のテストモード状態（TP1/Message Control/Tester使用時だけ表示）
TEST：テストモード
空白：非テストモード

IO：非同期型問合せ応答メッセージ

PRIO：非同期型一方送信メッセージ（優先）

NORM：非同期型一方送信メッセージ（一般）

xxxxxxxxxx：未送信メッセージ数

yyyyyyyyyy：未送信メッセージ最小通番

zzzzzzzzzz：未送信メッセージ最大通番

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 | 状態表示を終了します。 | 標準出力
KFCA10371-I | mcftlsleコマンドを正常に受け付けました。 | 標準出力
KFCA10373-E | mcftlsleコマンドが異常終了しました。 | 標準エラー出力
KFCA10380-E | 相手プロセスの検索に失敗しました。 | 標準エラー出力
KFCA10381-E | 指定したコネクションは登録されていません。 | 標準エラー出力
KFCA10382-E | 指定した論理端末は登録されていません。 | 標準エラー出力
KFCA10390-E | 指定したコネクションIDと論理端末名称の対応が正しくありません。 | 標準エラー出力
KFCA10391-E | mcftlsleコマンドはサポートされていません。 | 標準エラー出力
KFCA10395-E | 指定したコネクションには未接続の論理端末名称が指定されています。 | 標準エラー出力
KFCA10505-I | ヘルプメッセージ | 標準出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力

8.　組み込み方法

この章では，TP1/NET/X25をOpenTP1システムへ組み込む方法について説明します。

＜この章の構成＞

8.1　TP1/NET/X25の組み込みの流れ

8.2　MCFメイン関数の作成

8.3　定義オブジェクトファイルの生成

8.1　TP1/NET/X25の組み込みの流れ

TP1/NET/X25をOpenTP1システムに組み込むときの作業の流れを示します。

＜この節の構成＞

(1)　MCFメイン関数の作成

(2)　MCFサービス名の登録

(3)　システムサービス情報定義ファイルの作成

(4)　定義オブジェクトファイルの作成

(1)　MCFメイン関数の作成

TP1/NET/X25を起動するためには，ユーザがMCFメイン関数をコーディングし，コンパイルおよびリンケージしておく必要があります。詳細は，「8.2　MCFメイン関数の作成」を参照してください。

(2)　MCFサービス名の登録

TP1/NET/X25を実行するために，MCFサービス名をシステムサービス構成定義で定義しておく必要があります。

また，MCFサービス名はMCFマネジャ定義オブジェクトファイル名と一致させてください。

詳細は，マニュアル「OpenTP1 システム定義」を参照してください。

(3)　システムサービス情報定義ファイルの作成

システムサービス情報定義ファイルをオペレーティングシステムのテキストエディタで作成します。作成するファイルのパス名は，「$DCDIR/lib/sysconf/システムサービス情報定義ファイル名」です。ファイルの定義形式については，「6.　システム定義」の「システムサービス情報定義」を参照してください。

(4)　定義オブジェクトファイルの作成

OpenTP1のネットワークコミュニケーション定義の各ソースファイルから定義オブジェクトファイルを生成します。詳細は，「8.3　定義オブジェクトファイルの生成」を参照してください。

8.2　MCFメイン関数の作成

TP1/NET/X25は，OpenTP1プロセスサービスによって起動されます。

TP1/NET/X25を起動するためには，ユーザがMCFメイン関数をコーディングし，翻訳（コンパイル）および結合（リンケージ）を行ってTP1/NET/X25の実行形式プログラムを作成する必要があります。リンケージには，PVCの場合はmcfplx25コマンドを，VCの場合はmcfplx25vcコマンドを使用します。

MCFメイン関数では，スタート関数（dc_mcf_svstart）を呼び出します。UOCを使用する場合は，MCFメイン関数でUOCの関数アドレスを指定してください。

UOCは，MCFメイン関数と同じ言語（ANSI C，C++，またはK&R版 C）で作成してください。

MCFメイン関数のコーディング概要を図8-1および図8-2に示します。また，ディレクトリへの組み込み方法を図8-3に示します。

なお，このコーディング例を次のファイルで提供しています。

図8-1（ANSI C，C++の場合）
PVCの場合：/BeTRAN/examples/mcf/X25/cmlib/ansi/com1.c
VCの場合：/BeTRAN/examples/mcf/X25/cmlib/ansi/com2.c

図8-2（K&R版 Cの場合）
PVCの場合：/BeTRAN/examples/mcf/X25/cmlib/c/com1.c
VCの場合：/BeTRAN/examples/mcf/X25/cmlib/c/com2.c

図8-1　MCFメイン関数のコーディング概要（ANSI C，C++の場合）

注※

PVCの場合のコーディングです。VCの場合は，次のようにコーディングしてください。

#include <dcmx2p.h>

図8-2　MCFメイン関数のコーディング概要（K＆R版　Cの場合）

注※

PVCの場合のコーディングです。VCの場合は，次のようにコーディングしてください。

#include <dcmx2p.h>

TP1/NET/X25で提供するヘッダファイルを取り込みます。

使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。これらのUOCを使用する場合だけ，コーディングしてください。

UOCテーブルをextern宣言します。UOCを使用する場合，必ずこのとおりにコーディングしてください。2.のUOCを使用する場合だけ，コーディングしてください。

各UOC関数のアドレスを，次に示すシステム提供変数に設定します。

dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス*/
dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス*/

これらのUOCを使用する場合だけ，コーディングしてください。

スタート関数を呼び出します。必ずコーディングしてください。

図8-3　MCFメイン関数のディレクトリへの組み込み方法

注※1

PVCの場合はmcfplx25コマンド，VCの場合はmcfplx25vcコマンドでリンケージします。

注※2

TP1/NET/X25の実行形式プログラム名は，先頭がmcfuで始まる8文字以内の名称にしてください。

8.3　定義オブジェクトファイルの生成

定義オブジェクトファイルを次の手順で生成します。

ただし，開始から再開始の間に定義オブジェクトファイルを変更しないでください。変更した場合，再開始時に正常に動作しないおそれがあるためご注意ください。

オペレーティングシステムのテキストエディタを使用して，次に示す定義ソースファイルを作成します。

MCFマネジャ定義ソースファイル

MCF通信構成定義の共通定義ソースファイル

MCF通信構成定義のTP1/NET/X25のプロトコル固有定義ソースファイル

MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティを使用して，定義ソースファイルから，次に示すオブジェクトファイルを作成します。

MCFマネジャ定義オブジェクトファイル

MCF通信構成定義の共通定義オブジェクトファイル

MCF通信構成定義のTP1/NET/X25のプロトコル固有定義オブジェクトファイル

MCFアプリケーション定義オブジェクトファイル

MCF定義結合ユティリティを使用して，MCF通信構成定義の共通定義とプロトコル固有定義のオブジェクトファイルを結合します。

定義オブジェクトファイルの作成方法の概要を次の図に示します。

図8-4　定義オブジェクトファイルの作成方法の概要

注※1

次に示すコマンドで生成します。

mcfXXXX△-i△〔パス名〕入力ファイル名
      △-o△〔パス名〕出力オブジェクトファイル名

mcfXXXXは，ソースファイルごとに異なります。

mcfmngr：MCFマネジャ定義ソースファイル

mcfcomn：MCF通信構成定義の共通定義ソースファイル

mcfx25 ：MCF通信構成定義のプロトコル（TP1/NET/X25）固有定義ソースファイル

mcfapli：MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティのmcfx25コマンドについては「6.　システム定義」の「MCF定義オブジェクトの生成」を，その他のコマンドについてはマニュアル「OpenTP1 システム定義」を参照してください。

注※2

次に示すコマンドで，MCF通信構成定義の二つのオブジェクトファイルを結合します。

mcflink△-i△共通定義オブジェクトファイル名
      △TP1/NET/X25定義オブジェクトファイル名
      △-o△出力オブジェクトファイル名

注※3

定義オブジェクトファイルは，システム環境定義のDCCONFPATHで指定したディレクトリに格納してください。システム環境定義については，マニュアル「OpenTP1 システム定義」を参照してください。

9.　PVCの障害対策

この章では，PVCを使用した場合の障害時の処理とユーザの対策，および障害発生時の処理の流れについて説明します。

＜この章の構成＞

9.1　障害の種類と対応処理（PVC）

9.2　コネクション障害（PVC）

9.3　スケジュール関係の障害（PVC）

9.4　UAP障害（PVC）

9.1　障害の種類と対応処理（PVC）

運用中に障害が発生すると，TP1/NET/X25はシステムを回復します。このとき，システム定義の指定によって，MCFイベント処理用MHPも起動できます。

PVCの場合のTP1/NET/X25運用中の障害と対応処理について，障害の種類ごとに示します。

＜この節の構成＞

(1)　コネクション障害

(2)　受信スケジュール関係の障害（入力キュー，入力メッセージ編集UOC）

(3)　送信スケジュール関係の障害（出力キュー，出力メッセージ編集UOC）

(4)　UAP障害

(5)　MCF障害

(1)　コネクション障害

表9-1　コネクション障害と対応処理（PVC）

障害内容
TP1/NET/X25の処理（PVC）
ユーザの処理

コネクション確立時障害（回復不可能）
(1)　コネクション障害を通知するメッセージログ（KFCA14200-W）を出力します。
(2)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(3)　CERREVT（コネクション確立不可能）を起動します。
障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

コネクション確立時障害（回復可能）
(1)　コネクション障害を通知するメッセージログ（KFCA14200-W）を出力します。
(2)　回復動作を通知するメッセージログ（KFCA14201-I）を出力します。
(3)　リトライタイマの指定によって，一定時間経過後，確立を再試行します。
ありません。

コネクション切断障害（回復不可能）
(1)　コネクション障害を通知するメッセージログ（KFCA14200-W）を出力します。
(2)　コネクション解放を通知するメッセージログ（KFCA14001-I）を出力します。
(3)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(4)　CERREVT（コネクション切断・回復不可能）を起動します。
障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

コネクション切断障害（回復可能）
(1)　コネクション障害を通知するメッセージログ（KFCA14200-W）を出力します。
(2)　コネクション解放を通知するメッセージログ（KFCA14001-I）を出力します。
(3)　CERREVT（コネクション切断・回復可能）を起動します。
手動起動の場合，(3)のあとでmcftactcnコマンドを入力します。

自動起動の場合
(4)　回復動作を通知するメッセージログ（KFCA14201-I）を出力します。
(5)　リトライタイマの指定によって，一定時間経過後，再確立処理をします。

受信バッファオーバフロー
(1)　受信メッセージ破棄，受信バッファオーバフローを通知するメッセージログ（KFCA14203-W）を出力します。
(2)　コネクション解放を通知するメッセージログ（KFCA14001-I）を出力します。
(3)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(4)　CERREVT（受信バッファオーバフロー）を起動します。
システム定義を修正します。

プロトコルアドレス不正
(1)　プロトコルアドレス不正を通知するメッセージログ（KFCA14204-W）を出力します。
(2)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(3)　CERREVT（コネクション確立不可能）を起動します。
システム定義を修正します。

受信バッファ不足
(1)　ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。
(2)　グループバッファ取得失敗を通知するメッセージログ（KFCA14005-E）を出力し，一定の時間内にほかで使用中のバッファの解放を待ちます。
ありません。

時間内に解放された場合
(3)　処理を続行します。

時間内に解放されなかった場合
(3)　受信メッセージ破棄・受信バッファ不足を通知するメッセージログ（KFCA14203-W）を出力します。
(4)　コネクション解放を通知するメッセージログ（KFCA14001-I）を出力します。
(5)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(6)　CERREVT（受信バッファ不足）を起動します。
システム定義を修正します。

メッセージ送信時障害（回復不可能）
(1)　コネクション障害を通知するメッセージログ（KFCA14200-W）を出力します。
(2)　コネクション解放を通知するメッセージログ（KFCA14001-I）を出力します。
(3)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(4)　CERREVT（コネクション切断）を起動します。
(5)　メッセージは出力キューに残し，再開始時に再送されます。
障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

リセット受信
(1)　リセット受信を通知するメッセージログ（KFCA14205-W）を出力します。
(2)　受信中のメッセージを破棄し，送信中のメッセージをリセットします。
メッセージの通番を合わせて再送処理をします。

リセット通知あり指定の場合
(3)　UAPを起動します。

リセット通知なし指定の場合
(3)何もしません。

コネクション閉塞指定の場合
(3)　コネクション解放を通知するメッセージログ（KFCA14001-I）を出力します。
(4)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(5)　CERREVT（リセット受信）を起動し，リトライタイマの指定によって，一定時間経過後，再確立処理をします。

(2)　受信スケジュール関係の障害（入力キュー，入力メッセージ編集UOC）

表9-2　受信スケジュール関係の障害と対応処理（PVC）

障害内容
TP1/NET/X25の処理（PVC）
ユーザの処理

ユーザアプリケーション名称未定義
(1)　ERREVT1を起動します。
システム定義を修正します。

MCFイベントの名称未定義

ERREVT×

C×××EVT

(1)　メッセージおよびイベントを破棄します。
ありません。

MHPサービス，サービスグループ閉塞
(1)　ERREVT2を起動します。
(2)　入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。
ありません。

入力キュー書き込み障害
(1)　ERREVT2を起動します。
(2)　入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。
ありません。

入力メッセージ編集UOCエラーリターン，またはパラメタ不正
(1)　UOCエラーリターンを通知するメッセージログ（KFCA10611-E），またはUOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。
(2)　論理端末を閉塞します。
(3)　論理端末閉塞を通知するメッセージログ（KFCA14004-I）を出力します。
(4)　CERREVT（UOC障害）を起動します。
ありません。

メッセージ送信中の場合
(5)　送信中のメッセージを取り出し前の状態に戻します。
(6)　コネクション解放を通知するメッセージログ（KFCA14001-I）を出力します。
(7)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(5)　CERREVT（コネクション強制解放）を起動します。

アプリケーション名称形式不正
(1)　アプリケーション名取得失敗を通知するメッセージログ（KFCA10610-E）を出力します。
(2)　ERREVT1を起動します。
ありません。

(3)　送信スケジュール関係の障害（出力キュー，出力メッセージ編集UOC）

表9-3　送信スケジュール関係の障害と対応処理（PVC）

障害内容
TP1/NET/X25の処理（PVC）
ユーザの処理

出力キュー読み込み障害
(1)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(2)　CERREVT（出力キュー読み込み障害）を起動します。
(3)　該当するメッセージを消去します。
(4)　論理端末を閉塞します。
(5)　論理端末閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションを解放します。

相手システムへ出力キュー障害を通知します（send）。

出力メッセージ編集 UOCエラーリターン，またはパラメタ不正
(1)　UOCエラーリターンを通知するメッセージログ（KFCA10611-E），またはUOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。
(2)　CERREVT（UOC障害）を起動します。
(3)　該当するメッセージを消去します。
(4)　論理端末を閉塞します。
(5)　論理端末閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションを解放します。

相手システムへ出力キュー障害を通知します（send）。

メッセージ消し込み障害
(1)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(2)　処理を続行します。
ありません。

送信バッファオーバフロー
(1)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(2)　論理端末閉塞を通知するメッセージログ（KFCA14004-I）を出力します。
(3)　論理端末を閉塞します。
(4)　該当するメッセージを消去します。
(5)　CERREVT（送信バッファオーバフロー）を起動します。

コネクションを解放します。

システム定義，またはUAPを修正します。

送信バッファ不足
(1)　ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。
(2)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(3)　該当するメッセージを取り出し前の状態に戻します。
(4)　論理端末閉塞を通知するメッセージログ（KFCA14004-I）を出力します。
(5)　論理端末を閉塞します。
(6)　CERREVT（送信バッファ不足）を起動します。

一定時間経過後， mcftactleコマンドを入力して論理端末の閉塞を解除し，メッセージ再送信します。

送信バッファの面数を見直します。

(4)　UAP障害

表9-4　UAP障害と対応処理（PVC）

障害内容 | TP1/NET/X25の処理（PVC） | ユーザの処理
メッセージ受信前のUAP異常終了 | (1)　ERREVT2を起動します。 | 相手システムへUAP異常終了を通知します（send）。
メッセージ受信後の UAP異常終了 | (1)　ERREVT3を起動します。 | 相手システムへUAP異常終了を通知します（send）。

(5)　MCF障害

表9-5　MCF障害と対応処理（PVC）

障害内容
TP1/NET/X25の処理（PVC）
ユーザの処理

内部論理矛盾
他プログラムプロダクトとのインタフェースエラー
(1)　障害情報取得を通知するメッセージログ（KFCA10189-E）を出力します。
(2)　コネクション閉塞を通知するメッセージログ（KFCA14002-E）を出力します。
(3)　コネクション障害の場合，CERREVTを起動します。
ありません。

9.2　コネクション障害（PVC）

コネクションが切断された場合，TP1/NET/X25はコネクションを再確立します。通信管理が管理している通信機器に障害が発生した場合も，同様にコネクション障害として処理します。TP1/NET/X25によって自動回復できない障害の場合は，障害の原因を取り除いたあと，運用コマンド（mcftactcn）を入力してください。

＜この節の構成＞

(1)　一方送信メッセージ送信時のコネクション障害

(2)　一方送信メッセージ受信時のコネクション障害

(1)　一方送信メッセージ送信時のコネクション障害

相手システムへ一方送信メッセージ送信中に障害が発生した場合，メッセージはロールバックされ，コネクション再確立時に再送信されます。

また，相手システムへ一方送信メッセージ送信後に障害が発生した場合，メッセージは二重に送信されます。このとき相手システムのUAPは，メッセージに通番を付けることで，二重送信をチェックします。

一方送信メッセージ送信中のコネクション障害の例を図9-1に，一方送信メッセージ送信後のコネクション障害の例を図9-2に示します。

図9-1　一方送信メッセージ送信中のコネクション障害（PVC）

図9-2　一方送信メッセージ送信後のコネクション障害（PVC）

(2)　一方送信メッセージ受信時のコネクション障害

(a)　入力キュー書き込み前

メッセージは欠落します。このとき自システムのUAPは，メッセージに通番を付けることで，欠落しているかどうかをチェックします。

一方送信メッセージ書き込み前のコネクション障害の例を次の図に示します。

図9-3　一方送信メッセージ書き込み前のコネクション障害（PVC）

(b)　入力キュー書き込み後

メッセージは影響を受けません。

一方送信メッセージ書き込み後のコネクション障害の例を次の図に示します。

図9-4　一方送信メッセージ書き込み後のコネクション障害（PVC）

9.3　スケジュール関係の障害（PVC）

＜この節の構成＞

(1)　入力キュー障害

(2)　出力キュー障害

(1)　入力キュー障害

メッセージを入力キューに書き込むときに障害が発生した場合，TP1/NET/X25は入力キューにMCFイベントERREVT2を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

入力キュー障害の例を次の図に示します。

図9-5　入力キュー障害（PVC）

(2)　出力キュー障害

メッセージを出力キューから読み込むときに障害が発生した場合，メッセージは欠落します。

出力キュー障害の例を次の図に示します。

図9-6　出力キュー障害（PVC）

9.4　UAP障害（PVC）

UAPが異常終了した場合，TP1/NET/X25は入力キューにMCFイベントを登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

＜この節の構成＞

(1)　メッセージ受信前のUAP異常終了

(2)　メッセージ受信後のUAP異常終了

(1)　メッセージ受信前のUAP異常終了

TP1/NET/X25は，入力キューにMCFイベントERREVT2を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

メッセージ受信前のUAP異常終了の例を次の図に示します。

図9-7　メッセージ受信前のUAP異常終了（PVC）

(2)　メッセージ受信後のUAP異常終了

TP1/NET/X25は，入力キューにMCFイベントERREVT3を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

メッセージ受信後のUAP異常終了の例を次の図に示します。

図9-8　メッセージ受信後のUAP異常終了（PVC）

10.　VCの障害対策

この章では，VCを使用した場合の障害時の処理とユーザの対策，および障害発生時の処理の流れについて説明します。

＜この章の構成＞

10.1　障害の種類と対応処理（VC）

10.2　コネクション障害（VC）

10.3　スケジュール関係の障害（VC）

10.4　UAP障害（VC）

10.1　障害の種類と対応処理（VC）

運用中に障害が発生すると，TP1/NET/X25はシステムを回復します。このとき，システム定義の指定によって，MCFイベント処理用MHPも起動できます。

VCの場合のTP1/NET/X25運用中の障害と対応処理について，障害の種類ごとに示します。

＜この節の構成＞

(1)　コネクション障害

(2)　受信スケジュール関係の障害（入力キュー，入力メッセージ編集UOC）

(3)　送信スケジュール関係の障害（出力キュー，出力メッセージ編集UOC）

(4)　UAP障害

(5)　MCF障害

(1)　コネクション障害

表10-1　コネクション障害と対応処理（VC）

障害内容
TP1/NET/X25の処理（VC）
ユーザの処理

コネクション確立時障害（回復不可能）
(1)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(2)　コネクション確立失敗を通知するメッセージログ（KFCA16903-E）を出力します。
(3)　CERREVT（コネクション障害）を起動します。
障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

着呼側コネクション確立時障害
(1)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
障害の要因を取り除いたあと，相手からの確立要求を待ちます。

コネクション確立時障害（回復可能）
(1)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(2)　リトライタイマの指定によって，一定時間経過後，確立を再試行します。
ありません。

リトライアウトした場合
(3)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(4)　コネクション確立失敗を通知するメッセージログ（KFCA16903-E）を出力します。
(5)　CERREVT（コネクション障害）を起動します。
障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

コネクション切断
(1)　コネクション解放を通知するメッセージログ（KFCA16904-I）を出力します。
(2)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(3)　CERREVT（コネクション切断・回復不可能），またはCCLSEVTを起動します。
障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

メッセージ送信時障害（回復不可能）
(1)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(2)　CERREVT（送信障害）を起動します。
(3)　メッセージ送信中断を通知するメッセージログ（KFCA10608-W）を出力します。
(4)　CERREVT（コネクション障害）を起動します。
(5)　メッセージは出力キューに残し，再開始時に再送されます。
障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

メッセージ送信時リセットパケット受信
(1)　リセット受信を通知するメッセージログ（KFCA16916-I）を出力します。
(2)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(3)　CERREVT（送信障害）を起動します。
(4)　メッセージ送信中断を通知するメッセージログ（KFCA10608-W）を出力します。
(5)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(6)　CERREVT（コネクション障害）を起動します。
(7)　メッセージは出力キューに残し，再開始時に再送されます。

mcftactcnコマンドを入力します。

相手からの確立要求を待ちます。

受信バッファオーバフロー
(1)　バッファオーバフローを通知するメッセージログ（KFCA16911-E）を出力します。
(2)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(3)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(4)　CERREVT（受信バッファオーバフロー）を起動します。
(5)　受信メッセージを破棄します。
システム定義を修正します。

プロトコルアドレス不正
(1)　下位層障害を通知するメッセージログ（KFCA16913-E）を出力します。
(2)　コネクション確立失敗を通知するメッセージログ（KFCA16903-E）を出力します。
(3)　CERREVT（コネクション障害）を起動します。
システム定義を修正します。

受信バッファ不足
(1)　バッファ不足を通知するメッセージログ（KFCA13213-E）を出力します。
(2)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(3)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(4)　CERREVT（受信バッファ不足）を起動します。
システム定義を修正します。

メッセージ受信時リセットパケット受信
(1)　リセット受信を通知するメッセージログ（KFCA16916-E）を出力します。
(2)　コネクション障害を通知するメッセージログ（KFCA16902-E）を出力します。
(3)　コネクションを解放します。
(4)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(5)　CERREVT（コネクション障害）を起動します。
(6)　受信メッセージを破棄します。

mcftactcnコマンドを入力します。

相手からの確立要求を待ちます。

(2)　受信スケジュール関係の障害（入力キュー，入力メッセージ編集UOC）

表10-2　受信スケジュール関係の障害と対応処理（VC）

障害内容
TP1/NET/X25の処理（VC）
ユーザの処理

ユーザアプリケーション名称未定義
(1)　ERREVT1を起動します。
(2)　入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。
(3)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(4)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(5)　CERREVT（コネクション障害）を起動します。
システム定義を修正します。

MCFイベントの名称未定義

ERREVT×

C×××EVT

(1)　メッセージおよびイベントを破棄します。
ありません。

MHPサービス，サービスグループ閉塞
(1)　サービス閉塞を通知するメッセージログ（KFCA11051-E）を出力します。
(2)　ERREVT2を起動します。
(3)　入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。
(4)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(5)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(6)　CERREVT（コネクション障害）を起動します。

サービス，サービスグループの閉塞解除後，mcftactcnコマンドを入力します。

相手からの確立要求を待ちます。

入力キュー書き込み障害
(1)　ERREVT2を起動します。
(2)　入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。
(3)　障害情報取得を通知するメッセージログ（KFCA10189-E）を出力します。
(4)　受信メッセージを破棄します。
(5)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(6)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(7)　CERREVT（コネクション障害）を起動します。

障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

相手からの確立要求を待ちます。

入力メッセージ編集UOCエラー
(1)　UOCエラーリターンを通知するメッセージログ（KFCA10611-E），またはUOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。
(2)　CERREVT（UOC障害）を起動します。
(3)　受信メッセージを破棄します。
(4)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(5)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(6)　CERREVT（コネクション障害）を起動します。
入力メッセージ編集UOC処理を見直します。

アプリケーション名形式不正
(1)　アプリケーション名取得失敗を通知するメッセージログ（KFCA10610-E）を出力します。
(2)　ERREVT1を起動します。
(3)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(4)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(5)　CERREVT（コネクション障害）を起動します。
システム定義を修正します。

(3)　送信スケジュール関係の障害（出力キュー，出力メッセージ編集UOC）

表10-3　送信スケジュール関係の障害と対応処理（VC）

障害内容
TP1/NET/X25の処理（VC）
ユーザの処理

出力キュー読み込み障害
(1)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(2)　CERREVT（出力キュー読み込み障害）を起動します。
(3)　論理端末を閉塞します。
(4)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(5)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(6)　CERREVT（コネクション障害）を起動します。

障害の要因を取り除いたあと，mcftactcnコマンドを入力します。

相手からの確立要求を待ちます。

出力メッセージ編集UOCエラー
(1)　UOCエラーリターンを通知するメッセージログ（KFCA10611-E），またはUOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。
(2)　該当するメッセージを消去します。
(3)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(4)　論理端末を閉塞します。
(5)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(6)　CERREVT（UOC障害）を起動します。
(7)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(8)　CERREVT（コネクション障害）を起動します。
出力メッセージ編集UOC処理を見直します。

メッセージ消し込み障害
(1)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(2)　処理を続行します。
ありません。

送信バッファ不足
(1)　ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。
(2)　出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。
(3)　該当するメッセージを取り出し前の状態に戻します。
(4)　送信メッセージ中断を通知するメッセージログ（KFCA10608-W）を出力します。
(5)　論理端末を閉塞します。
(6)　論理端末閉塞を通知するメッセージログ（KFCA16851-I）を出力します。
(7)　CERREVT（送信バッファ不足）を起動します。
(8)　コネクション解放を通知するメッセージログ（KFCA16901-I）を出力します。
(9)　CERREVT（コネクション障害）を起動します。
送信バッファ数を見直します。

(4)　UAP障害

表10-4　UAP障害と対応処理（VC）

障害内容 | TP1/NET/X25の処理（VC） | ユーザの処理
メッセージ受信前のUAP異常終了 | (1)　ERREVT2を起動します。 | UAPを見直します。
メッセージ受信後のUAP異常終了 | (1)　ERREVT3を起動します。 | UAPを見直します。

(5)　MCF障害

表10-5　MCF障害と対応処理（VC）

障害内容
TP1/NET/X25の処理（VC）
ユーザの処理

内部論理矛盾
他アプリケーションプログラムとのインタフェースエラー
(1)<10189-E>(障害情報取得)
(2)　内部論理矛盾を通知するメッセージログ（KFCA16897-E，KFCA16899-E，またはKFCA13211-E）を出力します。
保守情報（$DCDIR/spoolディレクトリ以下）を退避します。

KFCA16897-Eの場合
(3)　処理を続行します。

KFCA16899-EまたはKFCA13211-Eの場合
(3)　MCFを異常終了します。

10.2　コネクション障害（VC）

TP1/NET/X25は，通信管理が管理している通信機器に障害が発生した場合，コネクション障害として処理をします。TP1/NET/X25によって自動回復できない場合，障害の原因を取り除いたあと，運用コマンド（mcftactcn）を入力し，コネクションの再確立をしてください。

また，メッセージ送受信中にコネクション障害が発生した場合，コネクションは切断されます。コネクションが切断されると，送受信中のメッセージは消去される場合があります。したがって，メッセージは通番などで管理するようにしてください。

コネクション障害の例を次の図に示します。

図10-1　コネクション障害（VC）

10.3　スケジュール関係の障害（VC）

＜この節の構成＞

(1)　入力キュー障害

(2)　出力キュー障害

(1)　入力キュー障害

メッセージを入力キューに書き込むときに障害が発生した場合，TP1/NET/X25は入力キューにMCFイベントERREVT2を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

入力キュー障害の例を次の図に示します。

図10-2　入力キュー障害（VC）

(2)　出力キュー障害

メッセージを出力キューから読み込むときに障害が発生した場合，コネクションは切断し，メッセージは再スケジュールされます。

出力キュー障害の例を次の図に示します。

図10-3　出力キュー障害（VC）

10.4　UAP障害（VC）

UAPが異常終了した場合，TP1/NET/X25は入力キューにMCFイベントを登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

＜この節の構成＞

(1)　メッセージ受信前のUAP異常終了

(2)　メッセージ受信後のUAP異常終了

(1)　メッセージ受信前のUAP異常終了

TP1/NET/X25は，入力キューにMCFイベントERREVT2を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

メッセージ受信前のUAP異常終了の例を次の図に示します。

図10-4　メッセージ受信前のUAP異常終了（VC）

(2)　メッセージ受信後のUAP異常終了

TP1/NET/X25は，入力キューにMCFイベントERREVT3を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

メッセージ受信後のUAP異常終了の例を次の図に示します。

図10-5　メッセージ受信後のUAP異常終了（VC）

付録

＜この付録の構成＞

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

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

付録C　理由コード一覧

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

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

付録F　用語解説

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

メッセージを送受信するときのデータの流れ，およびジャーナルの取得タイミングは，PVCとVCで共通です。メッセージの送信，受信の流れをパケット分割なしの場合とパケット分割ありの場合に分けて，図A-1～図A-4に示します。

図A-1　メッセージ送信の処理の流れ（パケット分割なし）

図A-2　メッセージ送信の処理の流れ（パケット分割あり）

図A-3　メッセージ受信の処理の流れ（パケット分割なし）

図A-4　メッセージ受信の処理の流れ（パケット分割あり）

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

TP1/NET/X25の障害発生時の処理の流れをPVCとVCに分けて説明します。

＜この節の構成＞

付録B.1　PVCの障害

付録B.2　VCの障害

付録B.1　PVCの障害

PVCの障害発生時の処理の流れを図B-1～図B-4に示します。

図B-1　コネクション確立時の障害（PVC）

図B-2　コネクション切断（回復可能障害・手動再確立・論理端末自動起動）（PVC）

図B-3　入力メッセージ編集UOC障害（PVC）

図B-4　出力メッセージ編集UOC障害（PVC）

付録B.2　VCの障害

VCの障害発生時の処理の流れを図B-5～図B-8に示します。

図B-5　コネクション確立時の障害（VC）

図B-6　コネクション切断（VC）

注※

送信仕掛り中のメッセージがあるときだけ通知します。

図B-7　入力メッセージ編集UOC障害（VC）

図B-8　出力メッセージ編集UOC障害（VC）

付録C　理由コード一覧

＜この節の構成＞

付録C.1　ERREVT2の理由コード

付録C.2　PVCの理由コード

付録C.3　VCの理由コード

付録C.1　ERREVT2の理由コード

ERREVT2の理由コードと，コードが示すERREVT2の通知理由を次の表に示します。

表C-1　ERREVT2の理由コード

C言語の理由コード
（16進数字）
COBOL言語の理由コード
（外部10進数字）
ERREVT2の通知理由

DCMCF_NO_SERV（0010）
0010
アプリケーション名に相当するMHPのサービスがありません。

DCMCF_SCD_ERR（0020）
0020
RPC障害，サーバ未起動などによってMHPまたはSPPの起動に失敗しました。

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のサービスまたはサービスグループが閉塞中です。

DCMCF_SERV_SECURE（0043）
0043
MHPのサービスグループがセキュア状態です。

DCMCF_ABNORMAL_END（0050）
0050
MHPのセグメント受信関数にセグメントを渡す前に，MHPの異常が発生しました。

付録C.2　PVCの理由コード

PVCの場合の障害通知イベント（CERREVT）通知時の理由コードを示します。コネクション障害の理由コードを表C-2に，論理端末障害の理由コードを表C-3に示します。

表C-2　コネクション障害の理由コード（PVC）

理由コード1（16進数字） | 理由コード2（16進数字） | 発生条件
DCMX25_RSN1_MCF（00000001） MCF障害 | DCMX25_RSN2_CNNC（00000000） | コネクション確立不可能
DCMX25_RSN2_CNER（00000001） | コネクション切断
DCMX25_RSN2_ERROR（00000003） | MCF内部論理矛盾
DCMX25_RSN2_RBFOF（00000002） | 受信バッファオーバフロー
DCMX25_RSN2_RBFST（00000010） | 受信バッファ不足
DCMX25_RSN2_RESET（00000011） | リセット受信
DCMX25_RSN2_LEBLK（20000000） | コネクション強制解放（送信中の論理端末閉塞）

表C-3　論理端末障害の理由コード（PVC）

理由コード1（16進数字） | 理由コード2（16進数字） | 発生条件
DCMPCM_RSN1_MCF（00000001） MCF障害 | DCMX25_RSN2_SBFOF（00000004） | 送信バッファオーバフロー
DCMX25_RSN2_OTGET（00000005） | 出力キュー読み込み障害
DCMX25_RSN2_SBFST（00000006） | 送信バッファ不足
DCMX25_RSN2_CHDER（00000012） | 制御ヘッダ不正
DCMX25_RSN1_UOC（00000003） UOC障害 | UOCからの詳細リターンコード | UOCエラーリターン
DCMX25_RSN2_BCNT（00000001） | 使用バッファ数不正
DCMX25_RSN2_SEG（00000002) | 有効セグメント不正
DCMX25_RSN2_BADR（00000003） | 編集バッファアドレス不正

付録C.3　VCの理由コード

VCの場合の障害通知イベント（CERREVT）通知時の理由コードを示します。コネクション障害の理由コードを表C-4に，論理端末障害の理由コードを表C-5に示します。

表C-4　コネクション障害の理由コード（VC）

理由コード1（16進数字） | 理由コード2（16進数字） | 発生条件
DCMX2M_RSN1_MCF（00000001） MCF障害 | DCMX2M_RSN2_CNNC（00000000） | コネクション確立不可能
DCMX2M_RSN2_CNER（00000001） | コネクション切断
DCMX2M_RSN2_RBFOF（00000002） | 受信バッファオーバフロー
DCMX2M_RSN2_RBFST（00000010） | 受信バッファ不足
DCMX2M_RSN2_RESET（00000011） | リセットパケット受信
DCMX2M_RSN2_BADAD（00000015） | プロトコルアドレス不正
DCMX2M_RSN2_EVTNG（00000016） | MCFイベント処理用MHP起動失敗

表C-5　論理端末障害の理由コード（VC）

理由コード1（16進数字） | 理由コード2（16進数字） | 発生条件
DCMX2M_RSN1_MCF（00000001） MCF障害 | DCMX2M_RSN2_SBFOF（00000004） | 送信バッファオーバフロー
DCMX2M_RSN2_OTGET（00000005） | 出力キュー読み込み障害
DCMX2M_RSN2_SBFST（00000006） | 送信バッファ不足
DCMX2M_RSN2_SNDERR（00000007） | メッセージ送信失敗
DCMX2M_RSN1_UOC（00000003） UOC障害 | UOCからの詳細リターンコード | UOCエラーリターン
DCMX2M_RSN2_BCNT（00000001） | 使用バッファ数不正
DCMX2M_RSN2_SEG（00000002） | 有効セグメント不正
DCMX2M_RSN2_BADR（00000003） | 編集バッファリストアドレス不正
DCMX2M_RSN2_SNDERR（00000007） | メッセージ送信失敗

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

＜この節の構成＞

(1)　ソースファイルの互換性

(2)　適用OSによる差異

(1)　ソースファイルの互換性

バージョン6以前からバージョン7へ移行する場合の各種ソースファイルの互換性について説明します。

バージョン6以前からバージョン7へ移行する場合，バージョン6以前で使用していたソースファイルをそのまま使用できないことがあります。ソースファイルの互換性は，次の表に示すとおりです。

表D-1　バージョン6以前で使用していたソースファイルの互換性

ソースファイルを作成した言語 | 互換性
C言語（32ビット） | UAPおよびUOCのソースファイルを変更しないで使用できます。
COBOL言語 | UAPのソースファイルおよびMCF通信構成定義（プロトコル固有の定義）の定義ソースファイルを変更しないで使用できます。

(2)　適用OSによる差異

バージョン6以前のHI-UX/WE2版のTP1/NET/X25から，バージョン7のAIX版のTP1/NET/X25に移行する場合，次に示す内容に差異があるため，注意してください。

UAPのインタフェース

UAPのオブジェクトファイルを作成するコマンド

(a)　UAPのインタフェース

UAPのインタフェースで，mcftalccnコマンドの-oオプションのctlheaderオペランドにuseを指定して，送受信データに制御ヘッダを付加する場合，制御ヘッダ内のエントリへの設定および参照方法に差異があります。

PVCを使用する場合

制御ヘッダの形式を定義している<dcmx25c.h>が異なります。

次の図に示すとおり，HI-UX/WE2版ではビットフィールド構造体ですが，AIX版ではchar型で表します。

各ビットへのアクセスは，ビット単位からバイト単位に変更となります。したがって，制御ヘッダ内への設定および参照は，ビット演算で設定および参照するようにします。

データパケットのQビット設定例（HI-UX/WE2）

dcmx25_ctlbit.q_bit = 1 ;

データパケットのQビット設定例（AIX）

dcmx25_ctlbit |= 0x80 ;

VCを使用する場合

制御ヘッダの形式を定義している<dcmx2m.h>が異なります。

次の図に示すとおり，HI-UX/WE2版ではビットフィールド構造体ですが，AIX版ではchar型で表します。

各ビットへのアクセスは，ビット単位からバイト単位に変更となります。したがって，制御ヘッダ内への設定および参照は，ビット演算で設定および参照するようにします。

データパケットのQビット設定例（HI-UX/WE2）

dcmx2m_ctlbit.q_bit = 1 ;

データパケットのQビット設定例（AIX）

dcmx2m_ctlbit |= 0x80 ;

(b)　UAPのオブジェクトファイルを作成するコマンド

TP1/NET/X25上のMCFメイン関数，UOC，およびUAPで，<dcmx25c.h>または，<dcmx2m.h>を使用する場合，UAP作成時のコンパイルオプションに，-DDCMCFAIXを追加する必要があります。

UAPのオブジェクトファイルを作成するときのコマンド入力例を次に示します。

コマンド入力例

cc -c -qchars=signed -DDCMCFAIX UAPのソースファイル名 -I$DCDIR/include

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

各バージョンでの変更点を次に示す分類ごとに示します。

関数，定義およびコマンドの追加と削除

動作の変更

関数，定義およびコマンドのデフォルト値の変更

＜この節の構成＞

付録E.1　07-00での変更点

付録E.1　07-00での変更点

TP1/NET/X25 07-00での関数，定義およびコマンドの追加と削除はありません。

TP1/NET/X25 07-00での動作の変更点を次に示します。

表E-1　TP1/NET/X25 07-00での動作の変更点

分類 | 内容
関数 | C言語の関数について，32ビットアーキテクチャでのインタフェースと64ビットアーキテクチャでのインタフェースを統一した。

TP1/NET/X25 07-00での関数，定義およびコマンドのデフォルト値の変更はありません。

付録F　用語解説

英字｜カ行｜ラ行

英字

AJ（メッセージ送信完了ジャーナル）

TP1/NET/X25で取得する履歴情報の一つです。メッセージの送信完了情報である，送信通番と送信先論理端末名称とで構成されます。

AJの取得タイミングは相手システムにメッセージを送信し，その送信完了を受信した直後です。

GJ（メッセージ受信ジャーナル）

TP1/NET/X25で取得する履歴情報の一つです。メッセージ入力通番，論理端末名称，入力メッセージなどの情報で構成されます。

GJの取得タイミングはUAPにreceive関数で引き渡す直前です。

IJ（メッセージ入力ジャーナル）

入力キューに入力された情報です。入力メッセージ通番，論理端末名称，メッセージ種別，入力メッセージなどの情報で構成されます。

IJの取得タイミングは相手システムから受信したメッセージを入力キューに入力する直前です。

MJ（メッセージジャーナル）

TP1/NET/X25で取得する情報の一つです。端末名称，メッセージ種別，入力メッセージ編集前のデータ，出力メッセージ編集後のデータなどの情報で構成されます。

MJの取得タイミングはメッセージ送信前，出力メッセージ編集UOC処理後，および入力メッセージ編集UOC処理前です。

OJ（メッセージ出力ジャーナル）

出力キューに入力された情報です。メッセージの送信通番，論理端末名称，メッセージ種別，出力メッセージ，セグメント種別などの情報で構成されます。

OJの取得タイミングはUAPからsendを受け付けたときです。

PVC（Permanent Virtual Circuit）

X.25プロトコルの通信相手の選択方式の一つです。通信相手を固定してメッセージの送受信をする方式です。

VC（Virtual Call）

X.25プロトコルの通信相手の選択方式の一つです。通信相手を固定しないで，メッセージの送受信を開始するときに，相手システムのダイヤル番号を指定する方式です。

カ行

コネクション

通信相手システムとの論理的な通信路です。MCFの通信管理側の通信接点であり，MCFと通信管理はコネクション単位にメッセージを送受信します。

ラ行

論理端末

MCFのUAP側の通信接点であり，MCFとUAPは論理端末単位にメッセージを送受信します。

索引

[Ａ][Ｃ][Ｄ][Ｅ][Ｇ][Ｉ][Ｍ][Ｎ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ][Ｕ][Ｖ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行][ワ行]

(英字)

(Ａ)

AJ

any〔PVC〕

any〔VC〕

AP間通信の概要

AP間通信の形態

(Ｃ)

CBLDCMCF('RECEIVE ')

CBLDCMCF('RESEND ')

CBLDCMCF('SEND ')

CCLSEVT ,[2]

CERREVT ,[2]

COBOL言語のメッセージ送受信

COPNEVT ,[2]

C言語のメッセージ送受信

(Ｄ)

dc_mcf_receive

dc_mcf_resend

dc_mcf_send

(Ｅ)

ERREVT1 ,[2]

ERREVT2 ,[2]

ERREVT2の理由コード

ERREVT3 ,[2]

ERREVTA ,[2]

(Ｇ)

GJ

(Ｉ)

IJ

INS回線速度〔VC〕

INSサービス種別〔VC〕

(Ｍ)

max_open_fds

max_socket_descriptors

mcftactcn

mcftactle

mcftalccn〔PVC〕

mcftalccn〔VC〕

mcftalced〔PVC〕

mcftalced〔VC〕

mcftalcle〔PVC〕

mcftalcle〔VC〕

mcftcomn〔PVC〕

mcftdctcn

mcftdctle

mcftlscn

mcftlsle

MCFアプリケーション定義

MCFイベント

MCFイベント一覧

MCFイベントインタフェース

MCFイベント情報の形式（COBOL言語）

MCFイベント情報の形式（C言語）

MCFイベント処理用MHP

MCFイベント通知時のセグメント構成

MCFイベントの共通ヘッダ

MCFイベントの種類

MCFサービス名の登録

MCF障害と対応処理（PVC）

MCF障害と対応処理（VC）

MCF通信構成共通定義〔PVC〕

MCF通信構成定義

MCF通信プロセスでアクセスするファイルの最大数

MCF定義オブジェクトの生成

MCFで使用する定義ファイル

MCFマネジャ定義

MCFマネジャ定義の例（PVCの場合）

MCFマネジャ定義の例（VCの場合）

MCFメイン関数のコーディング概要（ANSI C，C++の場合）

MCFメイン関数のコーディング概要（K＆R版 Cの場合）

MCFメイン関数の作成

MCFメイン関数のディレクトリへの組み込み方法

MJ

module

(Ｎ)

noans〔PVC〕

noans〔VC〕

(Ｏ)

OJ

(Ｐ)

PVC

PVCのAP間通信の仕組み

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

PVCの機能

PVCの障害

PVCの障害対策

PVCのメッセージ受信の流れ

PVCのメッセージ送信の流れ

PVCの理由コード

(Ｒ)

RECEIVE

(Ｓ)

SEND

(Ｔ)

TP1/NET/X25固有の定義

TP1/NET/X25の組み込みの流れ

TP1/NET/X25の定義

TP1/NET/X25を組み込んだソフトウェア構成の例

TP1/NET/X25を使用したネットワーク構成の例

(Ｕ)

UAP障害（PVC）

UAP障害（VC）

UAP障害と対応処理（PVC）

UAP障害と対応処理（VC）

UOC

UOCインタフェース用のパラメタとバッファの関係

UOC作成上の注意事項

UOCで使用できる関数

UOCの異常処理

UOCの構造

UOCの実行タイミング

(Ｖ)

VC

VCから通知するMCFイベントの種別

VCのAP間通信の仕組み

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

VCの機能

VCのコネクション確立の流れ（着呼）

VCのコネクション確立の流れ（発呼）

VCの障害

VCの障害対策

VCのメッセージ受信の流れ

VCのメッセージ送信の流れ

VCの理由コード

(ア行)

(あ)

相手SNPAアドレス〔VC〕

相手システムからのコネクションの解放〔VC〕

アプリケーション名〔PVC〕

アプリケーション名〔VC〕

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

(い)

一方受信形態

一方受信形態のAP間通信の例

一方送信メッセージ

一方送信メッセージ書き込み後のコネクション障害（PVC）

一方送信メッセージ書き込み前のコネクション障害（PVC）

一方送信メッセージ送信後のコネクション障害（PVC）

一方送信メッセージ送信中のコネクション障害（PVC）

一方送信メッセージの受信（COBOL言語）

一方送信メッセージの受信（C言語）

一方送信メッセージの受信〔PVC〕

一方送信メッセージの受信〔VC〕

一方送信メッセージの送信（COBOL言語）

一方送信メッセージの送信（C言語）

一方送信メッセージの送信（データ操作言語）

一方送信メッセージの送信〔PVC〕

一方送信メッセージの送信〔VC〕

(う)

運用コマンド

(カ行)

(か)

概要

仮想スロット番号〔PVC〕

仮想スロット番号〔VC〕

(き)

キューグループID〔PVC〕

キューグループID〔VC〕

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

共通定義の例（PVCの場合）

共通定義の例（VCの場合）

(く)

組み込み方法

(こ)

コネクション

コネクション〔PVC〕

コネクション〔VC〕

コネクションID〔PVC〕

コネクションID〔VC〕

コネクション確立時障害の確立再試行回数〔VC〕

コネクション確立時障害の確立再試行間隔〔VC〕

コネクション確立の再試行〔VC〕 ,[2]

コネクション障害（PVC）

コネクション障害（VC）

コネクション障害時再試行回数〔PVC〕

コネクション障害時再試行間隔〔PVC〕

コネクション障害と対応処理（PVC）

コネクション障害と対応処理（VC）

コネクション障害の理由コード（PVC）

コネクション障害の理由コード（VC）

コネクション切断後の再確立〔PVC〕

コネクション定義の開始〔PVC〕

コネクション定義の開始〔VC〕

コネクション定義の終了〔PVC〕

コネクション定義の終了〔VC〕

コネクションと論理端末の関係〔PVC〕

コネクションと論理端末の関係〔VC〕

コネクションの解放

コネクションの解放〔PVC〕

コネクションの解放〔VC〕

コネクションの確立

コネクションの確立〔PVC〕

コネクションの確立〔VC〕

コネクションの確立と解放〔PVC〕

コネクションの確立と解放〔VC〕

コネクションの種類〔VC〕

コネクションの状態表示

コネクションの切断〔VC〕

コネクションを自動的に確立〔PVC〕

コネクションを自動的に確立〔VC〕

(サ行)

(し)

自システムからのコネクションの解放〔VC〕

システム構成例（PVCの場合）

システム構成例（VCの場合）

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

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

システムサービス情報定義ファイルの作成

システム定義

自動解放〔VC〕

自動確立〔VC〕

受信ウィンドウサイズ〔PVC〕

受信スケジュール関係の障害と対応処理（PVC）

受信スケジュール関係の障害と対応処理（VC）

受信パケットサイズ〔PVC〕

受信バッファ空き待ち再試行回数〔PVC〕

受信バッファ空き待ち時間〔PVC〕

出力キュー障害（PVC）

出力キュー障害（VC）

出力メッセージの編集

出力メッセージの割り当て先〔PVC〕

出力メッセージの割り当て先〔VC〕

出力メッセージ編集UOCインタフェース

手動解放〔VC〕

手動確立〔VC〕

障害の種類と対応処理（PVC）

障害の種類と対応処理（VC）

障害発生時の処理の流れ

(す)

スケジュール関係の障害（PVC）

スケジュール関係の障害（VC）

(せ)

制御ヘッダを使用〔PVC〕

制御ヘッダを使用〔VC〕

接続プロトコル〔PVC〕

接続プロトコル〔VC〕

前提プログラム

(そ)

送信ウィンドウサイズ〔PVC〕

送信完了時の情報を取得〔PVC〕

送信完了時の情報を取得〔VC〕

送信スケジュール関係の障害と対応処理（PVC）

送信スケジュール関係の障害と対応処理（VC）

送信パケットサイズ〔PVC〕

送信メッセージの通番編集

送信メッセージの通番編集UOCインタフェース

ソケット用ファイル記述子の最大数

ソフトウェアの構成

(タ行)

(ち)

着呼コネクション〔VC〕

着呼コネクションの確立〔VC〕

(つ)

通信管理の構成定義の例（PVCの場合）

通信管理の構成定義の例（VCの場合）

通信管理プログラムと関連づける内容

通信形態

(て)

定義オブジェクトファイルの生成

定義コマンドの指定順序

定義の種類

定義例

ディスク出力メッセージ最大格納数〔PVC〕

ディスク出力メッセージ最大格納数〔VC〕

データ操作言語（COBOL言語）のメッセージ送受信

適用範囲

伝送動作モード

(ナ行)

(に)

入力キュー障害（PVC）

入力キュー障害（VC）

入力メッセージの編集

入力メッセージ編集UOCインタフェース

任意型〔PVC〕

任意型〔VC〕

(ハ行)

(は)

発呼コネクション〔VC〕

発呼コネクションの確立〔VC〕

バッファ形式〔PVC〕

バッファ形式〔VC〕

バッファの空き待ち〔PVC〕

(ひ)

非応答型〔PVC〕

非応答型〔VC〕

(ふ)

プロトコル固有定義の例（PVCの場合）

プロトコル固有定義の例（VCの場合）

プロトコルの種別〔PVC〕

プロトコルの種別〔VC〕

分岐送信形態

分岐送信形態のAP間通信の例

(マ行)

(め)

メッセージジャーナル

メッセージ受信後のUAP異常終了（PVC）

メッセージ受信後のUAP異常終了（VC）

メッセージ受信ジャーナル

メッセージ受信前のUAP異常終了（PVC）

メッセージ受信前のUAP異常終了（VC）

メッセージ受信用バッファグループ番号〔PVC〕

メッセージ受信用バッファグループ番号〔VC〕

メッセージ出力ジャーナル

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

メッセージ送受信インタフェースの一覧

メッセージ送受信の関数（C言語）

メッセージ送受信の関数に対応するプログラム（COBOL言語）

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

メッセージ送受信の通信文（データ操作言語）

メッセージ送信完了ジャーナル

メッセージ送信用バッファグループ番号〔PVC〕

メッセージ送信用バッファグループ番号〔VC〕

メッセージとセグメントの関係〔PVC〕

メッセージとセグメントの関係〔VC〕

メッセージ入力ジャーナル

メッセージの再送（COBOL言語）

メッセージの再送（C言語）

メッセージの受信（データ操作言語）

メッセージ編集用バッファグループ番号〔PVC〕

メッセージ編集用バッファグループ番号〔VC〕

メモリ出力メッセージ最大格納数〔PVC〕

メモリ出力メッセージ最大格納数〔VC〕

(ヤ行)

(ゆ)

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

ユーザオウンコーディング

ユーザオウンコーディングインタフェース

ユーザ情報の操作方法

(よ)

用語解説

(ラ行)

(り)

リセットパケットを受信した場合の処置方法〔PVC〕

理由コード一覧

(ろ)

論理端末

論理端末〔PVC〕

論理端末〔VC〕

論理端末障害の理由コード（PVC）

論理端末障害の理由コード（VC）

論理端末定義〔PVC〕

論理端末定義〔VC〕

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

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

論理端末の状態表示

論理端末の端末タイプ〔PVC〕

論理端末の端末タイプ〔VC〕

論理端末の閉塞

論理端末の閉塞〔PVC〕

論理端末の閉塞〔VC〕

論理端末の閉塞解除

論理端末の閉塞解除〔PVC〕

論理端末の閉塞解除〔VC〕

論理端末の閉塞と閉塞解除〔PVC〕

論理端末の閉塞と閉塞解除〔VC〕

論理端末の閉塞を解除〔PVC〕

論理端末名称〔PVC〕

論理端末名称〔VC〕

論理チャネルグループ番号〔PVC〕

論理チャネル番号〔PVC〕

論理メッセージ〔PVC〕

論理メッセージ〔VC〕

(ワ行)

(わ)

割り込みメッセージの受信を通知〔VC〕

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。