OpenTP1 Version 7

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

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

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

3000-3-D77

目　　次

前書き

はじめに

1.　概要

1.1　AP間通信の概要

1.2　AP間通信の形態

1.2.1　HSC1手順の通信形態

1.2.2　HSC2手順（非同期モード）の通信形態

1.2.3　HSC2手順（同期モード）の通信形態

1.2.4　適用範囲

1.3　ソフトウェアの構成

1.3.1　前提プログラム

1.3.2　ソフトウェア構成の例

2.　HSC1手順の機能

2.1　HSC1手順のAP間通信の仕組み

2.1.1　HSC1手順の送受信の方法

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

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

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

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

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

2.2.1　メッセージの送信

2.2.2　メッセージの受信

2.3　HSC1手順の機能

3.　HSC2手順の機能

3.1　HSC2手順のAP間通信の仕組み

3.1.1　HSC2手順（非同期モード）の送受信の方法

3.1.2　HSC2手順（同期モード）の送受信の方法

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

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

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

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

3.2　HSC2手順のAP間通信メッセージの送受信

3.2.1　メッセージの送信

3.2.2　メッセージの受信

3.3　HSC2手順の機能

3.4　回線リスト定義ユティリティ（非同期モード）

3.5　相手ターミナルIDリスト定義ユティリティ（同期モード）

3.6　EOT交換

3.6.1　非同期モードのEOT交換

3.6.2　同期モードのEOT交換

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

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

dc_mcf_receive － メッセージまたは接続情報通知の受信（C言語）

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

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

dc_mcf_send － 一方送信メッセージまたは回線接続要求の送信（C言語）

dc_mcf_sendsync － 同期型のメッセージの送信（C言語）

CBLDCMCF('RECEIVE ') － メッセージまたは接続情報通知の受信（COBOL言語）

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

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

CBLDCMCF('SEND ') － 一方送信メッセージまたは回線接続要求の送信（COBOL言語）

CBLDCMCF('SENDSYNC') － 同期型のメッセージの送信（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　送信メッセージの通番編集

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

5.1.9　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/HSCの定義の概要

TP1/NET/HSC固有のシステム定義の種類－HSC1手順

mcftalccn（コネクション定義の開始）－HSC1手順

mcftalcle（論理端末定義）－HSC1手順

mcftalced（コネクション定義の終了）－HSC1手順

TP1/NET/HSC固有のシステム定義の種類－HSC2手順（非同期モード）

mcftalccn（コネクション定義の開始）－HSC2手順（非同期モード）

mcftalcle（論理端末定義）－HSC2手順（非同期モード）

mcftalced（コネクション定義の終了）－HSC2手順（非同期モード）

mcftlnf（回線リスト出力ファイル定義）－HSC2手順（非同期モード）

mcftllst（回線リスト定義）－HSC2手順（非同期モード）

mcftleof（回線リスト出力ファイル定義の終了）－HSC2手順（非同期モード）

TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）

mcftalccn（コネクション定義の開始）－HSC2手順（同期モード）

mcftalcle（論理端末定義）－HSC2手順（同期モード）

mcftalced（コネクション定義の終了）－HSC2手順（同期モード）

mcftstf（出力ファイル定義）－HSC2手順（同期モード）

mcftstlst（発信用相手ターミナルIDリスト定義）－HSC2手順（同期モード）

mcftrtlst（着信用相手ターミナルIDリスト定義）－HSC2手順（同期モード）

mcfteof（出力ファイル定義の終了）－HSC2手順（同期モード）

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

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

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

回線リスト定義－HSC2手順（非同期モード）

相手ターミナルIDリスト定義－HSC2手順（同期モード）

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

定義例

7.　運用コマンド

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

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

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

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

mcftdctle（論理端末の閉塞）

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

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

8.　組み込み方法

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

8.2　MCFメイン関数の作成

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

9.　HSC1手順の障害対策

9.1　障害の種類と対応処理

9.2　コネクション障害

9.2.1　メッセージ送信時のコネクション障害

9.2.2　メッセージ受信時のコネクション障害

9.3　ユーザアプリケーションプログラム異常終了

9.3.1　セグメント受信前のUAP異常終了

9.3.2　セグメント受信後のUAP異常終了

9.4　ユーザアプリケーションプログラム閉塞

9.5　入力キュー障害

9.6　出力キュー障害

10.　HSC2手順（非同期モード）の障害対策

10.1　障害の種類と対応処理

10.2　コネクション障害

10.2.1　メッセージ送信時のコネクション障害

10.2.2　メッセージ受信時のコネクション障害

10.3　ユーザアプリケーションプログラム異常終了

10.3.1　セグメント受信前のUAP異常終了

10.3.2　セグメント受信後のUAP異常終了

10.4　ユーザアプリケーションプログラム閉塞

10.5　入力キュー障害

10.6　出力キュー障害

11.　HSC2手順（同期モード）の障害対策

11.1　障害の種類と対応処理

11.2　コネクション障害

11.3　ユーザアプリケーションプログラム異常終了

11.3.1　回線接続要求受信前のUAP異常終了

11.3.2　回線接続要求受信後のUAP異常終了

11.4　ユーザアプリケーションプログラム閉塞

11.5　HSC手順障害

付録

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

付録A.1　HSC1手順のメッセージの送受信

付録A.2　HSC2手順（非同期モード）のメッセージの送受信

付録A.3　HSC2手順（同期モード）のメッセージの送受信

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

付録B.1　HSC1手順の障害

付録B.2　HSC2手順（非同期モード）の障害

付録B.3　HSC2手順（同期モード）の障害

付録C　理由コード一覧

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

付録C.2　HSC1手順の理由コード一覧

付録C.3　HSC2手順（非同期モード）の理由コード一覧

付録C.4　HSC2手順（同期モード）の理由コード一覧

付録D　関数使用の制限（HSC2手順（同期モード））

付録E　論理端末名称決定UOCのコーディング例

付録F　用語解説

索引

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

All Rights Reserved. Copyright (C) 2006, 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-32316　 uCosminexus TP1/NET/HSC　 07-00

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

■ 輸出時の注意

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

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。

■ 発行

2006年11月（第1版）3000-3-D77

■ 著作権

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

はじめに

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

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

対象読者

OpenTP1システムの通信にHSCプロトコルを使用するシステム管理者，システム設計者，およびプログラマを対象としています。また，オンラインや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/HSCを使用したAP間通信の概要と形態，およびソフトウェア構成について説明しています。

第2章　HSC1手順の機能

TP1/NET/HSCのHSC1手順を使用した場合の，コネクションの確立や論理端末の端末タイプなどのAP間通信の仕組み，メッセージの送受信，およびHSC1手順の機能について説明しています。

第3章　HSC2手順の機能

TP1/NET/HSCのHSC2手順（非同期モードおよび同期モード）を使用した場合の，コネクションの確立や論理端末の端末タイプなどのAP間通信の仕組み，メッセージの送受信，およびHSC2手順の機能について説明しています。

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

UAPの作成方法，TP1/NET/HSCが提供する各種メッセージ，および作成例について説明しています。

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

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

第6章　システム定義

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

第7章　運用コマンド

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

第8章　組み込み方法

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

第9章　HSC1手順の障害対策

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

第10章　HSC2手順（非同期モード）の障害対策

TP1/NET/HSCのHSC2手順（非同期モード）運用中に発生する障害と，TP1/NET/HSCの対応処理，およびメッセージの処理について説明しています。

第11章　HSC2手順（同期モード）の障害対策

TP1/NET/HSCのHSC2手順（同期モード）運用中に発生する障害と，TP1/NET/HSCの対応処理，およびメッセージの処理について説明しています。

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

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

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

メッセージを送受信するときに発生した障害処理の流れについて説明しています。

付録C　理由コード一覧

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

付録D　関数使用の制限（HSC2手順（同期モード））

HSC2手順（同期モード）の場合，ある関数のテキスト形態とリターン値によって，その次に呼び出せる関数の制限について説明しています。

付録E　論理端末名称決定UOCのコーディング例

TP1/NET/HSCの論理端末名称決定UOCのコーディング例について説明しています。

付録F　用語解説

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

関連マニュアル

読書手順

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

図中で使用する記号

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

文法の記号

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

(1)文法記述記号

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

文法記述記号
意味

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

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

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

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

（例）-t reply｜request

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

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

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

（例）｛DCMCFESI｜DCMCFEMI｝

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

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

（例）-i auto｜manual

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

ただし，データ操作言語の説明の場合，この下線記号で示す予約語は，必要語なので省略できないことを示します。
下線がない予約語は，補助語なので書いても書かなくてもかまいません。

…
この記号で示す直前の一つの項目を繰り返し指定できることを示します。
ただし，項目が括弧で囲まれている場合，括弧全体が一つの項目となります。

△
（白三角）
空白を示します。

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

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

(2)属性表示記号

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

属性表示記号 | 意味
～ | この記号のあとにユーザ指定値の属性を示します。
《　　》 | ユーザが指定を省略したときの省略時解釈値を示します。
＜　　＞ | ユーザ指定値の構文要素を示します。
((　　)) | ユーザ指定値の指定範囲を示します。

(3)構文要素記号

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

構文要素記号
意味

＜英字＞
アルファベット（A～Z，a～z）と_（アンダスコア）

＜英字記号＞
アルファベット（A～Z，a～z）と＃，＠，¥

＜英数字＞
英字と数字（0～9）

＜英数字記号＞
英字記号と数字（0～9）

＜符号なし整数＞
数字列（0～9）

＜16進数字＞
数字（0～9）と（A～F，a～f）

＜識別子＞
先頭がアルファベットの英数字列

＜記号名称＞
先頭が英字記号の英数字記号列

＜文字列＞
任意の文字の配列

＜パス名＞
記号名称，／，および．（ピリオド）
（ただし，パス名は使用するOSに依存）

このマニュアルでの表記

(1)製品名

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

製品名称 | 略称
AIX 5L V5.1 | AIX
AIX 5L V5.2
AIX 5L V5.3
uCosminexus TP1/Message Control | TP1/Message Control
uCosminexus TP1/NET/Library | TP1/NET/Library
uCosminexus TP1/NET/HSC | TP1/NET/HSC

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

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

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

略語一覧

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

英略語 | 英字での表記
AP | Application Program
DLE | Data Link Escape
EBCDIK | Extended Binary Coded Decimal Interchange Kana Code
ETB | End of Transmission Block
ETX | End of Text
HSC | Hitachi Standard Synchronous Communication
ISDN | Integrated Services Digital Network
JIS8 | Japanese Industrial Standard Code 8
LE | Logical Entity
MCF | Message Control Facility
MHP | Message Handling Program
OS | Operating System
SOH | Start of Heading
SPP | Service Providing Program
STX | Start of Text
UAP | User Application Program
UOC | User Own Coding

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

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

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

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/HSCは，OpenTP1システムでHSC1手順，またはHSC2手順を使用して通信をする場合の支援プログラムです。この章では，TP1/NET/HSCの概要について説明します。

＜この章の構成＞

1.1　AP間通信の概要

1.2　AP間通信の形態

1.3　ソフトウェアの構成

1.1　AP間通信の概要

TP1/NET/HSCは，OpenTp1システムと各種コンピュータシステムをHSC1手順，またはHSC2手順で接続し，AP間通信をするプログラムです。HSC1手順は，相互起動方式の専用回線に適用できます。HSC2手順は公衆回線に適用できます。また，HSC2手順には，非同期モードと同期モードがあります。このマニュアルでは，手順またはモードによって機能に違いがある場合，手順ごとまたはモードごとに分けて説明しています。

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

TP1/NET/HSCを使用したAP間通信では，相手システムで発生したトランザクションを自システムで処理したり，自システムからトランザクションを発生させて相手システムへ送ったりできます。

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

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

1.2　AP間通信の形態

TP1/NET/HSCを使用したAP間通信を，HSC1手順とHSC2手順に分けて説明します。

＜この節の構成＞

1.2.1　HSC1手順の通信形態

1.2.2　HSC2手順（非同期モード）の通信形態

1.2.3　HSC2手順（同期モード）の通信形態

1.2.4　適用範囲

1.2.1　HSC1手順の通信形態

HSC1手順の通信形態には，分岐送信形態と一方受信形態があります。

＜この項の構成＞

(1)　分岐送信形態

(2)　一方受信形態

(1)　分岐送信形態

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

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

図1-2　分岐送信形態のAP間通信の例（HSC1手順の場合）

(2)　一方受信形態

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

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

図1-3　一方送信形態のAP間通信の例（HSC1手順の場合）

1.2.2　HSC2手順（非同期モード）の通信形態

HSC2手順（非同期モード）の通信形態には，分岐送信形態と一方受信形態があります。通信形態は，HSC1手順の場合と同じです。通信形態については，「1.2.1　HSC1手順の通信形態」を参照してください。

1.2.3　HSC2手順（同期モード）の通信形態

通信形態の種類と，AP間通信をする場合の通信形態の組み合わせについて説明します。

＜この項の構成＞

(1)　通信形態の種類

(2)　通信形態の組み合わせ

(1)　通信形態の種類

HSC2手順（同期モード）の通信形態には，分岐送信形態，一方受信形態，同期送信形態，および同期受信形態があります。

HSC2手順を使用した通信形態を，次の図に示します。

図1-4　HSC2手順（同期モード）を使用した通信形態

(a)　分岐送信形態

回線接続要求をするときに，自システムのUAPが，相手ターミナルIDの送信要求をするために使用する形態です。

(b)　一方受信形態

相手システムとの回線が接続されたとき，相手ターミナルIDなどの接続情報通知を受け取る形態です。

(c)　同期送信形態

自システムから相手システムにメッセージを送信する形態です。相手システムからの送達確認を受けるまで，自システムのUAPは待ち状態になります。

(d)　同期受信形態

相手システムからメッセージを受信する形態です。自システムのUAPは，相手システムからメッセージを受信するまで，待ち状態になります。

(2)　通信形態の組み合わせ

HSC2手順（同期モード）の場合，通信形態を組み合わせてAP間通信をします。発信と着信の場合で通信形態の組み合わせの順序は異なります。ここでは，通信形態の組み合わせの例を発信と着信の場合に分けて説明します。AP間通信の詳細については，「3.　HSC2手順の機能」を参照してください。

(a)　発信の場合

発信の場合の通信形態の組み合わせの例を，次の図に示します。

図1-5　発信の場合の通信形態の組み合わせ

(b)　着信の場合

着信の場合の通信形態の組み合わせの例を，次の図に示します。

図1-6　着信の場合の通信形態の組み合わせ

1.2.4　適用範囲

＜この項の構成＞

(1)　HSC1手順の場合

(2)　HSC2手順の場合

(1)　HSC1手順の場合

TP1/NET/HSCのHSC1手順では，専用回線を使用します。

(2)　HSC2手順の場合

TP1/NET/HSCのHSC2手順では，次に示す公衆回線を使用できます。

電話網（ハイブリッドホン）（V.25bis）

公衆回線網（X.21）

ISDN（INSネット64-TA経由）（X.21，V.25bis）

ISDN（INSネット1500-TA経由）（X.21）

1.3　ソフトウェアの構成

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

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

＜この節の構成＞

1.3.1　前提プログラム

1.3.2　ソフトウェア構成の例

1.3.1　前提プログラム

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

適用OS：AIX

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

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

P-F1M14-5111　XNF/AS/WAN※

P-F1M14-511A　XNF/AS/BASIC※

注※

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

1.3.2　ソフトウェア構成の例

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

図1-7　TP1/NET/HSCを組み込んだソフトウェア構成

注※1

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

注※2

TP1/NET/HSCで使用できる通信管理はXNF/ASです。

注※3

HSC1手順の場合は専用回線で，HSC2手順の場合は公衆回線網です。

2.　HSC1手順の機能

TP1/NET/HSCは，使用する手順によって，AP間通信の方法に違いがあります。この章では，HSC1手順を使用した場合のAP間通信の方法，メッセージ送受信の流れ，およびHSC1手順の機能サポートについて説明します。

＜この章の構成＞

2.1　HSC1手順のAP間通信の仕組み

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

2.3　HSC1手順の機能

2.1　HSC1手順のAP間通信の仕組み

TP1/NET/HSCのHSC1手順を使用すると，HSC1手順に対応する相手システムとAP間通信できます。ここでは，HSC1手順を使用した場合のAP間通信の流れ，コネクションや論理端末を使用したAP間通信の仕組みについて説明します。

コネクションは通信管理との間の論理的な通信路です。論理端末はメッセージ送受信のためのMCF側の窓口です。

＜この節の構成＞

2.1.1　HSC1手順の送受信の方法

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

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

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

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

2.1.1　HSC1手順の送受信の方法

TP1/NET/HSCでの，相手システムとのAP間通信の準備段階から終了までの流れを説明します。

HSC1手順の送受信の方法を次の図に示します。

図2-1　HSC1手順の送受信の方法

注※1

AP間通信の詳細については，「2.2　HSC1手順のAP間通信メッセージの送受信」を参照してください。

注※2

オンライン終了時には通知しません。

＜この項の構成＞

(1)　AP間通信の準備

(2)　AP間通信

(3)　AP間通信の終了

(1)　AP間通信の準備

TP1/NET/HSCは，通信管理とのやり取りでAP間通信の準備を整えます。

OpenTP1システムのオンライン開始，または運用コマンド（mcftactcn）の入力で，TP1/NET/HSCは，通信管理に対してAP間通信の準備を要求します。TP1/NET/HSCは，通信管理の準備ができたことを通知されると，状態通知イベント（COPNEVT）を自システムのUAPに通知します。COPNEVTが通知されると，相手システムとのAP間通信ができる状態になります。

(2)　AP間通信

TP1/NET/HSCは，COPNEVT通知後からAP間通信ができます。自システム，または相手システムのメッセージ送信要求を契機に，コネクションを介してAP間通信をします。

TP1/NET/HSCは，コネクションが常に開いているとみなして相手システムと通信をします。AP間通信ができる状態のときに，コネクション障害が発生した場合，TP1/NET/HSCは障害通知イベント（CERREVT）を自システムのUAPに通知します。

(3)　AP間通信の終了

OpenTP1システムのオンライン終了，または運用コマンド（mcftdctcn）の入力で，TP1/NET/HSCは，通信管理に対してAP間通信の終了を要求します。TP1/NET/HSCは，AP間通信の終了を通知されると，状態通知イベント（CCLSEVT）を自システムのUAPに通知します。なお，オンライン終了の場合は，CCLSEVTは通知されません。

参考

コネクションの自動回復の抑止

HSC1手順を使用する場合，コネクションの回復が可能な障害が発生したときに，自動回復を抑止するかどうかを指定できます。コネクションの回復が可能な障害には，タイムアウト，リトライオーバーなどがあります。回復可能障害の詳細については，「9.1(1)　コネクション障害」を参照してください。

コネクションの自動回復を抑止するかどうかは，MCF通信構成定義（mcftalccn -x）で指定します。自動回復を抑止した場合にコネクションを再確立するには，運用コマンド（mcftactcn）を入力します。

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

論理端末（LE）は，UAPがメッセージの送受信をするための窓口です。TP1/NET/HSCを使用してメッセージの送受信をする場合，ユーザはコネクションと論理端末を意識する必要があります。

システム定義では，コネクション一つに対し，論理端末一つを指定します。また，UAP作成では，メッセージ受信時には入力元論理端末として，メッセージ送信時には出力先論理端末として，論理端末を意識します。

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

TP1/NET/HSCでは，メッセージの送受信をするために，論理端末の端末タイプとアプリケーションの型を定義します。また，アプリケーションの型によって，UAPでできる機能が違います。ここでは，HSC1手順の場合にTP1/NET/HSCで定義する内容について説明します。

論理端末の端末タイプ
論理端末は，メッセージの送受信をするためのユーザインタフェースで，利用形態による端末タイプがあります。TP1/NET/HSCでは，1コネクション上でのメッセージ送受信を実現するために，any型（任意型論理端末）を端末タイプとします。
論理端末の端末タイプは，MCF通信構成定義（mcftalcle -t）で指定します。

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

アプリケーション名
アプリケーション名は，アプリケーションを識別するための名称です。アプリケーション名には，入力メッセージ編集UOCで決定する方法と，システム定義で決定する方法があります。アプリケーション名の決定については，「5.1.3　入力メッセージの編集とアプリケーション名の決定」を参照してください。また，システム定義で決定する場合は，MCF通信構成定義（mcftalcle -v）で指定します。

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

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

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

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

論理端末は，コネクションとUAPの間に位置し，メッセージの送受信をする論理的なインタフェース概念です。

論理端末の状態を次に示します。

閉塞状態
UAPが送信要求したメッセージを出力キューから取り出せない状態です。または，相手システムにメッセージを送信できない状態です。閉塞状態には，次の二つがあります。

暗黙閉塞
回線の未接続および障害によってシステムが暗黙的に閉塞しています。

明示閉塞
運用コマンド（mcftdctle）で明示的に閉塞しています。

閉塞解除状態
論理端末が持つ機能を使用できる状態です。閉塞解除状態には，次の二つがあります。

送信スケジュール可能
論理端末が持つすべての機能を使用できます。

送信スケジュール抑止
UAPが送信要求したメッセージのスケジュールを抑止します。TP1/NET/HSCが相手システムにメッセージを送信中のときは，この状態になっています。

＜この項の構成＞

(1)　論理端末の閉塞

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

(1)　論理端末の閉塞

論理端末の閉塞方法には，次に示す方法があります。

(a)　自動閉塞（暗黙閉塞）

AP間通信の終了，またはコネクション障害と同時に，自動的に論理端末を閉塞します。

(b)　手動閉塞（明示閉塞）

ユーザが，運用コマンド（mcftdctle）を入力して論理端末を明示的に閉塞します。

メッセージの送信中に手動閉塞した場合，送信メッセージは未送信の扱いになります。ただし，閉塞のタイミングによって相手システムへメッセージが正常に送信される場合もあるため，メッセージ通番でメッセージが二重に送信されていないかをチェックしてください。

(c)　障害閉塞（暗黙閉塞）

論理端末レベルの障害（障害通知イベントのCERREVT）が発生したとき，障害が発生した論理端末を暗黙的に閉塞します。

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

論理端末の閉塞解除方法には，次に示す方法があります。

(a)　自動解除

AP間通信の準備の完了と同時に，自動的に論理端末の閉塞解除をする方法です。

MCF通信構成定義（mcftalccn -l）でautoを指定しておくと，AP間通信の準備の完了と同時に論理端末を自動的に閉塞解除します。この時点から，相手システムへメッセージを送信できるようになります。ただし，運用コマンド（mcftdctle）で論理端末を閉塞している場合，自動的に閉塞解除はしません。

(b)　手動解除

運用コマンド（mcftactle）を入力して論理端末の閉塞解除をする方法です。

MCF通信構成定義（mcftalccn -l）でmanualを指定した場合，AP間通信の準備が完了しても論理端末の閉塞解除はされません。この時点では，UAPが送信要求したメッセージ（send）は出力キューに保留されます。その場合，運用コマンド（mcftactle）を入力して論理端末の閉塞解除をします。

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

論理メッセージは，付けられる情報やデータの内容が，処理層によって異なります。また，ユーザが作成した固有のデータは，データの内容によってテキスト形態が異なります。

＜この項の構成＞

(1)　論理メッセージの扱い

(2)　テキスト形態とUAPでのデータの扱い

(1)　論理メッセージの扱い

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

OpenTP1システムのUAPで作成した論理メッセージは，TP1/Message Control，TP1/NET/HSC，通信管理の各処理層を介して相手システムに送信されます。相手システムからのメッセージの受信の場合は逆の順番になります。論理メッセージは，単独セグメントまたは複数セグメントのデータで構成されます。

処理層とデータの関係を，次の図に示します。

図2-2　処理層とデータの関係（HSC1手順）

(2)　テキスト形態とUAPでのデータの扱い

TP1/NET/HSCのHSC1手順で扱うテキスト形態と，それぞれについてのUAPでのデータの扱いを説明します。各テキスト形態は，16進数字で表現します。テキスト形態の数値は，次に示すようにメッセージ送信時は送信領域に設定し，メッセージ受信時は受信領域に設定されます。送信領域，受信領域については，「4.　メッセージ送受信インタフェース」を参照してください。

メッセージ送信時
send関数を呼び出すときに，送信するメッセージセグメントの先頭に，ユーザがテキスト形態を設定します。
通常テキストのデータは，EBCDIKコードで作成してください。JIS8コードの場合，正しく送信されない場合があります。JIS8コードのデータを送信する場合は，透過モードテキストとして送信してください。

メッセージ受信時
receive関数を呼び出して受信するメッセージのセグメントの先頭に，MCFがテキスト形態を設定します。

また，TP1/NET/HSCを使用するUAPでは，アプリケーション起動をされた場合も同様に，「(a)　テキスト形態の種別」に示すテキスト形態が設定されることを前提とします。したがって，TP1/NET/HSCを使用するUAPをアプリケーション起動する場合，テキスト形態を含めた形式でメッセージを編集する必要があります。

(a)　テキスト形態の種別

テキスト形態の種別を次の図に示します。

図2-3　テキスト形態の種別（HSC1手順）

UAPおよび通信管理でのデータの扱いをテキスト形態の種別ごとに次の表に示します。

表2-2　UAPおよび通信管理でのデータの扱い（HSC1手順）

項番 | テキスト形態 | 種別 | 動作種別 | データの扱い
1. | 通常テキスト | UAP | 送信 | テキスト形態，ヘッダを作成します。
受信 | テキスト形態，ヘッダを受け取ります。
通信管理 | 送信 | STX，ETX（またはETB）を付加します。
受信 | STX，ETX（またはETB）を削除します。
2. | ヘッダ付きテキスト | UAP | 送信 | テキスト形態，ヘッダ，STXおよびデータの作成します。
受信 | テキスト形態，ヘッダ，STXおよびデータを受け取ります。
通信管理 | 送信 | SOH，ETX（またはETB）を付加します。
受信 | SOH，ETX（またはETB）を削除します。
3. | 透過モードテキスト | UAP | 送信 | テキスト形態，透過データの作成します。
受信 | テキスト形態，透過データを受け取ります。
通信管理 | 送信 | DLE，STX，DLEおよびETX（またはETB）を付加します。
受信 | DLE，STX，DLEおよびETX（またはETB）を削除します。
4. | ヘッダ付き透過モードテキスト | UAP | 送信 | テキスト形態，ヘッダ，DLE，STXおよび透過データの作成します。
受信 | テキスト形態，ヘッダ，DLE，STXおよび透過データを受け取ります。
通信管理 | 送信 | SOH，DLEおよびETX（またはETB）を付加します。
受信 | SOH，DLEおよびETX（またはETB）を削除します。

(b)　テキスト形態の数値表現と内容

送信するテキスト形態の数値表現と内容を表2-3に，受信するテキスト形態の数値表現と内容を表2-4に示します。

表2-3　送信するテキスト形態の数値表現と内容（HSC1手順）

項番 | テキスト形態 | 数値表現（16進数字） | 内容
1. | 通常テキスト | 00000002 | 通常のデータ
2. | ヘッダ付きテキスト | 00000001 | ヘッダ + STX + データ
3. | 透過モードテキスト | 00000004 | 透過モードで伝送されるデータ
4. | ヘッダ付透過モードテキスト | 00000003 | ヘッダ + DLE + STX + 透過データ

表2-4　受信するテキスト形態の数値表現と内容（HSC1手順）

項番 | テキスト形態 | 数値表現（16進数字） | 内容
1. | 通常テキスト | 00000002 | 通常のデータ
2. | ヘッダ付きテキスト | 00000001 | ヘッダ + STX + データ
3. | 透過モードテキスト | 00000004 | 透過モードで伝送されるデータ
4. | ヘッダ付透過モードテキスト | 00000003 | ヘッダ + DLE + STX + 透過データ

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

TP1/NET/HSCは，AP間通信メッセージの送受信をします。TP1/NET/HSCで使用するメッセージは一方送信メッセージです。一方送信メッセージには，優先と一般があります。また，メッセージの送信と受信にはそれぞれ，単一セグメント，複数セグメント，および列信の場合があります。列信の場合は，優先の一方送信メッセージは使用しません。

ここでは，通信管理の準備完了を示すCOPNEVT通知後からの，メッセージの送信と受信の流れを説明します。

＜この節の構成＞

2.2.1　メッセージの送信

2.2.2　メッセージの受信

2.2.1　メッセージの送信

TP1/NET/HSCが，通信相手システムに一方送信メッセージを送信した場合の処理の流れを，単一セグメントの場合を例にして説明します。

また，列信でメッセージを送信する場合には，MCF通信構成定義（mcftalcle -w)のrowtransオペランドでuseを指定しておく必要があります。MCF通信構成定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC1手順」を参照してください。

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

図2-4　HSC1手順のメッセージ送信の流れ

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

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

出力メッセージ編集UOCでメッセージを編集します。

相手システムへメッセージを送信します。

相手システムへの送信が完了した時点で，出力キューのメッセージを消去します。

1.のsend関数で送信完了通知イベントを通知させることを指定した場合，送信完了通知イベント（SCMPEVT）を通知します。また，正常に送信できなかった場合，send関数の指定によって送信障害通知イベント（SERREVT）を通知します。SERREVTについては，「付録B.1　HSC1手順の障害」を参照してください。

2.2.2　メッセージの受信

TP1/NET/HSCが，通信相手システムから一方送信メッセージを受信した場合の処理の流れを，単一セグメントの場合を例にして説明します。

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

図2-5　HSC1手順のメッセージ受信の流れ

相手システムからany型論理端末あての一方送信メッセージを受信します。

入力メッセージ編集UOCでメッセージを編集します。

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

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

2.3　HSC1手順の機能

TP1/NET/HSCはHSC1手順のオプション機能のうち，次の表に示す範囲をサポートします。

表2-5　HSC1手順の機能とTP1/NET/HSCの扱い

HSC1手順の機能
使用の可否
TP1/NET/HSCの扱い

ブロック転送
○

UAPからのsendの1セグメントを1ブロックとして相手システムに送信します。

相手システムから受信したメッセージテキストは，ETXまで組み立ててからUAPに引き渡します。

列信
○
送信，受信の両方をサポートします。
（列信の送信は，一般の一方送信メッセージだけを対象とします）

逆中断（RVI）
○
送信，受信の両方をサポートします。
（逆中断の送信は，相手システムからのメッセージを受信中に，ETXを受信したあと，優先の一方送信メッセージを送信する場合に行います。一般の一方送信メッセージの送信では，逆中断は行いません）

一時送信延期（TTD）
○
送信，受信の両方をサポートします。
送信の場合は，MCF通信構成定義（mcftalccn -B)でサポートするかどうかを指定できます。

一時受信抑止（WACK）
○

通常テキスト
○
送信，受信の両方をサポートします。

ヘッダ付きテキスト
○

透過モードテキスト
○

ヘッダ付き透過モードテキスト
○

コンテンション制御
○
MCF通信構成定義（mcftalccn -y)で優先局，非優先局を指定できます。

制御付き会話
×
サポートしません。

（凡例）

○：TP1/NET/HSCのHSC1手順で使用できます。

×：TP1/NET/HSCのHSC1手順では使用できません。

3.　HSC2手順の機能

TP1/NET/HSCは，使用する手順によって，AP間通信の方法に違いがあります。この章では，HSC2手順を使用した場合のAP間通信の方法，メッセージ送受信の流れ，およびHSC2手順の機能サポートについて説明します。

＜この章の構成＞

3.1　HSC2手順のAP間通信の仕組み

3.2　HSC2手順のAP間通信メッセージの送受信

3.3　HSC2手順の機能

3.4　回線リスト定義ユティリティ（非同期モード）

3.5　相手ターミナルIDリスト定義ユティリティ（同期モード）

3.6　EOT交換

3.1　HSC2手順のAP間通信の仕組み

TP1/NET/HSCのHSC2手順を使用すると，HSC2手順に対応する相手システムとAP間通信ができます。ここでは，HSC2手順の非同期モードおよび同期モードを使用した場合のAP間通信の流れ，コネクションや論理端末を使用したAP間通信の仕組みについて説明します。

＜この節の構成＞

3.1.1　HSC2手順（非同期モード）の送受信の方法

3.1.2　HSC2手順（同期モード）の送受信の方法

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

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

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

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

3.1.1　HSC2手順（非同期モード）の送受信の方法

HSC2手順（非同期モード）を使用したメッセージの送受信の手順は，次のとおりです。

コネクションの確立

回線の接続

AP間通信

回線の切断

コネクションの解放

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

＜この項の構成＞

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

(2)　回線の接続

(3)　AP間通信

(4)　回線の切断

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

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

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

TP1/NET/HSCは，コネクションを確立してから，相手システムとの回線を接続して，メッセージの送受信をします。コネクションは，通信管理との論理的な通信路です。

ユーザは，通信相手システムとID交換をするかどうかを，MCF通信構成定義（mcftalccn -j）のidchangeオペランドで指定できます。ID交換をすることを指定した場合，回線接続時にターミナルIDを交換して，正しい相手システムであるかどうかを確認できます。ID交換をしないことを指定した場合，ターミナルIDによる相手システムの確認をしないでコネクションを確立し，回線の接続をします。

コネクションの確立には，自動確立と手動確立があります。コネクションが確立すると，状態通知イベント（COPNEVT）を通知します。

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

手動確立
MCF通信構成定義（mcftalccn -i）でmanualを指定した場合，運用コマンド（mcftactcn）で確立します。

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

図3-1　HSC2手順（非同期モード）のコネクションの確立

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

TP1/NET/HSCは，通信管理に対して，該当するコネクションに定義されているすべての回線の接続準備をします。

1回線の回線接続の準備が終了した時点で，コネクション確立とみなされます。

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

コネクションが確立し，相手システムとの回線を接続できる状態です。

(2)　回線の接続

コネクション確立後，回線の接続をします。

回線が接続されると，自システムの論理端末，回線，相手システムの三者の結び付きは，回線が切断されるまで固定しています。したがって，回線の接続から切断までの間，メッセージは固定された論理端末と回線を経由して送受信されます。

回線の接続には，発信と着信の場合があります。

(a)　発信の場合の回線の接続

ID交換する場合

コネクション確立後にsend関数でメッセージの送信を要求すると，TP1/NET/HSCは，MCF通信構成定義（mcftalcle -d）のdialnoオペランドで指定した相手システムのダイヤル番号を決定します。

MCF通信構成定義（mcftalccn -n）のtidオペランドで指定した相手システムのターミナルIDと，1.のダイヤル番号でダイヤリングをされた相手システムからのターミナルIDを交換します。IDが一致した場合，回線を接続します。IDが一致しないときは，障害通知イベント（CERREVT）が通知されます。

ID交換しない場合

コネクション確立後にsend関数でメッセージの送信を要求すると，TP1/NET/HSCは，MCF通信構成定義（mcftalcle -d）のdialnoオペランドで指定した相手システムのダイヤル番号を決定します。

1.のダイヤル番号でダイヤリングをし，相手システムが受諾すると，回線が接続されます。

(b)　着信の場合の回線の接続

ID交換する場合

相手システムからの回線接続を着信した場合，IDを交換します。IDが一致していれば相手システムからのメッセージの送信を待ちます。UAPに対して回線接続したことの通知はしません。

IDが許可されないときは回線を切断し，障害通知イベント（CERREVT）は通知されません。

回線接続後，TP1/NET/HSCは，MCF通信構成定義（mcftalcle -n）のtidオペランドから，受信したターミナルIDに対応する論理端末を検索し，通信に使用する論理端末名称を決定します。

ID交換しない場合

相手システムからの回線接続を着信した場合，TP1/NET/HSCは，相手システムからのメッセージを受信します。最終セグメントを受信した時点で，論理端末名称決定UOCを呼び出します。

論理端末名称決定UOCでメッセージ送受信に使用する論理端末を決定します。論理端末名称決定UOCが登録されていない場合，該当するコネクションに定義されている論理端末のうち，先頭の論理端末を使用します。ただし，先頭の論理端末がほかの回線と結び付いている場合は，回線を切断します。

(3)　AP間通信

回線が接続すると，TP1/NET/HSCは，相手システムとAP間通信をします。AP間通信メッセージの送受信の流れについては，「3.2　HSC2手順のAP間通信メッセージの送受信」を参照してください。

(4)　回線の切断

相手システムと接続中の回線を切断する方法は次のとおりです。

(a)　相手システムからの切断

相手システムから回線切断要求を受信すると，回線が切断されます。

(b)　自システムからの切断

EOT交換または時間監視の結果，一定時間にメッセージの送受信が発生しない場合，TP1/NET/HSCは，回線を切断します。EOT交換については，「3.6.1　非同期モードのEOT交換」を参照してください。

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

コネクションの解放には，自動解放と手動解放があります。コネクションが解放されると，状態通知イベント（CCLSEVT）を通知します。

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

手動解放（正常解放）
運用コマンド（mcftdctcn）に-fオプションを指定しないで入力して，コネクションを正常に解放します。コマンド入力時に送受信中のメッセージがある場合，送受信が完了した時点でコネクションを解放します。

手動解放（強制解放）
運用コマンド（mcftdctcn）に-fオプションを指定して入力して，コネクションを強制的に解放します。コマンド入力時に送受信中のメッセージがある場合，送信メッセージは出力キューに戻し，受信メッセージは破棄してコネクションを解放します。

コネクションの自動解放および手動解放（正常解放）の流れを次の図に示します。

図3-2　HSC2手順（非同期モード）のコネクションの解放

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

TP1/NET/HSCは，該当するコネクション配下のすべての回線を切断します。

すべての回線が切断され，コネクション解放の準備が終了すると，コネクションが解放されます。

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

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

すべての回線が使用できなくなると，コネクションを切断状態にします。コネクションが切断状態になると，障害通知イベント（CERREVT）を通知します。

コネクションを切断したあと，ユーザはログメッセージでコネクションの再確立が必要かどうかを判断します。必要であれば，運用コマンド（mcftactcn）を入力してコネクションの再確立をします。

3.1.2　HSC2手順（同期モード）の送受信の方法

HSC2手順（同期モード）を使用したメッセージの送受信の手順は，次のとおりです。

コネクションの確立

回線の接続

AP間通信

回線の切断

コネクションの解放

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

＜この項の構成＞

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

(2)　回線の接続

(3)　AP間通信

(4)　回線の切断

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

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

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

TP1/NET/HSCは，コネクションを確立してから，相手システムとの回線を接続して，メッセージの送受信をします。コネクションは，通信管理との論理的な通信路です。

ユーザは，通信相手システムとID交換をするかどうかを，MCF通信構成定義（mcftalccn -j）のidchangeオペランドで指定できます。ID交換をすることを指定した場合，コネクション確立時に相手ターミナルIDリストを読み込み，回線接続時にターミナルIDを交換して，正しい相手システムであるかどうかを確認できます。ID交換をしないことを指定した場合，相手システムの確認をしないでコネクションを確立し，回線の接続をします。

ID交換をすることを指定すると，通信相手システムとコネクションを確立するときに相手ターミナルIDリストの読み込みをします。相手ターミナルIDリストには，発信用と着信用があり，あらかじめ定義で指定しておく必要があります。

発信用相手ターミナルIDリストファイル
相手システムのターミナルIDと電話番号の対応を定義したファイルです。このファイルは，発信用相手ターミナルIDリストの定義（mcftstf，mcftstlst）で指定します。定義の詳細は，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）」を参照してください。
このファイルは定義で指定したあと，相手ターミナルID定義ユティリティで作成し，$DCCONFPATHのディレクトリ下に作成します。
TP1/NET/HSCは，UAPから回線接続要求があった場合，このファイルの内容を参照し，相手システムの電話番号を決定してダイヤリングをします。

着信用相手ターミナルIDリストファイル
着信した相手システムのターミナルIDと，その相手システムと通信するUAPが使用する論理端末名称との対応を定義したファイルです。このファイルは，着信用相手ターミナルIDリストの定義（mcftstf，mcftrtlst）で指定します。定義の詳細は，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）」を参照してください。
このファイルは定義で指定したあと，相手ターミナルID定義ユティリティで作成し，$DCCONFPATHのディレクトリ下に作成します。
TP1/NET/HSCは，相手システムからの回線接続要求を着信したとき，読み込まれたファイルの内容を参照し，着信したコネクションとそのコネクションと結び付く論理端末名称を決定します。

コネクションの確立には，自動確立と手動確立があります。コネクションが確立すると，状態通知イベント（COPNEVT）を通知します。

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

手動確立
MCF通信構成定義（mcftalccn -i）でmanualを指定した場合，運用コマンド（mcftactcn）で確立します。

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

図3-3　HSC2手順（同期モード）のコネクションの確立

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

ID交換をする場合，TP1/NET/HSCは，定義で指定された発信用相手ターミナルIDリストファイル，および着信用相手ターミナルIDリストファイルを読み込みます。

TP1/NET/HSCは，通信管理とコネクション確立の準備をします。

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

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

コネクションが確立し，相手システムとの回線を接続できる状態です。

(2)　回線の接続

TP1/NET/HSCは，相手システムと回線を接続します。回線を接続するときに，相手システムの確認のためにターミナルIDの交換をします。ターミナルIDの交換をしない場合は，MCF通信構成定義（mcftalccn -j）のidchangeオペランドでnouseを指定してください。

交換の結果，接続できるかどうかを決定します。接続できない場合は，直ちに回線を切断します。接続できる場合は，メッセージの送受信をするMHPを決定します。以後，回線が切断されるまで，このMHPは変更できません。また，回線接続中には，送受信中の相手ターミナルIDを別のIDと切り替えられません。

回線の接続には，発信と着信の場合があります。

(a)　発信の場合の回線の接続

送信する自システムのターミナルIDは，MCF通信構成定義（mcftalccn -n）のtidオペランドで指定したコードであり，EBCDIKコードに変換します。

受信したメッセージに設定されている相手ターミナルIDは，JIS8コードに変換して回線接続指示で指定されたIDコードと比較します。

IDが不一致の場合，状態通知イベント（CERREVT）を通知し，論理端末を閉塞します。この場合の閉塞は，運用コマンド（mcftactle）を入力するか，相手システムから該当する論理端末にメッセージの送信があったときに解除されます。

発信の場合の回線の接続について，次の図に示します。

図3-4　発信の場合の回線の接続（同期モード）

send関数で相手システムへ回線接続を要求します。

メモリ上の出力キューから，回線接続要求メッセージを取り出します。

ID交換をする場合，TP1/NET/HSCは，コネクション確立時に読み込まれた相手ターミナルIDリストファイルを検索し，発信に使用するダイヤル番号を決定します。
ID交換をしない場合，TP1/NET/HSCは，回線接続指示テキストの相手システムダイヤル番号を使用して，通信管理に対して回線の接続要求します。

相手システムと回線接続の準備をします。

回線の相手システムから回線接続の完了を受け取ります。ID交換をする場合は，接続要求時の相手ターミナルIDと比較します。

相手システムから受け取った接続情報を編集します。

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

TP1/NET/HSCは，メモリ上の出力キューの回線接続のデータを消去し，仕掛り通番を取得します。

TP1/NET/HSCは，入力メッセージ編集UOCで決定したアプリケーション，またはMCF通信構成定義（mcftalcle -v）で指定したアプリケーションを起動します。

UAPはreceive関数を呼び出して，回線の接続情報を受け取ります。

発信によって回線を接続したため，TP1/NET/HSCは，送信モードになります。

(b)　着信の場合の回線の接続

受信したメッセージに設定されている相手ターミナルIDは，JIS8コードに変換し，コネクション確立時に読み込まれた着信用相手ターミナルIDリストに登録されているIDリストと比較します。

受信したIDが，着信用相手ターミナルIDリストにない場合，回線を切断します。IDチェックの結果，IDが登録されている場合，MCF通信構成定義（mcftalccn -n）のtidオペランドで指定した自システムのターミナルIDをEBCDIKコードに変換して，相手システムに送信します。このとき，IDの長さは定義で指定されている長さをそのまま使用します。

着信の場合の回線の接続について，次の図に示します。

図3-5　着信の場合の回線の接続（同期モード）

相手システムから回線の接続情報を受け取ります。

ID交換をする場合，TP1/NET/HSCは，受け取ったIDが着信用相手ターミナルIDリストに登録されているかどうかをチェックします。

TP1/NET/HSCは，相手システムから受け取った接続情報を編集します。

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

ID交換をする場合，着信用相手ターミナルIDリストファイルの検索結果から，相手システムとの通信に使用する論理端末名称を決定します。
ID交換をしない場合，該当するコネクションに定義されている論理端末のうち，先頭の論理端末を使用します。

仕掛り通番を取得します。

TP1/NET/HSCは，回線接続の受諾応答を送信します（ID交換をする場合は，自システムのIDを送信します）。

TP1/NET/HSCは，入力メッセージ編集UOCで決定したアプリケーション，またはMCF通信構成定義（mcftalcle -v）で指定したアプリケーションを起動します。

UAPはreceive関数を呼び出して，回線の接続情報を受け取ります。

着信によって回線を接続したため，TP1/NET/HSCは，受信モードになります。

(3)　AP間通信

回線が接続すると，TP1/NET/HSCは，回線の接続時に起動されたMHPを使用して相手システムとAP間通信をします。

AP間通信メッセージの送受信の流れについては，「3.2　HSC2手順のAP間通信メッセージの送受信」を参照してください。

(4)　回線の切断

相手システムと接続中の回線を切断する方法は次のとおりです。

回線接続の流れについては，「付録A.3　HSC2手順（同期モード）のメッセージの送受信」を参照してください。

(a)　メッセージ送信時の切断

メッセージ送信時に，sendsync関数に回線切断指示のテキスト形態を設定して送信すると，回線が切断されます。

(b)　MHP終了での切断

MHPをreturnで終了させると回線が切断されます。

(c)　相手システムからの切断

相手システムから回線切断要求を受信すると，回線が切断されます。

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

回線切断後，コネクションを解放します。

コネクションの解放には，自動解放と手動解放があります。コネクションが解放されると，状態通知イベント（CCLSEVT）を通知します。

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

手動解放
運用コマンド（mcftdctcn -f）を入力して，コネクションを解放します。

コネクションの解放について次の図に示します。

図3-6　HSC2手順（同期モード）のコネクションの解放

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

TP1/NET/HSCは，コネクション解放の準備をします。

ID交換をする場合，TP1/NET/HSCは，発信用相手ターミナルIDリストファイル，および着信用相手ターミナルIDリストファイルを破棄します。

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

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

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

TP1/NET/HSCのHSC2手順を使用した場合，通信管理から回復不能なコネクションの障害を検出すると，コネクションを切断します。コネクションが切断状態になると，障害通知イベント（CERREVT）を通知します。

コネクションを切断したあと，ユーザはログメッセージでコネクションの再確立が必要かどうかを判断します。必要であれば，運用コマンド（mcftactcn）を入力してコネクションの再確立をします。

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

＜この項の構成＞

(1)　非同期モードの場合

(2)　同期モードの場合

(1)　非同期モードの場合

TP1/NET/HSCを使用してメッセージの送受信をする場合，ユーザはコネクションと論理端末を対応付けて定義する必要があります。

コネクションは，メッセージの送受信をするための論理的な通信路です。通信管理との接点であり，公衆回線網に加入している複数の回線を1グループとしてまとめるための通信点です。コネクションは，MCF通信構成定義（mcftalccn）で指定します。HSC2手順では，システムに複数のコネクションを指定できます。

論理端末（LE）は，UAPがメッセージの送受信をするための窓口です。論理端末は，MCF通信構成定義（mcftalcle）で指定します。HSC2手順では，一つのコネクションに対し，論理端末を複数指定できます。論理端末は相手システムの論理端末と1対1に対応します。自システムの論理端末と相手システムの論理端末は，送受信データが発生した時点で接続されます。接続に使用する回線は，コネクションでグループ化されている中から動的に選択されます。

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

図3-7　コネクションと論理端末の関係（HSC2手順（非同期モード））

(2)　同期モードの場合

TP1/NET/HSCを使用してメッセージの送受信をする場合，ユーザはコネクションと論理端末を対応付けて定義する必要があります。

コネクションは，メッセージの送受信をするための通信管理との論理的な通信路です。公衆回線網の回線と1対1に対応します。コネクションは，MCF通信構成定義（mcftalccn）で指定します。HSC2手順では，システムに複数のコネクションを指定できます。

論理端末（LE）は，UAPがメッセージの送受信をするための窓口です。論理端末は，MCF通信構成定義（mcftalcle）で指定します。HSC2手順では，一つのコネクションに対し，論理端末を複数指定できます。ただし，相手システムと回線がつながったとき，コネクションと論理端末は1対1で結び付き，回線が切断されるまで，ほかの論理端末とは結び付きません。

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

図3-8　コネクションと論理端末の関係（HSC2手順（同期モード））

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

TP1/NET/HSCでは，メッセージの送受信をするために，論理端末タイプとアプリケーションの型を定義します。また，アプリケーションの型によって，UAPでできる機能が違います。ここでは，TP1/NET/HSCのHSC2手順を使用する場合，TP1/NET/HSCで定義する内容について説明します。

論理端末の端末タイプ
論理端末は，メッセージの送受信をするためのユーザインタフェースで，利用形態による端末タイプがあります。TP1/NET/HSCでは，相手システムとのメッセージ送受信をサポートするために，any型（任意型論理端末）を端末タイプとします。
論理端末の端末タイプは，MCF通信構成定義（mcftalcle -t）で指定します。

論理端末の属性
HSC2手順の場合，メッセージ送受信の形態が非同期モードと同期モードに分かれるため，モードに合わせて論理端末の属性を定義する必要があります。論理端末の属性は，MCF通信構成定義（mcftalcle -b）のattrオペランドで指定します。非同期モードの場合，このオペランドの指定を省略するか，asyncを指定してください。同期モードの場合は，syncを指定してください。
async：論理端末はUAPと結び付くことはなく，非同期に送受信をします。
sync：論理端末はUAPと1対1で結び付き，同期に送受信をします。
同期モードの場合，論理端末とUAPは，相手システムとの回線が接続したときに結び付けられ，回線が切断したときに結び付きが終了します。また同期モードでは，論理端末とUAPの結び付きの単位でメッセージの入力通番（仕掛り通番）を管理します。仕掛り中の論理端末に対して，別のUAPからの回線接続要求があった場合は，出力キューに保留され，論理端末の仕掛り終了後に実行されます。

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

アプリケーション名
アプリケーション名は，相手システムとの接続情報を基に，MHPを起動する名称です。
アプリケーション名は，相手システムとの回線接続時に入力メッセージ編集UOCで決定する方法と，システム定義で決定する方法があります。アプリケーション名の決定については，「5.1.3　入力メッセージの編集とアプリケーション名の決定」を参照してください。また，システム定義で決定する場合は，MCF通信構成定義（mcftalcle -v）で指定します。

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

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

論理端末の端末タイプ
メッセージの種類
アプリケーションの型
UAPインタフェース
通信形態

any
（任意型論理端末）
一方送信メッセージ
非応答型
（noans）
send
分岐送信形態

receive
一方受信形態

sendsync
同期送信形態

recvsync
同期受信形態

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

論理端末は，コネクションとUAPの間に位置し，メッセージの送受信をする論理的なインタフェース概念です。UAPでは，メッセージ受信時には入力元論理端末として，メッセージ送信時には出力先論理端末として論理端末を考慮して値を設定します。非同期モードの場合，相手システムと1対1で対応します。同期モードの場合，回線接続時，UAPは仕掛り中の論理端末と結び付き，その後，仕掛りが終了するまで同期送受信の通信接点として，その論理端末と結び付きます。

論理端末の状態を次に示します。

閉塞状態
UAPが送信要求または回線接続要求したメッセージを出力キューから取り出せない状態です。または，相手システムにメッセージを送信できない状態です。閉塞状態には，次の二つがあります。

暗黙閉塞
回線の未接続および障害によってシステムが暗黙的に閉塞しています。このとき着信すると，閉塞を解除して着信を受け入れます。

明示閉塞
運用コマンド(mcftdctle）で明示的に閉塞しています。このとき着信すると，相手システムに接続拒否を返します。

閉塞解除状態
論理端末が持つ機能を使用できる状態です。閉塞解除状態には，次の二つがあります。

非同期送信スケジュール可能
論理端末が持つすべての機能を使用できます。

非同期送信スケジュール抑止
非同期モードの場合，UAPが送信要求したメッセージのスケジュールを抑止します。コネクション内の回線に空きがない場合，または相手システムからのメッセージ受信中は，この状態になっています。
同期モードの場合，UAPの回線接続指示要求のメッセージのスケジュールを抑止します。UAPが相手システムとメッセージ送受信中はこの状態です。

＜この項の構成＞

(1)　論理端末の閉塞

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

(1)　論理端末の閉塞

論理端末の閉塞方法には，次に示す方法があります。

(a)　自動閉塞（暗黙閉塞）

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

(b)　手動閉塞（明示閉塞）

ユーザが，運用コマンド（mcftdctle）を入力して論理端末を明示的に閉塞します。

(c)　障害閉塞（暗黙閉塞）

論理端末レベルの障害（障害通知イベントのCERREVT）が発生したとき，障害が発生した論理端末を暗黙的に閉塞します。

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

論理端末の閉塞解除方法には，次に示す方法があります。

(a)　自動解除

コネクションの確立と同時に，自動的に論理端末の閉塞解除をする方法です。

MCF通信構成定義（mcftalccn -l）でautoを指定しておくと，コネクションの確立と同時に論理端末を自動的に閉塞解除します。この時点から，相手システムとの回線を接続できるようになります。ただし，運用コマンド（mcftdctle）で論理端末を閉塞している場合，自動的に閉塞解除はしません。

(b)　手動解除

運用コマンド（mcftactle）を入力して論理端末の閉塞解除をする方法です。

MCF通信構成定義（mcftalccn -l）でmanualを指定した場合，コネクションが確立しても論理端末の閉塞解除はされません。この時点では，同期モードの回線接続要求のメッセージと非同期モードの送信メッセージ（send）は出力キューに保留され，同期モードで送信するメッセージ（sendsync）は論理端末で拒否されます。その場合，運用コマンド（mcftactle）を入力して論理端末の閉塞解除をします。

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

論理メッセージは，付けられる情報やデータの内容が，処理層によって異なります。また，ユーザが作成した固有のデータは，データの内容によってテキスト形態が異なります。

＜この項の構成＞

(1)　論理メッセージの扱い

(2)　テキスト形態とUAPでのデータの扱い

(1)　論理メッセージの扱い

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

OpenTP1システムのUAPで作成した論理メッセージは，TP1/Message Control，TP1/NET/HSC，通信管理の各処理層を介して相手システムに送信されます。相手システムからのメッセージの受信の場合は逆の順番になります。論理メッセージは，単独セグメントまたは複数セグメントのデータで構成されます。

処理層とデータの関係を次の図に示します。

図3-9　処理層とデータの関係（HSC2手順）

(a)　送信メッセージの場合

非同期モード（論理端末の属性がasync）の場合
MHPまたはSPPからsend関数で送信要求された各セグメントを1ブロックに対応付け，通信管理を介して相手システムに送信します。

同期モード（論理端末の属性がsync）の場合
sendsyncで送信要求した1セグメントを1単位とし，通信管理を介して相手システムにメッセージを送信します。MHPが最終セグメント以外のセグメントを送信した場合（sendsyncでDCMCFESIを設定），直ちにsendsync関数をリターンし，最終セグメント（sendsyncでDCMCFEMIを設定）を送信するまで，これまでのセグメントを保留します。TP1/NET/HSCでは，各セグメントを1ブロックに対応付けて相手システムに送信し，最終セグメントの送信終了で終了させます。
セグメントの送信とMHPの動作を回線状態に同期させたい場合，1セグメントで1論理メッセージとする形式でデータを編集し，列信で送信要求をする必要があります。

(b)　受信メッセージの場合

非同期モード（論理端末の属性がasync）の場合
通信管理から受け取ったメッセージがセグメント分割されている場合，最終セグメント受信まで各セグメントを保留し，まとめてMHPに渡します。このとき，MHPは受信済みのセグメント数分のreceiveを呼び出して各セグメントを受け取ります。

同期モード（論理端末の属性がsync）の場合
MHPはセグメント分割された各メッセージを回線状態に同期して受け取ることはできません。したがって，回線上のテキスト受信とMHPの起動を同期させたい場合は，1セグメントで1論理メッセージにする必要があります。セグメント分割されたメッセージを受信した場合，TP1/NET/HSCは最終セグメント受信まで各セグメントを保留し，最終テキスト受信後に終了させます。このとき，MHPはセグメント数分のrecvsyncを呼び出して各セグメントを受け取ります。

(2)　テキスト形態とUAPでのデータの扱い

TP1/NET/HSCのHSC2手順で扱うテキスト形態と，それぞれについてのUAPでのデータの扱いを説明します。各テキスト形態は，16進数字で表現します。テキスト形態の数値は，次に示すようにメッセージ送信時は送信領域に設定し，メッセージ受信時は受信領域に設定されます。送信領域，受信領域については，「4.　メッセージ送受信インタフェース」を参照してください。

メッセージ送信時
send関数またはsendsync関数を呼び出すときに，送信するメッセージセグメントの先頭に，ユーザがテキスト形態を設定します。
通常テキストのデータは，EBCDIKコードで作成します。

メッセージ受信時
receive関数またはrecvsync関数を呼び出して受信するメッセージセグメントの先頭に，TP1/NET/HSCがテキスト形態を設定します。

また，TP1/NET/HSCを使用するUAPでは，アプリケーション起動をされた場合も同様に，「(a)　テキスト形態の種別」に示すテキスト形態が設定されることを前提とします。したがって，TP1/NET/HSCを使用するUAPをアプリケーション起動する場合，テキスト形態を含めた形式でメッセージを編集する必要があります。

(a)　テキスト形態の種別

テキスト形態の種別を次の図に示します。

図3-10　テキスト形態の種別（HSC2手順）

UAPおよび通信管理でのデータの扱いをテキスト形態の種別ごとに次の表に示します。

表3-2　UAPおよび通信管理でのデータの扱い（HSC2手順）

項番
テキスト形態
種別
動作種別
データの扱い

1.
通常テキスト
UAP
送信
テキスト形態とヘッダを作成します。

TP1/NET/HSC
送信
テキスト形態を削除して通信管理へ送信要求をします。

受信
テキスト形態を付加します。

通信管理
送信
STX，ETX（またはETB）を付加します。

受信
STX，ETX（またはETB）を削除します。

2.
透過モードテキスト
UAP
送信
テキスト形態と透過データを作成します。

TP1/NET/HSC
送信
テキスト形態を削除して通信管理へ送信要求をします。

受信
テキスト形態を付加します。

通信管理
送信
DLE，STX，DLEおよびETX（またはETB）を付加します。

受信
DLE，STX，DLEおよびETX（またはETB）を削除します。

3.
回線接続要求テキスト
UAP
発信
ID交換をする場合，回線を接続するターミナルIDを設定し，sendで発信要求をします。TP1/NET/HSCは相手ターミナルIDに対応したダイヤル番号※で通信管理に発信要求をします。
ID交換をしない場合，相手システムのダイヤル番号※を設定し，sendで発信要求をします。相手システムのダイヤル番号※は，1から100けたの符号なし整数（アスタリスク(*)，プラス(+)，ピリオド(.)を含む）で指定します。

4.
接続情報通知テキスト
UAP
回線接続
ID交換をする場合，TP1/NET/HSCは，テキスト形態で回線接続の発信，着信の区分を通知します。接続した相手ターミナルIDは，ID交換時に相手システムから受信したIDをJIS8コードに変換して設定し，通知します。したがって，ユーザには1から15けたの英数字で通知されます。
ID交換をしない場合，テキスト形態だけ通知されます。

注※

ダイヤル番号の形式は次のとおりです。

V25.bisの場合：mmmmmmm

V21（通常発信）の場合：mmmmmmm+

V21（短縮ダイヤル，ペア型閉域）の場合：.nn+

mmmmmmm：1～100けたの符号なし整数です。

nn：通信管理で回線網に登録する番号です。

(b)　テキスト形態の数値表現と内容

送信するテキスト形態の数値表現と内容を表3-3に，受信するテキスト形態の数値表現と内容を表3-4に示します。

表3-3　送信するテキスト形態の数値表現と内容（HSC2手順）

項番
テキスト形態
数値表現（16進数字）
内容
注意事項

1.
通常テキスト
00000002※
通常テキスト送信
－

00010002
通常テキスト送信後，EOTを送信
ブロック分割をする場合，最終テキストで指定。

2.
透過モードテキスト
00000004※
透過モードテキスト送信
－

00010004
透過モードテキスト送信後，EOTを送信
ブロック分割をする場合，最終テキストで指定。

3.
EOT送信要求テキスト
00010000
EOT送信要求
単独テキストで指定。
受信モードの場合，指定できません。

4.
回線切断要求テキスト
00020000
回線切断要求
（DLE・EOT）
単独テキストで指定。

5.
回線接続要求テキスト
00030000
回線接続要求
単独テキストで指定。

（凡例）

－：ありません。

注※

非同期モードで使用できるテキスト形態です。

表3-4　受信するテキスト形態の数値表現と内容（HSC2手順）

項番 | テキスト形態 | 数値表現（16進数字） | 内容
1. | 通常テキスト | 00000002※ | 通常テキスト受信
2. | 透過モードテキスト | 00000004※ | 透過モードテキスト受信
3. | EOT受信テキスト | 00010000 | EOT受信
4. | 回線切断要求テキスト | 00020000 | 回線の切断
5. | 接続情報通知テキスト | 00040000 | 発信による回線接続
00050000 | 着信による回線接続

注※

非同期モードで使用できるテキスト形態です。

3.2　HSC2手順のAP間通信メッセージの送受信

TP1/NET/HSCは，AP間通信メッセージの送受信をします。TP1/NET/HSCで使用するメッセージは一方送信メッセージです。一方送信メッセージには，優先と一般があります。また，メッセージの送信と受信にはそれぞれ，単一セグメント，複数セグメント，および列信の場合があります。列信の場合は，優先の一方送信メッセージは使用しません。

ここでは，コネクションの確立，回線の接続が完了したあとのAP間通信のメッセージの流れを説明します。

HSC2手順の場合，回線が接続している間，次のどれかの状態になっています。ただし，HSC2手順（非同期モード）は回線維持モードだけです。

送信モード
発信によって回線を接続した場合にこのモードになります。送信モードの場合，sendsync関数でメッセージを送信する必要があります。

受信モード
着信によって回線を接続した場合にこのモードになります。受信モードの場合，recvsync関数でメッセージを受信する必要があります。

回線維持モード
回線が接続されていて，送信も受信もできる状態です。また，回線が切断されている状態を，回線切断モードといいます。

＜この節の構成＞

3.2.1　メッセージの送信

3.2.2　メッセージの受信

3.2.1　メッセージの送信

HSC2手順のTP1/NET/HSCが，相手システムにメッセージを送信した場合の処理の流れを説明します。

単一セグメントの場合のメッセージ送信の処理の流れを，非同期モードと同期モードの場合に分けて説明します。

＜この項の構成＞

(1)　非同期モードのメッセージの送信

(2)　同期モードのメッセージの送信

(1)　非同期モードのメッセージの送信

非同期モードの場合，列信でメッセージを送信するには，MCF通信構成定義（mcftalcle -w）のrowtransオペランドでuseを指定しておく必要があります。MCF通信構成定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（非同期モード）」を参照してください。

非同期モードの場合のメッセージ送信の処理の流れを，次の図に示します。

図3-11　HSC2手順（非同期モード）のメッセージ送信の流れ

注※

MCF通信構成定義でEOT交換をしないことを指定した場合，このEOTは送信されません。EOT交換については，「3.6.1　非同期モードのEOT交換」を参照してください。

MHPまたはSPPから，メッセージ送信のsend関数を呼び出します。send関数については，「4.　メッセージ送受信インタフェース」を参照してください。

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

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

相手システムへメッセージを送信します。

相手システムへの送信が完了した時点で，出力キューのメッセージを消去します。

1.のsend関数で送信完了通知イベントを通知させることを指定した場合，送信完了通知イベント（SCMPEVT）を通知します。また，正常に送信できなかった場合，send関数の指定によって送信障害通知イベント（SERREVT）を通知します。SERREVTについては，「付録B.2　HSC2手順（非同期モード）の障害」を参照してください。

TP1/NET/HSCは，EOTを送信します。

TP1/NET/HSCは，回線維持モードになります。

(2)　同期モードのメッセージの送信

同期モードの場合のメッセージ送信の処理の流れを，次の図に示します。

図3-12　HSC2手順（同期モード）のメッセージ送信の流れ

注※

MCF通信構成定義でEOT交換をしないことを指定した場合，このEOTは送信されません。EOT交換については，「3.6.2　同期モードのEOT交換」を参照してください。

TP1/NET/HSCは，送信モードです。

MHPはメッセージ送信のsendsync関数を呼び出します。sendsync関数については，「4.　メッセージ送受信インタフェース」を参照してください。

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

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

相手システムへメッセージを送信します。

TP1/NET/HSCは，2.のsendsyncがEOTなしの場合，送信完了を受け取ると送信モードになります。

TP1/NET/HSCは，2.のsendsyncがEOTありの場合，回線維持モードになるようにします。

TP1/NET/HSCは，回線維持モードになります。

MHPはメッセージ送信のsendsync関数を呼び出します。

回線維持モードのときにメッセージ送信の要求をすると，メッセージ送信ができるようにします。

TP1/NET/HSCは，9.のsendsyncがEOTありの場合，回線維持モードになるようにします。9.のsendsyncがEOTなしの場合，送信モードになります。

3.2.2　メッセージの受信

HSC2手順のTP1/NET/HSCが，相手システムからのメッセージを受信した場合の処理の流れを説明します。

単一セグメントの場合のメッセージ受信の処理の流れを，非同期モードと同期モードの場合に分けて説明します。

＜この項の構成＞

(1)　非同期モードのメッセージの受信

(2)　同期モードのメッセージの受信

(1)　非同期モードのメッセージの受信

非同期モードの場合のメッセージ受信の処理の流れを，次の図に示します。

図3-13　HSC2手順（非同期モード）のメッセージ受信の流れ

TP1/NET/HSCは，相手システムからメッセージを受信します。

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

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

MHPは，メッセージ受信のreceive関数を呼び出してメッセージを受信します。receive関数については，「4.　メッセージ送受信インタフェース」を参照してください。

TP1/NET/HSCは，相手システムへからEOTを受信します。

TP1/NET/HSCは，回線維持モードになります。

MCF通信構成定義でEOT交換をすることを指定した場合，EOT交換をして回線の維持をします。EOT交換については，「3.6.1　非同期モードのEOT交換」を参照してください。

(2)　同期モードのメッセージの受信

同期モードの場合のメッセージ受信の処理の流れを，次の図に示します。

図3-14　HSC2手順（同期モード）のメッセージ受信の流れ

注※

MCF通信構成定義でEOT交換をしないことを指定した場合，このEOTは送信しません。EOT交換については，「3.6.2　同期モードのEOT交換」を参照してください。

TP1/NET/HSCは，受信モードです。

TP1/NET/HSCは，相手システムからメッセージを受信します。

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

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

MHPは，メッセージ受信のrecvsync関数を呼び出してメッセージを受信します。recvsync関数については，「4.　メッセージ送受信インタフェース」を参照してください。

TP1/NET/HSCは，相手システムに受信完了を送信し，受信モードになります。

TP1/NET/HSCは，相手システムからEOTを受信します。

MHPは，recvsync関数を呼び出して，編集されたEOTを受信します。

TP1/NET/HSCは，回線維持モードになります。

MCF通信構成定義でEOT交換をすることを指定した場合，EOT交換をします。EOT交換については，「3.6.2　同期モードのEOT交換」を参照してください。

相手システムからのメッセージ送信要求で，メッセージの受信ができるようにします。

TP1/NET/HSCは，受信モードになり，メッセージを受信します。

MHPは，recvsync関数を呼び出して，メッセージを受信します。

TP1/NET/HSCは，受信モードになります。

3.3　HSC2手順の機能

TP1/NET/HSCは，HSC2手順のオプション機能のうち，次の表に示す範囲をサポートします。

表3-5　HSC2手順の機能とTP1/NET/HSCの扱い

HSC2手順の機能
使用の可否
TP1/NET/HSCの扱い

ブロック転送
○

UAPからのsendまたはsendsync（ESI）で送信要求された1セグメントを1ブロックとして相手システムに送信します。同期モードの場合，メッセージ送信は，sendsync（EMI）の送信完了で，相手システムとの同期がとられます。

相手システムから受信したメッセージテキストは，最終セグメントの受信までTP1/NET/HSCで保留し，最終セグメントの受信でＵＡＰを起動します。ユーザは，各ブロックを1セグメントとして受け取れます。

列信
○
非同期モードの場合，MCF通信構成定義（mcftalcle -w）で指定する値によってTP1/NET/HSCで制御します。
同期モードの場合，同期送受信によってUAPで制御します。

逆中断（RVI）
○
送信，受信の両方をサポートします。
受信の場合は，MCF通信構成定義（mcftalccn -u）で受理するかどうかを指定できます。

一時送信延期（TTD）
○
送信，受信の両方をサポートします。
送信の場合は，MCF通信構成定義（mcftalccn -B）でサポートするかどうかを指定できます。

一時受信抑止（WACK）
○

通常テキスト
○
送信，受信の両方をサポートします。

ヘッダ付きテキスト
×
サポートしません。

透過モードテキスト
○
送信，受信の両方をサポートします。

ヘッダ付き透過モードテキスト
×
サポートしません。

コンテンション制御
○
MCF通信構成定義（mcftalccn -y）で優先局，非優先局を指定できます。

制御付き会話
×
サポートしません。

EOT交換
○
EOT交換をして回線接続を維持します。

HSC2呼制御
○
発信と着信をサポートします。
ID交換をする場合，一度確定したIDの切り替えは回線の再接続が必要です。

（凡例）

○：TP1/NET/HSCのHSC2手順で使用できます。

×：TP1/NET/HSCのHSC2手順では使用できません。

3.4　回線リスト定義ユティリティ（非同期モード）

TP1/NET/HSCは，HSC2手順（非同期モード）の場合，回線リスト定義をあらかじめ指定しておく必要があります。

回線リストは，コネクションが管理する回線を指定しているリストです。回線リスト定義ユティリティは，回線リストファイルを作成するユティリティです。

回線リストファイルの作成順序を次に示します。

システム定義時に回線リスト定義で必要な項目を指定します。
回線リスト定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（非同期モード）」を参照してください。

1.で指定した内容を，回線リスト定義ユティリティのコマンドを使用してファイルを作成します。ファイルは，$DCCONFPATHのディレクトリ下に作成してください。
回線リスト定義ユティリティのコマンドについては，6章の「回線リスト定義－HSC2手順（非同期モード）」を参照してください。

3.5　相手ターミナルIDリスト定義ユティリティ（同期モード）

TP1/NET/HSCは，HSC2手順（同期モード）の場合，コネクションの確立時に，相手ターミナルIDリストファイルを取り込み，回線接続時に，相手システムとのIDを交換してメッセージの送受信を始めます。相手ターミナルIDリストファイルには，発信用と着信用があります。相手ターミナルIDリスト定義ユティリティは，相手ターミナルIDリストファイルを作成するユティリティです。

相手ターミナルIDリストファイルの作成順序を次に示します。

システム定義時に，発信用または着信用相手ターミナルIDリストの定義で必要な項目を指定します。
相手ターミナルIDリストの定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）」を参照してください。

1.で指定した内容を，相手ターミナルIDリスト定義ユティリティのコマンドを使用してファイルを作成します。ファイルは，$DCCONFPATHのディレクトリ下に作成してください。
相手ターミナルIDリスト定義ユティリティのコマンドについては，6章の「相手ターミナルIDリスト定義－HSC2手順（同期モード）の場合）」を参照してください。

3.6　EOT交換

HSC2手順では，EOT交換をして相手システムとの回線の接続状態を維持します。また，EOT交換をしないで，時間監視で回線を維持する方法もあります。

＜この節の構成＞

3.6.1　非同期モードのEOT交換

3.6.2　同期モードのEOT交換

3.6.1　非同期モードのEOT交換

非同期モードの場合に回線を維持するためのEOT交換について説明します。

＜この項の構成＞

(1)　EOT交換

(2)　EOT交換の抑止

(1)　EOT交換

HSC2手順（非同期モード）では，回線維持モードになったときにEOT交換をして，相手システムとの回線接続状態を維持します。EOT交換は，相手システムとEOTの送受信をすることで，回線接続状態を確認することです。MCF通信構成定義（mcftalccn -f）のeotctrlオペランドでuseを指定するか，またはこのオペランドを省略するとEOT交換をします。EOT交換中に送受信メッセージが発生すると，EOT交換を中断し，送受信処理をします。また，EOT交換の結果で回線が切断されると，MCF通信構成定義（mcftalccn -v）のdiscinfオペランドをuseに指定することで，回線維持終了通知として障害通知イベント（CERREVT）を通知します。MCF通信構成定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（非同期モード）」を参照してください。

非同期モードの場合のEOT交換の処理の流れを，メッセージ送信後と受信後に分けて，図3-15および図3-16に示します。

図3-15　非同期モードのメッセージ送信後のEOT交換

自システムのMHPまたはSPPから，send関数を呼び出し，相手システムにメッセージを送信します。

TP1/NET/HSCは，相手システムにEOTを送信し，回線維持モードになります。

相手システムから回線の維持をするEOTを受信します。

TP1/NET/HSCから回線の維持をするEOTを相手システムに送ります。

MCF通信構成定義（mcftalccn -f）のeotexlまたはeotexrオペランドで指定した回数のEOT交換をします。

指定した回数のEOT交換が終了すると，回線を切断します。

MCF通信構成定義（mcftalccn -v）のdiscinfオペランドでuseを指定すると，回線維持状態が終了し，回線が切断されたことを示す障害通知イベント（CERREVT）を通知します。

図3-16　非同期モードのメッセージ受信後のEOT交換

MHPは，receive関数を呼び出して，相手システムからのメッセージを受信します。

相手システムから，送信権放棄のEOTを受信します。TP1/NET/HSCは，回線維持モードになります。

TP1/NET/HSCから回線の維持をするEOTを相手システムに送ります。

相手システムから回線の維持をするEOTを受信します。

MCF通信構成定義（mcftalccn -f）のeotexlまたはeotexrオペランドで指定した回数のEOT交換をします。

指定した回数のEOT交換が終了すると，回線を切断します。

MCF通信構成定義（mcftalccn -v）のdiscinfオペランドでuseを指定すると，回線維持状態が終了し，回線が切断されたことを示す障害通知イベント（CERREVT）を通知します。

(2)　EOT交換の抑止

HSC2手順（非同期モード）は，MCF通信構成定義（mcftalccn -f）のeotctrlオペランドでnouseを指定すると，EOT交換をしないで，時間監視をして回線を維持します。このとき，MCF通信構成定義（mcftalccn -f）のholdtimeオペランドで指定した時間だけ，相手システムとの回線接続状態を維持します。指定した時間にメッセージの送受信がない場合は，接続中の回線を切断します。このとき，MCF通信構成定義（mcftalccn -v）のdiscinfオペランドでuseを指定すると，回線維持終了通知として障害通知イベント（CERREVT）を通知します。また，メッセージ送受信があった場合は，時間監視を中止し，通常のメッセージの送受信をします。MCF通信構成定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（非同期モード）」を参照してください。

3.6.2　同期モードのEOT交換

非同期モードの場合に回線を維持するためのEOT交換について説明します。

＜この項の構成＞

(1)　EOT交換

(2)　EOT交換の抑止

(1)　EOT交換

HSC2手順（同期モード）では，回線維持モードになったときにEOT交換をして，相手システムとの回線接続状態を維持します。EOT交換は，相手システムとEOTの送受信をすることで，回線接続状態を確認することです。EOT交換中に送受信メッセージが発生すると，EOT交換を中断し，送信モードまたは受信モードになります。MCF通信構成定義（mcftalccn -f）のeotctrlオペランドでuseを指定するか，またはこのオペランドを省略するとEOT交換をします。MCF通信構成定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）」を参照してください。

同期モードの場合のEOT交換の処理の流れを，メッセージ送信後と受信後に分けて，図3-17および図3-18に示します。

図3-17　同期モードのメッセージ送信後のEOT交換

自システムのMHPから，関数の終了を示すEOTありのsendsync関数を呼び出します。

TP1/NET/HSCは，相手システムにEOTを送信し，回線維持モードになります。

相手システムから回線の維持をするEOTを受信します。

TP1/NET/HSCから回線の維持をするEOTを相手システムに送ります。

MCF通信構成定義（mcftalccn -f）のeotexlまたはeotexrオペランドで指定した回数のEOT交換をします。

指定した回数のEOT交換が終了すると，回線を切断します。

図3-18　同期モードのメッセージ受信後のEOT交換

相手システムから，送信権放棄のEOTを受信します。TP1/NET/HSCは，回線維持モードになります。

TP1/NET/HSCから回線の維持をするEOTを相手システムに送ります。

相手システムから回線の維持をするEOTを受信します。

MCF通信構成定義（mcftalccn -f）のeotexlまたはeotexrオペランドで指定した回数のEOT交換をします。

指定した回数のEOT交換が終了すると，回線を切断します。

(2)　EOT交換の抑止

HSC2手順（同期モード）は，MCF通信構成定義（mcftalccn -f）のeotctrlオペランドでnouseを指定すると，EOT交換をしないで，時間監視をして回線を維持します。このとき，MCF通信構成定義（mcftalccn -f）のholdtimeオペランドで指定した時間だけ，相手システムとの回線接続状態を維持します。指定した時間にメッセージの送受信がない場合は，接続中の回線を正常に切断します。また，メッセージ送受信があった場合は，時間監視を中止し，通常のメッセージの送受信をします。MCF通信構成定義については，6章の「TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）」を参照してください。

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

TP1/NET/HSCを使用してメッセージを送受信する場合，ユーザは個別の業務に対応させるため，UAPを作成します。UAPは，C言語またはCOBOL言語で作成できます。TP1/NET/HSCは，UAPの作成，運用を支援しています。この章では，TP1/NET/HSCに関連するメッセージ送受信のユーザアプリケーションプログラムのインタフェースについて説明します。

＜この章の構成＞

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

dc_mcf_receive － メッセージまたは接続情報通知の受信（C言語）

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

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

dc_mcf_send － 一方送信メッセージまたは回線接続要求の送信（C言語）

dc_mcf_sendsync － 同期型のメッセージの送信（C言語）

CBLDCMCF('RECEIVE ') － メッセージまたは接続情報通知の受信（COBOL言語）

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

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

CBLDCMCF('SEND ') － 一方送信メッセージまたは回線接続要求の送信（COBOL言語）

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

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

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

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

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

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

TP1/NET/HSCでは，手順によって使用できる関数の種類と，使用する関数の意味が違います。詳細については，該当する関数の説明を参照してください。

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

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

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

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

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

関数名 | 使用できる手順 | 機能
dc_mcf_receive | HSC1，HSC2（非同期モード） | メッセージの受信
HSC2（同期モード） | 接続情報通知の受信
dc_mcf_recvsync | HSC2（同期モード） | 同期型のメッセージの受信
dc_mcf_resend | HSC1，HSC2（非同期モード） | メッセージの再送
dc_mcf_send | HSC1，HSC2（非同期モード） | 一方送信メッセージの送信
HSC2（同期モード） | 回線接続要求の送信
dc_mcf_sendsync | HSC2（同期モード） | 同期型のメッセージの送信

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

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

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

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

表4-2　メッセージ送受信の通信文（COBOL言語）

プログラム名 | データ名 | 使用できる手順 | 機能
CBLDCMCF | 'RECEIVE△' | HSC1，HSC2（非同期モード） | メッセージの受信
HSC2（同期モード） | 接続情報通知の受信
'RECVSYNC' | HSC2（同期モード） | 同期型のメッセージの受信
'RESEND△△' | HSC1，HSC2（非同期モード） | メッセージの再送
'SEND△△△△' | HSC1，HSC2（非同期モード） | 一方送信メッセージの送信
HSC2（同期モード） | 回線接続要求の送信
'SENDSYNC' | HSC2（同期モード） | 同期型のメッセージの送信

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

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

データ操作言語（COBOL言語）を使用した，メッセージ送受信の通信文について説明します。

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

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

通信文 | 使用できる手順 | 機能 | 対応するCALLインタフェース
データコミュニケーション機能 | RECEIVE | HSC1，HSC2（非同期モード） | メッセージの受信 | CBLDCMCF('RECEIVE△')
HSC2（同期モード） | 接続情報通知の受信
HSC2（同期モード） | 同期型のメッセージの受信 | CBLDCMCF('RECVSYNC')
SEND | HSC1，HSC2（非同期モード） | 一方送信メッセージの送信 | CBLDCMCF('SEND△△△△')
HSC2（同期モード） | 回線接続要求の送信
HSC2（同期モード） | 同期型のメッセージの送信 | CBLDCMCF('SENDSYNC')

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

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;

機能

HSC1手順またはHSC2手順（非同期モード）の場合，相手システムから送信されたメッセージを受信します。

HSC2手順（同期モード）の場合，相手システムからの接続情報通知を受信します。

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

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

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

MCFイベント

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

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

UAPで値を設定する引数

●action

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

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

DCMCFFRST

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

接続情報通知を受信する場合も，DCMCFFRSTを設定します。

DCMCFSEG

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

DCMCFBUF1

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

DCMCFBUF2

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

●commform

DCNOFLAGSを設定します。

●termnam

先頭セグメントを受信する場合は，入力元の論理端末名称が返される領域を設定します。dc_mcf_receive関数が終了すると，入力元の論理端末名称が返されます。論理端末名称の長さは最大8バイトです。論理端末名称の後ろにはヌル文字が付けられます。

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

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

●resv01

ヌル文字を設定します。

●recvdata

セグメントを受信する領域を設定します。受信できるセグメントの長さの最大値は，通信管理の受信する最大セグメント長にテキスト形態の4バイトを加えた値です。

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

●inbufleng

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

OpenTP1から値が返される引数

●termnam

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

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

●recvdata

次に示す内容が返されます。

【HSC1手順またはHSC2手順（非同期モード）の場合】

テキスト形態と受信したセグメントの内容

【HSC2手順（同期モード）でIDを交換する場合】

テキスト形態と相手ターミナルID

【HSC2手順（同期モード）でIDを交換しない場合】

テキスト形態

●rdataleng

recvdataで返される内容の長さが返されます。

●time

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

リターン値

リターン値
意味

DCMCFRTN_00000
正常に終了しました。

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

DCMCFRTN_71001
メッセージの最終セグメントを受信したあとで，次のセグメントを受信するdc_mcf_receive関数を呼び出しています。直前に呼び出したdc_mcf_receive関数でメッセージはすべて受信しました。
このリターン値が返されたあとに，再びdc_mcf_receive関数を呼び出した場合は，リターン値DCMCFRTN_72000が返されます。

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

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

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

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

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

＜SPPの実行でリターンした場合＞
SPPではdc_mcf_receive関数を呼び出せません。

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

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

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

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

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

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

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

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

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

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

形式

ANSI C，C++の形式

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

K&R版Cの形式

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

機能

TP1/NET/HSCでは，HSC2手順（同期モード）のメッセージの受信に使用します。

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

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

UAPで値を設定する引数

●action

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

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

DCMCFFRST

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

メッセージが単一セグメントの場合も，DCMCFFRSTを設定します。

次のメッセージの先頭セグメントを受信する場合も，DCMCFFRSTを設定します。

DCMCFSEG

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

DCMCFBUF1

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

DCMCFBUF2

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

●commform

DCNOFLAGSを設定します。

●termnam

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

●resv01

ヌル文字を設定します。

●recvdata

セグメントを受信する領域を設定します。受信できるセグメントの長さの最大値は，通信管理の受信する最大セグメント長にテキスト形態の4バイトを加えた値です。

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

●inbufleng

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

●watchtime

この引数の設定は無効です。0を設定しておいてください。また，MCFマネジャ定義のUAP共通定義で同期受信監視時間を指定しても，時間監視をしません。

OpenTP1から値が返される引数

●recvdata

テキスト形態と受信したセグメントの内容が返されます。

●rdataleng

テキスト形態と受信したセグメントの長さが返されます。

●time

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

リターン値

リターン値
意味

DCMCFRTN_00000
正常に終了しました。

DCMCFRTN_71001
メッセージの最終セグメントを受信したあとで，その次のセグメントを受信するdc_mcf_recvsync関数を呼び出しています。直前に呼び出したdc_mcf_recvsync関数でそのメッセージはすべて受信しました。
このリターン値が返されたあとに，再び次のセグメントを受信するdc_mcf_recvsync関数を呼び出した場合は，リターン値DCMCFRTN_72000が返されます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DCMCFRTN_73001
入力元の論理端末で障害が発生しました。

DCMCFRTN_73002
dc_mcf_recvsync関数の処理中に，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

dc_mcf_recvsync関数が呼び出されるまでに，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

DCMCFRTN_73008
入力元の論理端末は，次のコマンドで停止しています。

mcftdctle

mcftdctcn

DCMCFRTN_73015
メッセージ入力元の論理端末は，ほかのUAPで仕掛り中です。

メッセージ入力元の論理端末は，該当するUAPと仕掛り中ではありません。

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

DCMCFRTN_73020
設定した論理端末は停止しています。

DCMCFRTN_77900
同期受信要求の保留中に，回線維持モードが終了しました。

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

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;

機能

HSC1手順またはHSC2手順（非同期モード）の場合に使用できます。

以前に送信したメッセージを，再び送信します。再送するメッセージは，以前に送信したメッセージとは別の，新しいメッセージとして扱います。どのメッセージを再送するかは，次に示す送信済みメッセージの情報で選択できます。

出力先の論理端末名称

メッセージ通番

メッセージ種別（一般一方送信または優先一方送信）

対象としたメッセージが以前に送信されていない場合は，dc_mcf_resend関数はリターン値DCMCFRTN_NOMSGを返します。また，メッセージキュー（ディスクキュー）内に対象のメッセージがない場合も，リターン値DCMCFRTN_NOMSGを返します。このため，使用するメッセージキューの種別ではディスクキューを指定するとともに，メッセージキューの大きさの定義は余裕を持った値を指定してください。

UAPで値を設定する引数

●action

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

{DCMCFSEQ|DCMCFNSEQ}〔|{DCMCFNORM|DCMCFPRIO}〕〔|DCMCFLAST〕

DCMCFSEQ

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

DCMCFNSEQ

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

DCMCFNORM

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

DCMCFPRIO

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

DCMCFLAST

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

●commform

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

●rtermnam

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

●resv01

ヌル文字を設定します。

●oseqid

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

DCMCFRID_NORM

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

DCMCFRID_PRIO

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

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

●orgseq

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

●otermnam

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

●resv02，resv03，resv04

ヌル文字を設定します。

●opcd

DCNOFLAGSを設定します。

リターン値

リターン値
意味

DCMCFRTN_00000
正常に終了しました。

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

DCMCFRTN_BUF_SHORT
再送するメッセージのセグメントの長さが，UAP共通定義（mcfmuap -e）で指定した値を超えています。

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

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

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

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

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

DCMCFRTN_71004
メッセージキューから取り出したメッセージを格納するバッファ（作業領域）を，メモリ上に確保できませんでした。

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

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

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

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

非トランザクション属性のMHPから，dc_mcf_resend関数を呼び出しています。

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

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

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

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

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

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

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

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

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

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

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

機能

HSC1手順またはHSC2手順（非同期モード）の場合，相手システムへメッセージを送信します。

HSC2手順（同期モード）の場合，相手システムへ回線接続要求を送信します。

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

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

UAPで値を設定する引数

●action

メッセージの最終セグメントを送信するかどうか，優先か一般か，出力通番を付けるかどうか，使用するバッファ形式，および送信完了通知イベント・送信障害通知イベントを通知させるかどうかを，次の形式で設定します。

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

DCMCFESI

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

DCMCFEMI

最終セグメントを送信する場合に設定します。

メッセージが単一セグメントの場合も，DCMCFEMIを設定します。

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

回線接続要求を送信する場合にも，DCMCFEMIを設定します。

DCMCFNORM

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

DCMCFPRIO

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

DCMCFSEQ

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

DCMCFNSEQ

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

DCMCFBUF1

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

DCMCFBUF2

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

DCMCFSEVT

送信完了通知イベントおよび送信障害通知イベントを通知させるときに設定します。ただし，これらのイベントを処理するMHPをMCFアプリケーション定義で指定していない場合は無効です。

メッセージが複数のセグメントで構成されている場合，先頭セグメントの送信時の指定が有効になります。

●commform

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

●termnam

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

●resv01

ヌル文字を設定します。

●senddata

次に示す内容を設定した領域を設定します。

【HSC1手順またはHSC2手順（非同期モード）の場合】

テキスト形態と送信するセグメントの内容

【HSC2手順（同期モード）でIDを交換する場合】

テキスト形態と相手ターミナルID

【HSC2手順（同期モード）でIDを交換しない場合】

テキスト形態と相手ダイヤル番号

送信できるセグメントの長さの最大値は，通信管理が送信する最大セグメント長にテキスト形態の4バイトを加えた値です。

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

●sdataleng

senddataで設定する内容の長さを設定します。

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

●resv02

ヌル文字を設定します。

●opcd

DCNOFLAGSを設定します。

リターン値

リターン値
意味

DCMCFRTN_00000
正常に終了しました。

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

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

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

単一セグメント送信時，sdatalengに32000バイトを超える値を設定しています。

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

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

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

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

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

DCMCFRTN_72000
＜MHPの実行でリターンした場合＞
先頭セグメントを受信するdc_mcf_receive関数を呼び出す前に，dc_mcf_send関数を呼び出しています。

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

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

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

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

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

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

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

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

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

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

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

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

DCMCFRTN_72041
sdatalengに0以下の値を設定しています。

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

dc_mcf_sendsync － 同期型のメッセージの送信（C言語）

形式

ANSI C，C++の形式

＃include <dcmcf.h>
int  dc_mcf_sendsync (DCLONG  action, DCLONG  commform,
                     char  *termnam, char  *resv01,
                     char  *senddata, DCLONG  sdataleng,
                     char  *resv02, DCLONG  opcd，
                     DCLONG  watchtime)

K&R版 Cの形式

＃include <dcmcf.h>
int dc_mcf_sendsync (action, commform, termnam, resv01,
                    senddata, sdataleng, resv02, opcd,
                    watchtime)
DCLONG            action;
DCLONG            commform;
char              *termnam;
char              *resv01;
char              *senddata;
DCLONG            sdataleng;
char              *resv02;
DCLONG            opcd;
DCLONG            watchtime;

機能

TP1/NET/HSCでは，HSC2手順（同期モード）のメッセージの送信に使用します。

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

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

UAPで値を設定する引数

●action

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

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

DCMCFESI

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

DCMCFEMI

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

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

DCMCFBUF1

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

DCMCFBUF2

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

●commform

DCNOFLAGSを設定します。

●termnam

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

●resv01

ヌル文字を設定します。

●senddata

テキスト形態と送信するセグメントの内容を設定した領域を設定します。送信できるセグメントの長さの最大値は，通信管理が送信する最大セグメント長にテキスト形態の4バイトを加えた値です。

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

●sdataleng

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

●resv02

ヌル文字を設定します。

●opcd

DCNOFLAGSを設定します。

●watchtime

この引数の設定は無効です。0を設定しておいてください。また，MCFマネジャ定義のUAP共通定義で同期送信監視時間を指定しても，時間監視をしません。

リターン値

リターン値
意味

DCMCFRTN_00000
正常に終了しました。

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

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

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

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

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

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

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

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

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

DCMCFRTN_72005
先頭セグメントまたは中間セグメント送信時，sdatalengに0以下の値を設定しています。

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

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

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

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

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

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

DCMCFRTN_72041
単一セグメント送信時，sdatalengに0以下の値を設定しています。

DCMCFRTN_73001
出力先の論理端末で障害が発生しました。

DCMCFRTN_73002
dc_mcf_sendsync関数の処理中に，出力先の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

dc_mcf_sendsync関数が呼び出されるまでに，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

DCMCFRTN_73003
同期送信要求（メッセージ）時，メッセージ出力先論理端末から，メッセージ受信要求が発生しました。

DCMCFRTN_73008
出力先の論理端末は，次のコマンドで停止しています。

mcftdctle

mcftdctcn

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

メッセージ読み込み時に障害が発生しました。

DCMCFRTN_73015
メッセージ出力先の論理端末は，ほかのUAPで仕掛り中です。

メッセージ出力先の論理端末は，該当するUAPと仕掛り中ではありません。

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

DCMCFRTN_73020
出力先の論理端末は停止しています。

DCMCFRTN_77901
同期送信要求（メッセージ）時，メッセージ出力先論理端末から，EOTを受信しました。

DCMCFRTN_77902
同期送信要求（EOT）時，メッセージ出力先論理端末から，EOTを受信しました。

DCMCFRTN_77903
同期送信要求（メッセージ）時，メッセージ出力先論理端末からのRVIを受理しました。メッセージの送信は正常に終了しました。

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

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

機能

HSC1手順またはHSC2手順（非同期モード）の場合，相手システムから送信されたメッセージを受信します。

HSC2手順（同期モード）の場合，相手システムからの接続情報通知を受信します。

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

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

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

MCFイベント

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

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

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

●データ名A

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

●データ名C

メッセージの先頭セグメントを受信するかどうかを設定します。次のどちらかを設定します。

VALUE 'FRST'

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

接続情報通知を受信する場合も，「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)

テキスト形態とデータZで返される内容の長さが返されます。

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

テキスト形態とデータZで返される内容の長さ＋4が返されます。

●データ名Y

受信したメッセージのテキスト形態が返されます。

●データ名Z

次に示す内容が返されます。

【HSC1手順またはHSC2手順（非同期モード）の場合】

受信したセグメントの内容

【HSC2手順（同期モード）でIDを交換する場合】

相手ターミナルID

【HSC2手順（同期モード）でIDを交換しない場合】

返される内容はありません。

受信できるセグメントの長さの最大値は，通信管理の受信する最大セグメント長にテキスト形態の４バイトを加えた値です。

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

71000
先頭セグメントを受信するCBLDCMCF('RECEIVE△')を2回以上呼び出しています。中間セグメントまたは最終セグメントを受信する場合は，データ名Cに「VALUE 'SEG△'」を設定してCBLDCMCF('RECEIVE△')を呼び出してください。

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

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

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

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

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

先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に，中間セグメントまたは最終セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出しています。先頭セグメントを受信する場合は，データ名Cに「VALUE 'FRST'」を設定してCBLDCMCF('RECEIVE△')を呼び出してください。

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

＜SPPの実行でリターンした場合＞
SPPではCBLDCMCF('RECEIVE△')を呼び出せません。

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

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

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

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

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

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

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

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

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

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

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

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

形式

PROCEDURE DIVISIONの指定

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

DATA DIVISIONの指定

01 一意名1.
  02 データ名A  PIC X(8)  VALUE 'RECVSYNC'.
  02 データ名B  PIC X(5).
  02 FILLER    PIC X(3).
  02 データ名C  PIC X(4).
  02 データ名D  PIC X(4)  VALUE SPACE.
  02 データ名E  PIC 9(8).
  02 データ名F  PIC 9(8).
  02 データ名G  PIC 9(9)  COMP.
  02 データ名H  PIC X(4)  VALUE SPACE.
  02 データ名I  PIC X(4)  VALUE SPACE.
  02 データ名J  PIC X(4)  VALUE SPACE.
  02 データ名K  PIC X(4)  VALUE SPACE.
  02 データ名L  PIC X(8)  VALUE SPACE.
  02 データ名M1 PIC X(4)  VALUE SPACE.
  02 データ名M2 PIC X(8)  VALUE SPACE.
  02 データ名M3 PIC X(4)  VALUE SPACE.
  02 データ名M4 PIC 9(9)  COMP VALUE ZERO.
  02 データ名M5 PIC 9(9)  COMP 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).
  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 データ名X  PIC X(1).
  02 データ名Y  PIC X(4).
  02 データ名Z  PIC X(n).

機能

TP1/NET/HSCでは，HSC2手順（同期モード）のメッセージの受信に使用します。

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

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

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

●データ名A

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

●データ名C

メッセージの先頭セグメントを受信するかどうかを設定します。次のどちらかを設定します。

VALUE 'FRST'

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

メッセージが単一セグメントの場合も，「VALUE 'FRST'」を設定します。

次のメッセージの先頭セグメントを受信する場合も，「VALUE 'FRST'」を設定します。

VALUE 'SEG△'

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

●データ名D

空白を設定します。

●データ名G

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

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

空白を設定します。

●データ名M4

0を設定します。

●データ名M5

このデータ領域は無効です。0を設定しておいてください。また，MCFマネジャ定義のUAP共通定義で同期受信監視時間を指定しても，時間監視をしません。

●データ名M6

空白を設定します。

●データ名M7

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

VALUE '1'

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

VALUE '2'

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

空白

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

●データ名N

MCFで使用する領域です。

●データ名O

空白を設定します。

●データ名P

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

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

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名V

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

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

MCFで使用する領域です。

●データ名X

MCFで使用する領域です。

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

●データ名B

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

●データ名E

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

●データ名F

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

●データ名U

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

テキスト形態と受信したセグメントの長さが返されます。

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

テキスト形態と受信したセグメントの長さ＋4が返されます。

●データ名Y

受信したメッセージのテキスト形態が返されます。

●データ名Z

受信したセグメントの内容が返されます。受信できるセグメントの長さの最大値は，通信管理の受信する最大セグメント長にテキスト形態の４バイトを加えた値です。

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

73001
入力元の論理端末で障害が発生しました。

73002
CBLDCMCF('RECVSYNC')の処理中に，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

CBLDCMCF('RECVSYNC')が呼び出されるまでに，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

73008
入力元の論理端末は，次のコマンドで停止しています。

mcftdctle

mcftdctcn

73015
入力元の論理端末は，ほかのUAPで仕掛り中です。

入力元の論理端末は，該当するUAPと仕掛り中ではありません。

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

73020
設定した論理端末は停止しています。

77900
同期受信要求の保留中に，回線維持モードが終了しました。

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

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.

機能

HSC1手順またはHSC2手順（非同期モード）の場合に使用できます。

以前に送信したメッセージを，再び送信します。再送するメッセージは，以前に送信したメッセージとは別の，新しいメッセージとして扱います。どのメッセージを再送するかは，次に示す送信済みメッセージの情報で選択できます。

出力先の論理端末名称

メッセージ通番

メッセージ種別（一般の一方送信，優先の一方送信）

対象としたメッセージが以前に送信されていない場合は，CBLDCMCF('RESEND△△')はステータスコード70904を返します。また，メッセージキュー（ディスクキュー）内に対象のメッセージがない場合も，ステータスコード70904を返します。このため，使用するメッセージキューの種別ではディスクキューを指定するとともに，メッセージキューの大きさの定義は余裕を持った値を指定してください。

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

●データ名A

メッセージの再送を示す要求コードを「VALUE 'RESEND△△'」と設定します。

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

空白を設定します。

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

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H，データ名I

空白を設定します。

●データ名J

一般として再送するか優先として再送するかを設定します。

VALUE 'NORM'

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

VALUE 'PRIO'

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

空白

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

●データ名K

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

VALUE 'SEQ△'

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

VALUE 'NSEQ'

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

空白

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

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

空白を設定します。

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

0を設定します。

●データ名M6，データ名M7

空白を設定します。

●データ名N

MCFで使用する領域です。

●データ名O

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

●データ名P

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

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

空白を設定します。

●データ名S

MCFで使用する領域です。

●データ名T

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

●データ名U

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

VALUE 'NORM'

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

VALUE 'PRIO'

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

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

空白

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

●データ名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オプションでは，セグメントの最大長よりも大きな値を設定しておいてください。

-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 データ名Y  PIC X(4).
  02 データ名Z  PIC X(n).

機能

HSC1手順またはHSC2手順（非同期モード）の場合，相手システムへメッセージを送信します。

HSC2手順（同期モード）の場合，相手システムへ回線接続要求を送信します。

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

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

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

●データ名A

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

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

空白を設定します。

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

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H

メッセージの最終セグメントを送信するかどうかを設定します。次のどちらかを設定します。

VALUE 'ESI△'

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

VALUE 'EMI△'

最終セグメントを送信する場合や，メッセージが単一セグメントの場合に，「VALUE 'EMI△'」を設定します。

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

回線接続要求を送信する場合にも，「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)

テキスト形態とデータ名Zで設定する内容のセグメントの長さを設定します。メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，0を設定してください。

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

テキスト形態とデータ名Zで設定する内容のセグメントの長さ＋4を設定します。メッセージの送信の終了を連絡する場合で，セグメントの内容がないときは，4を設定してください。

●データ名V

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

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

領域の2⁴ビットに1を設定
送信完了通知イベントまたは送信障害通知イベントを通知させるときに設定します。ただし，これらのイベントを処理するMHPをMCFアプリケーション定義で指定していない場合は無効です。
メッセージが複数のセグメントで構成される場合，先頭セグメント送信時の指定が有効になります。

領域の2⁴ビットに0を設定
送信完了通知イベントまたは送信障害通知イベントを通知させません。

データ名Vとビットの設定位置の関係を次に示します。

注※

Xの値は次のとおりです。

【バッファ形式1の場合】　X=63

【バッファ形式2の場合】　X=15

●データ名Y

送信メッセージのテキスト形態を設定します。

●データ名Z

次に示す内容を設定します。

【HSC1手順またはHSC2手順（非同期モード）の場合】

送信するセグメントの内容

【HSC2手順（同期モード）でIDを交換する場合】

相手ターミナルID

【HSC2手順（同期モード）でIDを交換しない場合】

相手ダイヤル番号

送信できるセグメントの長さの最大値は，通信管理が送信する最大セグメント長にテキスト形態の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△△△△')を呼び出せない論理端末を設定しています。

72005
バッファ形式1の先頭セグメントまたは中間セグメント送信時，データ名Uに0以下の値を設定しています。または，バッファ形式2の先頭セグメントまたは中間セグメント送信時，データ名Uに4以下の値を設定しています。

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

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

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

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

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

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

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

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

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

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

72041
バッファ形式1の単一セグメント送信時，データ名Uに0以下の値を設定しています。または，バッファ形式2の単一セグメント送信時，データ名Uに4以下の値を設定しています。

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

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

形式

PROCEDURE DIVISIONの指定

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

DATA DIVISIONの指定

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

機能

TP1/NET/HSCでは，HSC2手順（同期モード）のメッセージの送信に使用します。

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

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

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

●データ名A

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

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

空白を設定します。

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

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H

メッセージの最終セグメントを送信するかどうかを設定します。次のどちらかを設定します。

VALUE 'ESI△'

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

VALUE 'EMI△'

最終セグメントを送信する場合や，メッセージが単一セグメントの場合に，「VALUE 'EMI△'」を設定します。

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

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

空白を設定します。

●データ名M4

0を設定します。

●データ名M5

このデータ領域は無効です。0を設定しておいてください。また，MCFマネジャ定義のUAP共通定義で同期送信監視時間を指定しても，時間監視をしません。

●データ名M6

空白を設定します。

●データ名M7

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

VALUE '1'

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

VALUE '2'

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

空白

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

●データ名N

MCFで使用する領域です。

●データ名O

空白を設定します。

●データ名P

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

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

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名U

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

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

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

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

●データ名V

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

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

MCFで使用する領域です。

●データ名Y

送信するメッセージのテキスト形態を設定します。

●データ名Z

送信するセグメントの内容を設定します。送信できるセグメントの長さの最大値は，通信管理が送信する最大セグメント長にテキスト形態の4バイトを加えた値です。

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

●データ名B

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

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

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

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

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

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

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

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

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

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

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

72005
バッファ形式1の先頭セグメントまたは中間セグメント送信時，データ名Uに0以下の値を設定しています。または，バッファ形式2の先頭セグメントまたは中間セグメント送信時，データ名Uに4以下の値を設定しています。

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

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

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

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

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

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

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

72041
バッファ形式1の単一セグメント送信時，データ名Uに0以下の値を設定しています。または，バッファ形式2の単一セグメント送信時，データ名Uに4以下の値を設定しています。

73001
出力先の論理端末で障害が発生しました。

73002
CBLDCMCF('SENDSYNC')の処理中に，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

CBLDCMCF('SENDSYNC')が呼び出されるまでに，出力先の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

73003
同期送信要求（メッセージ）時，メッセージ出力先論理端末から，メッセージ受信要求が発生しました。

73008
出力先の論理端末は，次のコマンドで停止しています。

mcftdctle

mcftdctcn

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

メッセージ読み込み時に障害が発生しました。

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

出力先の論理端末は，該当するUAPと仕掛り中ではありません。

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

73020
出力先の論理端末は停止しています。

77901
同期送信要求（メッセージ）時，メッセージ出力先論理端末から，EOTを受信しました。

77902
同期送信要求（EOT）時，メッセージ出力先論理端末から，EOTを受信しました。

77903
同期送信要求（メッセージ）時，メッセージ出力先論理端末からのRVIを受理しました。メッセージの送信は正常に終了しました。

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

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

形式

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

CD 通信記述名
  FOR {INPUT | I-O}
 〔STATUS KEY IS データ名1〕
 〔SYMBOLIC TERMINAL IS データ名2〕
 〔MESSAGE DATE IS データ名3〕
 〔MESSAGE TIME IS データ名4〕
 〔SYNCHRONOUS MODE IS {SYNC | データ名6}〕
 〔WAITING TIME IS データ名11〕.

PROCEDURE DIVISION（通信文）の指定

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

機能

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

【HSC1手順またはHSC2手順（非同期モード）の場合】

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

【HSC2手順（同期モード）の場合】

接続情報通知の受信　CBLDCMCF('RECEIVE△')

同期型のメッセージの受信　CBLDCMCF('RECVSYNC')

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

●FOR句

次のどちらかの値を指定します。

INPUT

メッセージの受信，または接続情報通知の受信

I-O

メッセージの受信，接続情報通知の受信，または同期型のメッセージの受信

●STATUS KEY句

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

●SYMBOLIC TERMINAL句

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

●MESSAGE DATE句

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

●MESSAGE TIME句

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

●SYNCHRONOUS MODE句

同期型のメッセージを受信する場合に指定します。次のどちらかの値を指定してください。

SYNC

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

データ名6

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

'1'…同期型のメッセージの受信

指定を省略した場合は，非同期型のメッセージの受信，または接続情報通知の受信が設定されます。

●WAITING TIME句

この句の指定は無効です。0を指定しておいてください。また，MCFマネジャ定義のUAP共通定義で同期受信監視時間を指定しても，時間監視をしません。

通信文に指定する項目

●FIRST

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

●一意名1

セグメントを受信するデータ項目を指定します。相手システムから送信されるセグメントの最大長は31966バイトです。一意名1の形式を次に示します。

テキスト形態の次に続く領域には，次に示す内容が返されます。

【HSC1手順またはHSC2手順（非同期モード）の場合】

受信したセグメントの内容

【HSC2手順（同期モード）でIDを交換する場合】

相手ターミナルID

【HSC2手順（同期モード）でIDを交換しない場合】

返される内容はありません。

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

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

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

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

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

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

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

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

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

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

非同期型のメッセージの先頭セグメントを受信するRECEIVE文を実行する前に，そのほかのセグメントを受信するRECEIVE文を実行しています。

ステータスコード71000が返されたあとで，再び非同期型のメッセージを受信するRECEIVE文を実行しています。

＜SPPの実行でリターンした場合＞
SPPでは非同期型のメッセージを受信するRECEIVE文を実行できません。

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

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

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

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

72016
WAITING TIME句に設定した値が間違っています。

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

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

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

73001
入力元の論理端末で障害が発生しました。

73002
同期型のメッセージを受信しているときに，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

同期型のメッセージを受信するまでに，入力元の論理端末とMCFとの間のコネクションまたは経路が切り離されました。

73008
入力元の論理端末は，次のコマンドで停止しています。

mcftdctle

mcftdctcn

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

メッセージ読み込み時に障害が発生しました。

73015
入力元の論理端末は，ほかのUAPで仕掛り中です。

入力元の論理端末は，該当するUAPと仕掛り中ではありません。

73018
同期型のメッセージ受信を発行したときに，データ名11に設定した監視時間が間違っています。

73020
設定した論理端末は停止しています。

77900
同期受信要求の保留中に，回線維持モードが終了しました。

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

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

形式1（セグメントの内容を設定して送信する場合，または回線接続要求を送信する場合）

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

CD 通信記述名
  FOR {OUTPUT | I-O}
 〔STATUS KEY IS データ名1〕
 〔SYMBOLIC TERMINAL IS データ名2〕
 〔SYNCHRONOUS MODE IS {SYNC | ASYNC | データ名6}〕
 〔SWITCHING MODE IS {NORMAL | PRIOR | データ名7}〕
 〔DETAIL MODE IS データ名10〕
 〔WAITING TIME IS データ名11〕.

PROCEDURE DIVISION（通信文）の指定

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

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

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

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

PROCEDURE DIVISION（通信文）の指定

SEND 通信記述名  WITH EMI.

機能

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

【HSC1手順またはHSC2手順（非同期モード）の場合】

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

【HSC2手順（同期モード）の場合】

回線接続要求の送信　CBLDCMCF('SEND△△△△')

同期型のメッセージの送信　CBLDCMCF('SENDSYNC')

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

●FOR句

次のどちらかの値を指定します。

OUTPUT

一方送信メッセージ，または回線接続要求の送信の送信

I-O

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

●STATUS KEY句

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

●SYMBOLIC TERMINAL句

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

●SYNCHRONOUS MODE句

メッセージ送信が同期型か非同期型かを指定します。

SYNC

同期型のメッセージ送信

同期型のメッセージの送信の場合に設定します。

ASYNC

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

一方送信メッセージ，または回線接続要求の送信の場合に設定します。

データ名6

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

'0'…非同期型のメッセージ送信

'1'…同期型のメッセージ送信

指定を省略した場合は，非同期型のメッセージ送信（ASYNC）が設定されます。

●SWITCHING MODE句

一方送信メッセージの場合に，一般か優先かを指定します。

NORMAL

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

PRIOR

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

データ名7

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

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

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

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

●DETAIL MODE句

一方送信メッセージの場合に，出力通番を付けるかどうかを指定します。

データ名10

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

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

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

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

●WAITING TIME句

この句の指定は無効です。0を指定しておいてください。また，MCFマネジャ定義のUAP共通定義で同期送信監視時間を指定しても，時間監視をしません。

通信文に指定する項目

●一意名1

セグメントを送信するデータ項目を指定します。送信できるセグメントの最大長は，通信管理が送信する最大セグメント長にテキスト形態の4バイトを加えた値です。一意名1の形式を次に示します。

テキスト形態の次に続く領域には，次に示す内容を設定します。

【HSC1手順またはHSC2手順（非同期モード）の場合】

送信するセグメントの内容

【HSC2手順（同期モード）でIDを交換する場合】

相手ターミナルID

【HSC2手順（同期モード）でIDを交換しない場合】

相手ダイヤル番号

また，MCFで使用する領域の2⁴ビット目に，送信完了通知イベントまたは送信障害通知イベントを通知させるかどうかを指定してください。

領域の2⁴ビットに1を設定
送信完了通知イベントまたは送信障害通知イベントを通知させるときに設定します。ただし，これらのイベントを処理するMHPをMCFアプリケーション定義で指定していない場合は無効です。
メッセージが複数のセグメントで構成される場合，先頭セグメント送信時の指定が有効になります。

領域の2⁴ビットに0を設定
送信完了通知イベントまたは送信障害通知イベントを通知させません。

一意名1のMCFで使用する領域とビットの設定位置の関係を次に示します。

●WITH句

メッセージの最終セグメントを送信するかどうかを指定します。非同期型のメッセージ送信（一方送信メッセージ）または回線接続要求の送信の場合に指定します。

ESI

先頭セグメントまたは中間セグメントの送信

EMI

最終セグメントまたは単一セグメントの送信

一意名2

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

'1'…ESI（先頭セグメントまたは中間セグメントの送信）

'2'…EMI（最終セグメント，単一セグメント，または回線接続要求の送信）

省略した場合は，EMI（最終セグメント，単一セグメント，または回線接続要求の送信）が設定されます。

ステータスコード

ステータスコード
意味

00000
正常に終了しました。

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

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

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

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

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

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

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

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

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

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

先頭セグメントを受信するRECEIVE文を実行する前に，SEND文を実行しています。

非応答型のMHPから応答メッセージを送信しています。

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

トランザクションでないSPPの処理から，SEND文を実行しています。

SPPでは，応答メッセージを送信するSEND文を実行できません。

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

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

72005
先頭セグメントまたは中間セグメント送信時，一意名1のLに4以下の値を設定しています。

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

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

72011
MAP NAME句は設定できません。

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

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

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

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

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

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

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

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

72041
単一セグメント送信時，一意名1のLに4以下の値を設定しています。

73001
出力先の論理端末で障害が発生しました。

73002
MCF通信サービスで障害が発生しました。

73003
同期送信要求（メッセージ）時，メッセージ出力先論理端末から，メッセージ受信要求が発生しました。

73008
論理端末が閉塞中，またはMCFが終了処理中に，UAPからSEND文が呼び出されました。

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

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

メッセージの読み込み時に障害が発生しました。

73015
メッセージ出力先の論理端末は，ほかのUAPで仕掛り中です。

メッセージ出力先の論理端末は，該当するUAPと仕掛り中ではありません。

73018
同期型のメッセージ送信を発行したときに，データ名11に設定した監視時間が間違っています。

73020
出力先の論理端末は停止しています。

77901
同期送信要求（メッセージ）時，メッセージ出力先論理端末から，EOTを受信しました。

77902
同期送信要求（EOT）時，メッセージ出力先論理端末から，EOTを受信しました。

77903
同期送信要求（メッセージ）時，メッセージ出力先論理端末からのRVIを受理しました。メッセージの送信は正常に終了しました。

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

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

HSC1手順またはHSC2手順（非同期モード）の例

UAPの作成例として，HSC1手順またはHSC2手順（非同期モード）の場合の処理の流れを次の図に示し，その流れに沿ったコーディング例をC言語（K&R版），COBOL言語，およびデータ操作言語で示します。

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

●C言語（K&R版）

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

また，このコーディング例を，/BeTRAN/examples/mcf/HSC/aplib/c/ap1.cのファイルで提供しています。

#include <dcmcf.h>
#include <dcmhsc.h>
void ex_uap1()
{
  char   termnam[9] ;
  char   recvdata[2048];
  DCLONG rdataleng ;
  DCLONG time ;
  static char resv01[9] = "¥0" ;          /* 予備領域の初期化 */
  static char resv02[9] = "¥0" ;          /* 予備領域の初期化 */
  char   *workadd = recvdata ;

  struct {
     DCLONG   mcf[2];
     DCLONG   text_code;
     char     data[2048];
   } senddata;

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

/****** データの処理 ******/

  senddata.text_code = DCMHSC_DLETEXT ;

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

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

●COBOL言語

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

また，このコーディング例を，/BeTRAN/examples/mcf/HSC/aplib/cobol/ap1.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  TEXT-TYPE1    PIC X(4).
    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  TEXT-TYPE2    PIC X(4).
    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/HSC/aplib/dml/ap1.cblのファイルで提供しています。

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

PROGRAM-ID. EX-UAP1.

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-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-TCODE                PIC X(4).
  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.

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

EXIT PROGRAM.

HSC2手順（同期モード）

HSC2手順（同期モード）の場合のUAPのコーディング例をC言語（K&R版），COBOL言語，およびデータ操作言語で示します。

UAPのコーディング例で示す発信用SPPの例と発信用MHPの例を図4-2に，着信用MHPの例を図4-3に示します。

図4-2　発信用SPP，発信用MHPの例

図4-3　着信用MHPの例

●C言語（K&R版）

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

発信用SPPのコーディング例

図4-2に示した発信用SPPの例のコーディングを示します。

また，このコーディング例を，/BeTRAN/examples/mcf/HSC/aplib/c/sv1.cのファイルで提供しています。

/*
*  TP1/NET/HSC  HSC2手順  発信用SPP
*/
#   include <dcmcf.h>
#   include <dcmhsc.h>
#   include <dcmhsc2.h>
void hsc2spp(in,in_len,out,out_len)
    char          *in ;
    DCULONG       *in_len ;
    char          *out ;
    DCULONG       *out_len ;

{
static char resv01[9] = "¥0" ;
static char resv02[9] = "¥0" ;
dcmhs2_connect_inf      data;
int         rtn_code;
DCLONG      size;
/*
*  回線接続要求
*/
data.text_code = DCMHSC_CONNECT_REQ;       /* テキスト形態設定 */
strcpy(data.termid,"tid1");                /* ターミナルID設定 */
size = strlen(data.termid) + sizeof(data.text_code);
                                           /* データ長設定 */
rtn_code = dc_mcf_send(DCMCFEMI,DCMCFOUT,"hsc2le1",
                       resv01,&data,size,resv02,
                       DCNOFLAGS) ;
if(rtn_code != DCMCFRTN_00000)
 abort();
}

発信用MHPのコーディング例

図4-2に示した発信用MHPの例のコーディングを示します。

また，このコーディング例を，/BeTRAN/examples/mcf/HSC/aplib/c/ap2.cのファイルで提供しています。

/*
*  TP1/NET/HSC  HSC2手順  発信用MHP
*/
#   include <dcmcf.h>
#   include <dcmhsc.h>
#   include <dcmhsc2.h>
typedef struct {
     DCLONG      mcf[2];
     DCLONG      text_code;
     char        data[2048];
}data_t ;
/*
*  MHP サービス関数
*/
void hsc2mhp()
{
char       leid[16];
data_t     sdata;
data_t     rdata;
char       resv01[9];
char       resv02[9];
int        rtn_code;
DCLONG     rdataleng;
DCLONG     *time;
/*
*  接続情報通知の受信
*/
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_receive(DCMCFFRST,DCNOFLAGS,leid,resv01,&rdata,
                          &rdataleng,sizeof(data_t),&time);
if( rtn_code != DCMCFRTN_00000 )
 abort();
/*
*  メッセージの送信（テキスト，EOT付き）
*/
sdata,text_code = DCMHSC_DLETEXT_EOT;
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));

/****** メッセージの編集 ******/

rtn_code = dc_mcf_sendsync(DCMCFEMI,DCNOFLAGS,leid,resv01,&sdata,
                           200,resv02,DCNOFLAGS,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();
/*
*  メッセージの受信（テキスト）
*/
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_recvsync(DCMCFFRST,DCNOFLAGS,leid,resv01,&rdata,
                           &rdataleng,sizeof(data_t),&time,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();

/****** メッセージの解析 ******/

/*
*  メッセージの受信（EOT）
*/
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_recvsync(DCMCFFRST,DCNOFLAGS,leid,resv01,&rdata,
                           &rdataleng,sizeof(data_t),&time,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();
/*
*  メッセージの受信（DLE・EOT）
*/
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_recvsync(DCMCFFRST,DCNOFLAGS,leid,resv01,&rdata,
                           &rdataleng,sizeof(data_t),&time,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();
}

着信用MHPのコーディング例

図4-3に示した着信用MHPの例のコーディングを示します。

また，このコーディング例を，/BeTRAN/examples/mcf/HSC/aplib/c/ap3.cのファイルで提供しています。

/*
*  TP1/NET/HSC  HSC2手順  着信用MHP
*/
#   include <dcmcf.h>
#   include <dcmhsc.h>
#   include <dcmhsc2.h>
typedef struct {
     DCLONG      mcf[2];
     DCLONG      text_code;
     char        data[2048];
}data_t ;
/*
*  MHP サービス関数
*/
void rcvmhp()
{
char       leid[16];
data_t     sdata;
data_t     rdata;
char       resv01[9];
char       resv02[9];
int        rtn_code;
DCLONG     rdataleng;
DCLONG     size;
DCLONG     req,seg;
DCLONG     inbufleng;
DCLONG     *time;
/*
*  接続情報通知の受信
*/
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_receive(DCMCFFRST,DCNOFLAGS,leid,resv01,&rdata,
                           &rdataleng,sizeof(data_t),&time);
if( rtn_code != DCMCFRTN_00000 )
 abort();
/*
*  メッセージの受信（テキスト）
*/
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_recvsync(DCMCFFRST,DCNOFLAGS,leid,resv01,&rdata,
                            &rdataleng,sizeof(data_t),&time,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();

/****** メッセージの解析 ******/

/*
*  メッセージの受信（EOT）
*/
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_recvsync(DCMCFFRST,DCNOFLAGS,leid,resv01,&rdata,
                            &rdataleng,sizeof(data_t),&time,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();
/*
*  メッセージの送信（テキスト，EOT付き）
*/
sdata,text_code = DCMHSC_DLETEXT_EOT;
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));

/****** メッセージの編集 ******/

rtn_code = dc_mcf_sendsync(DCMCFEMI,DCNOFLAGS,leid,resv01,&sdata,
                            200,resv02,DCNOFLAGS,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();
/*
*  メッセージの送信（DLE・EOT）
*/
sdata,text_code = DCMHSC_DLE_EOT;
memset(resv01,'¥0',sizeof(resv01));
memset(resv02,'¥0',sizeof(resv02));
rtn_code = dc_mcf_sendsync(DCMCFEMI,DCNOFLAGS,leid,resv01,&sdata,
                            4,resv02,DCNOFLAGS,0);
if( rtn_code != DCMCFRTN_00000 )
 abort();
}

●COBOL言語

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

発信用SPPのコーディング例

図4-2に示した発信用SPPの例のコーディングを示します。

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

*
*  TP1/NET/HSC  HSC2手順  発信用SPP
*
IDENTIFICATION DIVISION.
PROGRAM-ID. SNDSPP.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
01  SND.
    02  MSG-SEND      PIC X(8) VALUE 'SEND    '.
    02  STATUS-CODE   PIC X(5).
    02  FILLER        PIC X(3).
    02  MCFUSE01      PIC X(4) VALUE SPACE.
    02  MCFUSE02      PIC X(4) VALUE SPACE.
    02  MCFUSE03      PIC 9(8).
    02  MCFUSE04      PIC 9(8).
    02  MCFUSE05      PIC 9(9) COMP VALUE ZERO.
    02  SEND-SEG      PIC X(4) VALUE 'EMI '.
    02  MCFUSE06      PIC X(4) VALUE SPACE.
    02  MCFUSE07      PIC X(4) VALUE SPACE.
    02  MCFUSE08      PIC X(4) VALUE SPACE.
    02  MCFUSE09      PIC X(8) VALUE SPACE.
    02  MCFUSE10      PIC X(4) VALUE SPACE.
    02  MCFUSE11      PIC X(8) VALUE SPACE.
    02  MCFUSE12      PIC X(4) VALUE SPACE.
    02  MCFUSE13      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE14      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE15      PIC X(1) VALUE SPACE.
    02  MCFUSE16      PIC X(1) VALUE SPACE.
    02  MCFUSE17      PIC X(14) VALUE LOW-VALUE.
01  CD1.
    02  SENDSEG-CODE  PIC X(4) VALUE 'OUT '.
    02  LEID          PIC X(8) VALUE 'hsc2le1 '.
    02  MCFUSE18      PIC X(8) VALUE SPACE.
    02  MCFUSE19      PIC X(8) VALUE SPACE.
    02  MCFUSE20  　  PIC X(28) VALUE LOW-VALUE.
01  DATA1.
    02  MSGSEG-LENG   PIC 9(9) COMP VALUE 11.
    02  MCFUSE21      PIC X(8).
    02  TEXT-CODE     PIC X(4) VALUE X'00030000'.
    02  TERMINAL-ID   PIC X(16) VALUE 'Termid1'.
PROCEDURE DIVISION.
CALL 'CBLDCMCF' USING SND CD1 DATA1.  ** 回線接続要求 **

*       処理 １       *

*
EXIT PROGRAM.

発信用MHPのコーディング例

図4-2に示した発信用MHPの例のコーディングを示します。

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

*
*  TP1/NET/HSC  HSC2手順  発信用MHP
*
IDENTIFICATION DIVISION.
PROGRAM-ID. SNDMHP.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
01  RCV1.
    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  TEXT-CODE1    PIC X(4).
    02  TERMINAL-ID   PIC X(16).
*
01  SND1.
    02  MSG-SEND      PIC X(8) VALUE 'SENDSYNC'.
    02  STATUS-CODE   PIC X(5).
    02  FILLER        PIC X(3).
    02  MCFUSE01      PIC X(4) VALUE SPACE.
    02  MCFUSE02      PIC X(4) VALUE SPACE.
    02  MCFUSE03      PIC 9(8).
    02  MCFUSE04      PIC 9(8).
    02  MCFUSE05      PIC 9(9) COMP VALUE ZERO.
    02  SEND-SEG      PIC X(4) VALUE 'EMI '.
    02  MCFUSE06      PIC X(4) VALUE SPACE.
    02  MCFUSE07      PIC X(4) VALUE SPACE.
    02  MCFUSE08      PIC X(4) VALUE SPACE.
    02  MCFUSE09      PIC X(8) VALUE SPACE.
    02  MCFUSE10      PIC X(4) VALUE SPACE.
    02  MCFUSE11      PIC X(8) VALUE SPACE.
    02  MCFUSE12      PIC X(4) VALUE SPACE.
    02  MCFUSE13      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE14      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE15      PIC X(1) VALUE SPACE.
    02  MCFUSE16      PIC X(1) VALUE SPACE.
    02  MCFUSE17      PIC X(14) VALUE LOW-VALUE.
01  CD2.
    02  SENDSEG-CODE  PIC X(4) VALUE 'OUT '.
    02  TERM-ID       PIC X(8) VALUE 'hsc2le1 '.
    02  MCFUSE18      PIC X(8) VALUE SPACE.
    02  MCFUSE19      PIC X(8) VALUE SPACE.
    02  MCFUSE20      PIC X(28) VALUE LOW-VALUE.
01  DATA2.
    02  MSGSEG-LENG   PIC 9(9) COMP VALUE 128.
    02  MCFUSE21      PIC X(8).
    02  TEXT-CODE2    PIC X(4).
    02  REC-MSGSEG    PIC X(124).
*
01  RCV2.
    02  MSG-REC       PIC X(8) VALUE 'RECVSYNC'.
    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  DATA3.
    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  TEXT-CODE3    PIC X(4).
    02  DATA0         PIC X(2044).
*
01  RCV3.
    02  MSG-REC       PIC X(8) VALUE 'RECVSYNC'.
    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  RCV4.
    02  MSG-REC       PIC X(8) VALUE 'RECVSYNC'.
    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.
*
PROCEDURE DIVISION.
CALL 'CBLDCMCF' USING RCV1 CD1 DATA1.  ** 接続情報通知の受信 **

*       処理 １       *

MOVE X'00000002' TO TEXT-CODE2.
CALL 'CBLDCMCF' USING SND1 CD2 DATA2.  ** メッセージの送信（テキスト，EOT付き） **

*       処理 ２       *

CALL 'CBLDCMCF' USING RCV2 CD1 DATA3.  ** メッセージの受信（テキスト） **

*       処理 ３       *

CALL 'CBLDCMCF' USING RCV3 CD1 DATA3.  ** メッセージの受信（EOT） **

*       処理 ４       *

CALL 'CBLDCMCF' USING RCV4 CD1 DATA3.  ** メッセージの受信（DLE・EOT） **

*       処理 ５       *

 EXIT PROGRAM.

着信用MHPのコーディング例

図4-3に示した着信用MHPの例のコーディングを示します。

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

*
*  TP1/NET/HSC  HSC2手順  着信用MHP
*
IDENTIFICATION DIVISION.
PROGRAM-ID. RCVMHP.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
01  RCV1.
    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  TEXT-CODE1    PIC X(4).
    02  TERMINAL-ID   PIC X(16).
*
01  SND1.
    02  MSG-SEND      PIC X(8) VALUE 'SENDSYNC'.
    02  STATUS-CODE   PIC X(5).
    02  FILLER        PIC X(3).
    02  MCFUSE01      PIC X(4) VALUE SPACE.
    02  MCFUSE02      PIC X(4) VALUE SPACE.
    02  MCFUSE03      PIC 9(8).
    02  MCFUSE04      PIC 9(8).
    02  MCFUSE05      PIC 9(9) COMP VALUE ZERO.
    02  SEND-SEG      PIC X(4) VALUE 'EMI '.
    02  MCFUSE06      PIC X(4) VALUE SPACE.
    02  MCFUSE07      PIC X(4) VALUE SPACE.
    02  MCFUSE08      PIC X(4) VALUE SPACE.
    02  MCFUSE09      PIC X(8) VALUE SPACE.
    02  MCFUSE10      PIC X(4) VALUE SPACE.
    02  MCFUSE11      PIC X(8) VALUE SPACE.
    02  MCFUSE12      PIC X(4) VALUE SPACE.
    02  MCFUSE13      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE14      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE15      PIC X(1) VALUE SPACE.
    02  MCFUSE16      PIC X(1) VALUE SPACE.
    02  MCFUSE17      PIC X(14) VALUE LOW-VALUE.
01  CD2.
    02  SENDSEG-CODE  PIC X(4) VALUE 'OUT '.
    02  TERM-ID       PIC X(8) VALUE 'hsc2le1 '.
    02  MCFUSE18      PIC X(8) VALUE SPACE.
    02  MCFUSE19      PIC X(8) VALUE SPACE.
    02  MCFUSE20      PIC X(28) VALUE LOW-VALUE.
01  DATA2.
    02  MSGSEG-LENG   PIC 9(9) COMP VALUE 128.
    02  MCFUSE21      PIC X(8).
    02  TEXT-CODE2    PIC X(4).
    02  REC-MSGSEG    PIC X(124).
*
01  RCV2.
    02  MSG-REC       PIC X(8) VALUE 'RECVSYNC'.
    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  CD3.
    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  DATA3.
    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  TEXT-CODE3    PIC X(4).
    02  DATA0         PIC X(2044).
*
01  RCV3.
    02  MSG-REC       PIC X(8) VALUE 'RECVSYNC'.
    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  SND2.
    02  MSG-SEND      PIC X(8) VALUE 'SENDSYNC'.
    02  STATUS-CODE   PIC X(5).
    02  FILLER        PIC X(3).
    02  MCFUSE01      PIC X(4) VALUE SPACE.
    02  MCFUSE02      PIC X(4) VALUE SPACE.
    02  MCFUSE03      PIC 9(8).
    02  MCFUSE04      PIC 9(8).
    02  MCFUSE05      PIC 9(9) COMP VALUE ZERO.
    02  SEND-SEG      PIC X(4) VALUE 'EMI '.
    02  MCFUSE06      PIC X(4) VALUE SPACE.
    02  MCFUSE07      PIC X(4) VALUE SPACE.
    02  MCFUSE08      PIC X(4) VALUE SPACE.
    02  MCFUSE09      PIC X(8) VALUE SPACE.
    02  MCFUSE10      PIC X(4) VALUE SPACE.
    02  MCFUSE11      PIC X(8) VALUE SPACE.
    02  MCFUSE12      PIC X(4) VALUE SPACE.
    02  MCFUSE13      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE14      PIC 9(9) COMP VALUE ZERO.
    02  MCFUSE15      PIC X(1) VALUE SPACE.
    02  MCFUSE16      PIC X(1) VALUE SPACE.
    02  MCFUSE17      PIC X(14) VALUE LOW-VALUE.
*
PROCEDURE DIVISION.
CALL 'CBLDCMCF' USING RCV1 CD1 DATA1.  ** 接続情報通知の受信 **

*       処理 １       *

CALL 'CBLDCMCF' USING RCV2 CD3 DATA3.  ** メッセージの受信（テキスト） **

*       処理 ２       *

CALL 'CBLDCMCF' USING RCV3 CD3 DATA3.  ** メッセージの受信（EOT） **

*       処理 ３       *

MOVE X'00010002' TO TEXT-CODE2.
CALL 'CBLDCMCF' USING SND1 CD2 DATA2.  ** メッセージの送信（テキスト，EOT付き） **

*       処理 ４       *

MOVE X'00020000' TO TEXT-CODE3.
CALL 'CBLDCMCF' USING SND2 CD3 DATA3.  ** メッセージの受信（DLE・EOT） **

*       処理 ５       *

EXIT PROGRAM.

●データ操作言語

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

発信用SPPのコーディング例

図4-2に示した発信用SPPの例のコーディングを示します。

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

*
*  TP1/NET/HSC  HSC2手順  発信用SPP
*
IDENTIFICATION DIVISION.
PROGRAM-ID. SNDSPP.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
01 SEND-AREA.
  02 SE-DATALENG             PIC 9(4) COMP VALUE 15.
  02 SE-RSV1                 PIC 9(2).
  02 SE-TEXTCODE             PIC X(4) VALUE X'00030000'.
  02 SE-TERMID               PIC X(16) VALUE 'TERMID1'.
*
*       通信記述項       *
*
COMMUNICATION SECTION.
*
*       通信記述項（送信）       *
*
CD SEND-INF
  FOR OUTPUT
  STATUS KEY IS        SE-STATUS
  SYMBOLIC TERMINAL IS SE-TERMNAM.

PROCEDURE DIVISION.
*
*       回線接続要求       *
*
SEND    SEND-INF
        FROM SEND-AREA.
EXIT PROGRAM.

発信用MHPのコーディング例

図4-2に示した発信用MHPの例のコーディングを示します。

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

*
*  TP1/NET/HSC  HSC2手順  発信用のMHP
*
IDENTIFICATION DIVISION.
PROGRAM-ID. SNDMHP.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
01 RECV-AREA.
  02 RE-DATALENG             PIC 9(4) COMP VALUE 508.
  02 RE-RSV1                 PIC 9(2).
  02 RE-TEXTCODE             PIC X(4).
  02 RE-DATA                 PIC X(500).
*
01 SEND-AREA.
  02 SE-DATALENG             PIC 9(4) COMP VALUE 100.
  02 SE-RSV1                 PIC 9(2).
  02 SE-TEXTCODE             PIC X(4).
  02 SE-DATA                 PIC X(100).
*
*       通信記述項       *
*
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 RECVSYNC-INF
  FOR I-O
  STATUS KEY IS        RE-STATUS
  SYMBOLIC TERMINAL IS RE-TERMNAM-S
  SYNCHRONOUS MODE IS SYNC
  MESSAGE DATE IS      RE-DATE
  MESSAGE TIME IS      RE-TIME.
*
*       通信記述項（メッセージの送信）       *
*
CD SEND-INF
  FOR I-O
  STATUS KEY IS        SE-STATUS
  SYMBOLIC TERMINAL IS SE-TERMNAM
  SYNCHRONOUS MODE IS SYNC.
PROCEDURE DIVISION.
*
*       接続情報通知の受信       *
*
RECEIVE   RECV-INF
          FIRST SEGMENT
          INTO RECV-AREA.
*
*       メッセージの送信（テキスト，EOT付き）       *
*
MOVE RE-TERMNAM TO SE-TERMNAM.
MOVE X'00010002' TO SE-TEXTCODE.
SEND      SEND-INF
          FROM SEND-AREA.
*
*       メッセージの受信（テキスト）       *
*
MOVE RE-TERMNAM TO RE-TERMNAM-S.
RECEIVE   RECVSYNC-INF
          FIRST SEGMENT
          INTO RECV-AREA.
*
*       メッセージの受信（EOT）       *
*
RECEIVE   RECVSYNC-INF
          FIRST SEGMENT
          INTO RECV-AREA.
*
*       メッセージの受信（DLE・EOT）       *
*
RECEIVE   RECVSYNC-INF
          FIRST SEGMENT
          INTO RECV-AREA.
EXIT PROGRAM.

着信用MHPのコーディング例

図4-3に示した着信用MHPの例のコーディングを示します。

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

*
*  TP1/NET/HSC  HSC2手順  着信用のMHP
*
IDENTIFICATION DIVISION.
PROGRAM-ID. RCVMHP.
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 9(2).
  02 RE-TEXTCODE             PIC X(4).
  02 RE-DATA                 PIC X(1024).
*
01 SEND-AREA.
  02 SE-DATALENG             PIC 9(4) COMP VALUE 100.
  02 SE-RSV1                 PIC 9(2).
  02 SE-TEXTCODE             PIC X(4).
  02 SE-DATA                 PIC X(200).
*
*       通信記述項       *
*
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 RECVSYNC-INF
  FOR I-O
  STATUS KEY IS        RE-STATUS
  SYMBOLIC TERMINAL IS RE-TERMNAM-S
  SYNCHRONOUS MODE IS SYNC
  MESSAGE DATE IS      RE-DATE
  MESSAGE TIME IS      RE-TIME.
*
*       通信記述項（メッセージの送信）       *
*
CD SEND-INF
  FOR I-O
  STATUS KEY IS        SE-STATUS
  SYNCHRONOUS MODE IS SYNC
  SYMBOLIC TERMINAL IS SE-TERMNAM.
PROCEDURE DIVISION.
*
*       接続情報通知の受信       *
*
RECEIVE   RECV-INF
          FIRST SEGMENT
          INTO RECV-AREA.
*
*       メッセージの受信（テキスト）       *
*
MOVE RE-TERMNAM TO RE-TERMNAM-S.
RECEIVE   RECVSYNC-INF
          FIRST SEGMENT
          INTO RECV-AREA.
*
*       メッセージの受信（EOT）       *
*
RECEIVE   RECVSYNC-INF
          FIRST SEGMENT
          INTO RECV-AREA.
*
*       メッセージの送信（テキスト，EOT付き）       *
*
MOVE RE-TERMNAM TO SE-TERMNAM.
MOVE X'00010002' TO SE-TEXTCODE.
SEND      SEND-INF
          FROM SEND-AREA.
*
*       メッセージの送信（DLE・EOT）       *
*
MOVE X'00020000' TO SE-TEXTCODE.
MOVE 8 TO SE-DATALENG.
SEND      SEND-INF
          FROM SEND-AREA.
EXIT PROGRAM.

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

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

＜この章の構成＞

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

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

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

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

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

論理端末名称の決定UOC（HSC2手順（非同期モード）だけ）

入力メッセージ編集UOC※

出力メッセージ編集UOC

送信メッセージ通番編集UOC（HSC1手順またはHSC2手順（非同期モード）だけ）

注※

入力メッセージ編集UOCでは，受信した論理メッセージの編集のほかに，起動するアプリケーション名も決定できます。

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

＜この節の構成＞

5.1.1　論理端末名称の決定

5.1.2　論理端末名称決定UOCインタフェース

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

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

5.1.5　出力メッセージの編集

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

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

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

5.1.9　UOC作成上の注意事項

5.1.1　論理端末名称の決定

HSC2手順（非同期モード）の場合だけ使用できます。

論理端末名称決定UOCは，IDを交換しない場合，着信による回線接続後，相手システムとのメッセージ送受信に使用する論理端末を決定します。

論理端末名称決定UOCは，相手システムとの接続が完了してから最初の論理メッセージを受信した時点，かつ入力メッセージの編集UOCで呼び出す前に起動されます。ただし，MCFイベント発生時とUAPからのアプリケーションプログラム起動時には，UOCは起動しません。

＜この項の構成＞

(1)　論理端末名称の形式

(2)　UOCの障害処理

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

(4)　論理端末名称決定UOCの処理の例

(1)　論理端末名称の形式

論理端末名称決定UOCで論理端末名称を決定する場合の形式は，UOCがリターン情報として返す論理端末名称格納領域の先頭から，'¥0'の手前までの1～8バイトの識別子です。先頭から9バイト目までに'¥0'がないときは，入力論理端末名称形式不正とします。また，識別子と'¥0'の間に空白がある場合は，空白を'¥0'に置き換えます。

(2)　UOCの障害処理

TP1/NET/HSCは，UOCからのリターンが次に示す場合，相手システムに対してDLE・EOTを送信して回線を切断します。

DCMCF_UOC_MSG_NGでリターンしてきた場合

不正な論理端末名称でリターンしてきた場合

該当するコネクションに存在しない論理端末名称をリターンしてきた場合

ほかの回線で使用中の論理端末名称をリターンしてきた場合

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

MCFメイン関数で呼び出すスタート関数（dc_mcf_svstart）に，作成したUOCの関数アドレスを指定します。論理端末名称決定UOCの関数アドレスは任意に決められます。UOCのオブジェクトファイルは，MCFメイン関数をコンパイル・リンケージすれば，TP1/NET/HSCの実行形式ファイルに結合されて実行できる状態になります。MCFメイン関数の詳細については，「8.2　MCFメイン関数の作成」を参照してください。

(4)　論理端末名称決定UOCの処理の例

論理端末名称決定UOCでは，相手システムからのメッセージを受信すると，自システム内の未使用の論理端末を検索し，使用する論理端末を決定します。このような処理をするUOCのコーディング例を，「付録E　論理端末名称決定UOCのコーディング例」に示します。

5.1.2　論理端末名称決定UOCインタフェース

論理端末名称決定UOCは，次に示す形式で呼び出します。

＜この項の構成＞

(1)　形式

(2)　説明

(3)　パラメタの内容

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

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

(6)　リターン値

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

(1)　形式

ANSI C，C++の形式

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmpcm.h>
#include <dcmhsc2.h>
DCLONG    uoc_func(dcmcf_uoc_min_n *parm)

K&R版 Cの形式

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmpcm.h>
#include <dcmhsc2.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;       …dcmhs2_uoc_protを示すポインタ変数
   DCLONG rtn_detail;          …詳細リターンコード
   char   reserve3[8];         …予備
} dcmcf_uoc_min_n;

なお，dcmcf_uoc_min_nは，<dcmcfuoc.h>で定義されています。

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

なお，dcmcf_uocbuff_list_nは，<dcmcfuoc.h>で定義されています。

(c)　dcmcf_uocbufinf_n（バッファ情報）の内容

typedef struct {
   char    *buf_adr;           …バッファアドレス
   DCULONG buf_size;           …バッファ最大長
   DCULONG seg_size;           …バッファ使用長（セグメント長）
   char    reserve1[4];        …予備
   dcmcfuoc_w_type buff_id;    …MCF内部情報1
   DCMLONG buff_addr;          …MCF内部情報2
   char    reserve2[4];        …予備
} dcmcf_uocbufinf_n;

なお，dcmcf_uocbufinf_nは，<dcmcfuoc.h>で定義されています。

(d)　dcmhsc2_uoc_protの内容

typedef struct {
   DCLONG le_num;              …定義されている論理端末数
   DCLONG reserve[3];          …予備
   dcmhs2_le_inf le_list[DCMHS2_UOC_LE_MAX];
                               …論理端末名称リスト
} dcmhsc2_uoc_prot;
typedef struct {
   char   le_name[16];         …論理端末名称
   DCLONG le_inf;              …論理端末の状態
}  dcmhs2_le_inf

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

(a)　dcmcf_uoc_min_n

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

DCMCF_UOC_PRO_HSC2

HSC2手順

le_name
ヌル文字が設定されます。

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

DCMCF_UOC_RCV_BRD

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

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

ebuflist_adr
未使用の項目です。ヌル文字が設定されます。

aplname
未使用の項目です。ヌル文字が設定されます。

pro_indv_ifa
dcmhs2_uoc_protを示すポインタ変数です。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

buf_num
バッファ情報の数が設定されます。

buf_array
バッファ情報の配列が設定されます。バッファ情報は，buf_numの数だけ設定されます。

(c)　dcmcf_uocbufinf_n（バッファ情報）

buf_adr
バッファのアドレスが設定されます。

buf_size
バッファの最大長が設定されます。

seg_size
送信，または受信用バッファリストの場合だけ，バッファの使用長（セグメント長）が設定されます。

buff_id，buff_addr
MCFで使用するパラメタです。

(d)　dcmhsc2_uoc_prot

le_num
定義されている論理端末の数が設定されます。

le_list
論理端末名称のリストが設定されます。

le_inf
論理端末の状態が設定されます。

DCMHS2_LE_USE

論理端末はほかの回線で使用されています。

DCMHS2_LE_NOUSE

論理端末は使用されていません。

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

(a)　dcmcf_uoc_min_n

rtn_detail
詳細リターンコードを設定します。
このコードは，UOCがDCMCF_UOC_MSG_NGをリターンしたときに，MCFに渡されます。MCFは，詳細リターンコードをメッセージログファイルに出力します。詳細リターンコードは-19999～-19000の範囲で指定してください。

(b)　dcmhsc2_uoc_prot

le_name
論理端末名称を設定します。

(6)　リターン値

uoc_func()は次のコードでリターンしてください。

リターン値 | 意味
DCMCF_UOC_MSG_OK | 正常リターン
DCMCF_UOC_MSG_NG | メッセージ編集エラー

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

UOCインタフェース用のパラメタとバッファの関係を次の図に示します。

図5-1　UOCインタフェース用のパラメタとバッファの関係（論理端末名称決定UOCの場合）

注※

バッファ情報は32バイトで，次の形式をしています。

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

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

UOCは，HSC1手順またはHSC2手順（非同期モード）の場合，UAPを起動するメッセージの最終セグメントを受信すると起動します。HSC2手順（同期モード）の場合は，相手システムとの接続が完了したとき，または最終セグメントを受信したときに起動します。ただし，MCFイベント発生時とUAPからのアプリケーションプログラム起動時には，UOCは起動しません。また，アプリケーション名は，相手システムとの回線が接続されたときだけに決定します。

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

また，通常テキスト受信時，通常テキストのデータはEBCDIKコードのため，必要であれば，JIS8コードに変換するようにUOCを作成してください。

＜この項の構成＞

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

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

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

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

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

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

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

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

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

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

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

UOCが登録されていない，または登録されていてもアプリケーション名を決定しない場合，MCF通信構成定義で指定したアプリケーション名を採用します。MCF通信構成定義でも指定されていないときは，アプリケーション名を不正とし，不正アプリケーション名検出通知イベント（ERREVT1）を起動します。

HSC2手順（同期モード）の場合，相手システムとの回線接続時に，起動するアプリケーション名を決定します。回線接続中のメッセージ受信中には，このUOCでアプリケーション名の変更はできません。

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

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

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

UOCからDCMCF_UOC_MSG_NGでリターンした場合，TP1/NET/HSCは相手システムには通知しません。MCFはメッセージログを出力し，障害通知イベント（CERREVT）を起動します。

UOCで障害を検出し，エラー処理UAPを起動したい場合は，ユーザ任意のエラー処理UAPのアプリケーション名を設定します。このとき，MCFには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/HSCの実行形式プログラムを生成します。MCFメイン関数の詳細については，「8.2　MCFメイン関数の作成」を参照してください。

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_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;              …バッファアドレス
   DCULONG buf_size;           …バッファ最大長
   DCULONG seg_size;           …バッファ使用長（セグメント長）
   char    reserve1[4];        …予備
   dcmcfuoc_w_type buff_id;    …MCF内部情報1
   DCMLONG buff_addr;          …MCF内部情報2
   char    reserve2[4];        …予備
} dcmcf_uocbufinf_n;

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

(a)　dcmcf_uoc_min_n

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

DCMCF_UOC_PRO_HSC1

HSC1手順

DCMCF_UOC_PRO_HSC2

HSC2手順

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

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

DCMCF_UOC_RCV_BRD

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

DCMCF_UOC_RCV_REP_RE

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

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

ebuflist_adr
編集用バッファリストのアドレスが設定されます。
メッセージ編集用バッファが未定義の場合，つまり，MCF通信構成定義（mcftalccn -e）を省略した場合，ebuflist_adrにはヌル文字が設定されます。

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

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

(b)　dcmcf_uocbuff_list_n（バッファリスト）

buf_num
バッファ情報の数が設定されます。

buf_array
バッファ情報の配列が設定されます。バッファ情報は，buf_numの数だけ設定されます。

(c)　dcmcf_uocbufinf_n（バッファ情報）

buf_adr
バッファのアドレスが設定されます。

buf_size
バッファの最大長が設定されます。

seg_size
送信，または受信用バッファリストの場合だけ，バッファの使用長（セグメント長）が設定されます。

buff_id，buff_addr
MCFで使用するパラメタです。

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

(a)　dcmcf_uoc_min_n

aplname
UOCで決定したアプリケーション名を設定します。

rtn_detail
詳細リターンコードを設定します。
このコードは，UOCがDCMCF_UOC_MSG_NGをリターンしたときに，MCFに渡されます。MCFは，詳細リターンコードをメッセージログファイルに出力します。詳細リターンコードは-19999～-19000の範囲で指定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト）

used_buf_num
使用したバッファ情報の数を設定します。

(c)　dcmcf_uocbufinf_n（バッファ情報）

seg_size
バッファの使用長を設定します。

(6)　リターン値

uoc_func()は次のコードでリターンしてください。

リターン値 | 意味
DCMCF_UOC_MSG_OK | 正常リターン（編集バッファでスケジューリング）
DCMCF_UOC_MSG_OK_RCV | 正常リターン（受信バッファでスケジューリング）
DCMCF_UOC_MSG_NG | メッセージ編集エラー

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

UOCインタフェース用のパラメタとバッファの関係を次の図に示します。

図5-3　UOCインタフェース用のパラメタとバッファの関係

注※1

mcftalccnコマンドの-eオプションを指定しない場合，NULLとなり，バッファリストとバッファは確保されません。

注※2

バッファ情報は次の形式をしています。

5.1.5　出力メッセージの編集

出力メッセージの編集UOCは，送信する論理メッセージの編集をするUOCです。出力メッセージの編集UOCは，UAPが発行した送信メッセージを相手システムに実際に送信する前に処理するように位置させます。出力キューから全セグメントを読み出すと起動します。

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

また，通常テキスト送信時，通常テキストのデータはEBCDIKコードで作成する，JIS8コードに変換するようにUOCを作成してください。

＜この項の構成＞

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

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

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

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

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

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

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

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

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

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

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

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

入力メッセージ編集UOCの組み込み方法と同じです。「5.1.3（5）　OpenTP1への組み込み方法」を参照してください。

5.1.6　出力メッセージ編集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（バッファ情報）の内容

「5.1.4　入力メッセージ編集UOCインタフェース」を参照してください。

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

(a)　dcmcf_uoc_mout_n

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

DCMCF_UOC_PRO_HSC1

HSC1手順

DCMCF_UOC_PRO_HSC2

HSC2手順

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

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

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

output_no
メッセージ出力通番が設定されます。ただし，outputno_flagがDCMCF_UOC_OUTPUTNO_OKのときだけ有効です。

msg_type
メッセージ種別として，次の値が設定されます。

'n'

一般一方送信メッセージ

'p'

優先一方送信メッセージ（HSC1手順の場合だけ設定されます）

outputno_flag
メッセージ出力通番の有効フラグとして，次のどちらかの値が設定されます。

DCMCF_UOC_OUTPUTNO_OK

メッセージ出力通番を有効にします。

DCMCF_UOC_OUTPUTNO_NG

メッセージ出力通番を無効にします。

resend_flag
再送メッセージフラグとして，次のどちらかの値が設定されます。HSC1手順の場合だけ設定されます。

'r'

再送メッセージです。

'n'

再送メッセージではありません。

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

(b)　dcmcf_uocbuff_list_n（バッファリスト），dcmcf_uocbufinf_n（バッファ情報）

「5.1.4　入力メッセージ編集UOCインタフェース」を参照してください。

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

(a)　dcmcf_uoc_mout_n

rtn_detail
詳細リターンコードを設定します。
このコードは，UOCがDCMCF_UOC_MSG_NGをリターンしたときに，MCFに渡されます。MCFは，詳細リターンコードをメッセージログファイルに出力します。詳細リターンコードは-19000～-19999の範囲で指定してください。

(b)　dcmcf_uocbuff_list_n（バッファリスト），dcmcf_uocbufinf_n（バッファ情報）

「5.1.4　入力メッセージ編集UOCインタフェース」を参照してください。

(6)　リターン値

uoc_func()は次のコードでリターンしてください。

リターン値 | 意味
DCMCF_UOC_MSG_OK | 正常リターン（編集バッファでスケジューリング）
DCMCF_UOC_MSG_OK_SND | 正常リターン（送信バッファでスケジューリング）
DCMCF_UOC_MSG_NG | メッセージ編集エラー

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

UOCインタフェース用のパラメタとバッファの関係は，入力メッセージ編集の場合と同じです。「5.1.4(7)　パラメタとバッファの関係」を参照してください。

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

＜この項の構成＞

(1)　通番編集

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

(1)　通番編集

HSC1手順またはHSC2手順（非同期モード）の場合に使用できる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)　メイン関数への登録例

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();
}

メイン関数，サービス関数，スタブ関数にUOC関数をリンケージしてUAPの実行形式プログラムを生成します。

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

送信メッセージの通番編集UOCは，次に示す形式で，send_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

メッセージを送信する関数または命令文が呼び出されたときを意味します。

termname
送信先の論理端末名称が設定されます。

sendno
送信メッセージの通番が設定されます。

sendid
送信するメッセージ種別が設定されます。

DCMCF_SEND_PRIO

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

DCMCF_SEND_NORM

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

dataleng
送信メッセージ長が設定されます。

senddata
セグメントの内容が設定されます。

(3)　リターン値

リターン値 | 意味
DC_OK | 正常に終了しました。

5.1.9　UOC作成上の注意事項

UOC作成上の注意事項を次に示します。

＜この項の構成＞

(1)　UOCの構造

(2)　UOCで使用できる関数

(3)　UOCの異常処理

(4)　UOCの実行タイミング

(1)　UOCの構造

UOCで使用するローカル変数のサイズの合計は，各UOCで1024バイト以内になるよう作成してください。また，UOCの中で関数の再帰呼び出しはしないでください。

(2)　UOCで使用できる関数

UOCを作成する場合，UOCでは次に示す関数だけが使用できます。ほかの関数を使用した場合，正常に動作しないことがあるためご注意ください。

メモリ操作をする関数

データ領域管理（例：malloc，free）

共有メモリ管理関数（例：shmctl，shmget，shmop）

メモリ操作（例：memcpy）

文字列操作（例：strcpy）

時間取得関数

(3)　UOCの異常処理

TP1/NET/HSCのUOCで異常を検知した場合，MCFの所定のリターンコードを使用してMCFに異常の発生を通知してください。UOCでプロセス終了となるシグナル，またはabort()を呼び出すと，MCFが異常終了します。

(4)　UOCの実行タイミング

MCFが起動するUOCの実行タイミングは，OpenTP1システム，およびUAPの開始，終了シーケンスと同期しない場合があります。UAPより先にUOCが実行されたり，UAPがすべて終了してからUOCが呼ばれたりしてもよいように作成してください。

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

TP1/NET/HSCでメッセージ送受信をすると，OpenTP1の各種システム情報がMHPに通知されます。これをMCFイベントといいます。メッセージ送受信処理でエラーや障害が発生した場合，システム内で何が起こっているのかがMCFイベントの内容でわかります。MCFイベントに対応するMHPをMCFイベント処理用MHPといいます。

MCFイベントは入力キューに渡されて，MCFイベント処理用MHPで回復処理をします。なお，MCFイベントの発生時は入力メッセージ編集UOCは呼び出しません。詳細についてはマニュアル「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/HSCが通知するMCFイベントの種類を次の表に示します。

表5-1　TP1/NET/HSCが通知するMCFイベントの種類

MCFイベント名
MCFイベントコード
発生した原因
MCFイベント処理用MHPの処理の例

不正アプリケーション名検出通知イベント
ERREVT1
メッセージのアプリケーション名がMCFアプリケーション定義にありません。
該当するアプリケーション名がなかったことを報告します。

メッセージ廃棄通知イベント
ERREVT2
次の理由で受信メッセージを破棄しました。

入力キューに障害が発生しました。

MHPのサービス，サービスグループ，またはアプリケーションが閉塞しました。

MHPのセグメント受信関数に，セグメントを渡す前にMHPの異常終了が発生しました。

アプリケーション名に相当するMHPのサービスがありません。

アプリケーションの即時起動時に障害が発生しました。

MHPのアプリケーション，サービスグループがセキュア状態です。

メッセージを廃棄したことを報告します。

UAP異常終了通知イベント
ERREVT3
MHPのセグメント受信関数に，セグメントを渡したあとにMHPの異常終了※が発生しました。
UAP異常終了時の対処障害メッセージを送信します。

タイマ起動メッセージ廃棄通知イベント
ERREVT4
アプリケーションのタイマ起動時に障害が発生しました。
メッセージを廃棄したことを報告します。

未処理送信メッセージ廃棄通知イベント
ERREVTA
次の理由で未処理送信メッセージを破棄しました。

MCFの正常終了処理時に，未処理送信メッセージの滞留時間監視の時間切れ（タイムアウト）が発生しました。

運用コマンド（mcftdlqle）の入力によって，出力キューが削除されました。

未処理送信メッセージを廃棄したことを報告します。

送信完了通知イベント
SCMPEVT
メッセージの送信を正常に完了しました。
HSC1手順またはHSC2手順（非同期モード）の場合，送信の完了を確認して任意の処理ができます。

送信障害通知イベント
SERREVT
メッセージの送信に障害が発生しました。
HSC1手順またはHSC2手順（非同期モード）の場合，送信障害が発生したことを報告して，任意の処理ができます。

障害通知イベント
CERREVT
通信管理プログラムのコネクション障害，または論理端末障害が発生しました。
コネクション，または論理端末に障害が発生したことを報告します。

状態通知イベント
COPNEVT
メッセージの送受信ができる状態になりました。
HSC1手順の場合，メッセージ送受信の準備ができたことを報告します。
HSC2手順の場合，コネクションが確立したことを報告します。

CCLSEVT
メッセージの送受信ができない状態になりました。
HSC1手順の場合，メッセージ送受信ができないことを報告します。
HSC2手順の場合，コネクションが解放されたことを報告します。

注※

MCFアプリケーション定義（mcfaalcap -g）のrecvmsgオペランドにrを指定した場合，またはdc_mcf_rollbackのactionにDCMCFRTRYまたはDCMCFRRTNを指定した場合は除きます。

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

MCFイベントをMHPに通知する場合，先頭セグメントにMCFイベント情報を設定します。エラーイベント（ERREVTn）の場合は，第2セグメント以降に処理できなかったメッセージセグメントを最終セグメントまで設定します。

MCFイベント通知時のセグメント構成を次の図に示します。

図5-4　MCFイベント通知時のセグメント構成

MCFイベントは，UAPを作成した言語によって，UAPに通知されるデータの形式が異なります。

エラーイベントの場合はバッファ形式1とバッファ形式2で先頭の内容が異なります。

このため，それ以降の項目の位置にずれがあります。「5.2.4　MCFイベント情報の形式（COBOL言語）」のエラーイベントの表ではERREVT1，ERREVT2，ERREVT3，およびERREVTAのバッファ形式別に位置（バイト）を分けて説明しています。

なお，ERREVT4については，マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。

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

MCFイベント情報は構造体で，MCFイベント処理用MHPに渡されます。MHPに渡される構造体の形式は，MCFイベントの種類によって異なります。ただし，MCFイベント情報の先頭部分の形式は，各イベントで共通です。

エラーイベント（ERREVTn），SCMPEVT，およびSERREVTで使用する構造体は，<dcmcf.h>で定義してあります。

＜この項の構成＞

(1)　MCFイベントの共通ヘッダ

(2)　ERREVT1

(3)　ERREVT2

(4)　ERREVT3

(5)　ERREVTA

(6)　SCMPEVT

(7)　SERREVT

(8)　CERREVT

(9)　COPNEVT，CCLSEVT

(1)　MCFイベントの共通ヘッダ

(a)　形式

struct dc_mcf_evtheader {
 char   mcfevt_name[9];     …MCFイベント情報コード
 char   le_name[16];        …入力元論理端末名称
                              (ERREVT1,ERREVT2,ERREVT3の場合)
                              出力先論理端末名称
                              (ERREVTA，SCMPEVT，SERREVTの場合)
 char   cn_name[9];         …コネクション名
 unsigned char format_kind; …MCF使用領域
 char   reserve01;          …予備
 DCLONG time;               …メッセージ入力時刻
};

(b)　MCFイベントとして設定される項目

le_name
ERREVT1，ERREVT2，またはERREVT3では，メッセージを入力した論理端末名称が設定されます。
ただし，ERREVT2またはERREVT3で，次に示す場合は，'*'が設定されます。

SPPがアプリケーション起動をしたMHPで，障害が発生した場合

上記のエラーイベントとして起動されたMHPが，さらにアプリケーション起動をしたMHPで，障害が発生した場合

ERREVTA，SCMPEVT，またはSERREVTでは，メッセージを出力する論理端末名称が設定されます。
CERREVT，COPNEVT，またはCCLSEVTでは無効です。

cn_name
コネクション名が設定されます。
ただし，ERREVT2またはERREVT3で，次に示す場合は，'*'が設定されます。

SPPがアプリケーション起動をしたMHPで，障害が発生した場合

上記のエラーイベントとして起動された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] ;       …予備
 char reserve07[36] ;       …予備
};

(b)　MCFイベントとして設定される項目

ap_name
正常終了したメッセージのアプリケーション名が設定されます。
アプリケーション名は，MHPから送信されたメッセージの場合に設定されます。MHP以外から送信された場合は，ヌル文字が設定されます。

(6)　SCMPEVT

(a)　形式

struct dc_mcf_scmpevt_type {
 struct dc_mcf_evtheader evtheader ;
                            …MCFイベント共通ヘッダ
 DCLONG output_no ;         …出力通番
 char   map_name[9] ;       …MCF使用領域
 char   msg_type ;          …メッセージ種別
 char   reason_code ;       …起動理由
 char   reserve01[9] ;      …予備
 char   pro_indv_inf[16] ;  …プロトコル個別情報
 char   reserve02[16];      …予備
} ;

(b)　MCFイベントとして設定される項目

output_no
出力通番が設定されます。通番がない場合は，'-1'が設定されます。

msg_type
メッセージ種別として，次の値が設定されます。

n

一般一方送信メッセージ

p

優先一方送信メッセージ

reason_code
起動理由として，次の値が設定されます。

△

メッセージが正常に送信されました。

pro_indv_inf
ヌル文字が設定されます。

(7)　SERREVT

(a)　形式

struct dc_mcf_serrevt_type {
 struct dc_mcf_evtheader evtheader ;
                            …MCFイベント共通ヘッダ
 DCLONG output_no ;         …出力通番
 char   map_name[9] ;       …MCF使用領域
 char   msg_type ;          …メッセージ種別
 char   send_error_code ;   …送信エラーコード
 unsigned char trouble_code;…障害コード
 unsigned char detail_info; …詳細情報
 unsigned char error_code;  …エラーコード
 unsigned char error_subcode;
                            …エラーサブコード
 char reserve01[5] ;        …予備
 char pro_indv_inf[16] ;    …プロトコル個別情報
 char reserve02[16];        …予備
} ;

(b)　MCFイベントとして設定される項目

output_no
出力通番が設定されます。通番がない場合は，'-1'が設定されます。

msg_type
メッセージ種別として，次の値が設定されます。

n

一般一方送信メッセージ

p

優先一方送信メッセージ

send_error_code
送信エラーコードとして，'E'が設定されます。

trouble_code
障害コードとして，次の値が設定されます。

DCMCF_SERR_SEND

送信エラー

DCMCF_SERR_LOGICAL

論理エラー

detail_info
詳細情報として，次の値が設定されます。

DCMCF_SERR_ERROR

エラーによる送信障害

DCMCF_SERR_DCTCN

mcftdctcnコマンドによる送信障害

DCMCF_SERR_DCTLE

mcftdctleコマンドによる送信障害

error_code
ヌル文字が設定されます。

error_subcode
ヌル文字が設定されます。

pro_indv_inf
ヌル文字が設定されます。

(8)　CERREVT

(a)　形式

typedef struct {
 struct dc_mcf_evtheader  header ;
                            …MCFイベント共通ヘッダ
 DCLONG err_fact ;          …障害要因コード（4バイト）
 DCLONG err_reason1 ;       …理由コード1（4バイト）
 DCLONG err_reason2 ;       …理由コード2（4バイト）
 DCLONG recover_code ;      …回復可否識別
 DCLONG retry_code ;        …自動再確立有無識別
} dcmpcm_cerrevt ;
typedef sutrct {
 dcmpcm_cerrevt comheader   …プロトコル共通ヘッダ
 char reserve1[36] ;        …予備
} dcmhsc_cerrevt ;

なお，dcmpcm_cerrevtは，<dcmpcm.h>で定義されています。<dcmhsc1.h>または<dcmhsc2.h>の前に<dcmpcm.h>を取り込んでおいてください。また，dc_mcf_evtheaderは，<dcmcf.h>で定義されています。<dcmcf.h>，<dcmpcm.h>，<dcmhsc1.h>または<dcmhsc2.h>の順に取り込んでください。

(b)　MCFイベントとして設定される項目

err_fact
CERREVTの障害要因コードとして，次の値が設定されます。

(00000030)₁₆

コネクション障害発生

(00000031)₁₆

論理端末障害発生

err_reason1，err_reason2
CERREVTの理由コードが設定されます。「付録C　理由コード一覧」を参照してください。

recover_code
障害が回復できるかどうかが，次の値で設定されます。

(00000000)₁₆

回復可能

(00000010)₁₆

回復不可能

retry_code
障害発生後，自動再確立するかどうかが，次の値で設定されます。

(00000000)₁₆

自動再確立をします。

(00000010)₁₆

自動再確立をしません。

(9)　COPNEVT，CCLSEVT

(a)　形式

typedef struct {
 struct dc_mcf_evtheader  header ;
                            …MCFイベント共通ヘッダ
 char reserve1[56] ;        …予備
} dcmhsc_statevt ;

なお，dcmpcm_statevtは，<dcmhsc1.h>または<dcmhsc2.h>で定義されています。<dcmhsc1.h>または<dcmhsc2.h>の前に<dcmcf.h>を取り込んでおいてください。

(b)　MCFイベントとして設定される項目

ありません。

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

COBOL言語の場合はセグメントの並びとして渡されます。

COBOL言語のUAPの場合，MCFイベントの内容を表5-2～表5-9に示します。

表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イベント情報の内容（SCMPEVT）

項目
位置（バイト）
長さ
（バイト）
属性
内容

形式1
形式2

長さ（形式1のときだけ）
0
－
2
－
MCFが使用します。

予備（形式1のときだけ）
2
－
2
－
－

イベントコード
4
0
8
英数字
「SCMPEVT」が設定されます。

出力先論理端末名称
12
8
8
英数字
メッセージの送信が完了した論理端末名称です。

予備
20
16
8
－
－

コネクション名
28
24
8
英数字
コネクション名です。

メッセージが入力された日付
36
32
8
外部10進数字
SCMPEVTが通知された日付です。YYYYMMDDの形式です。
YYYY：西暦の年
MM：月
DD：日

メッセージが入力された時刻
44
40
8
外部10進数字
SCMPEVTが通知された時刻です。HHMMSS00の形式です。
HH：時
MM：分
SS：秒
00は固定です。

出力通番
52
48
4
2進数字
出力通番です。出力通番がない場合は，(FFFFFFFF)₁₆が設定されます。

出力マップ名
56
52
8
英数字
MCFが使用します。

メッセージ種別
64
60
1
英数字
メッセージ種別が設定されます。
n：一般一方送信メッセージ
p：優先一方送信メッセージ

理由コード
65
61
1
英数字
理由コードが設定されます。
△：送信が正常に完了しました。

予備
66
62
9
－
－

プロトコル個別情報
75
71
16
英数字
MCFが使用します。

予備
91
87
19
－
－

（凡例）

－：該当しません。または，使用されません。

表5-7　COBOL言語のMCFイベント情報の内容（SERREVT）

項目
位置（バイト）
長さ
（バイト）
属性
内容

形式1
形式2

長さ（形式1のときだけ）
0
－
2
－
MCFが使用します。

予備（形式1のときだけ）
2
－
2
－
－

イベントコード
4
0
8
英数字
「SERREVT」が設定されます。

出力先論理端末名称
12
8
8
英数字
送信障害となった論理端末名称です。

予備
20
16
8
－
－

コネクション名
28
24
8
英数字
コネクション名です。

メッセージが入力された日付
36
32
8
外部10進数字
SERREVTが通知された日付です。YYYYMMDDの形式です。
YYYY：西暦の年
MM：月
DD：日

メッセージが入力された時刻
44
40
8
外部10進数字
SERREVTが通知された時刻です。HHMMSS00の形式です。
HH：時
MM：分
SS：秒
00は固定です。

出力通番
52
48
4
2進数字
出力通番です。出力通番がない場合は，(FFFFFFFF)₁₆が設定されます。

出力マップ名
56
52
8
英数字
MCFが使用します。

メッセージ種別
64
60
1
英数字
メッセージ種別が設定されます。
n：一般一方送信メッセージ
p：優先一方送信メッセージ

送信エラーコード
65
61
1
英数字
'E'が設定されます。

障害コード
66
62
1
2進数字
障害コードが設定されます。

詳細情報
67
63
1
2進数字
詳細情報が設定されます。
(01)₁₆：エラーによる送信障害
(02)₁₆：mcftdctcnコマンドによる送信障害
(03)₁₆：mcftdctleコマンドによる送信障害

エラーコード
68
64
1
2進数字
MCFが使用します。

サブエラーコード
69
65
1
2進数字
MCFが使用します。

予備
70
66
5
－
－

プロトコル個別情報
75
71
16
英数字
MCFが使用します。

予備
91
87
19
－
－

（凡例）

－：該当しません。または，使用されません。

表5-8　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
－
－

（凡例）

－：該当しません。または，使用されません。

注※

理由コード1，および理由コード2は，「付録C　理由コード一覧」を参照してください。

表5-9　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 | － | －

（凡例）

－：該当しません。または，使用されません。

6.　システム定義

この章では，OpenTP1のシステム定義の中でのTP1/NET/HSC固有のシステム定義について説明します。また，自システム内にある通信管理プログラムと関連づける内容，およびシステム定義例について説明します。

＜この章の構成＞

TP1/NET/HSCの定義の概要

TP1/NET/HSC固有のシステム定義の種類－HSC1手順

mcftalccn（コネクション定義の開始）－HSC1手順

mcftalcle（論理端末定義）－HSC1手順

mcftalced（コネクション定義の終了）－HSC1手順

TP1/NET/HSC固有のシステム定義の種類－HSC2手順（非同期モード）

mcftalccn（コネクション定義の開始）－HSC2手順（非同期モード）

mcftalcle（論理端末定義）－HSC2手順（非同期モード）

mcftalced（コネクション定義の終了）－HSC2手順（非同期モード）

mcftlnf（回線リスト出力ファイル定義）－HSC2手順（非同期モード）

mcftllst（回線リスト定義）－HSC2手順（非同期モード）

mcftleof（回線リスト出力ファイル定義の終了）－HSC2手順（非同期モード）

TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）

mcftalccn（コネクション定義の開始）－HSC2手順（同期モード）

mcftalcle（論理端末定義）－HSC2手順（同期モード）

mcftalced（コネクション定義の終了）－HSC2手順（同期モード）

mcftstf（出力ファイル定義）－HSC2手順（同期モード）

mcftstlst（発信用相手ターミナルIDリスト定義）－HSC2手順（同期モード）

mcftrtlst（着信用相手ターミナルIDリスト定義）－HSC2手順（同期モード）

mcfteof（出力ファイル定義の終了）－HSC2手順（同期モード）

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

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

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

回線リスト定義－HSC2手順（非同期モード）

相手ターミナルIDリスト定義－HSC2手順（同期モード）

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

定義例

TP1/NET/HSCの定義の概要

TP1/NET/HSCのシステム定義は，OpenTP1のネットワークコミュニケーション定義の中で定義します。また，自システムの通信管理プログラムとシステム定義内容を関連づける必要があります。

OpenTP1のネットワークコミュニケーション定義の中での定義

OpenTP1のネットワークコミュニケーション定義のうち，TP1/NET/HSCに固有の定義について説明します。

使用する定義ファイル

MCFおよびTP1/NET/HSCを起動するには，定義ファイルに環境情報を設定する必要があります。MCFで使用する定義ファイルを次の表に示します。

表6-1　MCFで使用する定義ファイル

定義の種類 | 定義のソースファイル | 定義の内容
MCFマネジャ定義 | MCFマネジャ定義ソースファイル | MCF全体の実行環境
MCF通信構成定義 | 共通定義ソースファイル | プロトコルごとの実行環境
プロトコル固有定義ソースファイル
発信用相手ターミナルIDリストファイル | 通信相手のターミナルID（HSC2手順（同期モード）の場合）
着信用相手ターミナルIDリストファイル
回線リストファイル | 通信に使用する回線（HSC2手順（非同期モード）の場合）
MCFアプリケーション定義 | MCFアプリケーション定義ソースファイル | アプリケーションの属性

定義のソースファイルは，定義コマンド，オプション，およびオペランドを指定して作成します。それらの中には，プロトコルで共通のものと，プロトコルに固有のものがあります。表6-1の定義の中で，TP1/NET/HSCに固有の定義があるものを次に示します。

MCF通信構成定義

この章では，TP1/NET/HSCに固有の定義コマンド，オプション，およびオペランドについて，HSC1手順，HSC2手順（非同期モード）およびHSC2手順（同期モード）の場合に分けて説明します。プロトコル共通の定義については，マニュアル「OpenTP1 システム定義」を参照してください。ただし，mcftbuf（バッファグループ定義）のlength，countオペランドの指定値については，次に示す個所に記載してあります。

【HSC1手順の場合】

「mcftalccn（コネクション定義の開始）－HSC1手順」の注意事項

【HSC2手順（非同期モード）の場合】

「mcftalccn（コネクション定義の開始）－HSC2手順（非同期モード）」の注意事項

【HSC2手順（同期モード）の場合】

「mcftalccn（コネクション定義の開始）－HSC2手順（同期モード）」の注意事項

TP1/NET/HSCの組み込み時に必要なファイル

次に示すファイルは，TP1/NET/HSCをOpenTP1システムに組み込むときに必要なファイルです。

システムサービス情報定義ファイル

システムサービス共通情報定義ファイル

MCF定義オブジェクトファイル

この章では，システムサービス情報定義ファイルとシステムサービス共通情報定義ファイルの記述内容，およびMCF定義オブジェクトファイルを生成するユティリティの起動コマンドについて説明します。TP1/NET/HSCを組み込む方法については，「8.　組み込み方法」を参照してください。

通信定義の内容の関連づけ

相手システムと通信するためには，TP1/NET/HSCのシステム定義内容を自システムの通信管理プログラムと関連づける必要があります。

この章では，自システムの通信管理プログラム（XNF/AS）と関連づける内容を示します。

TP1/NET/HSC固有のシステム定義の種類－HSC1手順

MCF通信構成定義のうち，HSC1手順を使用する場合のTP1/NET/HSCに固有の定義の一覧を次の表に示します。

表6-2　TP1/NET/HSC固有の定義の一覧（HSC1手順）

定義名
コマンド
オプション・オペランド
定義内容
指定値((値範囲))《省略時解釈値》

MCF通信構成定義
共通定義
プロトコル共通のコマンドだけで指定できます。共通のコマンドについては，マニュアル「OpenTP1 システム定義」を参照してください。

プロトコル固有定義
mcftalccn
（コネクション定義の開始）
指定数：1～512
-c
－
コネクションID
1～8文字の識別子

-p
－
プロトコルの種別
hsc1

-g
sndbuf
メッセージ送信用バッファグループ番号
符号なし整数((1～512))

rcvbuf
メッセージ受信用バッファグループ番号
符号なし整数((1～512))

-e
msgbuf
メッセージ編集用バッファグループ番号
符号なし整数((1～512))

count
メッセージ編集用バッファ数
符号なし整数((1～131070))

-i
－
システム開始時，および再開始時に，自動的にAP間通信開始の準備をするかどうか
auto｜《manual》

-m
mode
使用する通信管理
xnfas

-k
－
回線名称
1～8文字の識別子

-y
－
コンテンション発生時の優先，非優先の指定
《winner》｜loser

-l
－
論理端末の閉塞解除をするかどうか
auto｜《manual》

-u
－
逆中断受信の場合の処理
《accept》｜ignore

-x
－
コネクション回復可能障害時，自動回復動作を抑止するかどうか
《auto》｜manual

-B
ttd
TTDを送信するかどうか
《use》｜nouse

wack
WACKを送信するかどうか
《use》｜nouse

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文字の識別子

-w
rowtrans
送信メッセージを列信にするかどうか
use｜《nouse》

mcftalced（コネクション定義の終了）
指定数：mcftalccnと同数
－
－
コネクション定義の終了
－

（凡例）

－：該当する内容がないことを表します。

注

TP1/NET/HSCに固有の定義だけ記載してあります。このほかにも，プロトコルで共通の定義コマンド，オプション，オペランドがあります。それらについては，マニュアル「OpenTP1 システム定義」を参照してください。

定義の指定順序

HSC1手順を使用する場合のTP1/NET/HSCのプロトコル固有定義コマンドの指定順序を，次の図に示します。

図6-1　TP1/NET/HDLCのプロトコル固有定義コマンドの指定順序（HSC1手順）

mcftalccn（コネクション定義の開始）－HSC1手順

形式

mcftalccn  -c コネクションID
          -p hsc1
          -g "sndbuf=メッセージ送信用バッファグループ番号
              rcvbuf=メッセージ受信用バッファグループ番号"
        〔-e "〔msgbuf=メッセージ編集用バッファグループ番号〕
              〔count=メッセージ編集用バッファ数〕"〕
        〔-i auto｜manual〕
          -m " mode=xnfas"
          -k 回線名称
        〔-y winner｜loser〕
        〔-l auto｜manual〕
        〔-u accept｜ignore〕
        〔-x auto｜manual〕
        〔-B "〔ttd=use｜nouse〕
              〔wack=use｜nouse〕"〕

機能

コネクションに関する環境を定義します。

オプション

●-c コネクションID　　～〈1～8文字の識別子〉

コネクションIDを指定します。

このコネクションIDは，ほかのmcftalccnコマンドの-cオプションで指定するコネクションIDと重複して指定できません。

●-p hsc1

プロトコルの種別を指定します。

hsc1

HSC1手順

●-g

（オペランド）

sndbuf=メッセージ送信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ送信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

rcvbuf=メッセージ受信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ受信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

●-e

（オペランド）

msgbuf=メッセージ編集用バッファグループ番号　　～〈符号なし整数〉((1～512))

入力および出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファグループ番号を指定します。

このオペランドを省略した場合は，メッセージ編集用バッファは確保されません。メッセージ編集用バッファグループ番号は，mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

count=メッセージ編集用バッファ数　　～〈符号なし整数〉((1～131070))

入力および出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファの数を指定します。

msgbufオペランドで指定するメッセージ編集用バッファグループ番号に対応するmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定するバッファ数の中から，メッセージ編集用に使用するバッファ数を指定してください。

また，このオペランドの指定はmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定されたバッファ数の合計値を超える指定はできません。

-eオプションのmsgbufオペランドを省略した場合は，このオペランドの指定は無効です。

●-i auto｜manual　　～《manual》

OpenTP1システム開始時および再開始時に，自動的にAP間通信開始の準備をするかどうかを指定します。

auto

OpenTP1システム開始時および再開始時に，自動的にAP間通信開始の準備をします。

manual

MCF起動後，運用コマンド（mcftactcn）を入力して，AP間通信開始の準備をします。

●-m

（オペランド）

mode=xnfas

使用する通信管理を指定します。

xnfas

XNF/ASを使用します。

このオペランドは必ず指定してください。

●-k 回線名称　　～〈1～8文字の識別子〉

HSC1手順の回線名称を指定します。

通信管理の構成定義（basicline文のnameオペランド）で指定した回線名称と同じ回線名称を指定してください。

XNF/ASの構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

●-y winner｜loser　　～《winner》

コンテンション発生時の優先，非優先を指定します。

winner

優先局

loser

非優先局

●-l auto｜manual　　～《manual》

AP間通信の開始準備と同時に，論理端末の閉塞解除をするかどうかを指定します。

auto

論理端末を自動的に閉塞解除します。

manual

運用コマンド（mcftactle）を入力して，論理端末を閉塞解除します。

●-u accept｜ignore　　～《accept》

相手システムから逆中断（RVI）を受信した場合の対処方法を指定します。

accept

逆中断を受理してテキストの送信を中断します。

ignore

逆中断を無視してテキストの送信を継続します。

●-x auto｜manual　　～《auto》

コネクションの回復が可能な障害が発生したときに，自動回復を抑止するかどうかを指定します。

auto

コネクション自動回復を行い，コネクションを自動的に再確立します。

manual

コネクションの自動回復を抑止します。

この場合，コネクションを再確立するには，運用コマンド（mcftactcn）を入力します。

●-B

（オペランド）

ttd=use｜nouse　　～《use》

メッセージ送信時，TP1/NET/HSCの内部処理で一時的に送信ができない場合，相手システムに対してTTD（一時送信延期）を送信するかどうかを指定します。

use

TTDを送信します。

nouse

TTDを送信しません。

wack=use｜nouse　　～《use》

メッセージ受信時，TP1/NET/HSCの内部処理で一時的に受信ができない場合，相手システムに対してWACK（一時受信抑止）を送信するかどうかを指定します。

use

WACKを送信します。

nouse

WACKを送信しません。

注意事項

HSC1手順を使用する場合，-gオプションおよび-eオプションで指定するバッファグループ番号に対応するバッファグループ定義のmcftbufコマンドでは，1コネクション単位に次の表に示す資源が必要です。バッファグループ定義については，マニュアル「OpenTP1 システム定義」を参照してください。

バッファ種別 | lengthオペランド | countオペランド
sndbuf | 送信最大セグメント長※1 | 最大セグメント分割数以上
rcvbuf | 受信最大セグメント長※1 | （最大セグメント分割数＋1）以上
msgbuf※2 | 入力および出力メッセージ編集UOCで編集したあとの最大セグメント長 | （最大セグメント分割数×2）以上

注※1

送信最大セグメント長，および受信最大セグメント長は，8162バイトとします。ただし，透過モードの場合は，8160バイトにしてください。この場合のセグメント長は，テキスト形態の4バイトを含みます。

注※2

入力および出力メッセージ編集UOCを使用しない場合は不要です。

なお，この値より小さい値を指定した場合，オンライン実行中にバッファ不足が発生する可能性があるので，必ず上記の値またはそれ以上の値を指定してください。また，複数のコネクションでバッファグループを共有する場合，バッファ数はコネクションごとの和を，バッファ長はコネクション間で最大値を指定してください。

mcftalcle（論理端末定義）－HSC1手順

形式

mcftalcle-l 論理端末名称
         -t any
       〔-m "〔mmsgcnt=メモリ出力メッセージ最大格納数〕
             〔dmsgcnt=ディスク出力メッセージ最大格納数〕"〕
       〔-k "〔quekind=memory｜disk〕
             〔quegrpid=キューグループID〕"〕
       〔-o "〔aj=yes｜no〕"〕
       〔-v アプリケーション名〕
       〔-w "〔rowtrans=use｜nouse〕"〕

機能

論理端末に関する環境を定義します。

オプション

●-l 論理端末名称　　～〈1～8文字の識別子〉

論理端末名称を指定します。

この論理端末名称は，ほかのmcftalcleコマンドの-lオプションで指定する論理端末名称とは異なる指定をしてください。

●-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）のどれかを指定してください。

このオペランドは，quekindオペランドでdiskを指定した場合だけ指定します。

●-o

（オペランド）

aj=yes｜no　　～《yes》

送信完了時の情報を取得するかどうかを指定します。

yes

メッセージ送信完了ジャーナルを取得します。

no

メッセージ送信完了ジャーナルを取得しません。

●-v アプリケーション名

該当する論理端末で受信したメッセージを処理するアプリケーション名を指定します。

MCFアプリケーション定義（mcfaalcap -n）のnameオペランドで指定した名称を指定してください。MCFアプリケーション定義については，マニュアル「OpenTP1 システム定義」を参照してください。

このオプションは，入力メッセージ編集UOCでアプリケーション名を決定する場合は不要です。

●-w

（オペランド）

rowtrans=use｜nouse　　～《nouse》

送信メッセージを列信として扱うかどうかを指定します。

use

送信メッセージを列信として扱います。

nouse

送信メッセージを通常の送信として扱います。

mcftalced（コネクション定義の終了）－HSC1手順

形式

mcftalced

機能

一つのコネクション定義の終了を示します。

オプション

ありません。

TP1/NET/HSC固有のシステム定義の種類－HSC2手順（非同期モード）

MCF通信構成定義のうち，HSC2手順（非同期モード）を使用する場合のTP1/NET/HSCに固有の定義の一覧を次の表に示します。

表6-3　TP1/NET/HSC固有の定義の一覧（HSC2手順（非同期モード））

定義名
コマンド
オプション・オペランド
定義内容
指定値((値範囲))《省略時解釈値》

MCF通信構成定義
共通定義
プロトコル共通のコマンドだけで指定できます。共通のコマンドについては，マニュアル「OpenTP1 システム定義」を参照してください。

プロトコル固有定義
mcftalccn
（コネクション定義の開始）
指定数：1～512
-c
－
コネクションID
1～8文字の識別子

-p
－
プロトコルの種別
hsc2

-g
sndbuf
メッセージ送信用バッファグループ番号
符号なし整数((1～512))

rcvbuf
メッセージ受信用バッファグループ番号
符号なし整数((1～512))

-e
msgbuf
メッセージ編集用バッファグループ番号
符号なし整数((1～512))

count
メッセージ編集用バッファ数
符号なし整数((1～131070))

-i
－
システム開始時，および再開始時にコネクションを自動的に確立するかどうか
auto｜《manual》

-k
－
回線定義リストファイル名称
1～8文字の識別子

-y
－
コンテンション発生時の優先，非優先の指定
《winner》｜loser

-l
－
論理端末の閉塞解除をするかどうか
auto｜《manual》

-u
－
逆中断受信の場合の処理
《accept》｜ignore

-n
tid
自システムのターミナルID
1~15文字の英数字

-w
calltone
呼び出しトーン時間
符号なし整数((0～204))《0》（単位：秒）

anstone
アンサトーン時間
符号なし整数((0～204))《0》（単位：秒）

-f
eotctrl
EOT交換をするかどうか
《use》｜nouse

holdtime
回線接続の維持時間
符号なし整数((0～4096))《1》（単位：秒）

eotexl
自システム発信時のEOT交換回数
符号なし整数((1～255))《1》

eotexr
相手システム発信時のEOT交換回数
符号なし整数((1～255))《255》

eottime
EOT交換間隔時間
符号なし整数((0～10))《1》（単位：秒）

-x
－
発信による回線接続時に回線接続を自動的に再試行するかどうか
《auto》｜manual

-d
retrycnt
発信リトライ回数
符号なし整数((1～255))《6》

retryint
発信リトライ間隔時間
符号なし整数((1～180))《60》（単位：秒）

-r
reverse
送受信反転制御を使用するかどうか
use｜《nouse》

-j
idchange
IDを交換するかどうか
《use》｜nouse

-v
discinf
回線維持終了時のCERREVTを通知するかどうか
use｜《nouse》

-z
linecont
複数回線間のコンテンション発生時の優先，非優先の指定
《winner》｜loser

-B
ttd
TTDの送信
《use》｜nouse

wack
WACKの送信
《use》｜nouse

mcftalcle（論理端末定義）
指定数：1～2048
-l
－
論理端末名称
1～8文字の識別子

-t
－
この論理端末のタイプ
any

-m
mmsgcnt
メモリキュー内の出力メッセージの最大格納数
符号なし整数((0～65535))《0》

dmsgcnt
ディスクキュー内の出力メッセージの最大格納数
符号なし整数((0～65535))《0》

-k
quekind
出力キューの媒体の種類
《memory》｜disk

quegrpid
キューグループID
1～8文字の識別子

-o
aj
送信完了時の情報を取得するかどうか
《yes》｜no

-v
－
アプリケーション名
1～8文字の識別子

-b
attr
論理端末の属性
async

-w
rowtrans
送信メッセージを列信にするかどうか
use｜《nouse》

-n
tid
相手システムのターミナルID
1～15文字の英数字

-d
dialno
相手システムのダイヤル番号
1～100けたの符号なし整数（アスタリスク(*)，プラス(+)，ピリオド(.)を含む）

mcftalced（コネクション定義の終了）
指定数：mcftalccnと同数
－
－
コネクション定義の終了
－

回線リスト定義
mcftlnf（回線リスト出力ファイル定義）
指定数：1～512
-o
－
回線リスト出力オブジェクトファイル名称
1～8文字の識別子

mcftllst（回線リスト定義）
指定数：1～400
-k
－
回線名称
1～8文字の識別子

mcftleof（回線リスト出力ファイル定義の終了）
指定数：mcftlnfと同様
－
－
回線リスト出力ファイル定義の終了
－

（凡例）

－：該当する内容がないことを表します。

注

TP1/NET/HSCに固有の定義だけ記載してあります。このほかにも，プロトコルで共通の定義コマンド，オプション，オペランドがあります。それらについては，マニュアル「OpenTP1 システム定義」を参照してください。

定義の指定順序

HSC2手順（非同期モード）を使用する場合のTP1/NET/HSCのプロトコル固有定義コマンドの指定順序を，次の図に示します。

図6-2　TP1/NET/HDLCのプロトコル固有定義コマンドの指定順序（HSC2手順（非同期モード））

mcftalccn（コネクション定義の開始）－HSC2手順（非同期モード）

形式

mcftalccn  -c コネクションID
          -p hsc2
          -g "sndbuf=メッセージ送信用バッファグループ番号
              rcvbuf=メッセージ受信用バッファグループ番号"
        〔-e "〔msgbuf=メッセージ編集用バッファグループ番号〕
              〔count=メッセージ編集用バッファ数〕"〕
        〔-i auto｜manual〕
          -k 回線リストファイル名称
        〔-y winner｜loser〕
        〔-l auto｜manual〕
        〔-u accept｜ignore〕
        〔-n "tid=自システムのターミナルID"〕
        〔-w "〔calltone=呼び出しトーン時間〕
              〔anstone=アンサトーン時間〕"〕
        〔-f "〔eotctrl=use｜nouse〕
              〔holdtime=回線接続維持時間〕
              〔eotexl=自システム発信時のEOT交換回数〕
              〔eotexr=相手システム発信時のEOT交換回数〕
              〔eottime=EOT交換間隔時間〕"〕
        〔-x auto｜manual〕
        〔-d "〔retrycnt=発信再試行回数〕
              〔retryint=発信再試行間隔時間〕"〕
        〔-r "reverse=use｜nouse"〕
        〔-j "idchange=use｜nouse"〕
        〔-v "discinf=use｜nouse"〕
        〔-z "linecont=winner｜loser"〕
        〔-B "〔ttd=use｜nouse〕
              〔wack=use｜nouse〕"〕

機能

コネクションに関する環境を定義します。

オプション

●-c コネクションID　　～〈1～8文字の識別子〉

コネクションIDを指定します。

このコネクションIDは，ほかのmcftalccnコマンドの-cオプションで指定するコネクションIDと重複して指定できません。

●-p hsc2

プロトコルの種別を指定します。

hsc2

HSC2手順

●-g

（オペランド）

sndbuf=メッセージ送信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ送信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

rcvbuf=メッセージ受信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ受信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

●-e

（オペランド）

msgbuf=メッセージ編集用バッファグループ番号　　～〈符号なし整数〉((1～512))

入力および出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファグループ番号を指定します。

このオペランドを省略した場合は，メッセージ編集用バッファは確保されません。メッセージ編集用バッファグループ番号は，mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

count=メッセージ編集用バッファ数　　～〈符号なし整数〉((1～131070))

入力および出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファの数を指定します。

msgbufオペランドで指定するメッセージ編集用バッファグループ番号に対応するmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定するバッファ数の中から，メッセージ編集用に使用するバッファ数を指定してください。

また，このオペランドの指定はmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定されたバッファ数の合計値を超える指定はできません。

-eオプションのmsgbufオペランドを省略した場合は，このオペランドの指定は無効です。

●-i auto｜manual　　～《manual》

OpenTP1システム開始時および再開始時に，コネクションを自動的に確立するかどうかを指定します。

auto

OpenTP1システム開始時および再開始時に，コネクションを自動的に確立します。

manual

MCF起動後，運用コマンド（mcftactcn）を入力して，コネクションを確立します。

●-k 回線リストファイル名称　　～〈1～8文字の識別子〉

HSC2手順（非同期モード）で使用する回線に対応する回線リストファイル名称を指定します。

通信管理の構成定義（basiclineのnameオペランド）で指定した回線名称と同じ回線名称を指定してください。

XNF/ASの構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

●-y winner｜loser　　～《winner》

コンテンション発生時の優先，非優先を指定します。

winner

優先局

loser

非優先局

●-l auto｜manual　　～《manual》

コネクションの確立と同時に，論理端末の閉塞解除をするかどうかを指定します。

auto

論理端末を自動的に閉塞解除します。

manual

運用コマンド（mcftactle）を入力して，論理端末を閉塞解除します。

●-u accept｜ignore　　～《accept》

相手システムから逆中断（RVI）を受信した場合の対処方法を指定します。

accept

逆中断を受理してテキストの送信を中断します。

ignore

逆中断を無視してテキストの送信を継続します。

●-n

（オペランド）

tid=自システムのターミナルID　　～〈1～15文字の英数字〉

自システムのターミナルIDを指定します。このIDは，回線接続時に相手システムに通知されます。

このオプションは，mcftalccnコマンド-jオプションのidchangeオペランドでnouseを指定して，ID交換をしない場合には無効です。

●-w

（オペランド）

calltone=呼び出しトーン時間　　～〈符号なし整数〉((0～204))《0》（単位：秒）

電話網接続での発信時に送出する呼び出しトーン時間を指定します。

このオペランドを省略した場合，または0を指定した場合，呼び出しトーンは送出しません。

このオペランドは，回線交換網接続時および着信時は不要です。また，ハードウェアの仕様によって，指定した値が0.8の倍数に切り上げられる場合があります。

anstone=アンサトーン時間　　～〈符号なし整数〉((0～204))《0》（単位：秒）

電話網接続での着信時に送出するアンサトーン時間を指定します。

このオペランドを省略した場合，または0を指定した場合，アンサトーンは送出しません。

このオペランドは，回線交換網接続時および着信時は不要です。また，ハードウェアの仕様によって，指定した値が0.8の倍数に切り上げられる場合があります。

●-f

（オペランド）

eotctrl=use｜nouse　　～《use》

EOT交換をするかどうかを指定します。

use

EOT交換をします。

nouse

EOT交換をしません。

holdtime=回線接続維持時間　　～〈符号なし整数〉((0～4096))《1》（単位：秒）

送受信のメッセージがなくなってから，回線を切断するまでの回線接続維持時間を秒単位で指定します。通信管理の構成定義で指定した時間より，小さい値を指定してください。0を指定した場合，時間監視はしません。eotctrlオペランドでnouseを指定したときだけ指定してください。

eotexl=自システム発信時のEOT交換回数　　～〈符号なし整数〉((1～255))《1》

自システムから発信し，回線を接続した場合のEOT交換をする回数を指定します。

このオペランドで255を指定した場合，無限回EOT交換をします。

eotctrlオペランドでnouseを指定した場合，このオペランドは無効です。

eotexr=相手システム発信時のEOT交換回数　　～〈符号なし整数〉((1～255))《255》

相手システムから発信し，回線を接続した場合のEOT交換をする回数を指定します。

このオペランドを省略した場合，または255を指定した場合，無限回EOT交換をします。

eotctrlオペランドでnouseを指定した場合，このオペランドは無効です。

eottime=EOT交換間隔時間　　～〈符号なし整数〉((0～10))《1》（単位：秒）

1回のEOT交換が終了してから，次のEOT交換が始まるまでの間の時間を指定します。

このオペランドで0を指定した場合，間隔時間を空けないで，即時にEOT交換をします。

eotctrlオペランドでnouseを指定した場合，このオペランドは無効です。

●-x auto｜manual　　～《auto》

発信による回線接続時，相手システムが使用中などの要因で接続できなかった場合，自動的に回線接続の再試行をするかどうかを指定します。

auto

自動的に回線を接続します。

manual

自動的に回線を接続しません。

●-d

（オペランド）

retrycnt=発信再試行回数　　～〈符号なし整数〉((1～255))《6》（単位：秒）

発信による回線接続を再試行する回数を指定します。

255を指定した場合，無限回再試行します。

-xオプションでmanualを指定した場合，このオペランドは無効です。

retryint=発信再試行間隔時間　　～〈符号なし整数〉((1～180))《60》（単位：秒）

回線接続の再試行間隔時間を指定します。

-xオプションでmanualを指定した場合，このオペランドは無効です。

発信再試行間隔時間が経過しても，回線に空きがない場合は，発信の再試行処理が遅れることがあります。

●-r

（オペランド）

reverse=use｜nouse　　～《nouse》

送受信反転制御を使用するかどうかを指定します。

TP1/NET/HSCのHSC2手順（非同期モード）では，内部で送受信のコンテンションが発生した場合，受信が優先されます。受信完了後直ちに送受信処理をすることを送受信反転制御といいます。送受信反転制御を使用する場合には，useを指定してください。

use

送受信反転制御を使用します。

nouse

送受信反転制御を使用しません。

●-j

（オペランド）

idchange=use｜nouse　　～《use》

回線接続時，ID交換をするかどうかを指定します。

use

ID交換をします。

nouse

ID交換をしません。

●-v

（オペランド）

discinf=use｜nouse　　～《nouse》

回線接続終了時にCERREVTを通知するかどうかを指定します。

use

回線接続終了時にCERREVTを通知します。

nouse

回線接続終了時にCERREVTを通知しません。

●-z

（オペランド）

linecont=winner｜loser　　～《winner》

複数の回線間で発信または着信のコンテンションが発生した場合の優先とする側を指定します。

このオペランドは，非同期モードで一つのコネクションに複数の回線を指定した場合に有効です。

winner

自システムからの発信を優先して回線を接続します。

loser

相手システムからの発信を優先して回線を接続します。

●-B

（オペランド）

ttd=use｜nouse　　～《use》

メッセージ送信時，TP1/NET/HSCの内部処理で一時的に送信ができない場合，相手システムに対してTTD（一時送信延期）を送信するかどうかを指定します。

use

TTDを送信します。

nouse

TTDを送信しません。

wack=use｜nouse　　～《use》

メッセージ受信時，TP1/NET/HSCの内部処理で一時的に受信ができない場合，相手システムに対してWACK（一時受信抑止）を送信するかどうかを指定します。

use

WACKを送信します。

nouse

WACKを送信しません。

注意事項

HSC2手順（非同期モード）を使用する場合，gオプションおよび-eオプションで指定するバッファグループ番号に対応するバッファグループ定義のmcftbufコマンドでは，1コネクション単位に次の表に示す資源が必要です。バッファグループ定義については，マニュアル「OpenTP1 システム定義」を参照してください。

バッファ種別 | lengthオペランド | countオペランド
sndbuf | 送信最大セグメント長※1 | （回線数×最大セグメント分割数）以上
rcvbuf | 受信最大セグメント長※1 | （回線数×最大セグメント分割数＋1）以上
msgbuf※2 | 入力および出力メッセージ編集UOCで編集したあとの最大セグメント長 | （最大セグメント分割数×2）以上

注※1

送信最大セグメント長，および受信最大セグメント長は，8162バイトとします。ただし，透過モードの場合は，8160バイトにしてください。この場合のセグメント長は，テキスト形態の4バイトを含みます。

注※2

入力および出力メッセージ編集UOCを使用しない場合は不要です。

なお，この値より小さい値を指定した場合，オンライン実行中にバッファ不足が発生する可能性があるので，必ず上記の値またはそれ以上の値を指定してください。また，複数のコネクションでバッファグループを共有する場合，バッファ数はコネクションごとの和を，バッファ長はコネクション間で最大値を指定してください。

mcftalcle（論理端末定義）－HSC2手順（非同期モード）

形式

mcftalcle -l 論理端末名称
         -t any
       〔-m "〔mmsgcnt=メモリ出力メッセージ最大格納数〕
             〔dmsgcnt=ディスク出力メッセージ最大格納数〕"〕
       〔-k "〔quekind=memory｜disk〕
             〔quegrpid=キューグループID〕"〕
       〔-o "〔aj=yes｜no〕"〕
       〔-v アプリケーション名〕
       〔-b "attr=async"〕
       〔-w "〔rowtrans=use｜nouse〕"〕
       〔-n "tid=相手システムのターミナルID"〕
       〔-d "dialno=相手システムのダイヤル番号"〕

機能

論理端末に関する環境を定義します。

オプション

●-l 論理端末名称　　～〈1～8文字の識別子〉

論理端末名称を指定します。

この論理端末名称は，ほかのmcftalcleコマンドの-lオプションで指定する論理端末名称とは異なる指定をしてください。

●-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）のどれかを指定してください。

このオペランドは，quekindオペランドでdiskを指定した場合だけ指定します。

●-o

（オペランド）

aj=yes｜no　　～《yes》

送信完了時の情報を取得するかどうかを指定します。

yes

メッセージ送信完了ジャーナルを取得します。

no

メッセージ送信完了ジャーナルを取得しません。

●-v アプリケーション名

該当する論理端末で受信したメッセージを処理するアプリケーション名を指定します。

MCFアプリケーション定義（mcfaalcap -n）のnameオペランドで指定した名称を指定してください。MCFアプリケーション定義については，マニュアル「OpenTP1 システム定義」を参照してください。

このオプションは，入力メッセージ編集UOCでアプリケーション名を決定する場合は不要です。

●-b

（オペランド）

attr=async　　～《async》

論理端末の属性を指定します。HSC2手順（非同期モード）の場合，このasyncを指定するか，このオプションを省略してください。

async

論理端末はUAPと結び付くことはなく，非同期に送受信をします。

●-w

（オペランド）

rowtrans=use｜nouse　　～《nouse》

送信メッセージを列信として扱うかどうかを指定します。

use

送信メッセージを列信として扱います。

nouse

送信メッセージを通常の送信として扱います。

●-n

（オペランド）

tid=相手システムのターミナルID　　～〈1～15文字の英数字〉

相手システムのターミナルIDを指定します。

一つのコネクションでは，重複したターミナルIDは指定できません。

このオプションは，mcftalccnコマンド-jオプションのidchangeオペランドでnouseを指定して，ID交換をしない場合には無効です。

●-d

（オペランド）

dialno=相手システムのダイヤル番号　　～〈1～100けたの符号なし整数〉（アスタリスク(*)，プラス(+)，ピリオド(.)を含む）

相手システムのダイヤル番号を指定します。

このオペランドは，HSC2手順（非同期モード）で，自システムからの発信による接続がある場合有効です。

ダイヤル番号の形式は次のとおりです。

【V25.bisの場合】

mmmmmmm

【V21（通常発信）の場合】

mmmmmmm+

【V21（短縮ダイヤル，ペア型閉域）の場合】

.nn+

（凡例）

mmmmmmm：1～100けたの符号なし整数

nn：通信管理で回線網に登録する番号

mcftalced（コネクション定義の終了）－HSC2手順（非同期モード）

形式

mcftalced

機能

一つのコネクション定義の終了を示します。

オプション

ありません。

mcftlnf（回線リスト出力ファイル定義）－HSC2手順（非同期モード）

形式

mcftlnf -o 回線リスト出力オブジェクトファイル名称

機能

HSC2手順（非同期モード）の場合，回線リストを出力するオブジェクトファイルの名称を指定します。

オプション

●-o 回線リスト出力オブジェクトファイル名称　　～〈1～8文字の識別子〉

回線リストを出力するオブジェクトファイルの名称を指定します。

mcftllst（回線リスト定義）－HSC2手順（非同期モード）

形式

mcftllst -k "回線名称"

機能

HSC2手順（非同期モード）の場合，回線の名称を指定します。

オプション

●-k "回線名称"　　～〈1～8文字の識別子〉

回線名称を指定します。

通信管理の構成定義（basicline文のnameオペランド）で指定した回線名称を指定します。

mcftleof（回線リスト出力ファイル定義の終了）－HSC2手順（非同期モード）

形式

mcftleof

機能

回線リスト出力ファイル定義の終了を示します。

オプション

ありません。

TP1/NET/HSC固有のシステム定義の種類－HSC2手順（同期モード）

MCF通信構成定義のうち，HSC2手順（同期モード）を使用する場合のTP1/NET/HSCに固有の定義の一覧を次の表に示します。

表6-4　TP1/NET/HSC固有の定義の一覧（HSC2手順（同期モード））

定義名
コマンド
オプション・オペランド
定義内容
指定値((値範囲))《省略時解釈値》

MCF通信構成定義
共通定義
プロトコル共通のコマンドだけで指定できます。共通のコマンドについては，マニュアル「OpenTP1 システム定義」を参照してください。

プロトコル固有定義
mcftalccn
（コネクション定義の開始）
指定数：1～512
-c
－
コネクションID
1～8文字の識別子

-p
－
プロトコルの種別
hsc2

-g
sndbuf
メッセージ送信用バッファグループ番号
符号なし整数((1～512))

rcvbuf
メッセージ受信用バッファグループ番号
符号なし整数((1～512))

-e
msgbuf
メッセージ編集用バッファグループ番号
符号なし整数((1～512))

count
メッセージ編集用バッファ数
符号なし整数((1～131070))

-i
－
システム開始時，および再開始時にコネクションを自動的に確立するかどうか
auto｜《manual》

-k
－
回線名称
1～8文字の識別子

-y
－
コンテンション発生時の優先，非優先の指定
《winner》｜loser

-l
－
論理端末の閉塞解除をするかどうか
auto｜《manual》

-u
－
逆中断受信の場合の処理
《accept》｜ignore

-n
tid
自システムのターミナルID
1~15文字の英数字

-w
calltone
呼び出しトーン時間
符号なし整数((0～204))《0》（単位：秒）

anstone
アンサトーン時間
符号なし整数((0～204))《0》（単位：秒）

-o
slist
発信用相手ターミナルIDリストファイル名称
1～8文字の識別子

rlist
着信用相手ターミナルIDリストファイル名称
1～8文字の識別子

-f
eotctrl
EOT交換をするかどうか
《use》｜nouse

holdtime
回線接続の維持時間
符号なし整数((0～4096))《1》（単位：秒）

eotexl
自システム発信時のEOT交換回数
符号なし整数((1～255))《1》

eotexr
相手システム発信時のEOT交換回数
符号なし整数((1～255))《255》（単位：秒）

eottime
EOT交換間隔時間
符号なし整数((0～10))《1》（単位：秒）

-j
idchange
IDを交換するかどうか
《use》｜nouse

-B
ttd
TTDの送信
《use》｜nouse

wack
WACKの送信
《use》｜nouse

mcftalcle（論理端末定義）
指定数：1～2048
-l
－
論理端末名称
1～8文字の識別子

-t
－
この論理端末のタイプ
any

-m
mmsgcnt
メモリキュー内の出力メッセージの最大格納数
符号なし整数((0～65535))《0》

-k
quekind
出力キューの媒体の種類
《memory》

-o
aj
送信完了時の情報を取得するかどうか
《yes》｜no

-v
－
アプリケーション名
1～8文字の識別子

-b
attr
論理端末の属性
sync

mcftalced（コネクション定義の終了）
指定数：mcftalccnと同数
－
－
コネクション定義の終了
－

相手ターミナルIDリストの定義
mcftstf（出力ファイル定義）
指定数：1～512（発信用），1～512（着信用）
-o
－
出力オブジェクトファイル名
1～8文字の識別子

mcftstlst（発信用相手ターミナルIDリスト定義）
指定数：1～4096
-t
tid
相手システムのターミナルID
1～15文字の英数字

-d
dialno
相手システムのターミナルのダイヤル番号
1～100けたの符号なし整数（アスタリスク(*)，プラス(+)，ピリオド(.)を含む）

mcftrtlst（着信用相手ターミナルIDリスト定義）
指定数：1～4096
-t
tid
相手システムのターミナルID
1～15文字の英数字

-l
leid
送受信をする論理端末名称
1～8文字の識別子

mcfteof（出力ファイル定義の終了）
指定数：mcftstfと同数
－
－
出力ファイル定義の終了
－

（凡例）

－：該当する内容がないことを表します。

注

TP1/NET/HSCに固有の定義だけ記載してあります。このほかにも，プロトコルで共通の定義コマンド，オプション，オペランドがあります。それらについては，マニュアル「OpenTP1 システム定義」を参照してください。

定義の指定順序

HSC2手順（同期モード）を使用する場合のTP1/NET/HSCのプロトコル固有定義コマンドの指定順序を，次の図に示します。

図6-3　TP1/NET/HDLCのプロトコル固有定義コマンドの指定順序（HSC2手順（同期モード））

mcftalccn（コネクション定義の開始）－HSC2手順（同期モード）

形式

mcftalccn  -c コネクションID
          -p hsc2
          -g "sndbuf=メッセージ送信用バッファグループ番号
              rcvbuf=メッセージ受信用バッファグループ番号"
        〔-e "〔msgbuf=メッセージ編集用バッファグループ番号〕
              〔count=メッセージ編集用バッファ数〕"〕
        〔-i auto｜manual〕
          -k 回線名称
        〔-y winner｜loser〕
        〔-l auto｜manual〕
        〔-u accept｜ignore〕
        〔-n "tid=自システムのターミナルID"〕
        〔-w "〔calltone=呼び出しトーン時間〕
              〔anstone=アンサトーン時間〕"〕
        〔-o "slist=発信用相手ターミナルIDリストファイル名称
              rlist=着信用相手ターミナルIDリストファイル名称"〕
        〔-f "〔eotctrl=use｜nouse〕
              〔holdtime=回線接続維持時間〕
              〔eotexl=自システム発信時のEOT交換回数〕
              〔eotexr=相手システム発信時のEOT交換回数〕
              〔eottime=EOT交換間隔時間〕"〕
        〔-j "idchange=use｜nouse"〕
        〔-B "〔ttd=use｜nouse〕
              〔wack=use｜nouse〕"〕

機能

コネクションに関する環境を定義します。

オプション

●-c コネクションID　　～〈1～8文字の識別子〉

コネクションIDを指定します。

このコネクションIDは，ほかのmcftalccnコマンドの-cオプションで指定するコネクションIDと重複して指定できません。

●-p hsc2

プロトコルの種別を指定します。

hsc2

HSC2手順

●-g

（オペランド）

sndbuf=メッセージ送信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ送信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

rcvbuf=メッセージ受信用バッファグループ番号　　～〈符号なし整数〉((1～512))

メッセージ受信用バッファのグループ番号を指定します。

mcftbufコマンドの-gオプションのgroupnoオペランドに指定されているバッファグループ番号を指定してください。

●-e

（オペランド）

msgbuf=メッセージ編集用バッファグループ番号　　～〈符号なし整数〉((1～512))

入力および出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファグループ番号を指定します。

このオペランドを省略した場合は，メッセージ編集用バッファは確保されません。メッセージ編集用バッファグループ番号は，mcftbufコマンドの-gオプションのgroupnoオペランドで指定するバッファグループ番号を指定してください。

count=メッセージ編集用バッファ数　　～〈符号なし整数〉((1～131070))

入力および出力メッセージ編集UOCの場合，メッセージ編集用として使用するバッファの数を指定します。

msgbufオペランドで指定するメッセージ編集用バッファグループ番号に対応するmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定するバッファ数の中から，メッセージ編集用に使用するバッファ数を指定してください。

また，このオペランドの指定はmcftbufコマンドの-gオプションのcount，およびextendオペランドで指定されたバッファ数の合計値を超える指定はできません。

-eオプションのmsgbufオペランドを省略した場合は，このオペランドの指定は無効です。

●-i auto｜manual　　～《manual》

OpenTP1システム開始時および再開始時に，コネクションを自動的に確立するかどうかを指定します。

auto

OpenTP1システム開始時および再開始時に，コネクションを自動的に確立します。

manual

MCF起動後，運用コマンド（mcftactcn）を入力して，コネクションを確立します。

●-k 回線名称　　～〈1～8文字の識別子〉

HSC2手順（同期モード）の回線名称を指定します。

通信管理の構成定義（basiclineのnameオペランド）で指定した回線名称と同じ回線名称を指定してください。

XNF/ASの構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

●-y winner｜loser　　～《winner》

コンテンション発生時の優先，非優先を指定します。

winner

優先局

loser

非優先局

●-l auto｜manual　　～《manual》

コネクションの確立と同時に，論理端末の閉塞解除をするかどうかを指定します。

auto

論理端末を自動的に閉塞解除します。

manual

運用コマンド（mcftactle）を入力して，論理端末を閉塞解除します。

●-u accept｜ignore　　～《accept》

相手システムから逆中断（RVI）を受信した場合の対処方法を指定します。

accept

逆中断を受理してテキストの送信を中断します。

ignore

逆中断を無視してテキストの送信を継続します。

●-n

（オペランド）

tid=自システムのターミナルID　　～〈1～15文字の英数字〉

自システムのターミナルIDを指定します。このIDは，回線接続の発信時および着信時に相手システムに通知されます。

このオプションは，mcftalccnコマンド-jオプションのidchangeオペランドでnouseを指定して，ID交換をしない場合には無効です。

●-w

（オペランド）

calltone=呼び出しトーン時間　　～〈符号なし整数〉((0～204))《0》（単位：秒）

電話網接続での発信時に送出する呼び出しトーン時間を指定します。

このオペランドを省略した場合，または0を指定した場合，呼び出しトーンは送出しません。

このオペランドは，回線交換網接続時および着信時は不要です。また，ハードウェアの仕様によって，指定した値が0.8の倍数に切り上げられる場合があります。

anstone=アンサトーン時間　　～〈符号なし整数〉((0～204))《0》（単位：秒）

電話網接続での着信時に送出するアンサトーン時間を指定します。

このオペランドを省略した場合，または0を指定した場合，アンサトーンは送出しません。

このオペランドは，回線交換網接続時および着信時は不要です。また，ハードウェアの仕様によって，指定した値が0.8の倍数に切り上げられる場合があります。

●-o

（オペランド）

slist=発信用相手ターミナルIDリストファイル名称　　～〈1～8文字の識別子〉

該当するコネクションから発信できる相手システムのターミナルIDの一覧をリストとして登録してあるファイル名称を指定します。

このオペランドは，ID交換する場合に指定します。-jオプションのidchangeオペランドでnouseを指定した場合，このオペランドは無効です。

このファイルは，発信用相手ターミナルIDリスト定義ユティリティ（mcfhs2snd）で作成します。発信用相手ターミナルIDリスト定義ユティリティについては，この章の「相手ターミナルIDリスト定義－HSC2手順（同期モード）」を参照してください。

rlist=着信用相手ターミナルIDリストファイル名称　　～〈1～8文字の識別子〉

該当するコネクションで接続を許可する相手システムのターミナルIDの一覧をリストとして登録してあるファイル名称を指定します。

このオペランドは，ID交換する場合に指定します。-jオプションのidchangeオペランドでnouseを指定した場合，このオペランドは無効です。

このファイルは，着信用相手ターミナルIDリスト定義ユティリティ（mcfhs2rcv）で作成します。着信用相手ターミナルIDリスト定義ユティリティについては，この章の「相手ターミナルIDリスト定義－HSC2手順（同期モード）」を参照してください。

●-f

（オペランド）

eotctrl=use｜nouse　　～《use》

EOT交換をするかどうかを指定します。

use

EOT交換をします。

nouse

EOT交換をしません。

holdtime=回線接続維持時間　　～〈符号なし整数〉((0～4096))《1》（単位：秒）

送受信のメッセージがなくなってから，回線を切断するまでの回線接続維持時間を秒単位で指定します。通信管理の構成定義で指定した時間より，小さい値を指定してください。0を指定した場合，時間監視はしません。eotctrlオペランドでnouseを指定したときだけ指定してください。

eotexl=自システム発信時のEOT交換回数　　～〈符号なし整数〉((1～255))《1》

自システムから発信し，回線を接続した場合のEOT交換をする回数を指定します。

このオペランドで255を指定した場合，無限回EOT交換をします。

eotctrlオペランドでnouseを指定した場合，このオペランドは無効です。

eotexr=相手システム発信時のEOT交換回数　　～〈符号なし整数〉((1～255))《255》

相手システムから発信し，回線を接続した場合のEOT交換をする回数を指定します。

このオペランドを省略した場合，または255を指定した場合，無限回EOT交換をします。

eotctrlオペランドでnouseを指定した場合，このオペランドは無効です。

eottime=EOT交換間隔時間　　～〈符号なし整数〉((0～10))《1》（単位：秒）

1回のEOT交換が終了してから，次のEOT交換が始まるまでの間の時間を指定します。

このオペランドで0を指定した場合，間隔時間を空けないで，即時にEOT交換をします。

eotctrlオペランドでnouseを指定した場合，このオペランドは無効です。

●-j

（オペランド）

idchange=use｜nouse　　～《use》

回線接続時，ID交換をするかどうかを指定します。

use

ID交換をします。

nouse

ID交換をしません。

●-B

（オペランド）

ttd=use｜nouse　　～《use》

メッセージ送信時，TP1/NET/HSCの内部処理で一時的に送信ができない場合，相手システムに対してTTD（一時送信延期）を送信するかどうかを指定します。

use

TTDを送信します。

nouse

TTDを送信しません。

wack=use｜nouse　　～《use》

メッセージ受信時，TP1/NET/HSCの内部処理で一時的に受信ができない場合，相手システムに対してWACK（一時受信抑止）を送信するかどうかを指定します。

use

WACKを送信します。

nouse

WACKを送信しません。

注意事項

HSC2手順（同期モード）を使用する場合，gオプションおよび-eオプションで指定するバッファグループ番号に対応するバッファグループ定義のmcftbufコマンドでは，1コネクション単位に次の表に示す資源が必要です。バッファグループ定義については，マニュアル「OpenTP1 システム定義」を参照してください。

バッファ種別 | lengthオペランド | countオペランド
sndbuf | 送信最大セグメント長※1 | 最大セグメント分割数以上
rcvbuf | 受信最大セグメント長※1 | （最大セグメント分割数＋1）以上
msgbuf※2 | 入力および出力メッセージ編集UOCで編集したあとの最大セグメント長 | （最大セグメント分割数×2）以上

注※1

送信最大セグメント長，および受信最大セグメント長は，8162バイトとします。ただし，透過モードの場合は，8160バイトにしてください。この場合のセグメント長は，テキスト形態の4バイトを含みます。

注※2

入力および出力メッセージ編集UOCを使用しない場合は不要です。

なお，この値より小さい値を指定した場合，オンライン実行中にバッファ不足が発生する可能性があるので，必ず上記の値またはそれ以上の値を指定してください。また，複数のコネクションでバッファグループを共有する場合，バッファ数はコネクションごとの和を，バッファ長はコネクション間で最大値を指定してください。

mcftalcle（論理端末定義）－HSC2手順（同期モード）

形式

mcftalcle -l 論理端末名称
         -t any
       〔-m "〔mmsgcnt=メモリ出力メッセージ最大格納数〕"〕
       〔-k "〔quekind=memory〕"〕
       〔-o "〔aj=yes｜no〕"〕
       〔-v アプリケーション名〕
       〔-b "attr=sync"〕

機能

論理端末に関する環境を定義します。

オプション

●-l 論理端末名称　　～〈1～8文字の識別子〉

論理端末名称を指定します。

この論理端末名称は，ほかのmcftalcleコマンドの-lオプションで指定する論理端末名称とは異なる指定をしてください。

●-t any

この論理端末の端末タイプを指定します。

any

任意型論理端末

●-m

（オペランド）

mmsgcnt=メモリ出力メッセージ最大格納数　　～〈符号なし整数〉((0～65535))《0》

メモリキューで待ち合わせをする出力メッセージの最大格納数を指定します。

出力メッセージの待ち合わせ数が指定した最大数になると，それ以後UAPからの送信要求（dc_mcf_send関数またはSEND文）はエラーリターンとなります。

0を指定した場合，メモリキューで待ち合わせをする出力メッセージの数は無制限となります。ただし，実際に待ち合わせをできる出力メッセージ数は動的共用メモリの容量に依存します。

●-k

（オペランド）

quekind=memory　　～《memory》

出力メッセージの割り当て先（メモリキュー）を指定します。

memory

メモリキューに割り当てます。

●-o

（オペランド）

aj=yes｜no　　～《yes》

送信完了時の情報を取得するかどうかを指定します。

yes

メッセージ送信完了ジャーナルを取得します。

no

メッセージ送信完了ジャーナルを取得しません。

●-v アプリケーション名

該当する論理端末で受信したメッセージを処理するアプリケーション名を指定します。

MCFアプリケーション定義（mcfaalcap -n）のnameオペランドで指定した名称を指定してください。MCFアプリケーション定義については，マニュアル「OpenTP1 システム定義」を参照してください。

このオプションは，入力メッセージ編集UOCでアプリケーション名を決定する場合は不要です。

●-b

（オペランド）

attr=sync

論理端末の属性を指定します。HSC2手順（同期モード）の場合，必ずsyncを指定してください。

sync

論理端末はUAPと1対1で結び付き，同期に送受信をします。

mcftalced（コネクション定義の終了）－HSC2手順（同期モード）

形式

mcftalced

機能

一つのコネクション定義の終了を示します。

オプション

ありません。

mcftstf（出力ファイル定義）－HSC2手順（同期モード）

形式

mcftstf -o 〔パス名〕出力ファイル名

機能

発信用相手ターミナルIDリストファイル，および着信用相手ターミナルIDリストファイルの名称を定義します。

オプション

●-o 〔パス名〕出力オブジェクトファイル名　　～〈パス名〉〈1～8文字の英数字〉

出力オブジェクトファイル名を指定します。

このファイル名は，ほかのmcftstfコマンドの-oオプションで指定するファイル名と重複して指定できません。重複して指定した場合，このmcftstfコマンドからmcfteofコマンドが指定されるまでの定義は，すべて無視されます。また，指定した出力オブジェクトファイルは生成されません。

mcftstlst（発信用相手ターミナルIDリスト定義）－HSC2手順（同期モード）

形式

mcftstlst -t "tid=相手システムのターミナルID"
         -d "dialno=相手システムのターミナルのダイヤル番号"

機能

発信用相手ターミナルIDリストの内容を定義します。

オプション

●-t

（オペランド）

tid=相手システムのターミナルID　　～〈1～15文字の英数字〉

相手システムのターミナルIDを指定します。

同じ出力オブジェクトファイル内のほかのmcftstlstコマンドの-tオプションで指定する相手システムのターミナルIDと重複して指定できません。

●-d

（オペランド）

dialno=相手システムのターミナルのダイヤル番号　　～〈1～100けたの符号なし整数〉（アスタリスク(*)，プラス(+)，ピリオド(.)を含む）

相手システムのターミナルIDに対応した相手システムのダイヤル番号を指定します。

同じ出力オブジェクトファイル内のほかのmcftstlstコマンドの-dオプションで指定する相手システムのターミナルのダイヤル番号と重複して指定できません。

ダイヤル番号の形式は次のとおりです。

【V25.bisの場合】

mmmmmmm

【V21（通常発信）の場合】

mmmmmmm+

【V21（短縮ダイヤル，ペア型閉域）の場合】

.nn+

（凡例）

mmmmmmm：1～100けたの符号なし整数

nn：通信管理で回線網に登録する番号

mcftrtlst（着信用相手ターミナルIDリスト定義）－HSC2手順（同期モード）

形式

mcftrtlst -t "tid=相手システムのターミナルID"
         -l "leid=送受信をする論理端末名称"

機能

着信用相手ターミナルIDリストの内容を定義します。

オプション

●-t

（オペランド）

tid=相手システムのターミナルID　　～〈1～15文字の英数字〉

相手システムのターミナルIDを指定します。

同じ出力オブジェクトファイル内のほかのmcftrtlstコマンドの-tオプションで指定する相手システムのターミナルIDと重複して指定できません。

●-l

（オペランド）

leid=送受信をする論理端末名称　　～〈1～8文字の識別子〉

相手システムのターミナルIDに指定した相手システムのから着信した場合の送受信をする論理端末名称を指定します。

このオプションで指定する論理端末名称は，メッセージを着信するコネクションに対応して定義された論理端末の名称を指定してください。

このオプションを省略した場合は，メッセージを着信したコネクションに対応して定義された論理端末のうち，先頭に定義された論理端末を使用してメッセージの送受信をします。

mcfteof（出力ファイル定義の終了）－HSC2手順（同期モード）

形式

mcfteof

機能

発信用相手ターミナルIDリスト定義，および着信用相手ターミナルIDリスト定義の終了を示します。

オプション

ありません。

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

MCFサービスはユーザが作るシステムサービスで，OpenTP1のシステムサービスと同じ位置づけになります。

システムサービス情報定義では，MCF通信サービスを起動するための環境を定義します。ユーザがMCFサービスを作成するときに定義する必要があります。

システムサービス情報定義は，テキストエディタを使用して作成します。

システムサービス情報定義の完全パス名を次に示します。

$DCDIR/lib/sysconf/定義ファイル名

定義ファイル名には，システムサービス情報定義のmoduleオペランドで指定する実行形式プログラム名を指定します。この定義ファイル名をMCFマネジャ定義のmcfmcnameコマンドに指定します。

形式

 set module="TP1/NET/HSCの実行形式プログラム名"

機能

プロセスサービスがMCF通信サービスを起動するための環境を定義します。

各MCF通信サービスに対して一つ，システムサービス情報定義を作成できます。また，複数のMCF通信サービスで一つのシステムサービス情報定義を共用することもできます。

オペランド

●module="TP1/NET/HSCの実行形式プログラム名"　　～〈1～8文字の識別子〉

MCF通信サービスを起動するための実行形式プログラム名を指定します。

MCF実行形式プログラムには，MCF通信プロセスのためのものとアプリケーション起動プロセスのためのものがあります。

MCF実行形式プログラムは，MCF通信プロセス同士，アプリケーション起動プロセス同士で共有できます。

TP1/NET/HSCの実行形式プログラム名には，先頭4文字がmcfuで始まる最大8文字の名称を指定します。

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

TP1/NET/HSCで定義したシステム構成の内容によっては，OpenTP1のシステムサービス共通情報定義を指定する必要があります。

システムサービス共通情報定義の完全パス名を次に示します。

$DCDIR/lib/sysconf/mcf

形式

set形式

set max_socket_descriptors=ソケット用ファイル記述子の最大数
set max_open_fds=MCF通信プロセスでアクセスするファイルの最大数

機能

システムサービス共通情報定義では，複数のMCF通信サービスに共通する情報を定義します。この定義ファイルは，標準値を定義した状態で製品に含まれています。次に示すオペランドについては，必要に応じて，テキストエディタを使用して定義値を変更してください。ほかのオペランドについては，変更しないでください。

set形式のオペランド

●max_socket_descriptors=ソケット用ファイル記述子の最大数　　～〈符号なし整数〉((64～2047))

各MCF通信プロセスでソケット用に使用するファイル記述子数の中の最大数を指定します。

ソケット用ファイル記述子の最大数を求める計算式を次に示します。↑↑は，小数点以下を切り上げることを意味します。

↑（このMCF通信プロセスに対してメッセージ送信要求を行うUAPプロセス数※1
 ＋システムサービスプロセス数※2
 ＋このMCF通信プロセスに対して同時に処理要求を行う運用コマンド数
 ）／0.8↑

注※1

アプリケーション起動サーバに対するアプリケーション起動要求を行うUAP プロセス数も含みます。

注※2

システムサービスプロセス数とは，自OpenTP1内のシステムサービスプロセス数です。

自OpenTP1内のMCF通信プロセスごとに計算し，その結果の中で最大値が64より大きい場合は，その値を指定します。64以下の場合は，64を指定します。

●max_open_fds=MCF通信プロセスでアクセスするファイルの最大数　　～〈符号なし整数〉((100～2016))

各MCF通信プロセスでアクセスするファイル数の中の最大値を指定します。

ファイル記述子の最大数を求める計算式を次に示します。

（プロトコル制御で使用するファイル記述子数※¹）
＋MCFメイン関数でユーザが使用するファイル記述子数
＋30※²

注※1

TP1/NET/HDLCの場合，コネクションの総数を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の定義ファイルの構文のチェックと定義オブジェクトファイルへの変換をします。

HSC2手順（同期モード）でIDを交換する場合，相手ターミナルIDリスト定義ユティリティを使用してファイルを作成する必要があります。

ここでは，MCF定義オブジェクト生成ユティリティの起動コマンドについて説明します。

形式

HSC1手順の場合

mcfhsc1 -i 〔パス名〕入力ファイル名
       -o 〔パス名〕出力オブジェクトファイル名

HSC2手順の場合

mcfhsc2 -i 〔パス名〕入力ファイル名
       -o 〔パス名〕出力オブジェクトファイル名

機能

MCF通信構成定義のTP1/NET/HSCのプロトコル固有定義ファイルの構文をチェックし，定義オブジェクトファイルを作成します。

ただし，開始から再開始の間に定義オブジェクトファイルを変更してはいけません。変更した場合，再開始時に正常に動作しないことがありますのでご注意ください。

TP1/NET/HSCのプロトコル固有定義オブジェクトファイル以外の生成ユティリティについては，マニュアル「OpenTP1 システム定義」を参照してください。

オプション

●-i 〔パス名〕入力ファイル名　　～〈パス名〉〈1～8文字の識別子〉

定義ソースが格納されているファイル名を指定します。

●-o 〔パス名〕出力オブジェクトファイル名　　～〈パス名〉〈1～8文字の英数字〉

定義オブジェクトを格納するファイル名を指定します。

回線リスト定義－HSC2手順（非同期モード）

回線リスト定義ユティリティでは，回線リスト定義オブジェクトファイルを作成します。このユティリティは，HSC2手順（非同期モード）の場合にだけ使用できます。

形式

mcfhs2lin 〔パス名〕入力ファイル名

機能

回線リスト定義で指定した内容を，このユティリティを使用して，回線リストファイルを作成します。このユティリティで作成されるファイルは，出力ファイル定義（mcftlnf -o）で指定した出力オブジェクトファイル名が付きます。

出力ファイル定義で指定する出力オブジェクトファイル名は，MCF通信構成定義（mcftalccn -k）で指定したファイル名と同じにしてください。

1回のユティリティの起動で作成できる出力オブジェクトファイル名の数は，最大512個です。

オプション

●〔パス名〕入力ファイル名　　～〈パス名〉〈1～8文字の識別子〉

定義ソースが格納されているファイル名を指定します。

入力ファイル名は複数指定できます。

相手ターミナルIDリスト定義－HSC2手順（同期モード）

相手ターミナルIDリスト定義ユティリティでは，発信用および着信用相手ターミナルIDリストの定義オブジェクトファイルを作成します。このユティリティは，HSC2手順（同期モード）の場合にだけ使用できます。

形式

発信用相手ターミナルIDリスト定義ユティリティの場合

mcfhs2snd 〔パス名〕入力ファイル名

着信用相手ターミナルIDリスト定義ユティリティの場合

mcfhs2rcv 〔パス名〕入力ファイル名

機能

発信用および着信用相手ターミナルIDリスト定義で指定した内容を，このユティリティを使用して，発信用および着信用相手ターミナルIDリストファイルを作成します。このユティリティで作成されるファイルは，出力ファイル定義（mcftstf -o）で指定した出力オブジェクトファイル名が付きます。

出力ファイル定義で指定する出力オブジェクトファイル名は，次に示すファイル名称と同じにしてください。

【発信用の場合】

MCF通信構成定義（mcftalccn -o）のslistオペランドで指定した発信用相手ターミナルIDリストファイル名称

【着信用の場合】

MCF通信構成定義mcftalccn -o）のrlistオペランドで指定した着信用相手ターミナルIDリストファイル名称

作成されたファイルは，ID交換をすることを指定した場合，相手システムとのコネクション確立時に読み込まれます。

1回のユティリティの起動で作成できる出力オブジェクトファイルの数は，最大512個です。

オプション

●〔パス名〕入力ファイル名　　～〈パス名〉〈1～8文字の識別子〉

定義ソースが格納されているファイル名を指定します。

入力ファイル名は複数指定できます。

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

TP1/NET/HSCを使用してAP間通信をする場合，TP1/NET/HSCのシステム定義と自システム内の通信管理（XNF/AS）の定義とを関連づける必要があります。

自システムの通信管理との定義の関係（HSC1手順）

TP1/NET/HSCのHSC1手順を使用する場合の，自システムの通信管理（XNF/AS）との定義の関係を説明します。

TP1/NET/HSCの定義では，XNF/AS構成定義と同じ回線名称を指定します。指定の方法は，TP1/NET/HSCのMCF通信構成定義（mcftalccn -k）で指定する回線名称と，XNF/ASのベーシック回線定義文（basicline name）で指定する回線名称を同じにします。XNF/AS構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

通信管理XNF/ASを使用したHSC1手順のTP1/NET/HSCのシステム構成例を次の図に示します。

図6-4　TP1/NET/HSCのシステム構成例（HSC1手順）

自システムの通信管理との定義の関係（HSC2手順（非同期モード））

TP1/NET/HSCのHSC2手順（非同期モード）を使用する場合の，自システムの通信管理（XNF/AS）との定義の関係を説明します。

TP1/NET/HSCの定義では，XNF/AS構成定義と同じ回線名称を指定します。指定の方法は，TP1/NET/HSCのMCF通信構成定義（mcftalccn -k）で指定する回線名称と，XNF/ASのベーシック回線定義文（basicline name）で指定する回線名称を同じにします。XNF/AS構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

通信管理XNF/ASを使用したHSC２手順（非同期モード）のTP1/NET/HSCのシステム構成例を次の図に示します。

図6-5　TP1/NET/HSCのシステム構成例（HSC２手順（非同期モード））

自システムの通信管理との定義の関係（HSC2手順（同期モード））

TP1/NET/HSCのHSC2手順（同期モード）を使用する場合の，自システムの通信管理（XNF/AS）との定義の関係を説明します。

TP1/NET/HSCの定義では，XNF/AS構成定義と同じ回線名称を指定します。指定の方法は，TP1/NET/HSCのMCF通信構成定義（mcftalccn -k）で指定する回線名称と，XNF/ASのベーシック回線定義文（basicline name）で指定する回線名称を同じにします。XNF/AS構成定義については，マニュアル「通信管理 XNF/AS 構成定義編」を参照してください。

通信管理XNF/ASを使用したHSC２手順（同期モード）のTP1/NET/HSCのシステム構成例を次の図に示します。

図6-6　TP1/NET/HSCのシステム構成例（HSC２手順（同期モード））

定義例

ここでは，この章の「自システムの通信管理プログラムと関連づける内容」で示したシステム構成例に沿ったコーディング例を示します。

XNF/ASの通信構成定義例

XNF/ASの通信構成定義例を示します。XNF/ASの通信構成定義例はHSC1手順とHSC2手順で異なります。

XNF/AS通信構成定義例（HSC1手順）

configuration
   version 01
   max_Line_adapter 1
   max_HSCline 2
   ;

Line_adapter
   name LADP01
   location_code 20-60※
   adapter_type BASIC
   initial_status active
   auto_start yes
   ;

   group
       name HSC1
       type HSC1
       ;

       basicline
           name BLINE01
           number 00
           speed 9.6K
           ;

       basicline
           name BLINE02
           number 01
           speed 9.6K
           ;

注※

回線アダプタの実装位置によって異なります。

XNF/AS通信構成定義例（HSC2手順）

configuration
   version 01
   max_Line_adapter 1
   max_HSCline 2
   ;

Line_adapter
   name LADP01
   location_code 20-60※
   adapter_type BASIC
   initial_status active
   auto_start yes
   ;

   group
       name HSC2
       type HSC2
       ;

       basicline
           name BLINE01
           number 00
           speed 2.4K
           switch_type V25bis
           ;

       basicline
           name BLINE02
           number 01
           speed 2.4K
           switch_type V25bis
           ;

注※

回線アダプタの実装位置によって異なります。

HSC1手順の定義例

HSC1手順のTP1/NET/HSCのシステム定義例（MCFマネジャ定義の例，MCF通信構成定義共通の例，およびMCF通信構成定義固有の例）を示します。

また，HSC1手順のTP1/NET/HSCのシステム定義例は次のファイルで提供しています。

MCFマネジャ定義の例：/BeTRAN/examples/mcf/HSC/conf/mngr

MCF通信構成定義共通の例：/BeTRAN/examples/mcf/HSC/conf/com_c1

MCF通信構成定義固有の例：/BeTRAN/examples/mcf/HSC/conf/com_d1

MCFマネジャ定義の例

###                  MCFマネジャ定義                          ###

#
### MCFマネジャ環境定義
mcfmenv     -m "name=mcfmngr"
#
### MCFマネジャ共通定義
mcfmcomn    -n  20                                              ¥
           -p  300                                             ¥
           -j  4096                                            ¥
#
### 通信サービス定義
mcfmcname   -s "mcfsvname=_muHSC1                               ¥
               syssvname=mcfu01"
mcfmcname   -s "mcfsvname=_muHSC2                               ¥
               syssvname=mcfu02"
#
### UAP共通定義
mcfmuap     -d  65535                                           ¥
           -t "sndtim=3600                                     ¥
               sndrcvtim=3600"                                 ¥
           -j  32768                                           ¥
           -l "initseq=1                                       ¥
               maxseq=9999                                     ¥
               minseq=1"                                       ¥
           -e "seqsize=8162"
#
### 入出力キュー定義
mcfmqgid    -q "quekind=otq                                     ¥
               quegrpid=otqgrp01"
mcfmqgid    -q "quekind=itq                                     ¥
               quegrpid=itqgrp01"
#
### 拡張予約定義
mcfmexp     -g  100                                             ¥
           -l  30                                              ¥
           -i  dg                                              ¥
           -o  dg
#
### 状態引き継ぎ定義
mcfmsts     -g  20                                              ¥
           -v  100

MCF通信構成定義共通の例

###               MCF通信構成定義  共通定義                   ###

#
### MCF環境定義
mcftenv     -s  01                                              ¥
           -a  apliHSC1
#
### MCF通信構成共通定義
mcftcomn    -j  32768
#
### 最大処理多重度定義
mcfttred    -m  10
#
### タイマ定義
mcfttim     -t "btim=5                                          ¥
               mtim=180                                        ¥
               rmtim=180"
#
### トレース環境定義
mcfttrc     -t "size=20480                                      ¥
               disk=yes                                        ¥
               bufcnt=50                                       ¥
               trccnt=3"                                       ¥
           -m  del
#
### 状態引き継ぎ定義
mcftsts     -a  10                                              ¥
           -l  10
#
### バッファグループ定義
mcftbuf     -g "groupno=1                                       ¥
               length=8162                                     ¥
               count=256                                       ¥
               extend=256"
#
mcftbuf     -g "groupno=2                                       ¥
               length=8162                                     ¥
               count=256                                       ¥
               extend=256"
#
mcftbuf     -g "groupno=3                                       ¥
               length=8162                                     ¥
               count=256                                       ¥
               extend=256"

MCF通信構成定義固有の例

###      MCF通信構成定義  HSC1手順のプロトコル固有定義        ###

#
### コネクション定義の開始
mcftalccn   -c  chsc01                                          ¥
           -p  hsc1                                            ¥
           -k  BLINE01                                         ¥
           -m "mode=xnfas"                                     ¥
           -g "sndbuf=1                                        ¥
               rcvbuf=2"
### 論理端末定義
  mcftalcle    -l  leid01                                      ¥
               -t  any                                         ¥
               -m "dmsgcnt=20"                                 ¥
               -k "quekind=disk                                ¥
                   quegrpid=otqgrp01"
### コネクション定義の終了
mcftalced
#

### コネクション定義の開始
mcftalccn   -c  chsc02                                          ¥
           -p  hsc1                                            ¥
           -k  BLINE02                                         ¥
           -m "mode=xnfas"                                     ¥
           -g "sndbuf=1                                        ¥
               rcvbuf=2"
### 論理端末定義
  mcftalcle    -l  leid02                                      ¥
               -t  any                                         ¥
               -m "dmsgcnt=20"                                 ¥
               -k "quekind=disk                                ¥
                   quegrpid=otqgrp01"
### コネクション定義の終了
mcftalced
               :
               :

HSC2手順（非同期モード）の定義例

HSC2手順（非同期モード）の場合，TP1/NET/HSCの固有定義以外に，回線リストの定義があります。

回線リスト定義を指定した場合，回線リスト定義ユティリティを使用すると，名称がlinefileという回線リスト定義ファイルが作成されます。

HSC2手順（非同期モード）のTP1/NET/HSCのシステム定義例（MCF通信構成定義共通の例，MCF通信構成定義固有の例）および回線リスト定義例を示します。

また，HSC2手順（非同期モード）のTP1/NET/HSCのシステム定義例，および回線リスト定義例は次のファイルで提供しています。

MCF通信構成定義共通の例：/BeTRAN/examples/mcf/HSC/conf/com_c3

MCF通信構成定義固有の例：/BeTRAN/examples/mcf/HSC/conf/com_d3

回線リスト定義の例：/BeTRAN/examples/mcf/HSC/conf/line

MCF通信構成定義共通の例

###               MCF通信構成定義  共通定義                   ###

#
### MCF環境定義
mcftenv     -s  22                                              ¥
           -a  mcfALPI
#
### MCF通信構成共通定義
mcftcomn
#
### トレース環境定義
mcfttrc     -t "size=40960                                      ¥
               disk=yes                                        ¥
               bufcnt=10"
#
### バッファグループ定義（送信用バッファグループ）
mcftbuf     -g "groupno=1                                       ¥
               length=2048                                     ¥
               count=256                                       ¥
               extend=256"
#
### バッファグループ定義（受信用バッファグループ）
mcftbuf     -g "groupno=2                                       ¥
               length=2048                                     ¥
               count=256                                       ¥
               extend=256"

MCF通信構成定義固有の例

#  MCF通信構成定義 HSC2手順（非同期モード）のプロトコル固有定義 #

#
### コネクション定義の開始
mcftalccn   -c  chsc01                                          ¥
           -p  hsc2                                            ¥
           -g "sndbuf=1                                        ¥
               rcvbuf=2"                                       ¥
           -u  ignore                                          ¥
           -n "tid=tid01"                                      ¥
           -f "eotctrl=nouse                                   ¥
               holdtime=10"                                    ¥
           -k  linefile

### 論理端末定義
  mcftalcle    -l  leid01                                      ¥
               -t  any                                         ¥
               -v  uap                                         ¥
               -t "tid=vid01"                                  ¥
               -d "dialno=8641111"                             ¥
               -b "attr=async"
#
  mcftalcle    -l  leid02                                      ¥
               -t  any                                         ¥
               -v  uap                                         ¥
               -t "tid=vid02"                                  ¥
               -d "dialno=8641112"                             ¥
               -b "attr=async"
#
  mcftalcle    -l  leid03                                      ¥
               -t  any                                         ¥
               -v  uap                                         ¥
               -t "tid=vid03"                                  ¥
               -d "dialno=8641113"                             ¥
               -b "attr=async"
#
  mcftalcle    -l  leid04                                      ¥
               -t  any                                         ¥
               -v  uap                                         ¥
               -t "tid=vid04"                                  ¥
               -d "dialno=8641114"                             ¥
               -b "attr=async"
#
  mcftalcle    -l  leid05                                      ¥
               -t  any                                         ¥
               -v  uap                                         ¥
               -t "tid=vid05"                                  ¥
               -d "dialno=8641115"                             ¥
               -b "attr=async"
#
### コネクション定義の終了
mcftalced
#

回線リスト定義の例

###                   　回線リスト定義                        ###

#
### 回線リストの定義
mcftlnf      -o  linefile
 mcftllst   -k "BLINE01"
 mcftllst   -k "BLINE02"
mcftleof

HSC2手順（同期モード）の定義例

HSC2手順（同期モード）の場合，TP1/NET/HSCの固有定義以外に，相手ターミナルIDリスト（発信用相手ターミナルIDリスト定義，着信用相手ターミナルIDリスト定義）の定義があります。

発信用相手ターミナルIDリスト定義を指定した場合，相手ターミナルIDリスト定義ユティリティを使用すると，名称がcn01slst，cn02slstという発信用相手ターミナルIDリストファイルが作成されます。着信用相手ターミナルIDリスト定義の場合は，名称がcn01rlst，cn02rlstという着信用相手ターミナルIDリストファイルが作成されます。

HSC2手順（同期モード）のTP1/NET/HSCのシステム定義例（MCF通信構成定義共通の例，MCF通信構成定義固有の例）および相手ターミナルIDリスト定義例（発信用相手ターミナルIDリスト定義の例，着信用相手ターミナルIDリスト定義の例）を示します。

また，HSC2手順（非同期モード）のTP1/NET/HSCのシステム定義例，および相手ターミナルIDリスト定義例は次のファイルで提供しています。

MCF通信構成定義共通の例：/BeTRAN/examples/mcf/HSC/conf/com_c2

MCF通信構成定義固有の例：/BeTRAN/examples/mcf/HSC/conf/com_d2

発信用相手ターミナルIDリスト定義の例：/BeTRAN/examples/mcf/HSC/conf/s_trm

着信用相手ターミナルIDリスト定義の例：/BeTRAN/examples/mcf/HSC/conf/r_trm

MCF通信構成定義共通の例

###                MCF通信構成定義  共通定義                  ###

#
### MCF環境定義
mcftenv      -s  22                                             ¥
            -a  mcfALPI
#
### MCF通信構成共通定義
mcftcomn
#
### トレース環境定義
mcfttrc      -t "size=40960                                     ¥
                disk=yes                                       ¥
                bufcnt=10"
#
### バッファグループ定義（送信用バッファグループ）
mcftbuf      -g "groupno=1                                      ¥
                length=2048                                    ¥
                count=256                                      ¥
                extend=256"
#
### バッファグループ定義（受信用バッファグループ）
mcftbuf      -g "groupno=2                                      ¥
                length=2048                                    ¥
                count=256                                      ¥
                extend=256"

MCF通信構成定義固有の例

#  MCF通信構成定義 HSC2手順（同期モード）のプロトコル固有定義  ##

#
### コネクション定義の開始
mcftalccn   -c  chsc01                                          ¥
           -p  hsc2                                            ¥
           -k  BLINE01                                         ¥
           -g "sndbuf=1                                        ¥
               rcvbuf=2"                                       ¥
           -u  ignore                                          ¥
           -n "tid=tid01"                                      ¥
           -o "slist=cn01slst                                  ¥
               rlist=cn01rlst"                                 ¥
           -f "eotctrl=nouse                                   ¥
               holdtime=10"
### 論理端末定義
  mcftalcle    -l  leid01                                      ¥
               -t  any                                         ¥
               -v  uap1                                        ¥
               -b "attr=sync"
#
  mcftalcle    -l  leid02                                      ¥
               -t  any                                         ¥
               -v  uap2                                        ¥
               -b "attr=sync"
### コネクション定義の終了
mcftalced
#
### コネクション定義の開始
mcftalccn   -c  chsc02                                          ¥
           -p  hsc2                                            ¥
           -k  BLINE02                                         ¥
           -g "sndbuf=1                                        ¥
               rcvbuf=2"                                       ¥
           -u  ignore                                          ¥
           -n "tid=tid02"                                      ¥
           -o "slist=cn02slst                                  ¥
               rlist=cn02rlst"                                 ¥
           -f "eotctrl=use                                     ¥
               eotexl=1                                        ¥
               eotexr=255                                      ¥
               eottime=1"
### 論理端末定義
  mcftalcle    -l  leid03                                      ¥
               -t  any                                         ¥
               -v  uap3                                        ¥
               -b "attr=sync"
#
  mcftalcle    -l  leid04                                      ¥
               -t  any                                         ¥
               -v  uap4                                        ¥
               -b "attr=sync"
### コネクション定義の終了
mcftalced
                :
                :

発信用相手ターミナルIDリスト定義

###         発信用相手ターミナルIDリスト定義                  ###

#
### 出力ファイル定義
mcftstf      -o cn01slst
#
### 発信用相手ターミナルIDリスト定義
 mcftstlst  -t "tid=vid01"                                     ¥
            -d "dialno=8641111"
 mcftstlst  -t "tid=vid02"                                     ¥
            -d "dialno=8641112"
 mcftstlst  -t "tid=vid03"                                     ¥
            -d "dialno=8641113"
#
### 出力ファイル定義の終了
mcfteof
#
### 出力ファイル定義
mcftstf      -o cn02slst
#
### 発信用相手ターミナルIDリスト定義
 mcftstlst  -t "tid=vid04"                                     ¥
            -d "dialno=8641114"
 mcftstlst  -t "tid=vid05"                                     ¥
            -d "dialno=8641115"
#
### 出力ファイル定義の終了
mcfteof

着信用相手ターミナルIDリスト定義

###         着信用相手ターミナルIDリスト定義                  ###

#
### 出力ファイル定義
mcftstf      -o cn01rlst
#
### 着信用相手ターミナルIDリスト定義
 mcftrtlst  -t "tid=vid01"                                      ¥
            -l "leid=leid01"
 mcftrtlst  -t "tid=vid02"                                      ¥
            -l "leid=leid01"
 mcftrtlst  -t "tid=vid03"                                      ¥
            -l "leid=leid02"
#
### 出力ファイル定義の終了
mcfteof
#
### 出力ファイル定義
mcftstf      -o cn02rlst
#
### 着信用相手ターミナルIDリスト定義
 mcftrtlst  -t "tid=vid04"                                      ¥
            -l "leid=leid03"
 mcftrtlst  -t "tid=vid05"                                      ¥
            -l "leid=leid04"
#
### 出力ファイル定義の終了
mcfteof

7.　運用コマンド

この章では，TP1/NET/HSCで使用する運用コマンドについて説明します。

＜この章の構成＞

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

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

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

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

mcftdctle（論理端末の閉塞）

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

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

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

ここでは，TP1/NET/HSCに関係のあるオプションについてだけ説明しています。ほかのオプション，運用コマンドの入力方法，およびその他の運用コマンドについては，マニュアル「OpenTP1 運用と操作」を参照してください。

TP1/NET/HSCで使用する運用コマンドの一覧を，次の表に示します。

表7-1　TP1/NET/HSCの運用コマンド

機能 | コマンド名称 | 定義中組み込み | オフライン中に実行 | オンライン中に実行 | UAPから実行
コネクション管理 | コネクションの確立 | mcftactcn | × | × | ○ | ○
コネクションの解放 | mcftdctcn | × | × | ○ | ○
コネクションの状態表示 | mcftlscn | × | × | ○ | ○
論理端末管理 | 論理端末の閉塞解除 | mcftactle | × | × | ○ | ○
論理端末の閉塞 | mcftdctle | × | × | ○ | ○
論理端末の状態表示 | mcftlsle | × | × | ○ | ○

（凡例）

○：組み込み，または実行ができます。

×：組み込み，または実行ができません。

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

形式

mcftactcn 〔-s MCF通信プロセス識別子〕 -c コネクションID

機能

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

ただし，HSC1手順の場合は，通信管理に対してAP間通信の開始の準備を要求します。

また，HSC2手順（非同期モード）の場合，回線障害で使用されていない回線の障害を取り除き，このコマンドを入力すると，回線の回復ができます。

オプション

●-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 | コネクション解放処理中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14424-W | 該当するコネクション配下の全回線が起動中のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力
KFCA16424-E | 指定したコネクショングループは登録されていません。 | 標準エラー出力

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と論理端末名称の対応が正しくありません。 | 標準エラー出力
KFCA10395-E | 指定したコネクションには未接続の論理端末名称が指定されています。 | 標準エラー出力
KFCA10503-I | ヘルプメッセージ | 標準出力
KFCA14016-W | 論理端末自動起動指定のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14017-W | 論理端末が閉塞解除済みのため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力

注意事項

HSC1手順で論理端末の状態が次に示す場合，このコマンドを入力して論理端末の閉塞を解除できます。

mcftdctleコマンドを入力後の明示閉塞状態

論理端末障害による論理端末閉塞後の暗黙閉塞状態

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

形式

mcftdctcn 〔-s MCF通信プロセス識別子〕 -c コネクションID 〔-f※〕

注※

-fオプションは，HSC2手順（同期モード）の場合，必ず指定してください。

機能

コネクションを解放します。

ただし，HSC1手順の場合は，通信管理に対して，AP間通信の終了の準備を要求します。

オプション

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

該当するコネクションを強制的に解放します。

HSC1手順またはHSC2手順（非同期モード）の場合，このオプションの指定を省略すると，該当するコネクションは正常解放します。

HSC2手順（同期モード）の場合，このオプションは必ず指定してください。

出力メッセージ

出力メッセージ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 | 指定したコネクショングループは登録されていません。 | 標準エラー出力

注意事項

HSC1手順またはHSC2手順（非同期モード）の場合，TP1/NET/HSCは，送信仕掛り中にコネクションが強制解放されると，送信メッセージを送信前の状態に戻します。このとき，場合によっては相手システムにメッセージが送信されている場合があります。したがって，コネクション再確立後にメッセージが重複して送信されていないかどうか，メッセージ通番などを使用して確認してください。受信仕掛り中にコネクションが強制解放されると，受信メッセージは破棄されます。

mcftdctle（論理端末の閉塞）

形式

mcftdctle 〔-s MCF通信プロセス識別子〕 〔-c コネクションID〕
           -l 論理端末名称

機能

論理端末を強制的に閉塞します。

HSC1手順の場合，メッセージ送信中にこのコマンドを入力すると，メッセージ送信を中止し，送信中であったメッセージは送信前の状態に戻します。その後，論理端末の閉塞解除のmcftactleコマンドを入力すると，メッセージを再送します。

HSC2手順の場合のコマンド入力時に送信中であったメッセージの扱いについては，「10.1　障害の種類と対応処理」を参照してください。なお，論理端末が閉塞されても，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と論理端末名称の対応が正しくありません。 | 標準エラー出力
KFCA10395-E | 指定したコネクションには未接続の論理端末名称が指定されています。 | 標準エラー出力
KFCA10504-I | ヘルプメッセージ | 標準出力
KFCA14016-W | 論理端末自動起動指定のため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA14018-W | 論理端末が閉塞済みのため，運用コマンドは受け付けられません。 | 標準エラー出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力

注意事項

受信仕掛り中に運用コマンド（mcftdctle）を入力した場合，受信仕掛り中のメッセージを破棄します。以降の受信メッセージは入力キューに登録しません。

送信仕掛り中に運用コマンド（mcftdctle）を入力した場合は，送信処理が中断されます。UAPからの送信メッセージは，出力キュー上に格納されます。

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

コネクションの状態と該当するコネクションに対応する論理端末の情報および回線の情報を表示します。

このオプションの指定を省略すると，コネクションの状態だけを表示します。

出力形式

mmm cccccccc ppp sssss ddd
   llllllll ttt uuuu
   llllllll ttt uuuu
      :
   kkkkkkkk aaa eeee
   kkkkkkkk aaa eeee
      :

注1

-dオプションを指定しないでmcftlscnコマンドを実行した場合は，「mmm cccccccc ppp sssss ddd」の行だけ出力されます。

注2

「llllllll ttt uuuu」はコネクションに対する論理端末数と同じ行数を出力します。

注3

「kkkkkkkk aaa eeee」はコネクション配下の回線数と同じ行数を出力します。

mmm：MCF識別子

cccccccc：コネクションID

ppp：プロトコル種別
HS1…HSC1手順
HS2…HSC2手順

sssss：コネクションの状態
ACT…確立
ACT/B…確立処理中
DCT…解放
DCT/B…解放処理中

dddd：詳細ステータス（保守情報）

llllllll：論理端末名称

ttt：論理端末タイプ
ANY…any型

uuuu：HSC2手順の場合に出力されます。
TP1/NET/HSCで管理している論理端末の状態
0000…暗黙閉塞（障害による閉塞）
0001…閉塞解除
0002…閉塞解除（非同期スケジュール抑止）
0003…明示閉塞（コマンドによる閉塞）

kkkk：回線名称

aaa：回線状態
ACT…回線接続
DCT…回線未接続

eee：保守情報

出力メッセージ

出力メッセージ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 llllllll sss〔ggg〕〔tttt〕
   SYNC xxxxxxxxxx yyyyyyyyyy zzzzzzzzzz
     IO     ：         ：         ：
   PRIO     ：         ：         ：
   NORM     ：         ：         ：
   iii ooo

mmm：MCF識別子

llllllll：論理端末名称

sss：論理端末の状態
ACT…閉塞解除状態
DCT…閉塞状態

ggg：論理端末のセキュア状態（-tオプションの指定時だけ表示）
NOS…非セキュア状態
SEC…セキュア状態

tttt：論理端末のテストモード状態（TP1/Message Control/Testerの使用時だけ表示）
TEST…テストモード
空白…非テストモード

SYNC：同期型メッセージ

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と論理端末名称の対応が正しくありません。 | 標準エラー出力
KFCA10395-E | 指定したコネクションには未接続の論理端末名称が指定されています。 | 標準エラー出力
KFCA10505-I | ヘルプメッセージ | 標準出力
KFCA16402-E | RPC障害が発生しました。 | 標準エラー出力

8.　組み込み方法

この章では，TP1/NET/HSCをOpenTP1システムに組み込む方法について説明します。

＜この章の構成＞

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

8.2　MCFメイン関数の作成

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

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

TP1/NET/HSCをOpenTP1システムに組み込むときの作業の流れを示します。

＜この節の構成＞

(1)　MCFメイン関数の作成

(2)　MCFサービス名の登録

(3)　システムサービス情報定義ファイルの作成

(4)　定義オブジェクトファイルの生成

(1)　MCFメイン関数の作成

TP1/NET/HSCを起動するためには，MCFメイン関数をコーディングし，コンパイル，およびリンケージしておく必要があります。詳細は，「8.2　MCFメイン関数の作成」を参照してください。

(2)　MCFサービス名の登録

TP1/NET/HSCを実行するために，MCFサービス名をシステムサービス構成定義で定義しておく必要があります。

MCFサービス名はMCFマネジャ定義オブジェクトファイル名と一致させてください。

詳細は，マニュアル「OpenTP1 システム定義」を参照してください。

(3)　システムサービス情報定義ファイルの作成

システムサービス情報定義ファイルをテキストエディタで作成します。作成するファイルのパス名は，「$DCDIR/lib/sysconf/システムサービス情報定義ファイル名」です。ファイルの定義形式については，6章の「システムサービス情報定義」を参照してください。

(4)　定義オブジェクトファイルの生成

OpenTP1のネットワークコミュニケーション定義の各ソースファイルから定義オブジェクトファイルを生成します。詳細は，「8.3　定義オブジェクトファイルの生成」を参照してください。

8.2　MCFメイン関数の作成

TP1/NET/HSCは，OpenTP1プロセスサービスによって起動されます。

TP1/NET/HSCを起動するためには，ユーザがMCFメイン関数を作成し，コンパイル，およびリンケージを行ってTP1/NET/HSCの実行形式プログラムを作成する必要があります。リンケージには，HSC1手順の場合はmcfplhs1コマンド，HSC2手順の場合はmcfplhs2コマンドを使用します。

MCFメイン関数では，スタート関数（dc_mcf_svstart）を呼び出します。UOCを使用する場合は，MCFメイン関数でUOCの関数アドレスを指定してください。

UOCは，MCFメイン関数と同じ言語（ANSI C，C++またはK&R版 C）で作成してください。

MCFメイン関数のコーディング概要を図8-1と図8-2に示します。また，ディレクトリへの組み込み方法を図8-3に示します。

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

【ANSI C，C++の場合】

HSC手順1：/BeTRAN/examples/mcf/HSC/cmlib/ansi/com1.c

HSC手順2：/BeTRAN/examples/mcf/HSC/cmlib/ansi/com2.c

【K&R版 Cの場合】

HSC手順1：/BeTRAN/examples/mcf/HSC/cmlib/c/com1.c

HSC手順2：/BeTRAN/examples/mcf/HSC/cmlib/c/com2.c

図8-1　MCFメイン関数のコーディング概要（ANSI C，C++の場合）

注※

HSC1手順の場合のコーディングです。HSC2手順の場合は，次のようにコーディングをしてください。

#include<dcmhsc2m.h>

図8-2　MCFメイン関数のコーディング概要（K&R版 Cの場合）

注※

HSC1手順の場合のコーディングです。HSC2手順の場合は，次のようにコーディングをしてください。

#include<dcmhsc2m.h>

TP1/NET/HSCで提供するヘッダファイルを取り込みます。

使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。
UOCをまったく使用しない場合，このコーディングは必要ありません。
論理端末名称決定UOCは，HSC2手順（非同期モード）の場合だけ使用できます。

UOCテーブルをextern宣言します。UOCを使用する場合，必ずこのとおりにコーディングしてください。
UOCをまったく使用しない場合，このコーディングは必要ありません。

各UOC関数のアドレスを，次に示すシステム提供変数に設定します。使用するUOCだけコーディングしてください。

dcmcf_uoctbl.ledtmn  /*論理端末名称決定UOCアドレス*/
dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス*/
dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス*/

UOCをまったく使用しない場合，このコーディングは必要ありません。
論理端末名称決定UOCは，HSC2手順（非同期モード）の場合だけ使用できます。

スタート関数を呼び出します。MCFメイン関数には必ずコーディングしてください。

図8-3　MCFメイン関数のディレクトリへの組み込み方法

注※1

HSC1手順の場合はmcfplhs1コマンド，HSC2手順の場合はmcfplhs2コマンドでリンケージします。

注※2

TP1/NET/HSCの実行形式プログラム名は，先頭がmcfuで始まる8文字以内の名称にしてください。

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

定義オブジェクトファイルを次の手順で生成します。

ただし，開始から再開始の間に定義オブジェクトファイルを変更しないでください。変更した場合，再開始時に正常に動作しない場合がありますのでご注意ください。

テキストエディタで，MCFの定義ファイルから，次に示す定義ソースファイルを作成します。

MCFマネジャ定義ソースファイル

MCF通信構成定義の共通定義ソースファイル

MCF通信構成定義のTP1/NET/HSCのプロトコル固有定義ソースファイル

回線リスト定義ソースファイル（HSC2手順（非同期モード）の場合）

相手ターミナルIDリスト定義ソースファイル（HSC2手順（同期モード）の場合）

MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティを使用して，定義ソースファイルから，次に示すオブジェクトファイルを作成します。

MCFマネジャ定義オブジェクトファイル

MCF通信構成定義の共通定義オブジェクトファイル

MCF通信構成定義のTP1/NET/HSCのプロトコル固有定義オブジェクトファイル

回線リスト定義オブジェクトファイル（HSC2手順（非同期モード）の場合）

相手ターミナルIDリスト定義オブジェクトファイル（HSC2手順（同期モード）の場合）

MCFアプリケーション定義オブジェクトファイル

MCF定義結合ユティリティを使用して，MCF通信構成定義の共通定義とプロトコル固有定義のオブジェクトファイルを結合し，次に示すオブジェクトファイルを作成します。

MCF通信構成定義オブジェクトファイル

定義オブジェクトファイルの作成方法の概要を次の図に示します。

図8-4　定義オブジェクトファイルの作成方法の概要

注※1

次に示すコマンドで生成します。

mcfXXXX△-i△〔パス名〕入力ファイル名
      △-o△〔パス名〕出力オブジェクトファイル名

mcfXXXXは，ソースファイルごとに異なります。

mcfmngr：MCFマネジャ定義ソースファイル

mcfcomn：MCF通信構成定義の共通定義ソースファイル

mcfhsc1：MCF通信構成定義のプロトコル（TP1/NET/HSCのHSC1手順）固有定義ソースファイル

mcfhsc2：MCF通信構成定義のプロトコル（TP1/NET/HSCのHSC2手順）固有定義ソースファイル

mcfapli：MCFアプリケーション定義ソースファイル

MCF定義オブジェクト生成ユティリティのmcfhsc1およびmcfhsc2コマンドについては6章の「MCF定義オブジェクトの生成」を，その他のコマンドについてはマニュアル「OpenTP1 システム定義」を参照してください。

注※2

次に示すコマンドで，MCF通信構成定義の二つのオブジェクトファイルを結合します。

mcflink△-i△共通定義オブジェクトファイル名
      △TP1/NET/HSC定義オブジェクトファイル名
      △-o△出力オブジェクトファイル名

注※3

定義オブジェクトファイルはシステム環境定義のDCCONFPATHで指定したディレクトリに格納してください。システム環境定義については，マニュアル「OpenTP1 システム定義」を参照してください。

9.　HSC1手順の障害対策

この章では，TP1/NET/HSCのHSC1手順の運用中に発生する障害と，TP1/NET/HSCのHSC1手順の対応処理，およびメッセージの処理について説明します。

＜この章の構成＞

9.1　障害の種類と対応処理

9.2　コネクション障害

9.3　ユーザアプリケーションプログラム異常終了

9.4　ユーザアプリケーションプログラム閉塞

9.5　入力キュー障害

9.6　出力キュー障害

9.1　障害の種類と対応処理

HSC1手順の場合のTP1/NET/HSC運用中の障害と対応処理について，障害の種類ごとに示します。

＜この節の構成＞

(1)　コネクション障害

(2)　受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害

(3)　送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害

(4)　UAP障害

(5)　MCFの障害

(1)　コネクション障害

コネクション障害時のTP1/NET/HSCの障害処理については，「9.2　コネクション障害」を参照してください。

表9-1　コネクション障害発生時の処理（HSC1手順）

障害の内容
TP1/NET/HSCの処理
ユーザの処理

コネクション確立時障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（コネクションの確立不可能）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

コネクション切断障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（コネクションの切断，コネクション回復不可能）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

受信バッファオーバフロー

受信メッセージの破棄，および受信メッセージのオーバフローを通知するメッセージログ（KFCA14300-W）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（受信バッファオーバフロー）を起動します。

バッファグループ定義を修正してください。

メッセージ送信時障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（コネクションの切断，コネクション回復不可能）を起動します。

メッセージは出力キューに残し，未送信扱いとします。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

メッセージ送信時回線上のHSC手順エラー（回復可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信を中断したメッセージを取り出し，前の状態に戻します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（回線上のHSC手順エラー，回復可能およびリトライ実行中）を起動します。

コネクションの回復動作を通知するメッセージログ（KFCA14501-I）を出力します。

回復障害時，COPNEVTを起動します。

コネクションの確立を通知するメッセージログ（KFCA14000-I）を出力します。

論理端末の閉塞解除を通知するメッセージログ（KFCA14003-I）を出力します（論理端末自動起動の場合）。

相手システムからのメッセージを受信したあとに，メッセージを再送します。

障害が回復する前に，送信要求が発生した場合，運用コマンド（mcftactle）を入力してください（自システム起動によるコネクション再確立の場合）。

障害回復動作を中止する場合，運用コマンド（mcftdctcn）を入力してください。

メッセージ受信時障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

受信メッセージの破棄，およびコネクションの切断を通知するメッセージログ（KFCA14300-W）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（コネクションの切断，コネクション回復不可能）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

メッセージ受信時回線上のHSC手順エラー（回復可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

受信メッセージの破棄，および回線上のHSC手順エラーを通知するメッセージログ（KFCA14300-W）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（回線上のHSC手順エラー，回復可能およびリトライ実行中）を起動します。

コネクションの回復動作を通知するメッセージログ（KFCA14501-I）を出力します。

回復障害時，COPNEVTを起動します。

コネクションの確立を通知するメッセージログ（KFCA14000-I）を出力します。

論理端末の閉塞解除を通知するメッセージログ（KFCA14003-I）を出力します（論理端末自動起動の場合）。

相手システムからのメッセージを受信します。

障害が回復する前に，送信要求が発生した場合，運用コマンド（mcftactle）を入力してください（自システム起動によるコネクション再確立の場合）。

障害回復動作を中止する場合，運用コマンド（mcftdctcn）を入力してください。

(2)　受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害

入力キュー障害時の障害処理については，「9.5　入力キュー障害」を参照してください。

表9-2　受信スケジュール関係の障害発生時の処理（HSC1手順）

障害の内容
TP1/NET/HSCの処理
ユーザの処理

アプリケーション名未定義
ERREVT1を起動します。
アプリケーション定義を修正してください。

MCFイベントの名称未定義

ERREVTx

SxxxEVT

CxxxEVT

メッセージ，およびMCFイベントを破棄します。
ありません。

MHPサービス，サービスグループ閉塞

入力キュー書き込み障害

ERREVT2を起動します。

入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。

ありません。

入力メッセージ編集UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

アプリケーション名取得失敗を通知するメッセージログ（KFCA10610-E）を出力します。

論理端末を閉塞します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

ありません。

入力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

アプリケーション名取得失敗を通知するメッセージログ（KFCA10610-E）を出力します。

論理端末を閉塞します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

UOCを見直してください。

アプリケーション名形式不正

アプリケーション名の取得失敗を通知するメッセージログ（KFCA10610-E）を出力します。

ERREVT1を起動します。

UOCを見直してください。

メッセージ受信（ETB）後のEOT受信
受信メッセージの破棄，およびETB受信後のEOT受信を通知するメッセージログ（KFCA14300-W）を出力します。
ありません。

受信バッファ不足

受信バッファ不足を通知するメッセージログ（KFCA10618-E）を出力します。

グループバッファ取得失敗を通知するメッセージログ（KFCA14005-E）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14300-W）を出力します（ETBブロック受信済みの場合）。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（受信バッファ不足）を起動します。

受信バッファの数を見直してください。

入力キュー書き込み後の障害

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（コネクション障害）を起動します。

障害回復後，相手システムからメッセージが二重に送信される場合があります。
メッセージ通番で二重送信をチェックしてください。

(3)　送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害

出力キュー障害時の障害処理については，「9.6　出力キュー障害」を参照してください。

表9-3　送信スケジュール関係の障害発生時の処理（HSC1手順）

障害の内容
TP1/NET/HSCの処理
ユーザの処理

出力キュー読み込み障害

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

CERREVT（出力キュー読み込み障害）を起動します。

該当するメッセージを消去します。

論理端末を閉塞します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

相手システムに出力キュー障害を通知（send）してください。

出力メッセージ編集UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

CERREVT（UOC障害）を起動します。

該当するメッセージを消去します。

論理端末を閉塞します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

相手システムに出力キュー障害を通知（send）してください。

出力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

CERREVT（UOC障害）を起動します。

該当するメッセージを消去します。

論理端末を閉塞します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

相手システムに出力キュー障害を通知（send）してください。また，UOCを見直してください。

メッセージ消し込み障害

メッセージ送信完了障害を通知するメッセージログ（KFCA10617-E）を出力します。

処理を続行します。

ありません。

送信バッファオーバフロー

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

論理端末を閉塞します。

該当するメッセージを消去します。

CERREVT（受信バッファオーバフロー）を起動します。

バッファグループ定義，またはUAPを修正してください。

送信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

該当するメッセージを取り出し前の状態に戻します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

論理端末を閉塞します。

CERREVT（送信バッファ不足）を起動します。

一定時間経過後，運用コマンド（mcftactle）を入力して論理端末の閉塞を解除し，メッセージを再送信してください。また，送信バッファの数を見直してください。

出力キュー消去前の障害

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（コネクション障害）を起動します。

障害回復後，相手システムへメッセージが二重に送信される場合があります。
メッセージ通番で二重送信をチェックしてください。

送信テキスト形態不正

送信テキスト形態不正を通知するメッセージログ（KFCA14502-E）を出力します。

該当するメッセージを消去します。

CERREVT（論理端末レベル障害，送信テキスト形態不正）を起動します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

送信テキスト形態の設定を見直してください。

テキスト送信時のEOT受信

該当するメッセージを取り出し前の状態に戻します。

例外事項発生を通知するメッセージログ（KFCA14301-W）を出力します。

メッセージ送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

CERREVT（論理端末レベル障害，テキスト送信時のEOT受信）を起動します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

一定時間経過後，運用コマンド（mcftactle）を入力して論理端末の閉塞を解除し，メッセージを再送信してください。また，該当するメッセージの内容が不正ならばmcftdlqleコマンドなどでメッセージを削除してください。

(4)　UAP障害

表9-4　UAP障害発生時の処理（HSC1手順）

障害の内容 | TP1/NET/HSCの処理 | ユーザの処理
セグメント受信前のUAP異常終了 | ERREVT2を起動します。 | 相手システムにUAPの異常終了を通知（send）してください。また，UAPを見直してください。
セグメント受信後のUAP異常終了 | ERREVT3を起動します。 | 相手システムにUAPの異常終了を通知（send）してください。また，UAPを見直してください。

(5)　MCFの障害

表9-5　MCFの障害発生時の処理（HSC1手順）

障害の内容
TP1/NET/HSCの処理
ユーザの処理

内部論理矛盾

他PPとのインタフェースエラー

障害情報の取得を通知するメッセージログ（KFCA10189-E）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（コネクションレベル）を起動します。（コネクション障害の場合）

ありません。

9.2　コネクション障害

コネクションが切断された場合，TP1/NET/HSCは自動的に回復しません。通信管理が管理している通信機器に障害が発生した場合も同様です。障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力してコネクションの再確立してください。

＜この節の構成＞

9.2.1　メッセージ送信時のコネクション障害

9.2.2　メッセージ受信時のコネクション障害

9.2.1　メッセージ送信時のコネクション障害

＜この項の構成＞

(1)　メッセージ送信前のコネクション障害

(2)　出力キュー消去前のコネクション障害

(1)　メッセージ送信前のコネクション障害

メッセージはロールバックされ，AP間通信の開始の準備ができたあとに再送信されます。メッセージ送信前のコネクション障害の例を次の図に示します。

図9-1　メッセージ送信前のコネクション障害（HSC1手順）

(2)　出力キュー消去前のコネクション障害

メッセージは二重に送信されます。このとき相手システムのUAPは，メッセージに通番を付けることで，二重送信をチェックします。

メッセージ消去前のコネクション障害の例を次の図に示します。

図9-2　メッセージ消去前のコネクション障害（HSC1手順）

9.2.2　メッセージ受信時のコネクション障害

＜この項の構成＞

(1)　入力キュー書き込み前のコネクション障害

(2)　入力キュー書き込み後のコネクション障害

(1)　入力キュー書き込み前のコネクション障害

メッセージは欠落します。このとき自システムのUAPは，メッセージに通番を付けることで，欠落しているかどうかをチェックします。

メッセージ書き込み前のコネクション障害の例を次の図に示します。

図9-3　メッセージ書き込み前のコネクション障害（HSC1手順）

(2)　入力キュー書き込み後のコネクション障害

メッセージは影響を受けません。

メッセージ書き込み後のコネクション障害の例を次の図に示します。

図9-4　メッセージ書き込み後のコネクション障害（HSC1手順）

9.3　ユーザアプリケーションプログラム異常終了

UAPが異常終了した場合，TP1/NET/HSCは入力キューにMCFイベントを登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

＜この節の構成＞

9.3.1　セグメント受信前のUAP異常終了

9.3.2　セグメント受信後のUAP異常終了

9.3.1　セグメント受信前のUAP異常終了

TP1/NET/HSCは，入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

セグメント受信前のUAP異常終了の例を次の図に示します。

図9-5　セグメント受信前のUAP異常終了（HSC1手順）

9.3.2　セグメント受信後のUAP異常終了

TP1/NET/HSCは，入力キューにERREVT3（UAP異常終了通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

セグメント受信後のUAP異常終了の例を次の図に示します。

図9-6　セグメント受信後のUAP異常終了（HSC1手順）

9.4　ユーザアプリケーションプログラム閉塞

UAPが閉塞していて使用できない場合，TP1/NET/HSCは入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

UAP閉塞による障害の例を次の図に示します。

図9-7　UAP閉塞による障害（HSC1手順）

9.5　入力キュー障害

メッセージを入力キューに書き込むときに障害が発生した場合，TP1/NET/HSCは入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

入力キュー障害の例を次の図に示します。

図9-8　入力キュー障害（HSC1手順）

9.6　出力キュー障害

メッセージを出力キューから読み込むときに障害が発生した場合，メッセージは欠落します。

出力キュー障害の例を次の図に示します。

図9-9　出力キュー障害（HSC1手順）

10.　HSC2手順（非同期モード）の障害対策

この章では，TP1/NET/HSCのHSC2手順（非同期モード）の運用中に発生する障害と，HSC2手順（非同期モード）の対応処理，およびメッセージの処理について説明します。

＜この章の構成＞

10.1　障害の種類と対応処理

10.2　コネクション障害

10.3　ユーザアプリケーションプログラム異常終了

10.4　ユーザアプリケーションプログラム閉塞

10.5　入力キュー障害

10.6　出力キュー障害

10.1　障害の種類と対応処理

HSC2手順（非同期モード）の場合のTP1/NET/HSC運用中の障害と対応処理について，障害の種類ごとに示します。

＜この節の構成＞

(1)　通信障害

(2)　HSC2手順（非同期モード）プロトコル障害

(3)　受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害

(4)　送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害

(5)　UAP障害

(6)　MCFの障害

(1)　通信障害

コネクション障害時のTP1/NET/HSCの障害処理については，「10.2　コネクション障害」を参照してください。

表10-1　通信障害発生時の処理（HSC2手順（非同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

コネクション確立時障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（コネクションの確立不可能）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

回線接続前障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

回線をクローズします。

回線クローズを通知するメッセージログ（KFCA14504-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

コネクション切断障害（全回線回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（コネクションの切断）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

メッセージ送信時障害（回線回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信メッセージを出力キューから取り出す前の状態に戻します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ送信中の回線回復不可能障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

回線をクローズします。

回線のクローズを通知するメッセージログ（KFCA14504-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

回線接続維持中障害（回線回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（回線維持中の回線回復不可能障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

回線をクローズします。

回線のクローズを通知するメッセージログ（KFCA14504-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

メッセージ受信時障害（回線回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

受信テキストの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ受信中の回線回復不可能障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

回線をクローズします。

回線のクローズを通知するメッセージログ（KFCA14504-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

メッセージ送信時のHSC手順エラー

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信メッセージを出力キューから取り出す前の状態に戻します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ送信中のHSC手順エラー）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

メッセージ受信時のHSC手順エラー

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

CERREVT（メッセージ受信時のHSC手順エラー）を起動します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

回線接続維持中のHSC手順エラー

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（HSC手順エラー）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

回線接続処理中HSC手順エラー

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

DLE・EOTを送信します。

ありません。

発信失敗

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

発信処理を繰り返します。
発信の再試行をすることを指定している場合，リトライオーバーまたは発信リトライの定義がないときは，次の処理をします。

発信の失敗を通知するメッセージログ（KFCA14432-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（発信失敗）を起動します。
再試行間隔時間を経過しても回線に空きがない場合，すぐに再試行できないときがあります。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

メッセージ受信時の受信バッファオーバフロー

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

全回線をクローズします。

回線のクローズを通知するメッセージログ（KFCA14504-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（受信バッファオーバフロー）を起動します（メッセージ受信時）。

構成定義を見直してください。

着信時に該当するターミナルIDがない場合

ターミナルID未定義を通知するメッセージログ（KFCA14421-W）を出力します。

DLE・EOTを送信します。

構成定義を見直してください。

発信時の相手システム接続拒否

相手システム接続拒否を通知するメッセージログ（KFCA14409-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信メッセージを出力キューから取り出す前の状態に戻します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（発信時の接続拒否）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

(2)　HSC2手順（非同期モード）プロトコル障害

表10-2　HSC2手順（非同期モード）プロトコル障害発生時の処理

障害の内容
TP1/NET/HSCの処理
ユーザの処理

メッセージ送信時のDLE・EOT受信

メッセージ送受信中のDLE・EOT受信を通知するメッセージログ（KFCA14412-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信メッセージを出力キューから取り出す前の状態に戻します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ送受信時のDLE・EOT受信）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求からします。

メッセージ受信中（ETBブロック受信後）のDLE・EOT受信

メッセージ送受信中のDLE・EOT受信を通知するメッセージログ（KFCA14412-W）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ受信中のDLE・EOT受信）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求からします。

メッセージ送信中のEOT受信

メッセージ送受信中のEOT受信を通知するメッセージログ（KFCA14422-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信メッセージを出力キューから取り出す前の状態に戻します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ送信中のEOT受信）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求からします。

メッセージ受信中（ETBブロック受信後）のEOT受信

メッセージ送受信中のEOT受信を通知するメッセージログ（KFCA14422-W）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ受信中のEOT受信）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

ETXブロック送受信後のDLE・EOT受信

DLE・EOT受信を通知するメッセージログ（KFCA14432-W）を出力します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

回線接続時の受信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

グループバッファ取得失敗を通知するメッセージログ（KFCA14005-E）を出力します。

全回線をクローズします。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（受信バッファ不足）を起動します。

構成定義を見直してください。

メッセージ受信時の受信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

グループバッファ取得失敗を通知するメッセージログ（KFCA14005-E）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

全回線をクローズします。

回線のクローズ（全回線数分）を通知するメッセージログ（KFCA14504-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（受信バッファ不足）を起動します。

構成定義を見直してください。

送信テキスト形態不正

送信テキスト形態不正を通知するメッセージログ（KFCA14400-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

送信メッセージを出力キューから消去します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信テキスト形態不正）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します（回線切断中の場合）。

UAPを見直してください。

送信最大セグメント長オーバー

送信最大セグメント長オーバーを通知するメッセージログ（KFCA14418-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

送信メッセージを出力キューから消去します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信最大セグメント長オーバー）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します（回線切断中の場合）。

UAPを見直してください。

自システムからの回線接続処理中の論理端末に着信
回線接続処理中の回線にDLE・EOTを送信します。
ありません。

回線接続完了後の論理端末に着信

使用中の論理端末に着信を通知するメッセージログ（KFCA14421-W）を出力します。

着信した回線にDLE・EOTを送信します。

ありません。

論理端末明示閉塞中の着信
DLE・EOTを送信します。
障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除します。

メッセージ送信時の運用コマンド（mcftdctle）による論理端末明示閉塞

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信メッセージを出力キューから取り出す前の状態に戻します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ送信中の運用コマンド（mcftdctle）の入力）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

メッセージ受信時または回線維持中の運用コマンド（mcftdctle）による論理端末明示閉塞

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します（メッセージ受信時）。

CERREVT（運用コマンド（mcftdctle）による論理端末明示閉塞）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

相手ダイヤル番号未定義

相手ダイヤル番号未定義を通知するメッセージログ（KFCA14433-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（相手ダイヤル番号未定義）を起動します。

構成定義を見直してください。

(3)　受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害

入力キュー障害時の障害処理については，「10.5　入力キュー障害」を参照してください。

表10-3　受信スケジュール関係の障害発生時の処理（HSC2手順（非同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

アプリケーション名未定義

ERREVT1を起動します。

アプリケーション名未定義を通知するメッセージログ（KFCA10604-E）を出力します。

アプリケーション定義を見直してください。

アプリケーション名形式不正

ERREVT1を起動します。

アプリケーション名の形式不正を通知するメッセージログ（KFCA10610-E）を出力します。

UOCを見直してください。

システムアプリケーション名未定義

ERREVTn

SxxxEVT

CxxxEVT

メッセージ，およびMCFイベントを破棄します。
ありません。

MHPサービス，サービスグループ閉塞

入力キュー書き込み障害

ERREVT2を起動します。

入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

メッセージ受信時の入力メッセージ編集UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

メッセージ受信時の入力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UOCを見直してください。

論理端末名称決定UOCエラーリターン

論理端末名称決定UOCエラーリターンを通知するメッセージログ（KFCA14504-I）を出力します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

論理端末名称決定UOCがエラーリターンした理由を調査してください。

論理端末名称決定UOCでリターンした論理端末名称未定義

論理端末名称未定義を通知するメッセージログ（KFCA14429-E）を出力します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UOCを見直してください。

論理端末名称決定UOCでリターンした論理端末名称形式不正

論理端末名称形式不正を通知するメッセージログ（KFCA14431-E）を出力します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UOCを見直してください。

論理端末名称決定UOCで決定した論理端末名称が使用中

論理端末使用中を通知するメッセージログ（KFCA14431-E）を出力します。

DLE・EOTを送信します。

ありません。

(4)　送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害

出力キュー障害時の障害処理については，「10.6　出力キュー障害」を参照してください。

表10-4　送信スケジュール関係の障害発生時の処理（HSC2手順（非同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

メッセージ送信時の出力キュー読み込み障害

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

メッセージを出力キューから消去します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（出力キュー読み込み障害）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

出力キュー消去障害

出力キュー障害を通知するメッセージログ（KFCA10617-E）を出力します。

処理を続行します。

ありません。

メッセージ送信時の送信バッファオーバフロー

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

メッセージを出力キューから消去します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（受信バッファオーバフロー）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

メッセージ送信時の送信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

メッセージ送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

送信メッセージを出力キューから取り出す前の状態に戻します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（受信バッファ不足）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

構成定義を見直してください。

メッセージ送信時の出力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

メッセージを出力キューから消去します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（論理端末障害）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UOCを見直してください。

メッセージ送信時の出力メッセージ編集UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

メッセージを出力キューから消去します。

SERREVTを起動します（send関数で設定した場合）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

DLE・EOTを送信します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UOCを見直してください。

(5)　UAP障害

表10-5　UAP障害発生時の処理（HSC2手順（非同期モード））

障害の内容 | TP1/NET/HSCの処理 | ユーザの処理
セグメント受信前のUAP異常終了 | ERREVT2を起動します。 | 相手システムにUAPの異常終了を通知（send）してください。
セグメント受信後のUAP異常終了 | ERREVT3を起動します。 | 相手システムにUAPの異常終了を通知（send）してください。

(6)　MCFの障害

表10-6　MCFの障害発生時の処理（HSC2手順（非同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

内部論理矛盾

他PPとのインタフェースエラー

障害情報の取得を通知するメッセージログ（KFCA10189-E）を出力します。

全回線をクローズします。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（内部論理矛盾）を起動します。

ありません。

10.2　コネクション障害

回線に回復できない障害が発生すると，TP1/NET/HSCは，ほかの使用可能な回線を利用して処理を続行します。ほかに使用可能な回線がない場合，コネクション障害となります。

障害の発生した回線は，自動的に回復しません。障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力してコネクションの確立を再試行してください。

＜この節の構成＞

10.2.1　メッセージ送信時のコネクション障害

10.2.2　メッセージ受信時のコネクション障害

10.2.1　メッセージ送信時のコネクション障害

＜この項の構成＞

(1)　メッセージ送信前のコネクション障害

(2)　出力キュー消去前のコネクション障害

(1)　メッセージ送信前のコネクション障害

メッセージはロールバックされ，別回線を使用してまたはコネクションの確立をして再送信されます。

メッセージ送信前のコネクション障害の例を次の図に示します。

図10-1　メッセージ送信前のコネクション障害（HSC2手順（非同期モード））

注※

別の回線が使用できる場合，この処理は飛ばされます。

(2)　出力キュー消去前のコネクション障害

メッセージは二重に送信されます。このとき相手システムのUAPは，メッセージに通番を付けることで，二重送信をチェックします。

メッセージ消去前のコネクション障害の例を次の図に示します。

図10-2　メッセージ消去前のコネクション障害（HSC2手順（非同期モード））

注※

別の回線が使用できる場合，この処理は飛ばされます。

10.2.2　メッセージ受信時のコネクション障害

＜この項の構成＞

(1)　入力キュー書き込み前のコネクション障害

(2)　入力キュー書き込み後のコネクション障害

(1)　入力キュー書き込み前のコネクション障害

メッセージは欠落します。このとき自システムのUAPは，メッセージに通番を付けることで，欠落しているかどうかをチェックします。

メッセージ書き込み前のコネクション障害の例を次の図に示します。

図10-3　メッセージ書き込み前のコネクション障害（HSC2手順（非同期モード））

(2)　入力キュー書き込み後のコネクション障害

メッセージは影響を受けません。

メッセージ書き込み後のコネクション障害の例を次の図に示します。

図10-4　メッセージ書き込み後のコネクション障害（HSC2手順（非同期モード））

10.3　ユーザアプリケーションプログラム異常終了

UAPが異常終了した場合，TP1/NET/HSCは入力キューにMCFイベントを登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

＜この節の構成＞

10.3.1　セグメント受信前のUAP異常終了

10.3.2　セグメント受信後のUAP異常終了

10.3.1　セグメント受信前のUAP異常終了

TP1/NET/HSCは，入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

セグメント受信前のUAP異常終了の例を次の図に示します。

図10-5　セグメント受信前のUAP異常終了（HSC2手順（非同期モード））

10.3.2　セグメント受信後のUAP異常終了

TP1/NET/HSCは，入力キューにERREVT3（UAP異常終了通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

セグメント受信後のUAP異常終了の例を次の図に示します。

図10-6　セグメント受信後のUAP異常終了（HSC2手順（非同期モード））

10.4　ユーザアプリケーションプログラム閉塞

UAPが閉塞して使用できない場合，TP1/NET/HSCは入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

UAP閉塞による障害の例を次の図に示します。

図10-7　UAP閉塞による障害（HSC2手順（非同期モード））

10.5　入力キュー障害

メッセージを入力キューに書き込むときに障害が発生した場合，TP1/NET/HSCは入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

入力キュー障害の例を次の図に示します。

図10-8　入力キュー障害（HSC2手順（非同期モード））

10.6　出力キュー障害

メッセージを出力キューから読み込むときに障害が発生した場合，メッセージは欠落します。

出力キュー障害の例を次の図に示します。

図10-9　出力キュー障害（HSC2手順（非同期モード））

11.　HSC2手順（同期モード）の障害対策

この章では，TP1/NET/HSCのHSC2手順（同期モード）の運用中に発生する障害と，HSC2手順（同期モード）の対応処理，およびメッセージの処理について説明します。

＜この章の構成＞

11.1　障害の種類と対応処理

11.2　コネクション障害

11.3　ユーザアプリケーションプログラム異常終了

11.4　ユーザアプリケーションプログラム閉塞

11.5　HSC手順障害

11.1　障害の種類と対応処理

HSC2手順（同期モード）の場合のTP1/NET/HSC運用中の障害と対応処理について，障害の種類ごとに示します。

＜この節の構成＞

(1)　通信障害

(2)　HSC2手順（同期モード）プロトコル障害

(3)　受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害

(4)　送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害

(5)　UAP障害

(6)　PRC障害，sendsync関数・recvsync関数のリターン障害

(7)　MCFの障害

(1)　通信障害

コネクション障害時のTP1/NET/HSCの障害処理については，「11.2　コネクション障害」を参照してください。

表11-1　通信障害発生時の処理（HSC2手順（同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

コネクション確立時障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

発信，着信用相手ターミナルIDリストを破棄します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（コネクションの確立不可能）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

発信，着信要求時障害（回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

発信要求を出力キューから取り出す前の状態に戻します（発信要求時）。

発信，着信用相手ターミナルIDリストを破棄します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（コネクションの切断）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，再びコネクションを確立します。

メッセージ送受信時障害（回線回復不可能）

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

受信テキストの破棄を通知するメッセージログ（KFCA14401-W）を出力します（メッセージ受信時）。

同期送受信要求の異常完了（コネクション障害）。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

発信，着信用相手ターミナルIDリストを破棄します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（コネクションの切断）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力して，論理端末の閉塞を解除します。

発信要求時のHSC手順エラー

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

発信要求を出力キューから取り出す前の状態に戻します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（HSC手順エラー）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

着信要求時のHSC手順エラー

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

着信時の障害を通知するメッセージログ（KFCA14417-W）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

メッセージ送受信時HSC手順エラー

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します（メッセージ受信時）。

同期送受信要求の異常完了（論理端末障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（HSC手順エラー）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

発信失敗

コネクションの障害を通知するメッセージログ（KFCA14500-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

発信要求を出力キューから取り出す前の状態に戻します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（発信失敗）を起動します。

一定時間経過後，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

発信要求時の受信バッファオーバフロー

受信バッファオーバフロー（ID交換時）を通知するメッセージログ（KFCA14407-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

発信要求を出力キューから取り出す前の状態に戻します（発信要求時）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（受信バッファオーバフロー（ID交換時））を起動します。

ありません。

着信要求時の受信バッファオーバフロー

受信バッファオーバフロー（ID交換時）を通知するメッセージログ（KFCA14407-W）を出力します。

着信時の障害を通知するメッセージログ（KFCA14417-W）を出力します。

ありません。

メッセージ受信時の受信バッファオーバフロー

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

同期受信要求の異常完了（コネクション障害）。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

発信，着信用相手ターミナルIDリストを破棄します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（受信バッファオーバフロー（メッセージ受信時））を起動します。

構成定義を見直してください。

(2)　HSC2手順（同期モード）プロトコル障害

表11-2　HSC2手順（同期モード）プロトコル障害発生時の処理

障害の内容
TP1/NET/HSCの処理
ユーザの処理

発信要求時に該当する相手ターミナルIDがない場合

相手ターミナルIDなし（発信要求時）を通知するメッセージログ（KFCA14402-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（相手ターミナルIDなし（発信要求時））を起動します。

発信用相手ターミナルIDリスト，またはUAPを見直してください。

着信要求時に該当する相手ターミナルIDがない場合
相手ターミナルIDなし（着信要求時）を通知するメッセージログ（KFCA14404-W）を出力します。
着信用相手ターミナルIDリストを見直してください。

発信要求時の相手ターミナルIDチェック不正

相手ターミナルIDチェック不正を通知するメッセージログ（KFCA14403-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（相手ターミナルIDチェック不正）を起動します。

発信用相手ターミナルIDリストを見直してください。

発信要求時の接続拒否

相手システムの接続拒否を通知するメッセージログ（KFCA14409-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（発信要求時の接続拒否）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

発信要求時のID・ENQ受信

発信要求時のID・ENQ受信を通知するメッセージログ（KFCA14414-W）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

発信要求を出力キューから取り出す前の状態に戻します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（発信要求時のID・ENQ受信）を起動します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

メッセージ送信時のDLE・EOT受信

メッセージ送受信中のDLE・EOT受信を通知するメッセージログ（KFCA14412-W）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します（メッセージ受信時）。

同期送受信要求の異常完了（論理端末障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（メッセージ送受信時のDLE・EOT受信）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

障害の要因を取り除いたあと，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

発信，着信時の受信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

グループバッファ取得失敗を通知するメッセージログ（KFCA14005-E）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

発信要求を出力キューから取り出す前の状態に戻します（発信要求時）。

発信，着信用相手ターミナルIDリストを破棄します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（受信バッファ不足）を起動します。

構成定義を見直してください。

メッセージ受信時の受信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

グループバッファ取得失敗を通知するメッセージログ（KFCA14005-E）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します。

同期受信要求の異常完了（メモリ不足）。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

発信，着信用相手ターミナルIDリストを破棄します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（受信バッファ不足）を起動します。

構成定義を見直してください。

着信要求時の論理端末未定義

論理端末未定義を通知するメッセージログ（KFCA14416-E）を出力します。

発信，着信用相手ターミナルIDリストを破棄します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（論理端末未定義）を起動します。

UAPを見直してください。

発信要求時の送信テキスト形態不正

送信テキスト形態不正を通知するメッセージログ（KFCA14400-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

送信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信テキスト形態不正）を起動します。

UAPを見直してください。

メッセージ送信時の送信テキスト形態不正

送信テキスト形態不正を通知するメッセージログ（KFCA14400-W）を出力します。

同期送信要求の異常完了（論理端末障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信テキスト形態不正）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UAPを見直してください。

送信最大セグメント長オーバー

送信最大セグメント長オーバーを通知するメッセージログ（KFCA14418-W）を出力します。

同期送信要求の異常完了（論理端末障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信最大セグメント長オーバー）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UAPを見直してください。

発信要求時のダイヤル番号長不正

ダイヤル番号長不正を通知するメッセージログ（KFCA14425-W）を出力します。

送信メッセージの破棄を通知するメッセージログ（KFCA10607-W）を出力します。

送信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（ダイヤル番号長不正）を起動します。

UAPを見直してください。

分岐種別不正

HSC2制御末サポート機能要求を通知するメッセージログ（KFCA14415-W）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（分岐種別不正）を起動します。

UAPを見直してください。

シーケンス不正

シーケンス不正を通知するメッセージログ（KFCA14408-W）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します（メッセージ受信時）。

同期送受信要求の異常完了（論理端末名称）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（シーケンス不正）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UAPを見直してください。

発信要求時の運用コマンド（mcftdctle）による論理端末明示閉塞

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

メッセージの送信中断を通知するメッセージログ（KFCA10608-W）を出力します。

発信要求を出力キューから取り出す前の状態に戻します。

CERREVT（運用コマンド（mcftdctle）による論理端末明示閉塞）を起動します。

ありません。

メッセージ送受信時の運用コマンド（mcftdctle）による論理端末明示閉塞

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します（メッセージ受信時）。

同期送受信要求の異常完了（論理端末名称）。

CERREVT（運用コマンド（mcftdctle）による論理端末明示閉塞）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

発信，着信用相手ターミナルIDリスト読み込み障害

発信，着信用相手ターミナルIDリスト読み込み障害を通知するメッセージログ（KFCA14406-W）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（発信，着信用相手ターミナルIDリスト読み込み障害）を起動します。

構成定義を見直してください。

(3)　受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害

表11-3　受信スケジュール関係の障害発生時の処理（HSC2手順（同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

アプリケーション名未定義

ERREVT1を起動します。

アプリケーション名未定義を通知するメッセージログ（KFCA10604-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（アプリケーション起動不可）を起動します。

アプリケーション定義を見直してください。

アプリケーション名形式不正

ERREVT1を起動します。

アプリケーション名の形式不正を通知するメッセージログ（KFCA10610-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（アプリケーション起動不可）を起動します。

UOCを見直してください。

MCFイベントの名称未定義

ERREVTx

SxxxEVT

CxxxEVT

メッセージ，およびMCFイベントを破棄します。
ありません。

MHPサービス，サービスグループ閉塞

入力キュー書き込み障害

ERREVT2を起動します。

入力キュー障害を通知するメッセージログ（KFCA10604-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（アプリケーション起動不可）を起動します。

ありません。

回線接続時の入力メッセージ編集UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

ありません。

メッセージ受信時の入力メッセージ編集UOCラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

同期受信要求の異常完了（UOC障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

回線接続時の入力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

UOCを見直してください。

メッセージ受信時の入力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

同期受信要求の異常完了（UOC障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UOCを見直してください。

(4)　送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害

表11-4　送信スケジュール関係の障害発生時の処理（HSC2手順（同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

発信要求時の出力キュー読み込み障害

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（出力キュー読み込み障害）を起動します。

ありません。

メッセージ送信時の出力キュー読み込み障害

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

同期送信要求の異常完了（メッセージ読み込み障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（出力キュー読み込み障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

出力キュー消し込み障害

出力キュー障害を通知するメッセージログ（KFCA10617-E）を出力します。

処理を続行します。

ありません。

発信要求時の送信バッファオーバフロー

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信バッファオーバフロー）を起動します。

バッファグループ定義またはUAPを見直してください。

メッセージ送信時の送信バッファオーバフロー

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

同期送信要求の異常完了（メッセージ読み込み障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信バッファオーバフロー）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

バッファグループ定義またはUAPを見直してください。

発信要求時の送信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

発信要求を出力キューから取り出す前の状態に戻します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（受信バッファ不足）を起動します。

一定時間経過後，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

構成定義を見直してください。

メッセージ送信時の送信バッファ不足

ローカルメモリ不足を通知するメッセージログ（KFCA10618-E）を出力します。

出力キュー障害を通知するメッセージログ（KFCA10605-E）を出力します。

同期送信要求の異常完了（メモリ不足）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（送信バッファ不足）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

一定時間経過後，運用コマンド（mcftactle）を入力して，論理端末の閉塞を解除し，発信要求をします。または，着信待ちとします。

構成定義を見直してください。

発信要求時の出力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

UOCを見直してください。

メッセージ送信時の出力メッセージ編集UOCパラメタ不正

UOCパラメタ不正を通知するメッセージログ（KFCA10620-E）を出力します。

同期送信要求の異常完了（UOC障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UOCを見直してください。

発信要求時の出力メッセージ編集UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

発信要求を出力キューから消去します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

ありません。

メッセージ送信時の出力メッセージ編集UOCエラーリターン

UOCエラーリターンを通知するメッセージログ（KFCA10611-E）を出力します。

同期送信要求の異常完了（UOC障害）。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（UOC障害）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

(5)　UAP障害

表11-5　UAP障害発生時の処理（HSC2手順（同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

回線接続通知前のUAP異常終了
ERREVT2を起動します。
UAPを見直してください。

回線接続通知後のUAP異常終了

ERREVT3を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UAPを見直してください。

メッセージ送受信時のUAP異常終了

ERREVT3を起動します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

メッセージ送受信時のUAPプロセス終了を通知するメッセージログ（KFCA14413-W）を出力します。

受信メッセージの破棄を通知するメッセージログ（KFCA14401-W）を出力します（メッセージ受信時）。

CERREVT（メッセージ送受信時のUAPプロセス終了）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

UAPを見直したあと，運用コマンド（mcftdctle）を入力してください。

(6)　PRC障害，sendsync関数・recvsync関数のリターン障害

表11-6　PRC障害，sendsync関数・recvsync関数のリターン障害時の処理（HSC2手順（同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

同期要求完了障害

同期応答障害を通知するメッセージログ（KFCA10606-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

CERREVT（同期要求完了エラーリターン）を起動します。

回線の切断を通知するメッセージログ（KFCA14411-I）を出力します。

ありません。

(7)　MCFの障害

表11-7　MCFの障害発生時の処理（HSC2手順（同期モード））

障害の内容
TP1/NET/HSCの処理
ユーザの処理

内部論理矛盾

他PPとのインタフェースエラー

障害情報の取得を通知するメッセージログ（KFCA10189-E）を出力します。

論理端末の閉塞を通知するメッセージログ（KFCA14004-I）を出力します。

コネクションの解放を通知するメッセージログ（KFCA14001-E）を出力します。

コネクションの閉塞を通知するメッセージログ（KFCA14002-E）を出力します。

CERREVT（内部論理矛盾）を起動します。

ありません。

11.2　コネクション障害

コネクションが切断された場合，TP1/NET/HSCは自動的に回復しません。通信管理が管理している通信機器に障害が発生した場合も同様です。障害の要因を取り除いたあと，運用コマンド（mcftactcn）を入力してコネクションを再確立してください。そのあと，発信または着信時の方法で回線を接続します。

メッセージ送受信時のコネクション障害の例を次の図に示します。

図11-1　メッセージ送受信時のコネクション障害（HSC2手順（同期モード））

11.3　ユーザアプリケーションプログラム異常終了

UAPが異常終了した場合，TP1/NET/HSCは入力キューにMCFイベントを登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

＜この節の構成＞

11.3.1　回線接続要求受信前のUAP異常終了

11.3.2　回線接続要求受信後のUAP異常終了

11.3.1　回線接続要求受信前のUAP異常終了

TP1/NET/HSCは，入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

回線接続要求受信前のUAP異常終了の例を次の図に示します。

図11-2　回線接続要求受信前のUAP異常終了（HSC2手順（同期モード））

11.3.2　回線接続要求受信後のUAP異常終了

TP1/NET/HSCは，入力キューにERREVT3（UAP異常終了通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

回線接続要求受信後のUAP異常終了の例を次の図に示します。

図11-3　回線接続要求受信後のUAP異常終了（HSC2手順（同期モード））

11.4　ユーザアプリケーションプログラム閉塞

UAPが閉塞して使用できない場合，TP1/NET/HSCは入力キューにERREVT2（メッセージ破棄通知イベント）を登録し，MCFイベント処理用MHPを起動します。起動されたMCFイベント処理用MHPは，エラー情報と入力されたメッセージを受信します。

UAP閉塞による障害の例を次の図に示します。

図11-4　UAP閉塞による障害（HSC2手順（同期モード））

11.5　HSC手順障害

HSC手順障害が発生した場合，TP1/NET/HSCはUAPにエラーを通知したあと，入力キューにCERREVT（障害通知イベント）を登録し，MCFイベント処理用MHPを起動します。メッセージは，コネクション障害と同様に破棄されます。

メッセージ送信時のHSC手順障害の例を次の図に示します。

図11-5　メッセージ送信時のHSC手順障害（HSC2手順（同期モード））

付録

＜この付録の構成＞

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

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

付録C　理由コード一覧

付録D　関数使用の制限（HSC2手順（同期モード））

付録E　論理端末名称決定UOCのコーディング例

付録F　用語解説

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

メッセージを送受信するときのデータの流れ，ジャーナルの取得タイミングなどを，HSC1手順，HSC2手順（非同期モード）およびHSC2手順（同期モード）に分けて説明します。

＜この節の構成＞

付録A.1　HSC1手順のメッセージの送受信

付録A.2　HSC2手順（非同期モード）のメッセージの送受信

付録A.3　HSC2手順（同期モード）のメッセージの送受信

付録A.1　HSC1手順のメッセージの送受信

HSC1手順のメッセージを送受信するときの処理の流れを，図A-1～図A-6に示します。

＜この項の構成＞

(1)　単一セグメントの送信

(2)　複数セグメントの送信

(3)　列信の場合の送信

(4)　単一セグメントの受信

(5)　複数セグメントの受信

(6)　列信の場合の受信

(1)　単一セグメントの送信

図A-1　HSC1手順のメッセージ送信の処理の流れ（単一セグメントの場合）

注※

send関数で送信完了通知イベントを通知させることを指定した場合

(2)　複数セグメントの送信

図A-2　HSC1手順のメッセージ送信の処理の流れ（複数セグメントの場合）

注※

send関数で送信完了通知イベントを通知させることを指定した場合

(3)　列信の場合の送信

図A-3　HSC1手順のメッセージ送信の処理の流れ（列信の場合）

注※

send関数で送信完了通知イベントを通知させることを指定した場合

(4)　単一セグメントの受信

図A-4　HSC1手順のメッセージ受信の処理の流れ（単一セグメントの場合）

(5)　複数セグメントの受信

図A-5　HSC1手順のメッセージ受信の処理の流れ（複数セグメントの場合）

(6)　列信の場合の受信

図A-6　HSC1手順のメッセージ受信の処理の流れ（列信の場合）

付録A.2　HSC2手順（非同期モード）のメッセージの送受信

HSC2手順（非同期モード）のメッセージを送受信するときの処理の流れを，図A-7～図A-14に示します。

＜この項の構成＞

(1)　単一セグメントの送信

(2)　複数セグメントの送信

(3)　列信の場合の送信

(4)　単一セグメントの受信

(5)　複数セグメントの受信

(6)　列信の場合の受信

(7)　回線の切断

(8)　送受信反転制御

(1)　単一セグメントの送信

図A-7　HSC2手順（非同期モード）のメッセージ送信の処理の流れ（単一セグメントの場合）

注※1

MCF通信構成定義でID交換あり（mcftalccnコマンドの-jオプションidchangeオペランドでuse）を指定した場合

注※2

send関数で送信完了通知イベントを通知させることを指定した場合

(2)　複数セグメントの送信

図A-8　HSC2手順（非同期モード）のメッセージ送信の処理の流れ（複数セグメントの場合）

注※

send関数で送信完了通知イベントを通知させることを指定した場合

(3)　列信の場合の送信

図A-9　HSC2手順（非同期モード）のメッセージ送信の処理の流れ（列信の場合）

注※

send関数で送信完了通知イベントを通知させることを指定した場合

(4)　単一セグメントの受信

図A-10　HSC2手順（非同期モード）のメッセージ受信の処理の流れ（単一セグメントの場合）

注※

MCF通信構成定義でID交換あり（mcftalccnコマンドの-jオプションidchangeオペランドでuse）を指定した場合

(5)　複数セグメントの受信

図A-11　HSC2手順（非同期モード）のメッセージ受信の処理の流れ（複数セグメントの場合）

注※

MCF通信構成定義でID交換あり（mcftalccnコマンドの-jオプションidchangeオペランドでuse）を指定した場合

(6)　列信の場合の受信

図A-12　HSC2手順（非同期モード）のメッセージ受信の処理の流れ（列信の場合）

(7)　回線の切断

図A-13　HSC2手順（非同期モード）の回線切断の処理の流れ（回線維持タイムアウトの場合）

注※

MCF通信構成定義のmcftalccnコマンドの-vオプションdiscinfオペランドでuseを指定した場合

(8)　送受信反転制御

図A-14　送受信反転制御

付録A.3　HSC2手順（同期モード）のメッセージの送受信

HSC2手順（同期モード）のメッセージを送受信するときの処理の流れを，図A-15～図A-24に示します。

＜この項の構成＞

(1)　単一セグメントの送信

(2)　複数セグメントの送信

(3)　列信の場合の送信

(4)　単一セグメントの受信

(5)　複数セグメントの受信

(6)　列信の場合の受信

(7)　回線の切断

(1)　単一セグメントの送信

図A-15　HSC2手順（同期モード）のメッセージ送信の処理の流れ（単一セグメントで通常テキスト送信後，EOTを送信する場合）

図A-16　HSC2手順（同期モード）のメッセージ送信の処理の流れ（単一セグメントで通常テキスト送信する場合）

(2)　複数セグメントの送信

図A-17　HSC2手順（同期モード）のメッセージ送信の処理の流れ（複数セグメントの場合）

(3)　列信の場合の送信

図A-18　HSC2手順（同期モード）のメッセージ送信の処理の流れ（列信の場合）

(4)　単一セグメントの受信

図A-19　HSC2手順（同期モード）のメッセージ受信の処理の流れ（単一セグメントの場合）

(5)　複数セグメントの受信

図A-20　HSC2手順（同期モード）のメッセージ受信の処理の流れ（複数セグメントの場合）

(6)　列信の場合の受信

図A-21　HSC2手順（同期モード）のメッセージ受信の処理の流れ（列信の場合）

(7)　回線の切断

回線の切断の処理の流れを回線切断要求送信，MHPの終了，および回線切断の受信の場合に分けて，図A-22～図A-24に示します。

図A-22　HSC2手順（同期モード）の回線切断の処理の流れ（回線切断要求（DLE・EOT）送信の場合）

図A-23　HSC2手順（同期モード）の回線切断の処理の流れ（MHPの終了の場合）

図A-24　HSC2手順（同期モード）の回線切断の処理の流れ（回線切断の受信の場合）

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

メッセージを送受信するときに発生した障害処理の流れを，HSC1手順，HSC2手順（非同期モード）およびHSC2手順（同期モード）に分けて説明します。

＜この節の構成＞

付録B.1　HSC1手順の障害

付録B.2　HSC2手順（非同期モード）の障害

付録B.3　HSC2手順（同期モード）の障害

付録B.1　HSC1手順の障害

HSC1手順の障害発生時の処理の流れを，図B-1～図B-6に示します。

＜この項の構成＞

(1)　コネクション切断

(2)　メッセージ送信時の障害

(3)　出力キュー読み込み障害

(4)　入力メッセージ編集UOC障害

(5)　コンテンション

(6)　逆中断（RVI）受信

(1)　コネクション切断

図B-1　コネクション切断

(2)　メッセージ送信時の障害

図B-2　メッセージ送信時の障害

注※

send関数で送信障害通知イベントを通知させることを指定した場合

(3)　出力キュー読み込み障害

図B-3　出力キュー読み込み障害

(4)　入力メッセージ編集UOC障害

図B-4　HSC1手順の入力メッセージ編集UOC障害

(5)　コンテンション

図B-5　HSC1手順のコンテンション

(6)　逆中断（RVI）受信

図B-6　HSC1手順の逆中断（RVI）受信（mcftalccnコマンドの-uオプションでacceptを指定した場合）

付録B.2　HSC2手順（非同期モード）の障害

HSC2手順（非同期モード）の障害発生時の処理の流れを，図B-7～図B-11に示します。

＜この項の構成＞

(1)　メッセージ送信時の障害

(2)　入力メッセージ編集UOC障害

(3)　コンテンション

(4)　逆中断（RVI）受信

(1)　メッセージ送信時の障害

図B-7　HSC2手順（非同期モード）のメッセージ送信時の回復不可能障害

注※

send関数で送信障害通知イベントを通知させることを指定した場合

図B-8　HSC2手順（非同期モード）のメッセージ送信時のHSC手順エラー

注※

send関数で送信障害通知イベントを通知させることを指定した場合

(2)　入力メッセージ編集UOC障害

図B-9　HSC2手順（非同期モード）の入力メッセージ編集UOC障害

(3)　コンテンション

図B-10　HSC2手順（非同期モード）のコンテンション

(4)　逆中断（RVI）受信

図B-11　HSC2手順（非同期モード）の逆中断（RVI）受信

注※

send関数で送信障害通知イベントを通知させることを指定した場合

付録B.3　HSC2手順（同期モード）の障害

HSC2手順（同期モード）の障害発生時の処理の流れを，図B-12～図B-16に示します。

＜この項の構成＞

(1)　メッセージ送信時の障害

(2)　入力メッセージ編集UOC障害

(3)　コンテンション

(4)　逆中断（RVI）受信

(1)　メッセージ送信時の障害

図B-12　HSC2手順（同期モード）のメッセージ送信時の回復不可能障害

図B-13　HSC2手順（同期モード）のメッセージ送信時のHSC手順エラー

(2)　入力メッセージ編集UOC障害

図B-14　HSC2手順（同期モード）の入力メッセージ編集UOC障害

(3)　コンテンション

図B-15　HSC2手順（同期モード）のコンテンション

(4)　逆中断（RVI）受信

図B-16　HSC2手順（同期モード）の逆中断（RVI）受信（mcftalccnコマンドの-uオプションでacceptを指定した場合）

付録C　理由コード一覧

＜この節の構成＞

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

付録C.2　HSC1手順の理由コード一覧

付録C.3　HSC2手順（非同期モード）の理由コード一覧

付録C.4　HSC2手順（同期モード）の理由コード一覧

付録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　HSC1手順の理由コード一覧

HSC1手順のCERREVTの理由コードを示します。

HSC1手順のコネクション障害の理由コードを表C-2に，論理端末障害の理由コードを表C-3に示します。

表C-2　HSC1手順のコネクション障害の理由コード一覧

理由コード1
（16進数字）
理由コード2
（16進数字）
発生条件

DCMHSC_RSN1_MCF
（00000001）（MCF障害）
DCMHSC_RSN2_CNNC
（00000000）
AP間通信開始不可能，またはコネクション確立不可能

DCMHSC_RSN2_CNER
（00000001）
コネクション切断

DCMHSC_RSN2_RBFOF
（00000002）
受信バッファオーバフロー

DCMHSC_RSN2_ERROR
（00000003）
MCF内部論理矛盾

DCMHSC_RSN2_LINE
（00000009）
回線上のHSC手順エラー

DCMHSC_RSN2_RDISC
（0000000a）
障害回復動作中止

DCMHSC_RSN2_RBFST
（0000000b）
受信バッファ不足

表C-3　HSC1手順の論理端末障害の理由コード一覧

理由コード1
（16進数字）
理由コード2
（16進数字）
発生条件

DCMHSC_RSN1_MCF
（00000001）（MCF障害）
DCMHSC_RSN2_SBFOF
（00000004）
送信バッファオーバフロー

DCMHSC_RSN2_OTGET
（00000005）
出力キュー読み込み障害

DCMHSC_RSN2_SBFST
（00000006）
送信バッファ不足

DCMHSC_RSN2_TXTER
（00000007）
送信テキスト形態不正

DCMHSC_RSN2_EOTR
（00000008）
テキスト送信時EOT受信

DCMHSC_RSN1_UOC
（00000003）（UOC障害）
UOCからの詳細リターンコード
UOCエラーリターン

DCMHSC_RSN2_BCNT
（00000001）
使用バッファ数不正

DCMHSC_RSN2_SEG
（00000002）
有効セグメント不正

DCMHSC_RSN2_BADR
（00000003）
編集バッファリストアドレス不正

付録C.3　HSC2手順（非同期モード）の理由コード一覧

HSC2手順（非同期モード）の理由コードを示します。

HSC2手順（非同期モード）のコネクション障害の理由コードを表C-4に，論理端末障害の理由コードを表C-5に示します。

表C-4　HSC2手順（非同期モード）のコネクション障害の理由コード一覧

理由コード1
（16進数字）
理由コード2
（16進数字）
発生条件

DCMHS2_RSN1_MCF
（00000001）（MCF障害）
DCMHS2_RSN2_CNNC
（00000000）
コネクション確立不可能

DCMHS2_RSN2_CNER
（00000001）
コネクション切断

DCMHS2_RSN2_RBFOF
（00000002）
受信バッファオーバフロー（テキスト受信時）

DCMHS2_RSN2_ERROR
（00000003）
MCF内部論理矛盾

DCMHS2_RSN2_RBBSY
（00000007）
受信バッファ不足

表C-5　HSC2手順（非同期モード）の論理端末障害の理由コード一覧

理由コード1
（16進数字）
理由コード2
（16進数字）
発生条件

DCMHS2_RSN1_MCF
（00000001）（MCF障害）
DCMHS2_RSN2_SBFOF
（00000004）
送信バッファオーバフロー

DCMHS2_RSN2_OTGET
（00000005）
出力キュー読み込み障害

DCMHS2_RSN2_SBFST
（00000006）
送信バッファ不足

DCMHS2_RSN2_TXTER
（00000009）
送信テキスト形態不正

DCMHS2_RSN2_IDINV
（0000000b）
相手ターミナルIDチェック不正

DCMHS2_RSN2_IDREJ
（0000000c）
発信要求時の接続拒否

DCMHS2_RSN2_CALE
（0000000d）
発信失敗

DCMHS2_RSN2_DCTLE
（00000017）
運用コマンド（mcftdctle）による明示閉塞

DCMHS2_RSN2_SSEGOV
（00000019）
送信最大セグメント長オーバー

DCMHS2_RSN2_SOHTXT
（0000001a）
ヘッダ付きテキスト受信

DCMHS2_RSN2_SERRO
（0000001b）
メッセージ送信中の回線回復不可能障害

DCMHS2_RSN2_SLINE
（0000001c）
メッセージ送信中のHSC手順エラー

DCMHS2_RSN2_SDISC
（0000001d）
メッセージ送信中のDLE・EOT受信

DCMHS2_RSN2_SEOT
（0000001e）
メッセージ送信中のEOT受信

DCMHS2_RSN2_RERRO
（0000001f）
メッセージ受信中の回線回復不可能障害

DCMHS2_RSN2_RLINE
（00000020）
メッセージ受信中のHSC手順エラー

DCMHS2_RSN2_RDISC
（00000021）
メッセージ受信中のDLE・EOT受信

DCMHS2_RSN2_REOT
（00000022）
メッセージ受信中のEOT受信

DCMHS2_RSN2_DCTCN
（00000023）
メッセージ送信中の運用コマンド（mcftdctcn）入力

DCMHS2_RSN2_SDCTLE
（00000024）
メッセージ送信中の運用コマンド（mcftdctle）入力

DCMHS2_RSN2_NDISC
（00000025）
回線維持終了

DCMHS2_RSN2_NOTEL
（00000027）
相手ダイヤル番号未定義

DCMHS2_RSN1_UOC
（00000003）（UOC障害）
UOCからの詳細リターンコード
UOCエラーリターン

DCMHS2_RSN2_BCNT
（00000001）
使用バッファ数不正

DCMHS2_RSN2_SEG
（00000002）
有効セグメント不正

DCMHS2_RSN2_BADR
（00000003）
編集バッファリストアドレス不正

付録C.4　HSC2手順（同期モード）の理由コード一覧

HSC2手順（同期モード）の理由コードを示します。

HSC2手順（同期モード）のコネクション障害の理由コードを表C-6に，論理端末障害の理由コードを表C-7に示します。

表C-6　HSC2手順（同期モード）のコネクション障害の理由コード一覧

理由コード1
（16進数字）
理由コード2
（16進数字）
発生条件

DCMHS2_RSN1_MCF
（00000001）（MCF障害）
DCMHS2_RSN2_CNNC
（00000000）
コネクション確立不可能

DCMHS2_RSN2_CNER
（00000001）
コネクション切断

DCMHS2_RSN2_RBFOF
（00000002）
受信バッファオーバフロー（テキスト受信時）

DCMHS2_RSN2_ERROR
（00000003）
MCF内部論理矛盾

DCMHS2_RSN2_RBBSY
（00000007）
受信バッファ不足

DCMHS2_RSN2_RDERR
（00000008）
発信，着信用相手ターミナルIDリストファイル読み込み障害

DCMHS2_RSN2_NOLEID
（00000018）
論理端末未定義

表C-7　HSC2手順（同期モード）の論理端末障害の理由コード一覧

理由コード1
（16進数字）
理由コード2
（16進数字）
発生条件

DCMHS2_RSN1_MCF
（00000001）（MCF障害）
DCMHS2_RSN2_SBFOF
（00000004）
送信バッファオーバフロー

DCMHS2_RSN2_OTGET
（00000005）
出力キュー読み込み障害

DCMHS2_RSN2_SBFST
（00000006）
送信バッファ不足

DCMHS2_RSN2_TXTER
（00000009）
送信テキスト形態不正

DCMHS2_RSN2_DISC
（0000000a）
テキスト送受信時処理中のDLE・EOT受信

DCMHS2_RSN2_IDINV
（0000000b）
相手ターミナルIDチェック不正

DCMHS2_RSN2_IDREJ
（0000000c）
発信要求時の接続拒否

DCMHS2_RSN2_CALE
（0000000d）
発信失敗

DCMHS2_RSN2_LINE
（0000000e）
回線上のHSC手順エラー

DCMHS2_RSN2_APERR
（0000000f）
テキスト送受信処理中のUAPプロセス終了

DCMHS2_RSN2_IDRCV
（00000010）
発信要求時のコンテンション

DCMHS2_RSN2_NOSTID
（00000011）
発信要求時の相手ターミナルIDなし

DCMHS2_RSN2_ACTINV
（00000012）
分岐種別不正

DCMHS2_RSN2_SEQERR
（00000013）
シーケンス不正

DCMHS2_RSN2_RBFOID
（00000014）
受信バッファオーバフロー（ID交換時）

DCMHS2_RSN2_APPMOV
（00000015）
アプリケーション起動不可

DCMHS2_RSN2_SYERR
（00000016）
同期要求完了エラーリターン

DCMHS2_RSN2_DCTLE
（00000017）
運用コマンド（mcftdctle）による明示閉塞

DCMHS2_RSN2_SSEGOV
（00000019）
送信最大セグメント長オーバー

DCMHS2_RSN2_SOHTXT
（0000001a）
ヘッダ付きテキスト受信

DCMHS2_RSN2_TELER
（00000026）
相手ダイヤル番号不正

DCMHS2_RSN1_UOC
（00000003）（UOC障害）
UOCからの詳細リターンコード
UOCエラーリターン

DCMHS2_RSN2_BCNT
（00000001）
使用バッファ数不正

DCMHS2_RSN2_SEG
（00000002）
有効セグメント不正

DCMHS2_RSN2_BADR
（00000003）
編集バッファリストアドレス不正

付録D　関数使用の制限（HSC2手順（同期モード））

HSC2手順（同期モード）の場合，ある関数のテキスト形態とリターン値によって，その次に呼び出せる関数の制限について，次の表に示します。

表D-1　関数使用の制限

関数名 | リターン値 | 次の関数名
recvsync | sendsync | send
－ | 1，3 | 2，4 | 5 | 6 | 7
sendsync | 1，3 | DCMCFRTN_00000 | × | ○ | ○ | ○ | ○ | ×
2，4 |  | ○ | ○ | ○ | × | ○ | ×
5 | ○ | ○ | ○ | × | ○ | ×
6 | × | × | × | × | × | ○
1，2，3，4， | DCMCFRTN_73003 | ○ | × | × | × | ○ | ×
1，2，3，4 | DCMCFRTN_77901 | ○ | ○ | ○ | × | ○ | ×
5 | DCMCFRTN_77902 | ○ | ○ | ○ | × | ○ | ×
1，2，3，4， | DCMCFRTN_77903 | ○ | ※2 | ※2 | × | ○ | ×
recvsync | 1，3※¹ | DCMCFRTN_00000 | ○ | × | × | × | ○ | ×
5※¹ | ○ | ○ | ○ | × | ○ | ×
6※¹ | × | × | × | × | × | ○
－ | DCMCFRTN_77900 | × | × | × | × | × | ○
receive | 8 | DCMCFRTN_00000 | × | ○ | ○ | ○ | ○ | ×
9 | ○ | × | × | × | ○ | ×

（凡例）

○：呼び出しができます。

×：呼び出しができません。

－：ありません。

1から9はテキスト形態です。

1：通常テキストの送信または受信をします。

2：通常テキスト送信後，EOT送信をします。

3：透過モードテキストの送信または受信をします。

4：透過モードテキスト送信後，EOT送信をします。

5：EOT送信または受信をします。

6：DLE・EOTの送信または受信をします。

7：回線接続要求をします。

8：発信による回線接続をします。

9：着信による回線接続をします。

注※1

recvsync関数がリターン値DCMCFRTN_00000で終了したときに通知されるテキスト形態です。

注※2

sendsync関数を呼び出せますが，リターン値DCMCFRTN_73003で終了する場合があるので，注意してください。

付録E　論理端末名称決定UOCのコーディング例

論理端末名称決定UOCのコーディング例（K＆R版 C）を次の図に示します。また，このコーディング例を，/BeTRAN/examples/mcf/HSC/cmlib/c/uoc.cのファイルで提供しています。

/*
* TP1/NET/HSC  HSC2手順（非同期モード） 論理端末名称決定UOC
*/
#include <stdio.h>
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmpcm.h>
#include <dcmhsc2.h>

#define NOLE -19000       /* 未使用論理端末なし */

long ledtmn01(parm)
dcmcf_uoc_min_n *parm;
{
  long rtn_code ,
       count ;
  dcmhs3_uoc_prot *le_ptr ;

  le_ptr = (dcmhs2_uoc_prot *)parm->pro_indv_ifa ;
  count = 0 ;
  rtn_code = DCMCF_UOC_MSG_NG ;
  parm->rtn_detail = NOLE ;

/****** 未使用論理端末検索 ******/

  while(le_ptr->le_num > count) {
   if(le_ptr->le_list[count].le_inf == DCMHS2_LE_NOUSE){
    strcpy(parm->le_name,le_ptr->le_list[count].le_name);
    rtn_code = DCMCF_UOC_MSG_OK ;
    parm->rtn_detail = 0 ;
    break ;
   }
  count++ ;
 }
 return(rtn_code);
}

付録F　用語解説

（英字）

AJ（メッセージ送信完了ジャーナル）

TP1/NET/HSCで取得する履歴情報の一つです。メッセージの送信完了情報である送信通番と送信先論理端末名称とで構成されます。

AJの取得タイミングは相手システムにメッセージを送信し，その送信完了を受信した直後です。

GJ（メッセージ受信ジャーナル）

メッセージ受信時に取得される情報です。メッセージ長，論理端末名称などで構成されます。

GJの取得タイミングは，receiveを発行して，入力キューから取り出したメッセージをUAPに渡す直前です。

IJ（メッセージ入力ジャーナル）

入力キューに入力された情報です。入力メッセージ通番，論理端末名称，メッセージ種別，および入力メッセージの情報です。

IJの取得タイミングは相手システムから受信したメッセージを入力キューに入力する直前です。

MJ（メッセージジャーナル）

メッセージに関する情報です。端末名称，メッセージ種別，入力メッセージ編集前のデータ，出力メッセージ編集後のデータなどで構成されます。

MJの取得タイミングはメッセージ送信前，出力メッセージ編集UOC処理後，および入力メッセージ編集UOC処理前です。

OJ（メッセージ出力ジャーナル）

出力キューに入力された情報です。メッセージの送信通番，論理端末名称，メッセージ種別，出力メッセージ，セグメント種別などの情報です。

OJの取得タイミングはUAPからsendを受け付けたときです。

（カ行）

コネクション

通信管理との論理的な通信路です。MCFの通信管理側の通信接点であり，MCFと通信管理はコネクション単位に送受信をします。

（サ行）

出力キュー

処理の結果として出力メッセージを管理する待ち行列です。

（ナ行）

入力キュー

処理要求として入力メッセージを管理する待ち行列です。

（ラ行）

論理端末

TP1/NET/HSCとUAPとの通信接点です。TP1/NET/HSCとUAPは，論理端末単位にメッセージの送受信をします。

索引

[Ａ][Ｃ][Ｄ][Ｅ][Ｇ][Ｈ][Ｉ][Ｍ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ][Ｕ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ヤ行][ラ行]

(英字)

(Ａ)

AJ（メッセージ送信完了ジャーナル）

AP間通信

AP間通信〔HSC1手順〕

AP間通信〔HSC2手順（同期モード）〕

AP間通信〔HSC2手順（非同期モード）〕

AP間通信の概要

AP間通信の形態

AP間通信の終了

AP間通信の準備

(Ｃ)

CBLDCMCF('RECEIVE ')

CBLDCMCF('RECVSYNC')

CBLDCMCF('RESEND ')

CBLDCMCF('SEND ')

CBLDCMCF('SENDSYNC')

CCLSEVT

CCLSEVT

CERREVT

CERREVT

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

COPNEVT

COPNEVT

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

(Ｄ)

dc_mcf_receive

dc_mcf_recvsync

dc_mcf_resend

dc_mcf_send

dc_mcf_sendsync

(Ｅ)

EOT交換

EOT交換

EOT交換の抑止〔HSC2手順（同期モード）〕

EOT交換の抑止〔HSC2手順（非同期モード）〕

ERREVT1

ERREVT1

ERREVT2

ERREVT2

ERREVT2の理由コード一覧

ERREVT3

ERREVT3

ERREVTA

ERREVTA

(Ｇ)

GJ（メッセージ受信ジャーナル）

(Ｈ)

HSC1手順

HSC1手順のAP間通信の仕組み

HSC1手順のAP間通信メッセージの送受信

HSC1手順の機能

HSC1手順の機能

HSC1手順の機能とTP1/NET/HSCの扱い

HSC1手順のコネクション障害の理由コード一覧

HSC1手順の障害

HSC1手順の送受信の方法

HSC1手順の通信形態

HSC1手順のメッセージ受信の処理の流れ（複数セグメントの場合）〔HSC1手順〕

HSC1手順のメッセージ受信の流れ

HSC1手順のメッセージ送信の処理の流れ（複数セグメントの場合）〔HSC1手順〕

HSC1手順のメッセージ送信の流れ

HSC1手順の論理端末障害の理由コード一覧

HSC2呼制御

HSC2手順

HSC2手順（同期モード）のコネクション障害の理由コード一覧

HSC2手順（同期モード）の障害

HSC2手順（同期モード）の送受信の方法

HSC2手順（同期モード）の通信形態

HSC2手順（同期モード）の論理端末障害の理由コード一覧

HSC2手順（同期モード）プロトコル障害

HSC2手順（同期モード）を使用した通信形態

HSC2手順（非同期モード）のコネクション障害の理由コード一覧

HSC2手順（非同期モード）の障害

HSC2手順（非同期モード）の送受信の方法

HSC2手順（非同期モード）の通信形態

HSC2手順（非同期モード）の論理端末障害の理由コード一覧

HSC2手順（非同期モード）プロトコル障害

HSC2手順のAP間通信の仕組み

HSC2手順のAP間通信メッセージの送受信

HSC2手順の機能

HSC2手順の機能

HSC手順障害

(Ｉ)

IJ（メッセージ入力ジャーナル）

(Ｍ)

max_open_fds

max_socket_descriptors

MCF

mcftactcn

mcftactle

mcftalccn〔HSC1手順〕

mcftalccn〔HSC2手順（同期モード）〕

mcftalccn〔HSC2手順（非同期モード）〕

mcftalced〔HSC1手順〕

mcftalced〔HSC2手順（同期モード）〕

mcftalced〔HSC2手順（非同期モード）〕

mcftalcle〔HSC1手順〕

mcftalcle〔HSC2手順（同期モード）〕

mcftalcle〔HSC2手順（非同期モード）〕

mcftdctcn

mcftdctle

mcfteof

mcftleof

mcftllst

mcftlnf

mcftlscn

mcftlsle

mcftrtlst

mcftstf

mcftstlst

MCFアプリケーション定義

MCFイベント

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

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

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

MCFイベント処理用MHP

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

MCFイベントの共通ヘッダ

MCFイベントの種類

MCFサービス名の登録

MCF通信構成定義

MCF通信プロセスでアクセスするファイルの最大数

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

MCFで使用する定義ファイル

MCFの障害〔HSC1手順〕

MCFの障害〔HSC2手順（同期モード）〕

MCFの障害〔HSC2手順（非同期モード）〕

MCFマネジャ定義

MCFメイン関数の作成

MCFメイン関数の作成

MHP終了での切断

MJ（メッセージジャーナル）

(Ｏ)

OJ（メッセージ出力ジャーナル）

(Ｐ)

PRC障害

(Ｒ)

RECEIVE

(Ｓ)

SCMPEVT

SCMPEVT

SEND

sendsync関数・recvsync関数のリターン障害

SERREVT

SERREVT

(Ｔ)

TP1/Message Control

TP1/NET/HSCが通知するMCFイベントの種類

TP1/NET/HSC固有のシステム定義の種類〔HSC1手順〕

TP1/NET/HSC固有のシステム定義の種類〔HSC2手順（同期モード）〕

TP1/NET/HSC固有のシステム定義の種類〔HSC2手順（非同期モード）〕

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

TP1/NET/HSCの組み込みの流れ

TP1/NET/HSCの定義の概要

TP1/NET/HSCを組み込んだソフトウェア構成

TP1/NET/HSCを使用したネットワーク構成例

TP1/NET/Library

(Ｕ)

UAP異常終了通知イベント

UAPおよび通信管理でのデータの扱い（HSC1手順）

UAPおよび通信管理でのデータの扱い（HSC2手順）

UAP障害〔HSC1手順〕

UAP障害〔HSC2手順（同期モード）〕

UAP障害〔HSC2手順（非同期モード）〕

UOCインタフェース用のパラメタとバッファの関係

UOCインタフェース用のパラメタとバッファの関係（論理端末名称決定UOCの場合）

UOC作成上の注意事項

UOCで使用できる関数

UOCの異常処理

UOCの構造

UOCの実行タイミング

UOCの障害処理

(ア行)

(あ)

相手システムからの切断〔HSC2手順（同期モード）〕

相手システムからの切断〔HSC2手順（非同期モード）〕

相手ターミナルIDリスト定義

相手ターミナルIDリスト定義ユティリティ（同期モード）

アプリケーションの型〔HSC1手順〕

アプリケーションの型〔HSC2手順〕

アプリケーション名〔HSC1手順〕

アプリケーション名〔HSC2手順〕

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

アプリケーション名の決定の処理

暗黙閉塞〔HSC1手順〕

暗黙閉塞〔HSC2手順〕

(い)

一時受信抑止（WACK）〔HSC1手順〕

一時受信抑止（WACK）〔HSC2手順〕

一時送信延期（TTD）〔HSC1手順〕

一時送信延期（TTD）〔HSC2手順〕

一方受信形態〔HSC1手順〕

一方受信形態〔HSC2手順（同期モード）〕

一方送信形態のAP間通信の例（HSC1手順の場合）

一方送信メッセージ

一方送信メッセージまたは回線接続要求の送信（COBOL言語）

一方送信メッセージまたは回線接続要求の送信（C言語）

(う)

運用コマンド

(カ行)

(か)

回線維持モード

回線接続要求テキスト

回線切断の処理の流れ（MHPの終了の場合）〔HSC2手順（同期モード）〕

回線切断の処理の流れ（回線維持タイムアウトの場合）〔HSC2手順（非同期モード）〕

回線切断の処理の流れ（回線切断の受信の場合）〔HSC2手順（同期モード）〕

回線切断の処理の流れ（回線切断要求（DLE・EOT）送信の場合）〔HSC2手順（同期モード）〕

回線の接続〔HSC2手順（同期モード）〕

回線の接続〔HSC2手順（非同期モード）〕

回線の切断〔HSC2手順（同期モード）〕

回線の切断〔HSC2手順（非同期モード）〕

回線リスト出力ファイル定義

回線リスト出力ファイル定義の終了

回線リスト定義

回線リスト定義

回線リスト定義ユティリティ（非同期モード）

概要

関数使用の制限（HSC2手順（同期モード））

(き)

逆中断（RVI）〔HSC1手順〕

逆中断（RVI）〔HSC2手順〕

逆中断（RVI）受信〔HSC1手順〕

逆中断（RVI）受信〔HSC2手順（同期モード）〕

逆中断（RVI）受信〔HSC2手順（非同期モード）〕

キューグループID〔HSC1手順〕

キューグループID〔HSC2手順（非同期モード）〕

(く)

組み込み方法

(こ)

コネクション

コネクションID〔HSC1手順〕

コネクションID〔HSC2手順（同期モード）〕

コネクションID〔HSC2手順（非同期モード）〕

コネクション障害〔HSC1手順〕

コネクション障害〔HSC1手順〕

コネクション障害〔HSC2手順（同期モード）〕

コネクション障害〔HSC2手順（非同期モード）〕

コネクション切断

コネクション切断後の再確立〔HSC2手順（同期モード）〕

コネクション切断後の再確立〔HSC2手順（非同期モード）〕

コネクション定義の開始〔HSC1手順〕

コネクション定義の開始〔HSC2手順（同期モード）〕

コネクション定義の開始〔HSC2手順（非同期モード）〕

コネクション定義の終了〔HSC1手順〕

コネクション定義の終了〔HSC2手順（同期モード）〕

コネクション定義の終了〔HSC2手順（非同期モード）〕

コネクションと論理端末の関係〔HSC1手順〕

コネクションと論理端末の関係〔HSC2手順〕

コネクションの解放

コネクションの解放〔HSC2手順（同期モード）〕

コネクションの解放〔HSC2手順（非同期モード）〕

コネクションの確立

コネクションの確立〔HSC2手順（同期モード）〕

コネクションの確立〔HSC2手順（非同期モード）〕

コネクションの自動回復の抑止〔HSC1手順〕

コネクションの状態表示

コンテンション〔HSC1手順〕

コンテンション〔HSC2手順（同期モード）〕

コンテンション〔HSC2手順（非同期モード）〕

コンテンション制御〔HSC1手順〕

コンテンション制御〔HSC2手順〕

(サ行)

(し)

自システムからの切断

システム構成例（HSC1手順）

システム構成例（HSC２手順（同期モード））

システム構成例（HSC２手順（非同期モード））

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

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

システムサービス情報定義ファイルの作成

システム定義

自動解除〔HSC1手順〕

自動解除〔HSC2手順〕

自動解放〔HSC2手順（同期モード）〕

自動解放〔HSC2手順（非同期モード）〕

自動確立〔HSC2手順（同期モード）〕

自動確立〔HSC2手順（非同期モード）〕

自動閉塞（暗黙閉塞）〔HSC1手順〕

自動閉塞（暗黙閉塞）〔HSC2手順〕

受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害〔HSC1手順〕

受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害〔HSC2手順（同期モード）〕

受信スケジュール関係（入力キュー，入力メッセージ編集UOC）の障害〔HSC2手順（非同期モード）〕

受信するテキスト形態の数値表現と内容（HSC1手順）

受信するテキスト形態の数値表現と内容（HSC2手順）

受信モード

出力キュー

出力キュー障害〔HSC1手順〕

出力キュー障害〔HSC2手順（非同期モード）〕

出力キュー読み込み障害

出力ファイル定義

出力ファイル定義の終了

出力メッセージの編集

出力メッセージの編集UOC

出力メッセージの割り当て先〔HSC1手順〕

出力メッセージの割り当て先〔HSC2手順（同期モード）〕

出力メッセージの割り当て先〔HSC2手順（非同期モード）〕

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

手動解除〔HSC1手順〕

手動解除〔HSC2手順〕

手動解放（強制解放）〔HSC2（非同期モード）〕

手動解放（正常解放）〔HSC2（非同期モード）〕

手動解放〔HSC2手順（同期モード）〕

手動確立〔HSC2手順（同期モード）〕

手動確立〔HSC2手順（非同期モード）〕

手動閉塞（明示閉塞）〔HSC1手順〕

手動閉塞（明示閉塞）〔HSC2手順〕

障害対策〔HSC1手順〕

障害対策〔HSC2手順（同期モード）〕

障害対策〔HSC2手順（非同期モード）〕

障害通知イベント

障害の種類と対応処理〔HSC1手順〕

障害の種類と対応処理〔HSC2手順（同期モード）〕

障害の種類と対応処理〔HSC2手順（非同期モード）〕

障害発生時の処理の流れ

障害閉塞（暗黙閉塞）〔HSC1手順〕

障害閉塞（暗黙閉塞）〔HSC2手順〕

状態通知イベント

処理層とデータの関係（HSC1手順）

処理層とデータの関係（HSC2手順）

(せ)

制御付き会話〔HSC1手順〕

制御付き会話〔HSC2手順〕

接続情報通知テキスト

(そ)

送受信反転制御

送信完了通知イベント

送信障害通知イベント

送信スケジュール可能〔HSC1手順〕

送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害〔HSC1手順〕

送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害〔HSC2手順（同期モード）〕

送信スケジュール関係（出力キュー，出力メッセージ編集UOC）の障害〔HSC2手順（非同期モード）〕

送信スケジュール抑止〔HSC1手順〕

送信するテキスト形態の数値表現と内容（HSC1手順）

送信するテキスト形態の数値表現と内容（HSC2手順）

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

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

送信モード

ソケット用ファイル記述子の最大数

ソフトウェアの構成

(タ行)

(た)

タイマ起動メッセージ廃棄通知イベント

端末タイプ〔HSC1手順〕

端末タイプ〔HSC2手順（同期モード）〕

端末タイプ〔HSC2手順（非同期モード）〕

(ち)

着信の場合の回線の接続〔HSC2手順（同期モード）〕

着信の場合の回線の接続〔HSC2手順（非同期モード）〕

着信の場合の通信形態の組み合わせ

着信用相手ターミナルIDリスト定義

着信用相手ターミナルIDリストファイル

(つ)

通常テキスト〔HSC1手順〕

通常テキスト〔HSC2手順〕

通信管理との定義の関係（HSC1手順）

通信管理との定義の関係（HSC2手順（同期モード））

通信管理との定義の関係（HSC2手順（非同期モード））

通信管理プログラムと関連づける内容

通信形態の組み合わせ

通信形態の種類

通信障害〔HSC2手順（同期モード）〕

通信障害〔HSC2手順（非同期モード）〕

(て)

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

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

定義の指定順序〔HSC1手順〕

定義の指定順序〔HSC2手順（同期モード）〕

定義の指定順序〔HSC2手順（非同期モード）〕

定義例〔HSC1手順〕

定義例〔HSC2手順（同期モード）〕

定義例〔HSC2手順（非同期モード）〕

ディスク出力メッセージ最大格納数〔HSC1手順〕

ディスク出力メッセージ最大格納数〔HSC2手順（非同期モード）〕

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

テキスト形態とUAPでのデータの扱い〔HSC1手順〕

テキスト形態とUAPでのデータの扱い〔HSC2手順〕

テキスト形態の種別（HSC1手順）

テキスト形態の種別（HSC2手順）

適用範囲

(と)

透過モードテキスト〔HSC1手順〕

透過モードテキスト〔HSC2手順〕

同期型のメッセージの受信（COBOL言語）

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

同期型のメッセージの送信（COBOL言語）

同期型のメッセージの送信（C言語）

同期受信形態〔HSC2手順（同期モード〕

同期送信形態〔HSC2手順（同期モード）〕

同期モードのEOT交換

同期モードのメッセージの受信

同期モードのメッセージの送信

(ナ行)

(に)

入力キュー

入力キュー障害〔HSC1手順〕

入力キュー障害〔HSC2手順（非同期モード）〕

入力メッセージの編集

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

入力メッセージ編集UOC

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

入力メッセージ編集UOC障害〔HSC1手順〕

入力メッセージ編集UOC障害〔HSC2手順（同期モード）〕

入力メッセージ編集UOC障害〔HSC2手順（非同期モード）〕

(ハ行)

(は)

発信の場合の回線の接続〔HSC2手順（同期モード）〕

発信の場合の回線の接続〔HSC2手順（非同期モード）〕

発信の場合の通信形態の組み合わせ

発信用相手ターミナルIDリスト定義

発信用相手ターミナルIDリストファイル

(ひ)

非同期送信スケジュール可能

非同期送信スケジュール抑止

非同期モードのEOT交換

非同期モードのメッセージの受信

非同期モードのメッセージの送信

(ふ)

不正アプリケーション名検出通知イベント

ブロック転送〔HSC1手順〕

ブロック転送〔HSC2手順〕

分岐送信形態〔HSC1手順〕

分岐送信形態〔HSC2手順（同期モード〕

分岐送信形態のAP間通信の例（HSC1手順の場合）

(へ)

閉塞解除状態〔HSC1手順〕

閉塞解除状態〔HSC2手順〕

閉塞状態〔HSC1手順〕

閉塞状態〔HSC2手順〕

ヘッダ付きテキスト〔HSC1手順〕

ヘッダ付き透過モードテキスト〔HSC1手順〕

(マ行)

(み)

未処理送信メッセージ廃棄通知イベント

(め)

明示閉塞〔HSC1手順〕

明示閉塞〔HSC2手順〕

メッセージ受信時のコネクション障害〔HSC1手順〕

メッセージ受信時のコネクション障害〔HSC2手順（非同期モード）〕

メッセージ受信の処理の流れ（単一セグメントの場合）〔HSC1手順〕

メッセージ受信の処理の流れ（単一セグメントの場合）〔HSC2手順（同期モード）〕

メッセージ受信の処理の流れ（単一セグメントの場合）〔HSC2手順（非同期モード）〕

メッセージ受信の処理の流れ（複数セグメントの場合）〔HSC2手順（同期モード）〕

メッセージ受信の処理の流れ（複数セグメントの場合）〔HSC2手順（非同期モード）〕

メッセージ受信の処理の流れ（列信の場合）〔HSC1手順〕

メッセージ受信の処理の流れ（列信の場合）〔HSC2手順（同期モード）〕

メッセージ受信の処理の流れ（列信の場合）〔HSC2手順（非同期モード）〕

メッセージ受信用バッファグループ番号〔HSC1手順〕

メッセージ受信用バッファグループ番号〔HSC2手順（同期モード）〕

メッセージ受信用バッファグループ番号〔HSC2手順（非同期モード）〕

メッセージ制御機能

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

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

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

メッセージ送受信の通信文（COBOL言語）

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

メッセージ送受信のライブラリ関数（C言語）

メッセージ送信時のHSC手順エラー〔HSC2手順（同期モード）〕

メッセージ送信時のHSC手順エラー〔HSC2手順（非同期モード）〕

メッセージ送信時の回復不可能障害〔HSC2手順（同期モード）〕

メッセージ送信時の回復不可能障害〔HSC2手順（非同期モード）〕

メッセージ送信時のコネクション障害〔HSC1手順〕

メッセージ送信時のコネクション障害〔HSC2手順（非同期モード）〕

メッセージ送信時の障害〔HSC1手順〕

メッセージ送信時の切断

メッセージ送信の処理の流れ（単一セグメントで通常テキスト送信後，EOTを送信する場合）〔HSC2手順（同期モード）〕

メッセージ送信の処理の流れ（単一セグメントで通常テキスト送信する場合）〔HSC2手順（同期モード）〕

メッセージ送信の処理の流れ（単一セグメントの場合）〔HSC1手順〕

メッセージ送信の処理の流れ（単一セグメントの場合）〔HSC2手順（非同期モード）〕

メッセージ送信の処理の流れ（複数セグメントの場合）〔HSC2手順（同期モード）〕

メッセージ送信の処理の流れ（複数セグメントの場合）〔HSC2手順（非同期モード）〕

メッセージ送信の処理の流れ（列信の場合）〔HSC1手順〕

メッセージ送信の処理の流れ（列信の場合）〔HSC2手順（同期モード）〕

メッセージ送信の処理の流れ（列信の場合）〔HSC2手順（非同期モード）〕

メッセージ送信用バッファグループ番号〔HSC1手順〕

メッセージ送信用バッファグループ番号〔HSC2手順（同期モード）〕

メッセージ送信用バッファグループ番号〔HSC2手順（非同期モード）〕

メッセージの再送（COBOL言語）

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

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

メッセージの受信〔HSC1手順〕

メッセージの受信〔HSC2手順〕

メッセージの送受信〔HSC1手順〕

メッセージの送受信〔HSC2手順（同期モード）〕

メッセージの送受信〔HSC2手順（非同期モード）〕

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

メッセージの送信〔HSC1手順〕

メッセージの送信〔HSC2手順〕

メッセージの分割と組み立て〔HSC1手順〕

メッセージの分割と組み立て〔HSC2手順〕

メッセージ廃棄通知イベント

メッセージ編集用バッファグループ番号〔HSC1手順〕

メッセージ編集用バッファグループ番号〔HSC2手順（同期モード）〕

メッセージ編集用バッファグループ番号〔HSC2手順（非同期モード）〕

メッセージ編集用バッファ数〔HSC1手順〕

メッセージ編集用バッファ数〔HSC2手順（同期モード）〕

メッセージ編集用バッファ数〔HSC2手順（非同期モード）〕

メッセージまたは接続情報通知の受信（C言語）

メモリ出力メッセージ最大格納数〔HSC1手順〕

メモリ出力メッセージ最大格納数〔HSC2手順（同期モード）〕

メモリ出力メッセージ最大格納数〔HSC2手順（非同期モード）〕

(ヤ行)

(ゆ)

ユーザアプリケーションプログラム異常終了〔HSC1手順〕

ユーザアプリケーションプログラム異常終了〔HSC2手順（同期モード）〕

ユーザアプリケーションプログラム異常終了〔HSC2手順（非同期モード）〕

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

ユーザアプリケーションプログラム閉塞〔HSC1手順〕

ユーザアプリケーションプログラム閉塞〔HSC2手順（同期モード）〕

ユーザアプリケーションプログラム閉塞〔HSC2手順（非同期モード）〕

ユーザオウンコーディング

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

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

(よ)

用語解説

(ラ行)

(り)

理由コード一覧

(れ)

列信〔HSC1手順〕

列信〔HSC2手順〕

(ろ)

論理端末

論理端末定義〔HSC1手順〕

論理端末定義〔HSC2手順（同期モード）〕

論理端末定義〔HSC2手順（非同期モード）〕

論理端末とアプリケーションの型の関係〔HSC1手順〕

論理端末とアプリケーションの型の関係〔HSC2手順〕

論理端末の状態表示

論理端末の属性

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

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

論理端末の端末タイプ〔HSC1手順〕

論理端末の端末タイプ〔HSC2手順〕

論理端末の閉塞

論理端末の閉塞〔HSC1手順〕

論理端末の閉塞〔HSC2手順〕

論理端末の閉塞解除

論理端末の閉塞解除〔HSC1手順〕

論理端末の閉塞解除〔HSC2手順〕

論理端末の閉塞と閉塞解除〔HSC1手順〕

論理端末の閉塞と閉塞解除〔HSC2手順〕

論理端末名称〔HSC1手順〕

論理端末名称〔HSC2手順（同期モード）〕

論理端末名称〔HSC2手順（非同期モード）〕

論理端末名称決定UOCインタフェース

論理端末名称決定UOCのコーディング例

論理端末名称の形式

論理端末名称の決定

論理メッセージの扱い〔HSC1手順〕

論理メッセージの扱い〔HSC2手順〕

■ 商標類

AIXは，米国における米国International Business Machines Corp.の登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。