OpenTP1 Version 7　分散トランザクション処理機能　OpenTP1 テスタ・UAPトレース使用の手引

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

3000-3-D57-31

前書き

対象製品

マニュアル「OpenTP1 解説」を参照してください。

輸出時の注意

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

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

商標類

HITACHI，AOMPLUS，BladeSymphony，CommuniNet，HAモニタ，JP1，OpenTP1，OSAS，ServerConductor，SEWB，uCosminexus，XDM，XMAPは，株式会社 日立製作所の商標または登録商標です。

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

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

AMDは，Advanced Micro Devices, Inc.の商標です。

HP-UXは，米国Hewlett-Packard Companyのオペレーティングシステムの名称です。

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

Itaniumは，アメリカ合衆国および / またはその他の国におけるIntel Corporationまたはその子会社の商標です。

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

Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

MS-DOSは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。文中の社名，商品名等は各社の商標または登録商標である場合があります。

PA-RISCは，米国Hewlett-Packard Companyの商標です。

Red Hat is a registered trademark of Red Hat, Inc. in the United States and other countries.

Red Hatは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

Red Hat Enterprise Linux is a registered trademark of Red Hat, Inc. in the United States and other countries.

Red Hat Enterprise Linuxは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

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

Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

X/Openは，X/Open Company Limitedの英国ならびに他の国における登録商標です。

XATMIは，X/Open Company Limitedが開発したアプリケーションインタフェースの名称です。

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

本書には，X/Openの許諾に基づきX/Open CAE Specification System Interfaces and Headers，Issue4，（C202 ISBN 1-872630-47-2）Copyright (C) July 1992，X/Open Company Limited の内容が含まれています；

なお，その一部は IEEE Std 1003．1-1990，(C) 1990 Institute of Electrical and Electronics Engineers，Inc.及びIEEE std 1003.2/D12，(C) 1992 Institute of Electrical and Electronics Engineers，Inc.を基にしています。

事前に著作権所有者の許諾を得ずに，本書の該当部分を複製，複写及び転記することは禁じられています。

発行

2020年4月　3000-3-D57-31

著作権

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

変更内容

変更内容（3000-3-D57-31） uCosminexus TP1/Server Base 07-53，uCosminexus TP1/Server Base(64) 07-53

追加・変更内容

変更個所

ユーザサービス定義の，子プロセスを生成する関数についての注意事項を変更した。

3.1.4(4)

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

変更内容（3000-3-D57-30）uCosminexus TP1/Server Base 07-50，uCosminexus TP1/Online Tester 07-50

追加・変更内容

DML形式のCOMMIT文を発行する場合，コミット要求でエラーが発生しても，UAPでエラーを検出できない説明を追加した。

使用できるデバッガの種別をCOBOL2002に修正した。

次のオペランドの説明を追加・変更した。

テスタサービス定義

・uto_server_countの指定可能範囲値。

・rpc_trace，rpc_trace_name，rpc_trace_sizeの説明。

ユーザサービス定義

・putenv/dcputenv形式のDCUTOTRCACCLを追加。

全入出力データトレースの取得時間を短縮できるようにした。これに伴い，ユーザサービス定義に次のputenv/dcputenv形式の追加および説明を追加した。

DCUTOTRCACCL

運用コマンド結果データファイルの注意事項について，DMLのSEND文で運用コマンドを発行する場合のデータ部の指定方法を，テスタファイル作成機能の使用有無別に記載するように変更した。

UAPの作成について，次の注意事項の説明を追加した。

アーカイブライブラリまたは共用ライブラリを使用する場合のリンケージ方法。

オンラインテスタが提供するシミュレート機能で未サポートのMCF関数を使用する場合のリンケージ方法。

UAPトレース情報の取得で，同一テストユーザIDでトレース情報を出力するUAPを並行して実行した場合の説明について内容を変更した。

utotrcoutコマンドの-nオプションの説明を変更した。

退避コアファイルのディレクトリとファイル名およびUAPトレース編集出力ファイルのファイル名の注意書きを変更した。

uatdumpコマンドについて次を変更した。

オプション

出力メッセージ

注意事項

変更内容（3000-3-D57-20） uCosminexus TP1/Server Base 07-03，uCosminexus TP1/Server Base(64) 07-03，uCosminexus TP1/Message Control 07-03，uCosminexus TP1/Message Control(64) 07-03，uCosminexus TP1/NET/Library 07-04，uCosminexus TP1/NET/Library(64) 07-04

追加・変更内容

プロセスをアボートしなくてもUAPトレース（UAPトレースデータファイル）を取得できるようにした。

これに伴い，uatdumpコマンドに-fオプションを追加した。

変更内容（3000-3-D57-10） uCosminexus TP1/Server Base 07-02

追加・変更内容

rpc_trace_name定義オペランドのパス名の環境変数指定について，説明を追加した。

はじめに

このマニュアルは，分散トランザクション処理機能 OpenTP1のテスタおよびUAPトレースの機能と使い方について説明したものです。

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

対象読者

システム管理者，システム設計者，プログラマ，およびオペレータの方を対象としています。

なお，このマニュアルは，マニュアル「OpenTP1 解説」を前提としていますので，あらかじめお読みいただくことをお勧めします。

マニュアルの構成

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

第1編　テスタ・UAPトレースの概要

第1章　概要

テスタの種類と概要，およびUAPトレースの概要について説明しています。

第2編　オンラインテスタ（TP1/Online Tester）

第2章　機能

TP1/Server Baseのオンラインテスタ（TP1/Online Tester）の機能について説明しています。

第3章　テスト環境の設定

TP1/Online Testerで実行するテスト環境を設定するための定義情報について説明しています。

第4章　テストの実行

テストで使用するUAPの作成方法，サービスの要求方法，およびテスト情報の編集方法について説明しています。

第5章　運用コマンド

テストで使用する運用コマンドについて説明しています。

第6章　障害対策

TP1/Online Testerに関連して発生する障害とその対策について説明しています。

第3編　オンラインテスタ（TP1/Message Control/Tester）

第7章　機能

TP1/Message Controlのオンラインテスタ（TP1/Message Control/Tester）の機能について説明しています。

第8章　テストの実行

テストの開始と終了方法，テストモード情報が重複したときの扱い，テストモード情報の引き継ぎ，およびテスト情報の編集方法について説明しています。

第9章　運用コマンド

テストで使用する運用コマンドについて説明しています。

第4編　オフラインテスタ

第10章　機能

オフラインテスタ（TP1/Offline Tester）の機能について説明しています。

第11章　テスト環境の設定

TP1/Offline Testerで実行するテスト環境を設定するための定義情報，ユーザが作成しなければならないファイルとTP1/Offline Testerが作成するファイルについて説明しています。

第12章　テストの実行

テストで使用するUAPの作成方法，テストの開始と終了方法，UAPの起動と停止方法，サービスの要求方法，およびオフラインテスタトレース情報の編集方法について説明しています。

第13章　運用コマンド

テストで使用する運用コマンドとサブコマンドについて説明しています。

第14章　関数のシミュレーション内容

関数のシミュレーション内容とシミュレート関数リターン値について説明しています。

第5編　UAPトレース

第15章　UAPトレースの使用方法

UAPトレースの使用方法について説明しています。

関連マニュアル

マニュアル「OpenTP1 プロトコル」の各プロトコル編については，ご使用の製品のバージョンに対応するマニュアルの発行時期をご確認ください。

読書手順

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

図中で使用する記号

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

文法の記号

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

(1)文法記述記号

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

文法記述記号

意味

{　　}

波括弧

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

（例）start {SPP|MHP}

SPP，MHPの二つのうちから，どちらか一つを指定します。

また，次の場合は，短縮して指定する場合の指定値であることを示します。

（例）mcftules -e {backout|ba}

-eオプションのフラグ引数をbackoutと指定するか，または短縮してbaと指定します。

〔　　〕

きっ甲

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

（例）utfstart 〔-s〕

-sは省略できることを示します。

|

ストローク

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

（例）stop {SPP|MHP}

SPPかMHPを指定できることを示します。

＿

下線

きっ甲〔 〕で囲まれた複数項目のうちで，きっ甲内のすべてを省略したときに，OpenTP1で仮定する標準値を示します。

（例）〔uoc_conf=Y|N〕

uoc_confオペランドを省略した場合，Nが仮定されます。

…

点線

記述が省略されていることを示します。この記号の直前に示された項目を繰り返し複数個指定できます。

（例）utols サーバ名　〔サーバ名〕…

サーバ名を続けて指定できることを示します。

(2)属性表示記号

ユーザ指定値の範囲などを説明する記号の一覧を示します。

属性表示記号

意味

〜

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

《　　》

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

〈　　〉

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

((　　))

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

(3)構文要素

説明で使用する構文要素の一覧を示します。すべて半角文字で指定します。

構文要素

意味

英字

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

英数字

英字と数字（0〜9）

英字記号

アルファベット（A〜Z，a〜z），＃，＠，¥

英数字記号

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

符号なし整数

数字（0〜9）

16進数

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

識別子

先頭がアルファベット（A〜Z，a〜z）で始まる英数字列

記号名称

先頭が英字記号で始まる英数字記号列

パス名

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

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

このマニュアルでの表記

(1)適用OSによる違いについて

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

項目

マニュアルの表記

読み替え

環境変数の表記

$aaaaaa

例　$DCDIR

%aaaaaa%

例　%DCDIR%

パス名の区切り文字

:

;

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

/

¥

完全パス名

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

例　/tmp

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

例　C:¥tmp

実行形式ファイル名

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

例　mcfmngrd

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

例　mcfmngrd.exe

makeコマンド

make

nmake

(2)インストールディレクトリのパスの違いについて

このマニュアルでは，OpenTP1のインストールディレクトリを「/BeTRAN」と表記しています。インストールディレクトリはOSによって異なります。ご利用のOSに応じて，次の表のとおりに読み替えてください。

このマニュアルでの表記

適用OSごとの読み替え

AIX，HP-UXまたはSolaris

Linux

Windows

/BeTRAN

/BeTRAN

/opt/OpenTP1

OpenTP1をインストールしたディレクトリ

略語一覧

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

英略語

英字での表記

ACL

Access Control List

ANSI

American National Standards Institute

AP

Application Program

API

Application Programming Interface

C/S

Client/Server

CRM

Communication Resource Manager

CUP

Client User Program

DAM

Direct Access Method

DBMS

Database Management System

DML

Data Manipulation Language

DNS

Domain Name System

FEP

Front End Processor

GUI

Graphical User Interface

HA

High Availability

HI-ODTP

Hitachi - Open Distributed Transaction Processing Adapter

ISAM

Indexed Sequential Access Method

IST

Internode Shared Table

LAN

Local Area Network

MCF

Message Control Facility

MHP

Message Handling Program

MQA

Message Queue Access

MQI

Message Queue Interface

NIF/HNA

Network Interface Feature/Hitachi Network Architecture

NIF/OSI

Network Interface Feature/OSI

OS

Operating System

OSI

Open Systems Interconnection

OSI TP

Open Systems Interconnection Transaction Processing

PC

Personal Computer

PRF

Performance

RM

Resource Manager

RPC

Remote Procedure Call

SPP

Service Providing Program

STDL

Structured Transaction Definition Language

SUP

Service Using Program

TAM

Table Access Method

TCP/IP

Transmission Control Protocol/Internet Protocol

TM

Transaction Manager

UAP

User Application Program

UOC

User Own Coding

WAN

Wide Area Network

WS

Workstation

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

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

その他の前提条件

このマニュアルをお読みになる際のその他の前提情報については，マニュアル「OpenTP1 解説」を参照してください。

第1編　テスタ・UAPトレースの概要

1　概要

OpenTP1が提供する各種テスタと，UAPトレースの概要について説明します。

1.1　テスタとUAPトレース

OpenTP1には，UAPの動作を確認するためのテスト用のプログラムとして，テスト支援プログラム（テスタ）があります。また，UAPの動作を調べるためのトラブルシュート用の機能として，UAPトレース機能があります。

なお，テスタには，オンライン環境下で使用するオンラインテスタと，オフライン環境下で使用するオフラインテスタがあります。さらに，オンラインテスタには，TP1/Server BaseのオンラインテスタとTP1/Message Controlのオンラインテスタの二つがあります。

UAPトレース機能はTP1/Server Baseで使用できます。

使用するテスタによって，次に示すプログラムプロダクトが必要です。

TP1/Server Baseのオンラインテスタを使用する場合

TP1/Online Tester

TP1/Message Controlのオンラインテスタを使用する場合

TP1/Message Control/Tester

オフラインテスタを使用する場合

TP1/Offline Tester

1.2　テスタの種類と概要

OpenTP1のテスタを次の図に示します。

図1‒1　OpenTP1のテスタ

1.2.1　オンラインテスタ

(1)　オンラインテスタ（TP1/Online Tester）

TP1/Server Baseのオンラインテスタ（以降，オンラインテスタと呼びます）で使用できる機能を次に示します。各機能の説明や使用方法については，「第2編　オンラインテスタ（TP1/Online Tester）」を参照してください。

クライアントUAP，サーバUAPのシミュレート

TP1/Message Controlのシミュレート

資源更新処理の無効化

UAPから発行する運用コマンドのシミュレート

テスタファイル（テスト用データファイル）の作成・編集出力

UAPトレース情報の取得・編集出力

UAP送信メッセージの取得・編集

デバッガの連動

オンラインテスタを使用すると，オンライン環境下でSUP，SPP，およびMHPをテストし，動作を確認できます。

なお，オンラインテスタでは，TP1/Server Baseを前提としています。

オンラインテスタの概要を次の図に示します。

図1‒2　オンラインテスタの概要

(2)　オンラインテスタ（TP1/Message Control/Tester）

TP1/Message Controlのオンラインテスタ（以降，MCFオンラインテスタと呼びます）で使用できる機能を次に示します。各機能の説明や使用方法については，「第3編　オンラインテスタ（TP1/Message Control/Tester）」を参照してください。

TP1/Message Control以外の資源更新処理の無効化

送信メッセージの無効化

アプリケーション起動メッセージの無効化

エラーイベントの抑止

MHPの自動閉塞機能の抑止

UAPトレース情報の取得

MCFオンラインテスタでは，UAPトレース情報を取得する場合を除いて，オンラインテスタ（TP1/Online Tester）は不要です。

同じMHPが同時に，MCFオンラインテスタとオンラインテスタのテスト対象となった場合は，MCFオンラインテスタの指定が優先されます。

MCFオンラインテスタの概要を次の図に示します。

図1‒3　MCFオンラインテスタの概要

1.2.2　オフラインテスタ（TP1/Offline Tester）

オフラインテスタで使用できる機能を次に示します。各機能の説明や使用方法については，「第4編　オフラインテスタ」を参照してください。

クライアントUAP，サーバUAPのシミュレート

TP1/Message Controlのシミュレート

ファイルサービスのシミュレート

UAPから発行する運用コマンドのシミュレート

テスタファイル（テスト用データファイル）の作成

コマンドの連続実行

デバッガの連動

オフラインテスタトレース情報の取得

オフラインテスタを使用すると，オフライン環境下でSPP，およびMHPをテストし，動作を確認できます。

テスト中に使用する関数によって，次のプログラムの提供するヘッダファイルを使用してUAPをコンパイルします。

TP1/Server Base

TP1/Server Baseの提供する関数を使用する場合

TP1/Message Control

メッセージ送受信関数を使用する場合

TP1/FS/Direct Access

DAMサービス関数を使用する場合

TP1/FS/Table Access

TAMサービス関数を使用する場合

TPI/Shared Table Access

ISTサービス関数を使用する場合

また，オフラインテスタで使用するUAPを作成するために，TP1/Server Baseのstbmakeコマンドが必要です。UAP作成時には，TP1/Server Baseのstbmakeコマンドのファイルをコピーして使用してください。

オフラインテスタの概要を次の図に示します。

図1‒4　オフラインテスタの概要

1.3　UAPトレースの概要

OpenTP1ではUAPの障害に備えて，UAPで使用したライブラリ関数の発行履歴を取得しています。この取得した情報から，エラーリターンした関数や，UAPがアクセスしようとした資源がわかります。この情報を編集出力することによって，ユーザはUAPに障害が起こった原因を解析でき，UAPを修正したり，システムを再構築したりする目安にできます。この機能をUAPトレースといいます。

UAPトレースでは，情報をSUP，SPP，およびMHPが稼働していたプロセス単位で取得します。

UAPトレースは，UAPが異常終了した際に次のファイルがあれば，自動でファイルに編集出力されます。

UAPトレースデータファイル

退避コアファイル

また，TP1/Server Baseのuatdumpコマンドで，ユーザが標準出力に編集出力させることもできます。uatdumpコマンドについては，「15.2.2　UAPトレースを編集出力する方法」を参照してください。

UAPトレースは，オンラインテスタやオフラインテスタを使った，UAPのテストにも使用できます。UAPのテストでは，UAPトレースでテスト処理の流れを解析できます。

オンラインテスタでは，TP1/Server BaseのUAPトレースでトレース情報を取得します。オフラインテスタでは，専用のトレース情報を取得します。

第2編　オンラインテスタ（TP1/Online Tester）

2　機能

オンラインテスタで実行するテストのための，各種機能について説明します。

2.1　オンラインテスタの機能

オンラインテスタには，UAPをテストするための次のような機能があります。

クライアントUAPシミュレート機能

クライアントUAPがなくてもサーバUAPがテストできるよう，クライアントUAPの処理をシミュレートする機能です。

サーバUAPシミュレート機能

サーバUAPがなくてもクライアントUAPがテストできるよう，サーバUAPの処理をシミュレートする機能です。

MCFシミュレート機能

MCF（TP1/Message Control）がなくても，MHPおよびMHPからサービス要求されるSPPがテストできるよう，MCFが制御するメッセージ送受信処理をシミュレートする機能です。

資源更新処理無効化機能

テストするUAPが実業務用の資源を更新しないよう，資源の更新処理を無効化する機能です。

運用コマンドシミュレート機能

テストするUAPが運用コマンドを発行する場合に，コマンドの処理をシミュレートする機能です。

テスタファイル作成・編集機能

各シミュレート機能使用時に必要となるテスタファイルを作成し，編集出力する機能です。

UAPトレース情報取得機能

テストするUAPのUAPトレース情報を取得する機能です。

UAPトレース情報マージ・編集機能

複数ファイルに取得したUAPトレース情報をマージし，編集出力する機能です。

送信メッセージ編集機能

テストするUAPの送信メッセージを取得し，編集出力する機能です。

デバッガ連動機能

テストするUAPをデバッガの制御下で動作させる機能です。

2.2　クライアントUAPのシミュレート

オンラインテスタでは，クライアントUAPの代わりとなってサーバUAPにサービスを要求できます。そのため，ユーザはクライアントUAPがなくてもサーバUAPをテストできます。これを，クライアントUAPシミュレート機能といいます。

クライアントUAPのシミュレートは，オンラインテスタのコマンドで実行します。ユーザは，サーバUAPに渡す処理データを，あらかじめサービス要求データファイルに作成しておきます。サーバUAPからの応答データは，コマンドで指定したファイル（サービス応答データファイル）に取得されます。

サービス要求データファイルには，シミュレートするUAPのインタフェース別に，次の2種類があります。

RPC要求データファイル（RPCインタフェースのUAPシミュレート時）

XATMI要求データファイル（XATMIインタフェースのUAPシミュレート時）

また，サービス応答データファイルにも，シミュレートするUAPのインタフェース別に，次の2種類があります。

RPC応答データファイル（RPCインタフェースのUAPシミュレート時）

XATMI応答データファイル（XATMIインタフェースのUAPシミュレート時）

クライアントUAPシミュレート機能を使用してサーバUAPをテストする場合，テストするサーバUAPがテスト専用UAPであることを，ユーザサービス定義で定義しておきます。テスト専用UAPとは，テストの対象となるUAPとして，オンラインテスタのすべての機能を使用できる（テストモードで動作する）UAPのことです。

また，ユーザサービス定義では，テスト専用UAPの代わりに使用可能UAPとして定義してもかまいません。使用可能UAPとは，テスト対象UAPからサービス要求される場合にだけテストモードで動作するSPPのことです。

2.2.1　RPCインタフェースのクライアントUAPのシミュレート

RPCインタフェースに従ってサービス要求するクライアントUAPをシミュレートする場合，ユーザは，サーバUAPに渡す処理データを，あらかじめRPC要求データファイルに作成しておきます。サーバUAPからの応答データは，コマンドで指定したファイル（RPC応答データファイル）に取得します。

RPCインタフェースのクライアントUAPシミュレート機能の概要を，次の図に示します。

図2‒1　RPCインタフェースのクライアントUAPのシミュレート

2.2.2　XATMIインタフェースのクライアントUAPのシミュレート

オンラインテスタでは，XATMIインタフェースに従ったサービス要求（リクエスト/レスポンス型，会話型）の際にも，クライアントUAPシミュレート機能を使用できます。

(1)　リクエスト/レスポンス型のサービス要求

リクエスト/レスポンス型のサービス要求でクライアントUAPをシミュレートする場合，ユーザは，サーバUAPに渡す処理データを，あらかじめXATMI要求データファイルに作成しておきます。サーバUAPからの応答データは，コマンドで指定したファイル（XATMI応答データファイル）に取得します。

XATMIを使用する際に必要となるタイプトバッファの情報は，タイプトバッファ定義ファイルに設定しておきます。

なお，XATMI要求データファイルのヘッダ部分には，リクエスト/レスポンス型でサービス要求する関数の種別を，あらかじめ設定しておく必要があります。

リクエスト/レスポンス型のサービス要求でのクライアントUAPシミュレート機能の概要を，次の図に示します。

図2‒2　リクエスト/レスポンス型のサービス要求でのクライアントUAPのシミュレート

(2)　会話型のサービス要求

会話型のサービス要求でクライアントUAPをシミュレートする場合，ユーザは，サーバUAPに渡す処理データを，あらかじめXATMI要求データファイルに作成しておきます。XATMI要求データファイルのヘッダ部分には，会話型でサービス要求する関数の種別を，あらかじめ設定しておきます。サーバUAPからの応答データは，コマンドで指定したファイル（XATMI応答データファイル）に取得します。

XATMIを使用する際に必要となるタイプトバッファの情報は，タイプトバッファ定義ファイルに設定しておきます。

また，ユーザは，サービス中の送受信手順を，送受信制御ファイルに設定しておきます。テストするサーバUAPがサービス中に受信するデータは，あらかじめXATMI受信データファイルに作成し，送受信制御ファイルでファイル名を指定しておきます。サーバUAPが送信したデータは，応答データと同様にXATMI応答データファイルに取得します。

なお，クライアントUAPシミュレート機能でファイルに取得したサーバUAPからの応答データや送信データは，サーバUAPシミュレート機能でクライアントUAPへの要求データや受信データとして使用できます。その際には，応答データや送信データを取得したXATMI応答データファイルの構造を，XATMI要求データファイルやXATMI受信データファイルの構造にバイナリエディタで修正してから使用してください。

会話型のサービス要求でのクライアントUAPシミュレート機能の概要を，次の図に示します。

図2‒3　会話型のサービス要求でのクライアントUAPのシミュレート

2.3　サーバUAPのシミュレート

オンラインテスタでは，サーバUAPの代わりとなってクライアントUAPが要求するサービスを実行できます。そのため，ユーザはサーバUAPがなくてもクライアントUAPをテストできます。これを，サーバUAPシミュレート機能といいます。

サーバUAPのシミュレートは，OpenTP1のコマンドで，シミュレートするサーバUAPを起動して実行します。ユーザは，あらかじめクライアントUAPに渡す応答データを，サービス応答データファイルに作成しておきます。クライアントUAPからサービス要求があると，オンラインテスタは応答データをファイルから読み込み，クライアントUAPに返します。

サービス応答データファイルには，シミュレートするUAPのインタフェース別に，次の2種類があります。

RPC応答データファイル（RPCインタフェースのUAPシミュレート時）

XATMI応答データファイル（XATMIインタフェースのUAPシミュレート時）

サーバUAPシミュレート機能を使用してクライアントUAPをテストする場合，シミュレートするサーバUAPがダミーSPPであることを，ユーザサービス定義で定義し，あらかじめ起動しておきます。ダミーSPPとは，サーバUAPシミュレート機能使用時に起動しても，実際にはプロセスが生成されないSPPのことです。

2.3.1　RPCインタフェースのサーバUAPのシミュレート

RPCインタフェースに従ってサービス要求されるサーバUAPをシミュレートする場合，ユーザは，あらかじめクライアントUAPへ返す応答データを，RPC応答データファイルに作成しておきます。クライアントUAPからサービス要求があると，オンラインテスタは応答データをファイルから読み込み，クライアントUAPに返します。

RPCインタフェースのサーバUAPシミュレート機能の概要を，次の図に示します。

図2‒4　RPCインタフェースのサーバUAPのシミュレート

2.3.2　XATMIインタフェースのサーバUAPのシミュレート

オンラインテスタでは，XATMIインタフェースに従ったサービス要求（リクエスト/レスポンス型，会話型）の際にも，サーバUAPシミュレート機能を使用できます。

(1)　リクエスト/レスポンス型のサービス要求

リクエスト/レスポンス型のサービス要求でサーバUAPをシミュレートする場合，ユーザは，クライアントUAPへ返す応答データを，あらかじめXATMI応答データファイルに作成しておきます。クライアントUAPからサービス要求があると，オンラインテスタは応答データをファイルから読み込み，クライアントUAPに返します。

リクエスト/レスポンス型のサービス要求でのサーバUAPシミュレート機能の概要を，次の図に示します。

図2‒5　リクエスト/レスポンス型のサービス要求でのサーバUAPのシミュレート

(2)　会話型のサービス要求

会話型のサービス要求でサーバUAPをシミュレートする場合，ユーザは，クライアントUAPが受け取るデータを，あらかじめXATMI受信データファイルやXATMI応答データファイルに作成しておきます。クライアントUAPから受信要求があると，オンラインテスタはまず，XATMI受信データファイルから受信データを1データずつ読み込み，クライアントUAPに返します。XATMI受信データファイル内のすべてのデータを返したあと，さらに受信要求があると，応答データをXATMI応答データファイルから読み込み，クライアントUAPに返します。

クライアントUAPが送信したデータは，ユーザサービス定義の指定によって，オンラインテスタが作成するXATMI送信データファイルに取得します。

会話型のサービス要求でのサーバUAPシミュレート機能の概要を，次の図に示します。

図2‒6　会話型のサービス要求でのサーバUAPのシミュレート

2.4　MCFのシミュレート

オンラインテスタは，MCFの代わりとなってMHPとのメッセージ送受信を実行できます。そのため，ユーザはMCFがなくてもMHPや，MHPからサービス要求するSPPをテストできます。これを，MCFシミュレート機能といいます。

MHPのアプリケーション起動は，オンラインテスタのコマンドで実行します。ユーザは，MHPへ渡すメッセージを，あらかじめMCF受信メッセージファイルに作成しておきます。MHP，およびSPPが送信したメッセージは，オンラインテスタが作成するMCF送信メッセージファイルに取得します。

送信メッセージは，オンラインテスタのコマンドで編集したり，特定のメッセージをMCF受信メッセージファイルの形式にして再利用したりできます。

なお，MCFシミュレート機能を使用したMHPは，オンラインテスタが管理しています。MCFが起動されていても，MCFはこのMHPを管理しません。そのため，MCFが提供する運用コマンドは，このMHPに対しては使用できません。

2.4.1　MCFシミュレート関数

MCFシミュレート機能は，MHPをMCFが提供するライブラリではなく，オンラインテスタのライブラリとリンケージして実行します。オンラインテスタのライブラリとリンケージすると，MHPで使われている関数は，オンラインテスタ用の関数に置き換えられます。この関数をMCFシミュレート関数といいます。

MCFシミュレート機能を使用する場合は，関数をMCFシミュレート関数に置き換えられたMHPがシミュレートMHPであることを，ユーザサービス定義で定義しておきます。シミュレートMHPとは，MCFシミュレート関数を使用することで，オンラインテスタのすべての機能を使用できる（テストモードで動作する）MHPのことです。ただし，シミュレートMHPはオンラインテスタからSPPとして管理されます。

なお，通常のMHP（MCFが提供するライブラリとリンケージしたMHP）は，オンラインテスタではテストできません。

2.4.2　メッセージ送受信のシミュレート

メッセージ送受信のシミュレートは，MCFシミュレート関数で実行します。非同期型メッセージ送受信と同期型メッセージ送受信では，受信メッセージはそれぞれ別のMCF受信メッセージファイルに作成します。

非同期型メッセージ送受信をシミュレートするときは，非同期型受信メッセージファイルを使用します。非同期型受信メッセージファイルには，一つの論理メッセージだけを格納しておきます。

同期型メッセージ送受信をシミュレートするときは，同期型受信メッセージファイルを使用します。同期型受信メッセージファイルには，1回のサービス実行中に同期型で受信するすべての論理メッセージを格納しておきます。

メッセージ送受信のシミュレートの概要を，次の図に示します。

図2‒7　メッセージ送受信のシミュレート

2.4.3　継続問い合わせ応答のシミュレート

継続問い合わせ応答のシミュレートは，オンラインテスタのコマンドで実行します。一時記憶データは，オンラインテスタが作成する一時記憶データファイルに取得します。このファイルは，継続問い合わせ応答終了時に自動的に削除されます。

継続問い合わせ応答のシミュレートの概要を，次の図に示します。

図2‒8　継続問い合わせ応答のシミュレート

2.4.4　アプリケーションプログラム起動要求のシミュレート

アプリケーションプログラム起動要求のシミュレートは，オンラインテスタのコマンドで実行します。UAP内からアプリケーションプログラムの起動を要求しても，アプリケーションプログラムは起動しないで，引き渡すデータをオンラインテスタが作成するMCF送信メッセージファイルに取得します。このデータを渡してアプリケーションプログラムを起動する場合は，まず，オンラインテスタのコマンドで引き渡すデータを別ファイルに取り出します。このファイルをMCF受信メッセージファイルとして，ユーザがコマンドでアプリケーションプログラムを起動させると，実際には起動しなかったアプリケーションプログラムの起動要求をシミュレートできます。

アプリケーションプログラム起動要求のシミュレートの概要を，次の図に示します。

図2‒9　アプリケーションプログラム起動要求のシミュレート

2.4.5　同期点処理のシミュレート

テストするMHPからコミット要求またはロールバック要求の関数が発行された場合，オンラインテスタでは実際に関数を実行します。ただし，コミット要求に関しては，ユーザサービス定義の指定でコミットするかロールバックするかを決定します。

また，ロールバック要求中にプロセス終了や再スケジューリングの指示があっても，関数は必ずリターンされます。

オンラインテスタでは，プロセスの終了や再スケジューリングができません。該当する処理は，テストするMHP内に作り込んでください。

なお，DML形式のCOMMIT文を発行する場合，コミット要求でエラーが発生しても，UAPでエラーを検出できません。

2.5　資源更新処理の無効化

オンラインテスタでは，テストで更新した資源を回復できます。これを，資源更新処理無効化機能といいます。

更新した資源は，正常に終了したトランザクションをロールバックさせることで回復されます。正常に終了したトランザクションをコミットさせるかロールバックさせるかは，グローバルトランザクション単位に，ルートトランザクションブランチが発生したUAPのユーザサービス定義で指定します。複数のトランザクションブランチが発生する場合も，各UAPでの指定に関係なく，ルートトランザクションブランチが発生したUAPでの指定が有効になります。

また，テストするトランザクションで取得した，トランザクションに依存するジャーナルは，通常のジャーナルと同様に，TP1/Server Baseのjnleditコマンドで編集出力できます。

2.6　UAPから発行する運用コマンドのシミュレート

オンラインテスタは，UAPからdc_adm_call_command関数で運用コマンドの実行を要求した場合，コマンドの実行をシミュレートできます。これを，運用コマンドシミュレート機能といいます。

運用コマンドの実行をシミュレートするかどうかは，ユーザサービス定義でUAPごとに指定します。運用コマンドのシミュレートには次の2種類があり，ユーザが選択できます。

2.6.1　コマンドの実行をスキップする場合

運用コマンドを実行しないで，スキップします。

ユーザサービス定義で運用コマンド実行のスキップを指定すると，コマンドの実行結果（関数のリターン情報）には仮定値として次の情報が設定されます。

シェルの終了コード

0が設定されます。

標準出力，標準エラー出力の出力データ

ヌル文字が設定されます。

標準出力，標準エラー出力の出力データ長

0が設定されます。

2.6.2　コマンドの実行をファイルで代替する場合

運用コマンドを実行しないで，実行結果をファイルで代替します。

ユーザサービス定義で運用コマンド実行のファイル代替を指定すると，コマンドの実行結果を，運用コマンド結果データファイルの内容で代替します。

UAPでdc_adm_call_command関数が実行されると，オンラインテスタはコマンドの実行結果データをファイルから読み込み，UAPに返します。

運用コマンド結果データファイルはサービスごとに作成し，ユーザがあらかじめコマンドの実行結果データを設定しておきます。一つのサービスで複数回dc_adm_call_command関数を発行する場合は，発行する回数分のデータを作成します。SPPのメイン関数やSUPで発行する場合も同様です。

運用コマンドの実行結果をファイルで代替する場合の概要を，次の図に示します。

図2‒10　運用コマンド実行結果のファイル代替

2.7　テスタファイルの作成・編集出力

オンラインテスタで各種のシミュレート機能を使用するためには，機能ごとに専用のデータファイルを作成する必要があります。これをテスタファイルといいます。

ここでは，テスタファイルの作成，および編集出力について説明します。

2.7.1　テスタファイルの作成

テスタファイルはそれぞれ専用のデータ形式で記述されていますが，オンラインテスタでは，ユーザがコマンドで簡単にテスタファイルを作成できます。これを，テスタファイル作成機能といいます。

テスタファイル作成機能で作成できるテスタファイルの一覧を，次の表に示します。

表2‒1　テスタファイル作成機能で作成できるテスタファイルの一覧

テスタファイル名

作成者

テスタファイルを使用する機能

サービス要求データファイル

RPC要求データファイル

ユーザ

クライアントUAPシミュレート機能

XATMI要求データファイル

ユーザ

クライアントUAPシミュレート機能

サービス応答データファイル

RPC応答データファイル

ユーザ

サーバUAPシミュレート機能

オンラインテスタ

クライアントUAPシミュレート機能

XATMI応答データファイル

ユーザ

サーバUAPシミュレート機能

オンラインテスタ

クライアントUAPシミュレート機能

XATMI受信データファイル

ユーザ

クライアントUAPシミュレート機能

MCF受信メッセージファイル

非同期型受信メッセージファイル

ユーザ

MCFシミュレート機能

同期型受信メッセージファイル

ユーザ

MCFシミュレート機能

運用コマンド結果データファイル

ユーザ

運用コマンドシミュレート機能

テスタファイル作成機能では，次に示す二つの方式でテスタファイルを作成します。

テストデータ定義ファイル方式

ユーザがあらかじめ作成したテストデータ定義ファイルのデータを使用して，テスタファイルを作成します。テストデータ定義ファイルのデータは，テキストエディタで作成できます。また，テストデータ定義ファイルには，複数のテスタファイルのデータをまとめて設定できます。

ジャーナルデータ方式

アンロードジャーナルファイルのレコードデータや，RPCトレースファイルのトレースデータを使用して，テスタファイルを作成します。ジャーナルデータはあらかじめ運用コマンドでデータを取り出しておきます。

なお，作成するテスタファイル種別によって，データを取り出すコマンドやデータの種類が異なります。また，ジャーナルデータ方式では運用コマンド結果データファイルは作成できません。作成するテスタファイルの種別と対応するデータ取り出しコマンドおよび有効データ内容の一覧を，次の表に示します。

表2‒2　作成するテスタファイルの種別と対応するデータ取り出しコマンドおよび有効データ内容一覧

テスタファイル名

データ取り出しコマンド名

有効とするデータの内容

RPC要求データファイル

rpcdumpコマンド

rpcdumpコマンドで取り出したRPCトレースデータのRPC要求送信データのうち，最初に該当したデータ

XATMI要求データファイル

rpcdumpコマンド

rpcdumpコマンドで取り出したRPCトレースデータのXATMIリクエスト/レスポンス型要求送信データのうち，tpcall関数，tpacall関数のデータで最初に該当したデータ

rpcdumpコマンドで取り出したRPCトレースデータのXATMI会話型要求送信データのうち，tpconnect関数のデータで最初に該当したデータ

RPC応答データファイル

rpcdumpコマンド

rpcdumpコマンドで取り出したRPCトレースデータのRPC応答送信データのうち，最初に該当したデータ

XATMI応答データファイル

rpcdumpコマンド

rpcdumpコマンドで取り出したRPCトレースデータのXATMIリクエスト/レスポンス型および会話型応答送信データのうち，tpreturn関数のデータで最初に該当したデータ

XATMI受信データファイル

rpcdumpコマンド

rpcdumpコマンドで取り出したRPCトレースデータのXATMI会話型受信データのうち，tprecv関数のすべてのデータ

非同期型受信メッセージファイル

jnlrputコマンド

jnlrputコマンドで取り出したアンロードジャーナルファイルのijレコードのデータおよびmjレコードの入力メッセージデータ（複数のレコードデータがある場合は，データの順序識別子が最初に's'または'l'となったデータまでを有効とします）

同期型受信メッセージファイル

jnlrputコマンド

jnlrputコマンドで取り出したアンロードジャーナルファイルのmjレコードの入力メッセージデータ

運用コマンド結果データファイル

−

−

（凡例）

−：ジャーナルデータやトレースデータからは，ファイルを作成できません。

2.7.2　テスタファイルの編集出力

オンラインテスタでは，作成したテスタファイルの内容を編集して出力できます。これをテスタファイル編集出力機能といいます。

テスタファイル内容の編集出力は，オンラインテスタのコマンドで実行します。

コマンドを入力すると，指定したテスタファイル内のデータを指定したテスタファイル種別の形式に合わせて編集し，標準出力に出力します。

テスタファイル編集出力機能で編集出力できるテスタファイルの一覧を，次の表に示します。

表2‒3　テスタファイル編集出力機能で編集出力できるテスタファイルの一覧

テスタファイル名

作成者

テスタファイルを使用する機能

サービス要求データファイル

RPC要求データファイル

ユーザ

クライアントUAPシミュレート機能

XATMI要求データファイル

ユーザ

クライアントUAPシミュレート機能

サービス応答データファイル

RPC応答データファイル

ユーザ

サーバUAPシミュレート機能

オンラインテスタ

クライアントUAPシミュレート機能

XATMI応答データファイル

ユーザ

サーバUAPシミュレート機能

オンラインテスタ

クライアントUAPシミュレート機能

XATMI送受信データファイル

XATMI送信データファイル

オンラインテスタ

クライアントUAPシミュレート機能

サーバUAPシミュレート機能

XATMI受信データファイル

ユーザ

クライアントUAPシミュレート機能

MCF受信メッセージファイル

非同期型受信メッセージファイル

ユーザ

MCFシミュレート機能

同期型受信メッセージファイル

ユーザ

MCFシミュレート機能

運用コマンド結果データファイル

ユーザ

運用コマンドシミュレート機能

2.8　テスト情報の取得

2.8.1　UAPトレース情報の取得

オンラインテスタは，テストモードで動作しているUAPについて，各OpenTP1関数の入り口と出口とで，UAPトレース情報をファイルに取得します。これを，UAPトレース情報取得機能といいます。

OpenTP1が提供する関数のうち，ユーザサーバやRPCの関数，およびDAMやTAMなどのファイルにアクセスする関数では，関数に指定したすべての入出力データを，トレース情報として取得できます。これを全入出力データトレース取得機能といいます。全入出力データトレース取得機能を使用できる関数を，次の表に示します。

表2‒4　全入出力データ取得機能を使用できる関数の一覧

機能

関数名

C言語形式

COBOL言語形式

ユーザサーバ

サービス関数開始

サービスプログラム開始

サービス関数終了

サービスプログラム終了

サービス関数開始（リトライ時）

サービスプログラム開始（リトライ時）

サービス関数終了（リトライ時）

サービスプログラム終了（リトライ時）

リモートプロシジャコール

dc_rpc_call

CBLDCRPC('CALL ')

dc_rpc_cltsend

CBLDCRPC('CLTSEND ')

DAMファイルサービス

dc_dam_read

CBLDCDAM('DCDAMSVC','READ')

dc_dam_rewrite

CBLDCDAM('DCDAMSVC','REWT')

dc_dam_write

CBLDCDAM('DCDAMSVC','WRIT')

TAMファイルサービス

dc_tam_read

CBLDCTAM('FxxR')('FxxU')

dc_tam_rewrite

CBLDCTAM('MFY ')('MFYS')('STR ')

dc_tam_write

ISTサービス

dc_ist_read

CBLDCIST('DCISTSVC','READ')

dc_ist_write

CBLDCIST('DCISTSVC','WRIT')

ユーザジャーナルの取得

dc_jnl_ujput

CBLDCJNL('UJPUT ')

全入出力データをトレース情報として取得するタイミングは，関数によって異なります。トレース情報の取得タイミングを次に示します。

ユーザサーバ

開始時に入力データを，終了時に出力データを取得します。

データを送受信する関数

関数の入り口でサービス要求の送信データおよびCUPへの通知データを，関数の出口でサービス応答の受信データを取得します。

ファイルデータを読み込む関数

関数の出口で取得します。

ファイルデータを書き込む関数

関数の入り口で取得します。

トレース情報を取得するトレースファイルは，オンラインテスタが最初のトレース情報を取得するとき，OpenTP1ごとに自動で作成されます。トレースファイルが満杯になった場合は，別ファイルにスワップします。

なお，トレース情報は，サービス関数終了時などに複数のOpenTP1関数分をまとめてファイルに取得します。また，UAPが異常終了した場合は，退避コアファイルからトレース情報を抽出してファイルに取得します。そのため，UAP実行中にオンラインが即時停止した場合や，UAP異常終了時に退避コアファイルを取得していない場合は，トレース情報をファイルに取得できないことがあります。

2.8.2　UAPトレース情報のマージ・編集出力

オンラインテスタでは，複数のトレースファイルに取得したUAPトレース情報を，一つのファイルにマージし，編集出力できます。これを，UAPトレース情報マージ・編集機能といいます。

トレース情報のマージは，オンラインテスタのコマンドで実行します。

トレースファイルを複数指定してコマンドを実行すると，トレース情報はサービスの流れに沿って一つのファイルにマージされます。そのため，複数のOpenTP1が取得したトレース情報をグローバルトランザクション単位で取得順にまとめたい場合や，トレースファイル満杯時に別のファイルにスワップしたものを一つにまとめたい場合に使用できます。

UAPトレース情報のマージ結果を，次の図に示します。

図2‒11　UAPトレース情報のマージ結果

また，トレース情報はオンラインテスタのコマンドで編集して出力できます。このとき，トレース情報の取得日時で出力する範囲を指定できます。

トレース情報の出力形式には，次のものがあります。

トレースファイル中の，すべてのトレース情報

トレースファイル中の，関数名などの一部のトレース情報

UAPトレース情報の取得から，マージ・編集出力までの機能の概要を，次の図に示します。

図2‒12　UAPトレース情報の取得とマージ・編集出力

2.8.3　送信メッセージの編集

MCFシミュレート機能使用時にMCF送信メッセージファイルに取得した送信メッセージは，編集して出力できます。これを，送信メッセージ編集機能といいます。

送信メッセージの編集は，オンラインテスタのコマンドで実行します。コマンドを入力すると，MCF送信メッセージファイルのデータをコマンドで指定したファイル，または標準出力に編集して出力します。

2.9　デバッガの連動

オンラインテスタでは，オンライン環境下でテスト専用UAPのSUP，SPP，およびMHPをデバッガと連動しながらテストを実行できます。これを，デバッガ連動機能といいます。

ユーザサービス定義でUAPごとにデバッガの連動を指定し，オンラインテスタのコマンドで実行すると，UAPのmain関数からデバッガと連動して動作します。

デバッガを連動させると，1ステップ単位のデバッグやバッチ形式のデバッグが，簡単にできます。

使用できるデバッガを次に示します。

dbx

cbltd（COBOL2002）

cblcv（COBOL2002）

オンライン環境下でデバッガと連動してテストするUAPは，あらかじめ，オフライン環境下でテストを実行してください。また，複数のユーザが同一ノード上でデバッガと連動してテストを実行することは避けてください。これは，デバッガ連動中のUAPが異常終了した場合に，OpenTP1システムへの影響を防ぐためです。

デバッガと連動して動作するUAPのトレース情報は，デバッガと連動していないUAPと同様に取得できます。ただし，オンラインテスタがトレース情報を出力するタイミングによって，一部またはすべてのトレース情報が取得できない場合があります。

デバッガ連動機能の概要を，次の図に示します。

図2‒13　デバッガの連動

3　テスト環境の設定

オンラインテスタでテストを実行するために必要な，環境設定の方法について説明します。

3.1　オンラインテスタのシステム定義

オンラインテスタのシステム定義について説明します。定義の構成，規則などについては，マニュアル「OpenTP1 システム定義」を参照してください。

3.1.1　システムサービス構成定義

OpenTP1のシステムサービス構成定義（定義ファイル名：$DCCONFPATH/sysconf）に，次の定義を追加して定義します。

(1)　形式

(a)　set形式

〔set uto_conf=Y|N〕

(b)　コマンド形式

なし。

(2)　機能

システム起動時にオンラインテスタを一緒に開始するかどうかを定義します。

(3)　説明

(a)　set形式のオペランド

uto_conf=Y｜N　　〜《N》

このノードでオンラインテスタを使用するかどうかを指定します。

Y：オンラインテスタを使用します。

N：オンラインテスタを使用しません。

(b)　コマンド形式

なし。

3.1.2　テスタサービス定義

定義ファイル$DCCONFPATH/utoを作成し，テスタサービス定義を定義します。

(1)　形式

(a)　set形式

〔set uto_server_count=最大テスト用ユーザサーバ数〕
〔set max_trace_file_size=最大トレースファイル容量〕
〔set max_message_file_size=最大MCF送信メッセージファイル容量〕
〔set watch_time=最大応答待ち時間〕
〔set rpc_trace=Y|N〕
〔set rpc_trace_name="RPCトレース情報を取得するファイル名"〕
〔set rpc_trace_size=RPCトレース情報を取得するファイルのサイズ〕

(b)　コマンド形式

{{〔utoterm〔-p OSITP|other〕論理端末名称〕}}

(2)　機能

オンラインテスタサービスを実行するための環境を定義します。

(3)　説明

(a)　setの形式オペランド

uto_server_count=最大テスト用ユーザサーバ数

〜〈符号なし整数〉((1〜240))《64》

オンラインテスタのテスト対象として起動するユーザサーバ数を指定します。

max_trace_file_size=最大トレースファイル容量

〜〈符号なし整数〉((0〜2000000))《64》（単位：キロバイト）

UAPトレース情報を取得するトレースファイルの最大容量を指定します。ただし，トレースファイルは128バイトのヘッダ（管理情報）を持つため，その大きさを加えた値を指定します。

0を指定した場合には，オンラインテスタはUAPトレース情報をファイルに取得しません。

なお，トレースファイルはテストユーザIDごとに最大二つ作成します。これは，トレースファイルが満杯になった場合にトレース情報が消えるのを防ぐためです。

トレースファイルが満杯になると，そのたびにトレース情報の退避や満杯になったトレースファイルの削除が必要になります。最大トレースファイル容量には，できるだけ満杯にならない容量を指定してください。

OpenTP1システムでトレースファイルとして使用する最大容量は，次の式で表されます。

トレースファイルの最大容量

=max_trace_file_sizeオペランドの指定値×2×ユーザ数×1024バイト

max_message_file_size=最大MCF送信メッセージファイル容量

〜〈符号なし整数〉((0〜2000000))《64》（単位：キロバイト）

オンラインテスタのMCFシミュレート機能使用時，次に示す関数で送信するメッセージを格納する，MCF送信メッセージファイルの最大容量を指定します。

dc_mcf_send関数

dc_mcf_reply関数

dc_mcf_sendsync関数

dc_mcf_sendrecv関数

dc_mcf_execap関数

ただし，各送信メッセージは128バイトの管理データを持ち，MCF送信メッセージファイルは128バイトのヘッダ（管理情報）を持つため，その大きさを加えた値を指定します。

0を指定した場合には，オンラインテスタは送信メッセージをファイルに取得しません。

なお，MCF送信メッセージファイルはテストユーザIDごとに作成するため，OpenTP1システムでMCF送信メッセージファイルとして使用する最大容量は，次の式で表されます。

MCF送信メッセージファイルの最大容量

=max_message_file_sizeオペランドの指定値×ユーザ数×1024バイト

watch_time=最大応答待ち時間

〜〈符号なし整数〉((0〜65535))（単位：秒）

RPCを使用してプロセス間で通信する場合，サービス要求を送信してからサービスの応答が返るまでの待ち時間の最大値を指定します。

OpenTP1の終了処理では，このオペランドで指定した時間，終了処理を待ち合わせる場合があります。このため，大きな値を指定した場合，OpenTP1の終了処理に時間が掛かるときがあります。

指定時間を過ぎても応答がない場合は，RPCは送受信タイムアウトとしてエラーリターンします。

0を指定した場合は，応答を受信するまで待ち続けます。0を指定した場合，OpenTP1が終了しないときがあります。

省略した場合は，システム共通定義のwatch_timeオペランドの値が仮定されます。

rpc_trace=Y｜N

RPCトレースで情報を取得するかどうかを指定します。

Y：情報を取得します。

N：情報を取得しません。

省略した場合は，システム共通定義のrpc_traceオペランドの値が仮定されます。

rpc_trace_name="RPCトレース情報を取得するファイル名"

〜〈パス名〉

RPCトレース情報を取得するファイルのパス名を指定します。

パス名のうち，RPCトレースを取得するファイル名（デフォルトはrpctr）の最大長は，13文字です。

パス名に環境変数を指定する場合，パス名の先頭に環境変数を指定してください（指定例　$DCDIR/tmp/ファイル名）。

省略した場合は，システム共通定義のrpc_trace_nameオペランドの値が仮定されます。

rpc_trace_size=RPCトレース情報を取得するファイルのサイズ

〜〈符号なし整数〉((1024〜2147483648))（単位：バイト）

RPCトレース情報を取得するファイルのサイズを指定します。

省略した場合は，システム共通定義のrpc_trace_sizeオペランドの値が仮定されます。

(b)　コマンド形式

次の項に記述しています。

3.1.3　テスタサービス定義（コマンド形式）

(1)　utoterm（論理端末情報の指定）

名称

論理端末情報の指定

形式

{{〔utoterm〔-p OSITP|other〕論理端末名称〕}}

機能

MCFシミュレート機能を使用して，DMLで作成したMHPをテストする場合に，各論理端末の情報を指定します。

なお，すでにこの定義で指定されている論理端末名称を再度指定すると，二重登録として警告のメッセージが表示され，論理端末名称の指定が無効になります。

オプション

-p　OSITP｜other　　〜《other》

プロトコル種別を指定します。DMLで作成したMHPをテストする場合に指定します。

OSITP：OSI TPプロトコル

other：OSI TP以外のプロトコル

論理端末名称　　〜〈1〜8文字の識別子〉

論理端末名称を指定します。

3.1.4　ユーザサービス定義

OpenTP1のユーザサービス定義（定義ファイル名：$DCCONFPATH/ユーザサーバ名）に，次の定義を追加して定義します。

(1)　形式

(a)　set形式

〔set test_mode=target|usable|dmyspp|simmhp|no〕
〔set test_transaction_commit=Y|N〕
〔set test_adm_call_command=do|skip|file〕
〔set test_xatmi_send_file=Y|N〕
〔set test_debugger="{dbx|cbltd|cblcv}〔コマンド引数〕"〕
〔set test_data_trace=Y|N〕

(b)　コマンド形式

なし。

(c)　putenv形式

〔putenv DCUTOTRCACCL 0|1〕

(d)　dcputenv形式

〔dcputenv DCUTOTRCACCL 0|1〕

(2)　機能

OpenTP1のユーザサービス定義に，サービスグループごとに追加して定義することで，ユーザサーバでオンラインテスタを実行できます。

(3)　説明

(a)　set形式のオペランド

test_mode=target｜usable｜dmyspp｜simmhp｜no　　〜《no》

オンラインテスタの起動時に，UAPがオンラインテスタの機能の対象かどうかを指定します。

target：テスト専用UAP

テスト専用のUAPとして，資源更新処理無効化機能やUAPトレース情報取得機能など，オンラインテスタの全機能の対象とする場合に指定します。

このUAPからテスト対象外のUAPには，サービス要求できません。また，テスト対象外のUAPからこのUAPにも，サービス要求できません。

usable：使用可能UAP

テスト対象のUAPからサービス要求するSPPの場合に指定します。

このUAPは，テスト対象のUAPからサービス要求された場合はテストモードで動作し，資源更新処理無効化機能などの機能が使用できます。

テスト対象外のUAPからサービス要求された場合は非テストモードで動作し，オンラインテスタの機能は使用できません。

dmyspp：ダミーSPP

オンラインテスタのサーバUAPシミュレート機能を使用して，実際には起動しないSPPをシミュレートする場合に指定します。

simmhp：シミュレートMHP

オンラインテスタのMCFシミュレート機能で，MCFシミュレート関数とリンケージしたMHPに対して指定します。

no：テスト対象外UAP

テスト対象外のUAPの場合に指定します。テスト対象のUAPからこの指定をしたUAPには，サービス要求はできません。

このオペランドでの指定とUAPで使用できるオンラインテスタの機能との関係，およびサービス要求元のUAPとサービス要求先のUAPの関係を，それぞれ以降の表に示します。

表3‒1　test_modeオペランドの指定による機能の使用可否

使用できる機能

target

usable

dmyspp

simmhp

no

クライアントUAPシミュレート機能

○

○

−

−

×

サーバUAPシミュレート機能

○

△

−

○

×

MCFシミュレート機能

○※

△

−

○※

×

資源更新処理無効化機能

○

△

−

○

×

運用コマンドシミュレート機能

○

△

−

○

×

UAPトレース情報取得機能

○

△

−

○

×

デバッガ連動機能

○

×

−

○

×

（凡例）

○：使用できます。

×：使用できません。

−：対象外です。

△：関数の種類によって次のように変わります。

・メイン関数

　使用できません。

・サービス関数

　クライアントUAPシミュレート機能を使用してサービス要求される場合は，使用できます。

　それ以外の場合は，サービス要求元のUAP（サービスが複数UAPにわたっている場合は，最初にサービス要求したUAP）の使用可否に従います。

注※

オンラインテスタの提供するMCFシミュレート関数とリンケージする必要があります。

表3‒2　サービス要求元のUAPとサービス要求先のUAPの関係

サービス要求元

サービス要求先

target

usable

dmyspp

simmhp

no

target

○

○

○

−

×

usable

テストモード

○

○

○

−

×

非テストモード

×

○

×

−

○

dmyspp

−

−

−

−

−

simmhp

○

○

○

−

×

no

×

○

×

−

○

（凡例）

○：サービスを要求できます。

×：サービスを要求できません。

−：対象外です。

test_transaction_commit=Y｜N　　〜《N》

このUAPで発生した，テストモードで動作するトランザクションを，同期点でコミットするかロールバックするかを指定します。

Y：コミットします。

N：ロールバックします。

test_adm_call_command=do｜skip｜file　　〜《do》

このUAPで発行したdc_adm_call_command関数で，運用コマンドの実行をシミュレートするかどうかを指定します。

do：実行します。

skip：実行しないで，仮定値を実行結果として使用します。

この指定は，test_modeオペランドの値にtargetかsimmhpを指定した場合，またはusableを指定してテストモードで動作している場合だけ有効です。

file：実行しないで，運用コマンド結果データファイル内のデータを実行結果として使用します。

この指定は，test_modeオペランドの値にtargetかsimmhpを指定した場合，またはusableを指定してテストモードで動作している場合だけ有効です。

test_xatmi_send_file=Y｜N　　〜《N》

XATMIインタフェースで会話型のサービスを要求する場合，サーバUAPシミュレート機能でシミュレート対象に指定したUAPに対して送信されたデータを，XATMI送信データファイルに出力するかどうかを指定します。

Y：ファイルに出力します。

N：ファイルに出力しません。

なお，UAPをシミュレート対象（test_modeオペランドでdmysppを指定）としていない場合は，この指定は無視されます。

test_debugger="{dbx｜cbltd｜cblcv} 〔 コマンド引数 〕"

デバッガと連動させてUAPを起動させる場合，連動するデバッガコマンド名称と，そのデバッガコマンドに対するコマンド引数を指定します。

この定義を指定したUAPをutodebugコマンドで起動すると，指定したデバッガと連動して起動します。この定義を指定したUAPに対して誤ってdcsvstartコマンド，またはdcstartコマンドで起動すると，コマンドがエラーになり，エラーメッセージが出力されます。

utodebugコマンドで起動したUAPは，utodebugコマンドを実行したウィンドウ以外のウィンドウから，utodbgstopコマンドを実行して終了させてください。

utodbgstop以外のコマンドで終了させた場合，OpenTP1システムとオンラインテスタの間で管理しているUAPの状態がすれ違う場合があります。また，実行したコマンドはデバッガの終了待ち状態になります。

デバッガと連動して起動したUAPプロセスは，再度起動できません。そのため，デバッガと連動したUAPプロセスが終了したあとにUAPを再度実行する場合は，いったんデバッガを停止させてutodebugコマンドを再度実行する必要があります。

この定義を指定したUAPは，該当するUAPのユーザサービス定義で指定したparallel_countオペランドの値に関係なく，一つのプロセスで起動します。

また，デバッガと連動して起動したUAPに対する閉塞，および閉塞解除は要求できません。

test_data_trace=Y｜N　　〜《N》

このUAPで発行した関数のすべての入出力データを，トレース情報として取得するかどうかを指定します。全入出力データをトレース情報として取得できる関数については，「2.8.1　UAPトレース情報の取得」を参照してください。

Y：全入出力データをUAPトレース情報として取得します。

この指定は，テスタサービス定義のmax_trace_file_sizeオペランドに1以上の値を指定して，UAPがテスト対象として動作する場合に有効となります。

N：入出力データの一部をUAPトレース情報として取得します。

この指定は，テスタサービス定義のmax_trace_file_sizeオペランドに1以上の値を指定して，UAPがテスト対象として動作する場合に有効となります。

(b)　コマンド形式

なし。

(c)　putenv形式のオペランド

DCUTOTRCACCL　0｜1

大きなデータに対して全入出力データトレースを取得する際，従来どおりの取得方式とするか，取得時間を短縮させる取得方式とするかを指定します。送受信メッセージや入出力データの大きさが数MBに達するような場合は，このputenv形式定義に1を指定することを推奨します。

0：従来どおりの方法で全入出力データトレースを取得します。

1：短縮方式で全入出力データトレースを取得します。

このオペランドが未指定の場合，または不当な値が指定された場合は，0が指定されたものとします。

ユーザサービス定義のtest_data_traceオペランドにYが指定されていない場合は，指定内容を無効とします。

このオペランドは，ユーザサービスデフォルト定義にも指定できます。

(d)　dcputenv形式のオペランド

DCUTOTRCACCL　0｜1

大きなデータに対して全入出力データトレースを取得する際，従来どおりの取得方式とするか，取得時間を短縮させる取得方式とするかを指定します。送受信メッセージや入出力データの大きさが数MBに達するような場合は，このdcputenv形式定義に1を指定することを推奨します

0：従来どおりの方法で全入出力データトレースを取得します。

1：短縮方式で全入出力データトレースを取得します。

このオペランドが未指定の場合，または不当な値が指定された場合は，0が指定されたものとします。

ユーザサービス定義のtest_data_traceオペランドにYが指定されていない場合は，指定内容を無効とします。

このオペランドは，ユーザサービスデフォルト定義にも指定できます。

(4)　注意事項

test_modeオペランドにsimmhpを指定した場合，ユーザサービス定義のそのほかの指定は，すべてSPPの指定と同様に指定してください

（例　type=other）。

なお，receive_fromオペランドにはqueueを指定してください。

ユーザサービス定義で指定するオンラインテスタ用の定義は，ユーザサービスデフォルト定義では指定できません。これは，実業務用のUAPが誤ってテスト環境で動作するのを防ぐためです。

MCFシミュレート機能で，トランザクションMHPとして実行するものが一つでもある場合は，ユーザサービス定義のatomic_updateオペランドの値に，Yを指定してください。

テスト対象のUAPのスケジュール優先度は，ユーザサービス定義のschedule_priorityオペランドの指定に従います。テスト対象のUAPと実業務用のUAPとを同時に実行させる場合は，実業務用のUAPへの性能面での影響を考慮して，テスト対象のUAPの優先度を決定してください。

ユーザサービス定義のuap_trace_maxオペランドに0を指定していると，テスタサービス定義のmax_trace_file_sizeオペランドに1以上を指定していても，UAPトレース情報を取得できない旨の警告メッセージが出力されます。

オンラインテスタを使用していない場合，test_modeオペランドにno以外を指定したUAPを起動すると，dc_rpc_open関数でエラーリターンします。これは，テスト用のUAPが，誤って実業務用UAPとして動作するのを防ぐためです。

UAPをデバッガと連動させる場合，test_adm_call_commandオペランドにはfileまたはskipを指定してください。test_adm_call_commandオペランドにdoを指定してデバッガと連動したUAPで，dc_adm_call_command関数を発行すると，UAPが応答待ち状態になり，デバッガの制御ができなくなります。この場合は，utodbgstopコマンドでUAPを終了させてから，デバッガを終了させてください。

デバッガと連動するUAPでは，子プロセスを生成する関数（fork()，system()など）は発行しないでください。これらの関数を発行した場合，UAPが応答待ち状態になり，デバッガの制御ができなくなります。この場合は，utodbgstopコマンドでUAPを終了させてから，デバッガを終了させてください。

マルチノード環境での，デバッガ連動機能は使用できません。

実業務用のUAPが起動しているOpenTP1システムでは，できるだけ，デバッガと連動したUAPのテストを実行しないでください。これは，UAPが動作するOpenTP1システムの環境によって，デバッガと連動しているUAPの終了，または異常終了を契機にシステムがダウンするのを防ぐためです。

デバッガと連動するUAPのユーザサービス定義に指定する，各監視時間の指定値は，デバッガ連動時の動作や作業時間を考慮して決定してください。指定値によって，タイムアウトエラーが頻繁に発生する場合があります。

test_adm_call_commandオペランドにdoを指定したUAPから，dc_adm_call_command関数の引数に設定したdcsvstartコマンドでテストモードUAPを起動する場合は，関数を発行するUAPのユーザサービス定義に環境変数DCUTOKEYを設定してください。

DCUTOTRCACCLの指定値が未指定の場合，または不当な値が指定された場合は，0が指定されたものとします。ユーザサービス定義，ユーザサービスデフォルト定義の指定内容による動作の違いを次に示します。

指定定義名

putenv，dcputenv定義指定値

DCUTOTRCACCL指定値

ユーザサービス定義

1

1

1

0

0

0

無

無

無

ユーザサービスデフォルト定義

1

0

無

1

0

無

1

0

無

全入出力データトレースの取得方法

短

短

短

従

従

従

短

従

従

（凡例）

無：指定なし

短：短縮方式で全データ取得

従：従来方式で全データ取得

3.1.5　タイプトバッファの設定

XATMIでのUAPのシミュレート時に必要になる，タイプトバッファの情報を設定します。タイプトバッファの情報は，タイプトバッファ定義ファイル（ファイル名は任意）に格納します。

(1)　形式

△₀タイプ△₁サブタイプ△₁バッファ長

（凡例）

△₀：0個以上の空白文字，およびタブ

△₁：1個以上の空白文字，およびタブ

(2)　オペランド

タイプ　　〜〈8文字の英大文字〉

バッファのタイプとして，次のどれかを指定します。

X_COMMON

X_C_TYPE

サブタイプ　　〜〈1〜16文字の英数字〉

バッファのサブタイプを指定します。サブタイプが16文字を超える場合は，先頭から16文字だけを有効とします。

X_COMMON，X_C_TYPEで，それぞれ最大512個のサブタイプを定義できます。512個を超えて定義した場合はエラーになり，utoxsppsvcコマンドが中断されます。

同じサブタイプ名の指定が重複した場合は，最初の定義が有効になります。二つ目以降はエラーになり，エラーメッセージが出力されます。

ただし，定義内容がまったく同じ場合は，エラーメッセージは出力されません。

バッファ長　　〜〈10進数字〉

バッファ長を指定します。バッファ長は，TP1/Server Baseのstbmakeコマンドで作成したスタブソース，およびstbmakeコマンドに-pオプションを指定した場合の出力結果を参照して，確認してください。

(3)　定義例

# タイプトバッファの定義
X_COMMON subtype1 256
X_COMMON subtype2 128
X_C_TYPE subtype3 128
#

(4)　注意事項

1行には一つのサブタイプ名を定義します。

1行の長さは，改行コードを含めて512バイトまでです。

コメントを記述する場合は，行の先頭に'#'を記述します。'#'の前には空白文字，およびタブだけが指定できます。

また，タイプトバッファの定義の後ろには，コメントは記述できません。

有効な定義が一つもない場合，このファイルのエラーになりませんが，サービス要求時などでタイプトバッファを確保する際にエラーになります。

3.1.6　送受信手順の設定

XATMIでのUAPのシミュレートで，会話型のサービスを要求する際に必要になる，送受信の手順を設定します。送受信手順は，送受信制御ファイル（ファイル名は任意）に格納します。

送受信制御ファイルには，テスト対象のSPPにデータを送信するためのsend文と，テスト対象のSPPからデータを受信するためのrecv文を定義します。

なお，一度もデータを送受信しない場合でも，会話型のサービス要求時は必ず送受信制御ファイルを作成してください。

(1)　形式

(a)　send文

△₀send〔△₁XATMI受信データファイル名〕

（凡例）

△₀：0個以上の空白文字，およびタブ

△₁：1個以上の空白文字，およびタブ

(b)　recv文

△₀recv△₁タイプ△₁サブタイプまたはバッファ長〔△₁フラグ〔,フラグ〕…〕

（凡例）

△₀：0個以上の空白文字，およびタブ

△₁：1個以上の空白文字，およびタブ

(2)　オペランド

(a)　send文

send

定義名として，sendを指定します。

XATMI受信データファイル名　　〜〈パス名〉

テスト対象のSPPが受信するデータを格納した，XATMI受信データファイルの名称を指定します。

この指定を省略した場合は，一つ前に定義したsend文で指定した，XATMI受信データファイルのデータが使用されます。最初に定義したsend文でこの指定を省略した場合は，エラーになります。

(b)　recv文

recv

定義名として，recvを指定します。

タイプ　　〜〈8文字の英大文字〉

受信バッファのタイプとして，次のどれかを指定します。

X_OCTET

X_COMMON

X_C_TYPE

サブタイプ　　〜〈1〜31文字の英数字〉

タイプにX_COMMON，またはX_C_TYPEを指定した場合に，受信バッファのサブタイプを指定します。

バッファ長　　〜〈10進数字〉

タイプにX_OCTETを指定した場合に，受信バッファ長を指定します。

フラグ

受信要求（tprecv関数を発行）する場合に設定する，次のフラグを指定します。

TPNOCHANGE

TPNOBLOCK

TPNOTIME

TPSIGRSTRT

フラグの指定が必要ない場合は指定しないでください。

複数の情報を指定する場合は，各情報を','（コンマ）で区切ります。','の前後には空白文字やタブを入れないでください。

(3)　定義例

# 送受信手順の定義
# 会話先のサービス名:service01
send sendfile1
recv X_OCTET 128 TPNOCHANGE
send sendfile2
recv X_COMMON subtype1 TPNOTIME,TPSIGRSTRT
#

(4)　注意事項

1行の長さは，改行コードを含めて512バイトまでです。

コメントを記述する場合は，行の先頭に'#'を記述します。'#'の前には空白文字，およびタブだけが指定できます。

また，送受信手順の定義の後ろには，コメントは記述できません。

send文とrecv文が一つも定義されてない場合でも，エラーにはなりません。ただし，utoxsppsvcコマンド実行時に，コネクションを確立した時点で処理が終了します。

utoxsppsvcコマンドでは，会話型のサービス要求時，送受信制御ファイルでの指定に従ってtpsend関数とtprecv関数を発行します。イベントTPEV_SVCSUCCまたはTPEV_SVCFAILが発生した場合は，それ以降のsend文やrecv文を無視して，コマンドが正常終了します。

recv文での定義と，utoxsppsvcコマンドが発行するXATMI関数との関係を次に示します。

タイプ

サブタイプ

フラグ

3.2　環境変数の設定

複数のユーザが同じOpenTP1システムでテストを実行した場合，トレース情報などが混ざってテスト結果の確認が難しくなるおそれがあります。このため，オンラインテスタでは各ユーザごとにID（テストユーザID）を設定します。オンラインテスタはこのテストユーザIDによって，トレース情報やMCF送信メッセージの出力先ファイルを振り分けます。

テストユーザIDは，次の条件でユーザごとに固有の値を設定します。

設定する環境変数

設定する値の属性

文字数

DCUTOKEY

半角の英数字（a〜z，A〜Z，0〜9）

4文字以内

テストユーザIDの設定によって，トレースファイルやMCF送信メッセージファイルをテストユーザIDごとに作成，使用するなどの管理ができます。

テストユーザIDは次のタイミングで取得します。

OpenTP1のdcsvstartコマンドによるUAPの起動時

ユーザサービス構成定義でのdcsvstartコマンド指定時

オンラインテスタのutosppsvcコマンドおよびutoxsppsvcコマンドによるSPPへのサービス要求時

オンラインテスタのutomhpsvcコマンドによるMHPへのサービス要求時

なお，テスト対象のUAPが正常終了処理中に，OpenTP1システムを強制停止（dcsvstopコマンドの-f指定）するか，システムダウンが発生すると，OpenTP1システムの再開始時にテストユーザIDを'_uto'と仮定して再度起動することがあります。その際，テストユーザIDを仮定して起動したことを知らせるメッセージを出力します。必要であれば該当するUAPをいったん停止させてから，再度dcsvstartコマンドで起動してください。

3.3　ユーザが作成するファイル

オンラインテスタを使用するためにユーザが作成するテスタファイルの一覧，およびそのファイル名を，それぞれ以降の表に示します。

テスト用ディレクトリの作成については，「3.4.1　テスト用ディレクトリの作成」を参照してください。

表3‒3　ユーザが作成するテスタファイルの一覧

テスタファイル種別

用途と内容

作成タイミング

削除者

削除タイミング

サービス要求データファイル

RPC要求データファイル

RPCインタフェースのクライアントUAPシミュレート機能使用時，サービス要求先に渡すデータを格納します。

サービス要求前

ユーザ

任意

XATMI要求データファイル

XATMIインタフェースのクライアントUAPシミュレート機能使用時，サービス要求先に渡すデータを格納します。

サービス要求前

ユーザ

任意

サービス応答データファイル

RPC応答データファイル

RPCインタフェースのサーバUAPシミュレート機能使用時，サービス結果として応答するデータを格納します。

シミュレート対象のSPPの起動時

ユーザ

任意

XATMI応答データファイル

XATMIインタフェースのサーバUAPシミュレート機能使用時，サービス結果として応答するデータを格納します。

シミュレート対象のSPPの起動時

ユーザ

任意

XATMI受信データファイル

XATMIインタフェースの会話型のサービス要求の際に，UAPのtprecv関数で受信するデータを格納します。

サービス要求前，またはシミュレート対象のSPPの起動時※

ユーザ

任意

MCF受信メッセージファイル

非同期型受信メッセージファイル

MCFシミュレート機能使用時，MHPのdc_mcf_receive関数に渡すメッセージを格納します。

サービス要求前

ユーザ

任意

同期型受信メッセージファイル

MCFシミュレート機能使用時，UAPのdc_mcf_recvsync関数やdc_mcf_sendrecv関数に渡すメッセージを格納します。

サービス要求前

ユーザ

任意

運用コマンド結果データファイル

運用コマンドシミュレート機能使用時，実行結果としてUAPに返すデータを格納します。

サービス要求前

ユーザ

任意

注

ユーザが作成するファイルは，次のファイルを除いたすべてのファイルで，オフラインテスタのものがそのまま使用できます。

・XATMI受信データファイル

・同期型受信メッセージファイル

・運用コマンド結果データファイル

ただし，複数のオフラインテスタ用データファイルをcatコマンドで一つのファイルに編集すれば，これらのファイルでもオフラインテスタで使用できます。

注※

クライアントUAPシミュレート機能使用時はサービス要求前に，サーバUAPシミュレート機能使用時はシミュレート対象のSPPの起動時に作成します。

表3‒4　ユーザが作成するテスタファイルに付けるファイル名

テスタファイル種別

ファイル名

サービス要求データファイル

RPC要求データファイル

任意

XATMI要求データファイル

サービス応答データファイル

RPC応答データファイル

$DCDIR/spool/uto/テストユーザID/ユーザサーバ名/svcサービス名※1

XATMI応答データファイル

$DCDIR/spool/uto/テストユーザID/ユーザサーバ名/xsvサービス名※1

XATMI受信データファイル

$DCDIR/spool/uto/テストユーザID/ユーザサーバ名/xrvサービス名※1，※2，※3

MCF受信メッセージファイル

非同期型受信メッセージファイル

$DCDIR/spool/uto/テストユーザID/xx....xx　（xx....xxは任意）

同期型受信メッセージファイル

$DCDIR/spool/uto/テストユーザID/recv論理端末名称※4（ヘッダセグメントファイル：$DCDIR/spool/uto/テストユーザID/recvh論理端末名称）

運用コマンド結果データファイル

SPPのサービス関数で使用する場合

$DCDIR/spool/uto/テストユーザID/ユーザサーバ名/cmdサービス名※1

SUPとSPPのメイン関数で使用する場合

$DCDIR/spool/uto/テストユーザID/ユーザサーバ名/cmd

注※1

サービス名が11文字を超える場合，サービス名の先頭から5文字と末尾から6文字を合わせた名前にします。

（例）サービス名 "uapservice0001"の場合 → "uapsece0001"

注※2

サービス名が15文字を超える場合，サービス名の先頭からの15文字の中で，先頭から5文字と末尾から6文字を合わせた名前にします。

（例）サービス名 "uapxatmiservice0001"の場合 → "uapxaervice"

注※3

クライアントUAPシミュレート機能使用時は任意です。

注※4

dc_mcf_recvsync関数，dc_mcf_sendrecv関数の引数に設定した論理端末名称です。

3.3.1　サービス要求データファイル

(1)　RPC要求データファイル

RPCインタフェースのクライアントUAPシミュレート機能使用時，utosppsvcコマンドで指定したサービスのサービス関数に渡すデータを格納します。一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

データ長

0

4

サービス関数に渡すデータの長さを指定します

（1〜DCRPC_MAX_MESSAGE_SIZEの指定値）。

応答領域長

4

4

サービス関数に渡す応答領域長を指定します

（1〜DCRPC_MAX_MESSAGE_SIZEの指定値）。

データ

8

n

サービス関数に渡すデータを指定します。

(c)　注意事項

サービス関数の引数との関係を次に示します。

データ

データ長

応答領域長

RPC要求データファイルは，オフラインテスタのファイルも使用できます。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

(2)　XATMI要求データファイル

XATMIインタフェースのクライアントUAPシミュレート機能使用時，サービスに対応したサービス関数に渡すデータを格納します。一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

呼び出し種別

0

8

サービスを呼び出す際に，呼び出し元の関数の種別を指定します。

call：tpcall関数からの呼び出し

acall：tpacall関数からの呼び出し

connect：tpconnect関数からの呼び出し

タイプ

8

8

バッファタイプとして，次の文字列のどれかを指定します。

X_OCTET

X_COMMON

X_C_TYPE

サブタイプ

16

16

サブタイプを16文字以下の文字列で指定します。ただし，タイプに'X_OCTET'を指定した場合は，サブタイプはヌル文字とします。

フラグ

32

4

サービス関数に渡す次のフラグを，16進数で指定します。呼び出し情報での指定によって限定されます。

0x00000000：0（call，acall指定時だけ）

0x00000004：TPNOREPLY（acall指定時だけ）

0x00000008：TPNOTRAN

0x00000100：TPNOCHANGE（call，acall指定時だけ）

0x00000800：TPSENDONLY（connect指定時だけ）

0x00001000：TPRECVONLY（connect指定時だけ）

なお，サービス要求時にTPNOTIMEとTPSIGRSTRTは必ず設定されます。TPNOBLOCKは設定しません。

データ長

36

4

サービス関数に渡すデータの長さを指定します（0〜524288）。データがない場合は0を指定します。

0を指定すると，タイプ，サブタイプの指定は無視されます。

データ

40

n

サービス関数に渡すデータを指定します。

(c)　注意事項

サービス関数の引数との関係を次に示します。

void tpservice(svcinf)
     TPSVCINFO *svcinf;

     struct TPSVCINFO {
               char name[32];
               char *data;       →1.
               long len;         →2.
               long flags;
               int cd;
            }

タイプ，サブタイプにマッピングされたデータが格納されているアドレス

dataで示すデータの長さ

utoxsppsvcコマンドで発行するXATMI関数との関係を次に示します。

idata=tpalloc (type, subtype, ilen);
                2.      3.      4.
tpcall (svc, idata, ilen, odata, olen, flags);
  1.                  4.                 5.
tpacall (svc, idata, ilen, flags);
  1.                   4.    5.
tpconnect (svc, idata, ilen, flags);
    1.                   4.     5.

呼び出し種別に対応したXATMI関数

タイプ名

サブタイプ名

データ長

フラグ（指定したフラグを実際のフラグの値に変換して指定）

XATMI要求データファイルは，オフラインテスタのファイルも使用できます。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

サブタイプ名が16文字に満たない場合，サブタイプ名の後ろにヌル文字を付けて指定してください。

タイプがX_OCTET以外の場合，ファイル内で指定したサブタイプのデータ長と，utoxsppsvcコマンドで指定するサブタイプのデータ長が異なると，XATMI要求データファイルのデータ不正になります。

フラグにはTPNOCHANGEのコードを指定できますが，無視されます。

タイプ，サブタイプを指定した場合のデータ長とデータは，スタブで定義したデータ構造（構造体）と同じでなければなりません。

また，スタブで定義したデータ構造は，バウンダリ調整が行われます（合計長は4の整数倍となります）。そのため，ファイルで指定するデータはその調整部分を考慮して作成する必要があります。

バウンダリ調整の内容は，stbmakeコマンドで作成したスタブソース，およびstbmakeコマンドに-pオプションを指定した場合の出力結果を参照して，確認してください。

3.3.2　サービス応答データファイル

(1)　RPC応答データファイル

RPCインタフェースのサーバUAPシミュレート機能使用時，シミュレート対象のSPPにサービスを要求した際に，サービスの要求元へ返す応答データを格納します。一つのファイルには，一つのデータを作成します。

また，クライアントUAPシミュレート機能使用時，テスト対象のUAPからの応答データを格納します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

データ長

0

4

サービス要求元へ返すデータの長さを指定します

（0〜2147483647）。

データ

4

n

サービス要求元へ返すデータを指定します。

(c)　注意事項

サービス要求元のサービス要求関数（dc_rpc_call関数）の引数との関係を次に示します。

dc_rpc_call (……, in, in_len, out, out_len)
                               1.

データ

RPC応答データファイルは，オフラインテスタのファイルも使用できます。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

(2)　XATMI応答データファイル

XATMIインタフェースのサーバUAPシミュレート機能使用時，シミュレート対象のSPPにサービスを要求した際に，サービスの要求元へ返す応答データを格納します。一つのファイルには，複数のデータが作成できます。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

タイプ

0

8

バッファタイプとして，次の文字列のどれかを指定します。

X_OCTET

X_COMMON

X_C_TYPE

サブタイプ

8

16

サブタイプを16文字以下の文字列で指定します。

ただし，タイプに'X_OCTET 'を指定した場合は，サブタイプはヌル文字とします。

サービス終了コード

24

4

tpreturn関数のrvalで指定する次のどちらかの値を，16進数で指定します。この値は，tperrno領域に設定されます。

0x04000000：TPSUCCESS

0x20000000：TPFAIL

リターンコード

28

4

tpreturn関数のrcodeで指定する値を16進数で指定します。この値は，tpurcode領域に設定されます。

データ長

32

4

サービス要求元に返すデータの長さを指定します（0〜524288）。データがない場合は0を指定します。

0を指定すると，タイプ，サブタイプの指定は無視されます。

データ

36

n

サービス要求元に返すデータを指定します。

(c)　注意事項

サービス終了関数（tpreturn関数）の引数との関係を次に示します。

tpreturn (rval, rcode, data, len, ……)
           1.     2.    3.    4.

サービス終了コード

リターンコード

タイプ，サブタイプで確保されたバッファに格納したデータ

データ長

XATMI応答データファイルは，オフラインテスタのファイルも使用できます。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

タイプ，サブタイプを指定した場合のデータ長とデータは，スタブで定義したデータ構造（構造体）と同じでなければなりません。

また，スタブで定義したデータ構造は，バウンダリ調整が行われます（合計長は4の整数倍となります）。そのため，ファイルで指定するデータはその調整部分を考慮して作成する必要があります。

バウンダリ調整の内容は，stbmakeコマンドで作成したスタブソース，およびstbmakeコマンドに-pオプションを指定した場合の出力結果を参照して，確認してください。

3.3.3　XATMI受信データファイル

会話型のサービス要求時，tprecv関数でUAPが受け取るメッセージを格納します。一つのファイルには複数のデータを作成でき，順番にtprecv関数へ渡します。

XATMI受信データファイルは，サービスごとに作成します。

(1)　ファイルの構造

(2)　ファイルの内容

項目

位置

長さ（バイト）

内容

共用領域

0

36

XATMI送信データファイルとの共用領域です。

空白，またはヌル文字を指定します。

タイプ

36

8

バッファタイプとして，次の文字列のどれかを指定します。

X_OCTET

X_COMMON

X_C_TYPE

サブタイプ

44

16

サブタイプを16文字以下の文字列で指定します。

ただし，タイプに'X_OCTET'を指定した場合は，サブタイプはヌル文字とします。

イベントフラグ

60

4

tprecv関数に渡す次のイベントフラグのどれかを，16進数で指定します。

0x00000000：0

0x00000001：TPEV_DISCONIMM

0x00000002：TPEV_SVCERR

0x00000004：TPEV_SVCFAIL

0x00000008：TPEV_SVCSUCC

0x00000020：TPEV_SENDONLY

データ長

64

4

tprecv関数に渡すデータの長さを指定します（0〜524288）。データがない場合は0を指定します。

0を指定すると，タイプ，サブタイプの指定は無視されます。

データ

68

n

tprecv関数に渡すデータを指定します。

(3)　注意事項

メッセージ受信関数（tprecv関数）の引数との関係を次に示します。

tprecv (……, data, len, ……, revent)
               1.    2.          3.

タイプ，サブタイプで確保されたバッファに格納したデータ

データ長

イベントフラグ

サーバUAPシミュレート機能で使用する場合にtprecv関数に渡すデータと，XATMI受信データファイル，XATMI応答データファイルとの関係を，次の図に示します。

図3‒1　受信データとテスタファイルの関係

サーバUAPシミュレート機能で使用する場合，受信データは実行単位に作成します。一つのサービスが複数回tprecv関数を発行する場合は，発行回数分のデータを作成しておく必要があります。ただし，最後のtprecv関数に渡すデータは，XATMI応答データファイル内にデータを格納できます。

データの数よりtprecv関数の発行回数が多い場合は，tpreturn関数のデータが受信されたものとし，それ以降は，エラーとなります。

XATMI受信データファイルは，サービス単位にオープン，クローズします。

XATMI受信データファイルは，オフラインテスタのファイルは使用できません。ただし，複数のオフラインテスタ用XATMI受信データファイルを，catコマンドで一つのファイルに編集すると，オンラインテスタでも使用できます。

サーバUAPシミュレート機能使用時に出力された送信データを格納したXATMI送信データファイルは，そのままXATMI受信データファイルとして使用できます。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

サーバUAPシミュレート機能で使用する場合，イベントフラグにTPEV_SENDONLY以外を指定すると，クライアントUAPで発行したtprecv関数は，それ以上会話を続行できないイベントを受け取ります。そのため，それ以降のデータは使用されません。また，イベント発生時のグローバル変数tpurcodeには，0が設定されます。

クライアントUAPシミュレート機能で使用する場合，イベントフラグの指定は，0とTPEV_SENDONLYだけが有効です。それ以外の指定は無効になります。

タイプ，サブタイプを指定した場合のデータ長とデータは，スタブで定義したデータ構造（構造体）と同じでなければなりません。

また，スタブで定義したデータ構造は，バウンダリ調整が行われます（合計長は4の整数倍となります）。そのため，ファイルで指定するデータはその調整部分を考慮して作成する必要があります。

バウンダリ調整の内容は，stbmakeコマンドで作成したスタブソース，およびstbmakeコマンドに-pオプションを指定した場合の出力結果を参照して，確認できます。

3.3.4　MCF受信メッセージファイル

1論理メッセージは，一つまたは複数のセグメントで構成されています。1セグメントはセグメント情報の入ったヘッダ部と，メッセージデータであるデータ部で構成されています。

セグメントには，次の五つの種別があります。

単セグメント

1論理メッセージが1セグメントで構成されている場合のセグメント

先頭セグメント

1論理メッセージが複数セグメントで構成されている場合の先頭セグメント

中間セグメント

1論理メッセージが複数セグメントで構成されている場合の中間セグメント

最終セグメント

1論理メッセージが複数セグメントで構成されている場合の最終セグメント

ヘッダセグメント

二つのメッセージを連結する場合に，先頭に付けるセグメント

なお，セグメントの種別は，ヘッダ部に指定します。

(1)　非同期型受信メッセージファイル

MCF関数（dc_mcf_receive関数）で，UAPが受け取るメッセージを格納します。一つのファイルには，一つの論理メッセージを作成します。ヘッダセグメントを使用すると，メッセージの前にデータを付けられます。

(a)　ファイルの構造

1論理メッセージ1セグメントのとき

1論理メッセージ複数セグメントのとき

ヘッダセグメントのとき

(b)　ファイルの内容

項目

位置

長さ

（バイト）

内容

ヘッダ

入出力論理端末名称

0

9

MCF関数でやり取りするための論理端末名称を指定します（最後のヌル文字を含みます）。

複数セグメントのときは，各セグメントで同じものを指定します。

マップ名

9

9

マップ名を指定します（最後のヌル文字を含みます）。

複数セグメントのときは，各セグメントで同じものを指定します。

この指定はマップ名を返す関数だけ有効です。

予備

18

9

ヌル文字を指定します。

セグメント種別

27

1

次の文字のどれかを指定します。

F：先頭セグメントのとき

M：中間セグメントのとき

L：最終セグメントのとき

O：単セグメントのとき

H：ヘッダセグメントのとき

メッセージ長

28

4

メッセージの長さを指定します（0〜2147483647）。

データ

メッセージ

32

n

セグメントの実体（データ）を，メッセージ長で指定した長さで指定します。

(c)　注意事項

非同期型受信メッセージファイルの構造と，MCF関数でのUAPからのメッセージ受信要求との関係を次に示します。

ヘッダセグメントを連結すると，別ファイルに作成したデータを先頭セグメント，または単セグメントと合成してUAPに渡せます。ヘッダセグメントと，MCF関数でのUAPからのメッセージ受信要求との関係を次に示します。

セグメント種別がF（先頭セグメント）のセグメントとM（中間セグメント）のセグメントは，同じものとして扱われます。また，L（最終セグメント）のセグメントとO（単セグメント）のセグメントも，同じものとして扱われます。

例えば，セグメント種別がF，M，Lの3セグメントから成るファイルは，M，M，Oの3セグメントから成るファイルと同等に扱われます。

MHPとのメッセージ送受信時にセグメントヘッダに指定したセグメント種別と，実行時のファイルの種別との関係を次に示します。なお，セグメント種別の指定に誤りがある場合は，最初のメッセージ受信時に受信要求関数がエラーリターンします。

ヘッダセグメント以外を格納した非同期型受信メッセージファイルの場合

セグメント種別にL，またはOを指定したメッセージを受信すると，メッセージ完了と判断して以降のセグメントを無視します。

セグメント種別

MHPが受信するセグメント

先頭セグメント

中間セグメント

最終セグメント

F

M

L

F，M，L

F

L

X

F，L※1

L

X

X

L※2

X

M

L

受信しません※3。

F

X

L

（凡例）

X：F，M，L，およびO以外の指定

注※1

3回目の受信要求は，1論理メッセージ受信済みとしてエラーリターンします。

注※2

中間セグメント以降は無視されます。

注※3

セグメント種別不正としてメッセージを出力し，受信要求関数がエラーリターンします。

ヘッダセグメントを格納した非同期型受信メッセージファイルの場合

ファイルの最初のセグメントだけが有効になります。

セグメント種別

MHPが受信するセグメント

H

H※1

H＋X

X

受信しません※2。

X＋H

（凡例）

X：H以外の指定

注※1

ただし，F，M，L，およびOのどれかと連結した形で渡されます。

注※2

セグメント種別不正としてメッセージを出力し，受信要求関数がエラーリターンします。

(2)　同期型受信メッセージファイル

MCF関数（dc_mcf_recvsync関数，dc_mcf_sendrecv関数）で，UAPが受け取る同期型のメッセージを格納します。同期型受信メッセージファイルには，複数論理メッセージ分のデータを格納できます。ヘッダセグメントを使用すると，メッセージの前にデータを付けられます。

(a)　ファイルの構造

1論理メッセージ1セグメントのとき

1論理メッセージ複数セグメントのとき

ヘッダセグメントのとき

(b)　ファイルの内容

項目

位置

長さ

（バイト）

内容

ヘッダ

入出力論理端末名称

0

9

MCF関数でやり取りするための論理端末名称を指定します（最後のヌル文字を含みます）。

複数セグメントのときは，論理メッセージごとに各セグメントで同じものを指定します。

マップ名

9

9

マップ名を指定します（最後のヌル文字を含みます）。

複数セグメントのときは，各セグメントで同じものを指定します。

この指定はマップ名を返す関数だけ有効です。

予備

18

9

ヌル文字を指定します。

セグメント種別

27

1

次の文字のどれかを指定します。

F：先頭セグメントのとき

M：中間セグメントのとき

L：最終セグメントのとき

O：単セグメントのとき

H：ヘッダセグメントのとき

メッセージ長

28

4

メッセージの長さを指定します（0〜2147483647）。

データ

メッセージ

32

n

セグメントの実体（データ）を，メッセージ長で指定した長さで指定します。

(c)　注意事項

同期型受信メッセージファイルの構造と，MCF関数でのUAPからのメッセージ受信要求との関係を次に示します。

ヘッダセグメントを連結すると，別ファイルに作成したデータを先頭セグメント，または単セグメントと合成してUAPに渡せます。ヘッダセグメントと，MCF関数でのUAPからのメッセージ受信要求との関係を次に示します。

MCFシミュレート機能を使用して，UAPで同期型メッセージ受信によって複数論理メッセージを受信する場合，受信メッセージの先頭に付けるヘッダセグメントは，各論理メッセージに対応させて格納してください。複数論理メッセージのうち，ヘッダセグメントの必要がない論理メッセージがある場合は，メッセージ長に0を指定したダミーのヘッダセグメントを格納しておく必要があります。なお，ヘッダセグメントが必要な論理メッセージがない場合は，ヘッダセグメントを格納したファイルは作成する必要はありません。ヘッダセグメントと，MCF関数でのUAPからのメッセージ受信要求との関係を次に示します。

セグメント種別がF（先頭セグメント）のセグメントとM（中間セグメント）のセグメントは，同じものとして扱われます。また，L（最終セグメント）のセグメントとO（単セグメント）のセグメントも，同じものとして扱われます。

例えば，セグメント種別がF，M，Lの3セグメントから成るファイルは，M，M，Oの3セグメントから成るファイルと同等に扱われます。

MHPとのメッセージ送受信時にセグメントヘッダに指定したセグメント種別と，実行時のファイルの種別との関係を次に示します。なお，セグメント種別の指定に誤りがある場合は，最初のメッセージ受信時に受信要求関数がエラーリターンします。

ヘッダセグメント以外を格納した同期型受信メッセージファイルの場合

セグメント種別にL，またはOを指定したメッセージを受信すると，メッセージ完了と判断して以降のセグメントを無視します。

セグメント種別

MHPが受信するセグメント

先頭セグメント

中間セグメント

最終セグメント

F

M

L

(F，M，L)

M

M

L

(M，M，L)

O

O

O

(O)，(O)，(O)

F

L

M

(F，L)，(M)

X

M

L

受信しません※。

F

X

L

（凡例）

X：F，M，L，およびO以外の指定

(　)：1論理メッセージの範囲

注※

セグメント種別不正としてメッセージを出力し，受信要求関数がエラーリターンします。

ヘッダセグメントを格納した同期型受信メッセージファイルの場合

ファイルの全ヘッダセグメントが有効になります。

セグメント種別

MHPが受信するセグメント

H

H※1

H＋H

H，H※1

H＋X

受信しません※2。

X

X＋H

（凡例）

X：H以外の指定

注※1

ただし，F，M，L，およびOのどれかと連結した形で渡されます。

注※2

セグメント種別不正としてメッセージを出力し，受信要求関数がエラーリターンします。

3.3.5　運用コマンド結果データファイル

運用コマンドシミュレート機能使用時に，コマンドの実行結果としてUAPに返すデータを格納します。一つのファイルには，一つのサービスでdc_adm_call_command関数を発行する回数分のデータを格納します。

運用コマンド結果データファイルは，サービスごとに作成します。

(1)　ファイルの構造

(2)　ファイルの内容

項目

位置

長さ

（バイト）

内容

ヘッダ

運用コマンドの結果コード

0

4

dc_adm_call_command関数の引数statに設定する値を指定します。

標準出力文字列長

4

4

標準出力文字列の長さ（ヌル文字を含みます）を指定します（0〜2147483647）。

標準エラー出力文字列長

8

4

標準エラー出力文字列の長さ（ヌル文字を含みます）を指定します（0〜2147483647）。

標準出力文字列

12

n

dc_adm_call_command関数の引数outmsgに設定するデータを指定します（最後のヌル文字を含みます。ヌル文字が付けられていない場合は文字列の最後の文字をヌル文字に置き換えます）。

標準出力文字列長が0の場合は指定しても無視されます。

標準エラー出力文字列

−

n

dc_adm_call_command関数の引数errmsgに設定するデータを指定します（最後のヌル文字を含みます。ヌル文字が付けられていない場合は文字列の最後の文字をヌル文字に置き換えます）。

標準エラー出力文字列長が0の場合は指定しても無視されます。

（凡例）

−：該当しません。

(3)　注意事項

運用コマンド結果データファイルは，オフラインテスタのファイルも使用できます。ただし，複数回dc_adm_call_command関数を発行する場合は，発行回数分のデータ（ファイル）を，catコマンドで一つのファイルに編集する必要があります。

標準出力文字列と標準エラー出力文字列の最後には，ヌル文字を付けてください。ヌル文字が付いていない場合は，文字列の最後の文字がヌル文字に置き換えられます。また，文字列長に0を指定した場合は，文字列を指定しても無視されます。

DMLのSEND文で運用コマンドを発行する場合は，データ部に次のように指定します。

(i) テスタファイル作成機能を使用しない場合

標準出力文字列長

0を指定します。

標準エラー出力文字列長

0を指定します（標準エラー出力を受け取らない指定の場合）。

(ii) テスタファイル作成機能を使用する場合

標準出力文字列長

1を指定します。

標準出力文字列

'¥0'を指定します。

標準エラー出力文字列長

1を指定します（標準エラー出力を受け取らない指定の場合）。

標準エラー出力文字列

'¥0'を指定します（標準エラー出力を受け取らない指定の場合）。

3.4　ファイルの作成

ここでは，テスタファイルを格納するために必要なディレクトリの作成，テスタファイルを簡単に作成するためのテストデータ定義ファイルの作成，およびオンラインテスタが作成するファイルについて説明します。

3.4.1　テスト用ディレクトリの作成

テスト用のファイル（テスタファイル）を格納するディレクトリ$DCDIR/spool/utoは，オンラインテスタのインストール時にモード0777でOpenTP1が作成します。また，UAP実行中のトレースファイル，またはMCF送信メッセージファイル作成時にディレクトリ$DCDIR/spool/uto/テストユーザIDがなければ，オンラインテスタがモード0777で作成します。

テスト前にMCF受信メッセージファイルなどをユーザが作成する場合は，ユーザがディレクトリ$DCDIR/spool/uto/テストユーザID（必要があれば，$DCDIR/spool/uto/テストユーザID/ユーザサーバ名）を作成します。モードは，UAPでこのファイルを作成できるように設定しておいてください。

3.4.2　テストデータ定義ファイルの作成

テストデータ定義ファイルを作成すると，テスタファイル作成機能で簡単にテスタファイルを作成できます。

テストデータ定義ファイルの名称は任意です。テストデータ定義ファイルから作成できるテスタファイルを次に示します。

RPC要求データファイル

XATMI要求データファイル

RPC応答データファイル

XATMI応答データファイル

XATMI受信データファイル

非同期型受信メッセージファイル

同期型受信メッセージファイル

運用コマンド結果データファイル

テストデータ定義ファイルの作成手順を，次に示します。

テキストエディタでテストデータ定義ファイルを作成します。

記述内容を確認してテストデータ定義ファイルをクローズします。

utofilcreコマンドにテストデータ定義ファイルを指定して実行します。

テスタファイルが作成されます。

(1)　形式

#コメント      ……1.

start テスタファイル識別子 テスタファイル種別 出力先ファイル名 ……2.

キーワード = 入力データ       ……5.

キーワード = 入力データ

sep       ……3.

キーワード = 入力データ
  :       :
  :       :
キーワード = 入力データ

end       ……4.

なお，形式中の太字の数字は，「(3)　説明」の番号と対応しています。

(2)　機能

テスタファイルに設定するテストデータを定義すると，テスタファイル作成コマンドでテスタファイルを作成できます。

なお，定義ファイルでの1行の長さは，改行コードを含めて512バイトまでです。

(3)　説明

1.コメント文

コメントを記述します。行の先頭に'#'を記述します。

コメント

コメントを，1行で記述します。

2.start文

一つのテスタファイルの入力データの開始を宣言します。各テスタファイルの入力データごとに，必ず記述します。

一つのテストデータ定義ファイル内に複数のテスタファイルの入力データを作成した場合，1テスタファイルの入力データの最後にend文を記述します。

ファイル識別子　　〜〈14文字以内の英数字〉

テストデータ定義ファイル中に記述した各テスタファイルのデータを区別するための識別子を指定します。1テストデータ定義ファイルで，一意の名称を指定します。識別子に使用する英数字は，a〜z，A〜Z，0〜9の値で指定してください。

テスタファイル種別

テスタファイルの種別を指定します。指定できるテスタファイル種別を次に示します。

RRQ：RPC要求データファイル

XRQ：XATMI要求データファイル

RRT：RPC応答データファイル

XRT：XATMI応答データファイル

XRV：XATMI受信データファイル

NRV：非同期型受信メッセージファイル

SRV：同期型受信メッセージファイル

COM：運用コマンド結果データファイル

出力先ファイル名　　〜〈パス名〉

入力データを基に作成する，テスタファイルの名称を指定します。

一つのテストデータ定義ファイル内に，複数のテスタファイル種別の入力データを作成する場合は，ファイル種別ごとに異なった出力先ファイル名を指定します。

テスタファイル種別が異なる入力データで出力先ファイル名を重複して指定すると，指定したファイルはテストデータが追加された状態で作成されます。この場合，エラーにはなりませんが，作成されたテスタファイルがテストで使用できないことがあります。

また，すでにあるファイル名を指定した場合は，テストデータがそのファイルに追加された状態で作成されます。

3.sep文

一つのファイルに複数のデータを記述するテスタファイルを作成する場合に，一つのデータの区切りを指定します。

次のテスタファイルを作成する際に指定できます。

XATMI受信データファイル

同期型受信メッセージファイル

運用コマンド結果データファイル

4.end文

一つのテスタファイルの入力データの終了を宣言します。各テスタファイルの入力データごとに，必ず記述します。

5.入力データ定義文

各テスタファイルの入力データを定義します。

入力データには，あらかじめ設定できる情報が決められている固定情報データと，ユーザが任意の情報を設定できるユーザデータ（キーワードがdataの場合）とがあります。一つのテストデータ内では，固定情報データはすべてユーザデータの前に記述してください。

なお，一つのテストデータ内では，入力データを重複して指定できません。ただし，運用コマンド結果データファイルでは，標準出力文字列データと標準エラー出力文字列データ設定するため，ユーザデータを2回指定します。

固定情報データを指定する場合の入力データの形式は，「(5)　テスタファイルのキーワードに対応する入力データの形式」の表を参照してください。

キーワード

各テスタファイル特有のデータを区別するための，キーワードを指定します。

キーワードの前後の空白文字やタブコードは無視されます。

入力データ

キーワードに対応する入力データを指定します。

入力データの前後の空白文字やタブコードは無視されます。

(4)　入力データにユーザデータを指定する場合に必要な設定

ユーザデータを指定する場合の，入力データの形式を次に示します。

(a)　ユーザデータ長の設定

ユーザデータ全体のデータ長は，固定情報データとして次の形式で設定します。

data_len=バイト数

ユーザデータとして設定したデータが，バイト数に設定したデータ長を超えた場合は，データを切り捨ててメッセージを出力します。データがデータ長に満たない場合は，それ以上のデータは設定しません。

(b)　ユーザデータの初期化

ユーザデータは，テスタファイル作成コマンドで，指定されたユーザデータ長分を初期化します。

(c)　文字データの設定

文字データは，次の形式で設定します。

data='データ'

文字データで記述した場合は，データの最後にヌル文字を付けません。

(d)　バイナリデータの設定

バイナリデータは，次の形式で設定します。

data=データ

データは10進数と16進数で記述できます。記述方法を次に示します。

10進数：数値をそのまま設定します。

16進数：数値の前に'0x'を付けます。

（例）

data=5 　→　データ：10進数の5

data=0x05　→　データ：16進数の5

データは，int型で設定されます。

(e)　特殊文字の設定

改行コード，タブコード，ヌル文字，' ' '（一重引用符）および'¥'は，文字データ中で特殊文字として扱います。これらの文字を記述する場合は，次の形式で記述してください。

記述する文字

記述形式

改行コード

¥n

タブコード

¥t

ヌル文字

¥0

' ' '（一重引用符）

¥'

'¥'

¥¥

(f)　ファイルからのデータ読み込みの設定

ファイルから読み込んだデータをユーザデータとして使用する場合は，次の形式で設定します。

data=(file)ファイルのパス名

（例）

data=(file)/tmp/datafile　→　データ：/tmp/datafileのデータを設定

(g)　ユーザデータの開始位置の設定

ユーザデータを任意の位置から設定する場合は，次の形式で設定します。

data=[ユーザデータ先頭からのオフセット]データ

(h)　複数データ形式の設定

ユーザデータに複数のデータ型を使用する場合は，次の形式で設定します。

data=データ
    =データ
        ：
        ：

（例）

data=0x00000001  →  1番目のデータ
   ='ABCDEF'     →  2番目のデータ

(i)　バウンダリの調整

複数のデータ型の記述で前後のデータ型が異なる場合，テスタファイル作成コマンドで自動的に前のデータとのバウンダリを調整してデータを設定します。ただし，次の場合にはバウンダリを調整しません。

ファイルからユーザデータを読み込む場合

ユーザデータの開始位置を設定した場合

(5)　テスタファイルのキーワードに対応する入力データの形式

各テスタファイルのキーワードと，それに対応する入力データの形式の一覧を，以降の表に示します。

指定する情報については，「3.3　ユーザが作成するファイル」の各テスタファイルの説明を参照してください。

表3‒5　RPC要求データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

out_len

応答領域長

dc_rpc_call関数に指定する応答領域長を，10進数または16進数で設定します。dataより前で設定します。

data_len

データ長

dc_rpc_call関数でサーバUAPに渡すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

dc_rpc_call関数でサーバUAPに渡すユーザデータを設定します。

表3‒6　XATMI要求データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

call_kind

呼び出し種別

サービス要求する関数種別として，次の文字列のどれかを設定します。

call

acall

connect

dataより前で設定します。

buff_type

タイプ

バッファタイプとして，次の文字列のどれかを設定します。

X_OCTET

X_COMMON

X_C_TYPE

dataより前で設定します。

sub_type

サブタイプ

サブタイプを16文字以内の文字列で設定します。dataより前で設定します。

（例）sub_type=subtype01

flag

フラグ

サービス関数に渡すフラグとして，次の文字列を設定します。複数のフラグを設定する場合は，'｜'で区切ります。

0

TPNOREPLY

TPNOTRAN

TONOCHANGE

TPSENDONLY

TPRECVONLY

dataより前で設定します。

data_len

データ長

tpcall関数，tpacall関数，tpconnect関数でサーバUAPに渡すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

tpcall関数，tpacall関数，tpconnect関数でサーバUAPに渡すユーザデータを設定します。

表3‒7　RPC応答データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

data_len

データ長

サービス終了時にクライアントUAPに返すユーザデータ長を，10進数または16進数で設定します。dataより前で設定します。

data

データ

サービス終了時にクライアントUAPに返すユーザデータを設定します。

表3‒8　XATMI応答データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

buff_type

タイプ

バッファタイプとして，次の文字列のどれかを設定します。

X_OCTET

X_COMMON

X_C_TYPE

dataより前で設定します。

sub_type

サブタイプ

サブタイプを16文字以内の文字列で設定します。dataより前で設定します。

（例）sub_type=subtype01

rval

サービス終了コード

サービス終了コードとして，次の文字列のどれかを設定します。

TPSUCCESS

TPFAIL

dataより前で設定します。

rcode

リターンコード

リターンコードを10進数または16進数で設定します。dataより前で設定します。

data_len

データ長

サービス終了時にクライアントUAPに返すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

サービス終了時にクライアントUAPに返すユーザデータを設定します。

表3‒9　XATMI受信データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

buff_type

タイプ

バッファタイプとして，次の文字列のどれかを設定します。

X_OCTET

X_COMMON

X_C_TYPE

dataより前で設定します。

sub_type

サブタイプ

サブタイプを16文字以内の文字列で設定します。dataより前で設定します。

（例）sub_type=subtype01

event

イベントフラグ

tprecv関数に渡すイベントフラグとして，次の文字列のどれかを設定します。

0

TPEV_DISCONIMM

TPEV_SVCERR

TPEV_SVCFAIL

TPEV_SVCSUCC

TPEV_SENDONLY

dataより前で設定します。

data_len

データ長

tprecv関数に渡すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

tprecv関数に渡すユーザデータを設定します。

sep

sep文

複数サービス分のデータを記述する場合に，1サービス分のデータの最後に記述します。ただし，最終データのあとには記述しません。

注

複数サービス分のデータを設定する場合は，buff_type以下のデータを繰り返し設定します。

表3‒10　非同期型受信メッセージファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

termname

入出力論理端末名称

dc_mcf_receive関数に渡す入出力論理端末名称を，8文字以内の文字列で設定します。dataより前で設定します。

mapname

マップ名

dc_mcf_receive関数に渡すマップ名を，8文字以内の文字列で設定します。dataより前で設定します。

seg_kind

セグメント種別

dc_mcf_receive関数に渡すセグメント種別として，次の文字のどれかを設定します。

F

M

L

O

H

複数セグメント分のデータがある場合は，次のどれかの順序で設定します。

F…M…L

F…F…L

M…M…L

L

H

O

dataより前で設定します。

data_len

メッセージ長

dc_mcf_receive関数に渡すセグメントのユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

メッセージ

dc_mcf_receive関数に渡すセグメントのユーザデータを設定します。

注

複数セグメント分のデータを設定する場合は，seg_kind以下のデータを繰り返し設定します。

表3‒11　同期型受信メッセージファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

termname

入出力論理端末名称

dc_mcf_sendrecv関数，dc_mcf_recvsync関数に渡す入出力論理端末名称を，8文字以内の文字列で設定します。dataより前で設定します。

mapname

マップ名

dc_mcf_sendrecv関数，dc_mcf_recvsync関数に渡すマップ名を，8文字以内の文字列で設定します。dataより前で設定します。

seg_kind

セグメント種別

dc_mcf_sendrecv関数，dc_mcf_recvsync関数に渡すセグメント種別として，次の文字のどれかを設定します。

F

M

L

O

H

複数セグメント分のデータがある場合は，次のどれかの順序で設定します。

F…M…L

F…F…L

M…M…L

F…M…L…F…M…L

F…F…L…M…M…L

M…M…L…M…M…L

L

H

O

L…L…F…M…L…L

O…O…F…M…L…O

H…H…H

dataより前で設定します。

data_len

メッセージ長

dc_mcf_sendrecv関数，dc_mcf_recvsync関数に渡すセグメントのユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

メッセージ

dc_mcf_sendrecv関数，dc_mcf_recvsync関数に渡すセグメントのユーザデータを設定します。

sep

sep文

複数メッセージ分のデータを記述する場合に，1メッセージ分のデータの最後に記述します。ただし，最終データのあとには記述しません。

注1

複数メッセージ分のデータを設定する場合は，termname以下のデータを繰り返し設定します。

注2

複数セグメント分のデータを設定する場合は，seg_kindからdataまでのデータを繰り返し設定します。

表3‒12　運用コマンド結果データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

status_code

運用コマンドの結果コード

運用コマンドが返す結果コードを，10進数または16進数で設定します。dataより前で設定します。

outsize

標準出力文字列長

運用コマンドが標準出力に出力するメッセージ長を，10進数または16進数で設定します。dataより前で設定します。

errsize

標準エラー出力文字列長

運用コマンドが標準出力エラーに出力するメッセージ長を，10進数または16進数で設定します。dataより前で設定します。

data

標準出力文字列

運用コマンドが標準出力に出力するメッセージを，文字データで設定します。

data

標準エラー出力文字列

運用コマンドが標準エラー出力に出力するメッセージを，文字データで設定します。

sep

sep文

複数コマンド分のデータを記述する場合に，1コマンド分のデータの最後に記述します。ただし，最終データのあとには記述しません。

注

複数コマンド分のデータを設定する場合は，status_code以下のデータを繰り返し設定します。

3.4.3　オンラインテスタが作成するファイル

オンラインテスタ使用時に，オンラインテスタが作成するファイルの一覧とそのファイル名を，以降の表に示します。

表3‒13　オンラインテスタが作成するファイルの一覧

ファイル種別

用途と内容

作成タイミング

削除者

削除タイミング

サービス応答データファイル

RPC応答データファイル

RPCインタフェースのクライアントUAPシミュレート機能使用時，サービス結果として応答するデータを格納します。

サービス要求リターン後※1

ユーザ

任意

XATMI応答データファイル

XATMIインタフェースのクライアントUAPシミュレート機能使用時，サービス結果として応答するデータを格納します。

サービス要求リターン後※1

ユーザ

任意

XATMI送信データファイル

XATMIインタフェースの会話型のサービス要求でUAPシミュレート機能を使用する際に，次の関数で送信したデータを格納します。

tpsend関数

左記の関数内※2

ユーザ

任意

MCF送信メッセージファイル

MCFシミュレート機能使用時，次の関数で送信したメッセージを格納します。

dc_mcf_reply関数

dc_mcf_send関数

dc_mcf_sendsync関数

dc_mcf_sendrecv関数

dc_mcf_execap関数

左記の関数内※2

ユーザ

任意

一時記憶データファイル

MCFシミュレート機能使用時，UAPのdc_mcf_tempput関数で更新しdc_mcf_tempget関数で受け取るデータを格納します。

左記の関数内※1

オンラインテスタ※3

dc_mcf_contend関数発行時

トレースファイル

各OpenTP1関数のUAPトレース情報を取得します。

オンラインテスタ（UAP）で最初のトレース情報取得時

ユーザ

任意※4

注※1

すでにファイルがある場合は，そのファイルに上書きします。

注※2

すでにファイルがある場合は，そのファイルに追加して書き込みます。

注※3

dc_mcf_contend関数を発行するUAPを動作させない場合は，ユーザが任意のタイミングで削除します。

注※4

ファイルが満杯になった場合は，ユーザが別ファイル名で退避したあと，削除します。

表3‒14　オンラインテスタが作成するテスタファイルに付けるファイル名

テスタファイル種別

ファイル名

サービス応答データファイル

RPC応答データファイル

utosppsvcコマンドで指定したファイル名

XATMI応答データファイル

utoxsppsvcコマンドで指定したファイル名

XATMI送信データファイル

$DCDIR/spool/uto/テストユーザID/ユーザサーバ名/xsdサービス名※

MCF送信メッセージファイル

$DCDIR/spool/uto/テストユーザID/sendmsg

一時記憶データファイル

$DCDIR/spool/uto/テストユーザID/utotmp論理端末名称

トレースファイル

ファイル1

$DCDIR/spool/uto/テストユーザID/trace1

ファイル2

$DCDIR/spool/uto/テストユーザID/trace2

注※

サービス名が11文字を超える場合，サービス名の先頭から5文字と末尾から6文字を合わせた名前にします。

（例）サービス名　"uapservice0001"の場合　→　"uapsece0001"

サービス名が15文字を超える場合，サービス名の先頭からの15文字の中で，先頭から5文字と末尾から6文字を合わせた名前にします。

（例）サービス名　"uapxatmiservice0001"の場合　→　"uapxaervice"

4　テストの実行

オンラインテスタでの，テストの実行方法について説明します。

4.1　UAPの作成

MCFシミュレート機能を使用しないUAPは，実業務用のUAPと同様に作成してください。実業務用のUAPの作成方法は，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

MCFシミュレート機能を使用するUAPは，オンラインテスタが提供するシミュレート関数ライブラリを使用して作成します。ただし，リソースマネジャにTP1/Message Controlを登録してあるかどうかで，作成方法が変わります。

リソースマネジャにTP1/Message Controlを登録していない場合は，TP1/Message Controlの提供するライブラリ（libmcf.aまたはlibmcf2.a）の代わりに，オンラインテスタが提供するMCFシミュレート関数ライブラリとリンケージします※1※2。

そのため，MCFシミュレート関数のライブラリとのリンケージを示す，'-lmuto'を指定します。TP1/Message Controlの提供するライブラリとのリンケージを示す，'-lmcf'（または'-lmcf2'）を指定する必要はありません。

また，COBOL言語やDMLで作成したUAPについても，同様に'-lmcf'（または'-lmcf2'）を'-lmuto'に変更してください。

リソースマネジャにTP1/Message Controlを登録している場合は，MCFシミュレート関数ライブラリ（libmuto.a）のあとに，TP1/Message Controlの提供するライブラリ（libmcf.aまたはlibmcf2.a）を付けてリンケージします。

MCFシミュレート機能を使用するUAPのコンパイルコマンドの例を，次に示します。

●　リソースマネジャにTP1/Message Controlを登録していない場合

cc -qchars=signed -o example exmain.c exsv1.c exsv2.c ex_sstb.c
   -I$DCDIR/include -brtl -bexpall -L$DCDIR/lib
   -lmuto -lbetran2 -ltactk -lc

（凡例）

exmain.c：メイン関数

exsv1.c：サービス関数1

exsv2.c：サービス関数2

ex_sstb.c：スタブで作成したスタブソース

●　リソースマネジャにTP1/Message Controlを登録している場合※3

cc -qchars=signed -o example exmain.c exsv1.c exsv2.c ex_sstb.c
   $DCDIR/spool/trnrmcmd/userobj/extrn.o
   -I$DCDIR/include -brtl -bexpall -L$DCDIR/lib
   -lmuto -lmcf2 -lmnet -lbetran2 -ltactk -lc

（凡例）

exmain.c：メイン関数

exsv1.c：サービス関数1

exsv2.c：サービス関数2

ex_sstb.c：スタブで作成したスタブソース

extrn.o：trnmkobjコマンドで作成したトランザクション制御用オブジェクトファイル名

注※1

アーカイブライブラリを使用する場合はlibmuto.a，共用ライブラリを使用する場合はlibmuto.soまたはlibmuto.slとリンケージしてください。ただし，AIX版ではアーカイブライブラリだけ提供します。

注※2

次の表に示すMCF関数を使用するUAPの場合は，libmuto.aの代わりにlibnpmuto.aとリンケージします。リンケージオプションは'-lmuto'の代わりに'-lnpmuto'を指定してください。

これらの関数をUAPで発行した場合，次のように動作します。

C言語の場合，リターン値には「0」を返し，OpenTP1が引数に返す値のうち，数値データには「0」，文字データには「¥0」を返します。

COBOL言語の場合，ステータスコードには「00000」，OpenTP1が引数に返す値のうち，数値データには「0」，文字データには「半角スペース」を返します。

トレース情報の取得やMCF関数のシミュレートは処理しません。

表4‒1　オンラインテスタが提供するシミュレート機能未サポートのMCF関数一覧

関数名（C言語）

関数名（COBOL言語）

dc_mcf_adltap()

CBLDCMCF('ADLTAP ')

dc_mcf_ap_info()

CBLDCMCF('APINFO ')

dc_mcf_tactcn()

CBLDCMCF('TDCTCN ')

dc_mcf_tactle()

CBLDCMCF('TACTLE ')

dc_mcf_tdctcn()

CBLDCMCF('TDCTCN ')

dc_mcf_tdctle()

CBLDCMCF('TDCTLE ')

dc_mcf_tdlqle()

CBLDCMCF('TDLQLE ')

dc_mcf_timer_cancel()

CBLDCMCF('TIMERCAN ')

dc_mcf_timer_set()

CBLDCMCF('TIMERSET ')

dc_mcf_tlscn()

CBLDCMCF('TLSCN ')

dc_mcf_tlscom()

CBLDCMCF('TLSCOM ')

dc_mcf_tlsle()

CBLDCMCF('TLSLE ')

dc_mcf_tlsln()

CBLDCMCF('TLSLN ')

dc_mcf_tofln()

CBLDCMCF('TOFLN ')

dc_mcf_tonln()

CBLDCMCF('TONLN ')

なお，上記以外のTP1/Message Control 03-03より前にサポートされたMCF関数については，「2.4　MCFのシミュレート」に示すように動作します。ただし，TP1/Message Control 03-03以降に追加された機能には対応していません。

注※3

TP1/Message Controlに関するコンパイルコマンドのオプションについては，TP1/Message Controlのリリースノートを参照してください。

4.2　SPPへのサービス要求

ここでは，クライアントUAPのシミュレート時およびサーバUAPのシミュレート時に，SPPにサービス要求する場合について説明します。

4.2.1　クライアントUAPのシミュレート

(1)　RPCインタフェースのクライアントUAPのシミュレート

RPCインタフェースのクライアントUAPのシミュレートは，utosppsvcコマンドを入力して実行します。このコマンドの処理中にdc_rpc_call関数を発行することでSPPにサービスを要求します。

(2)　XATMIインタフェースのクライアントUAPのシミュレート

XATMIインタフェースのクライアントUAPのシミュレートは，utoxsppsvcコマンドを入力して実行します。このコマンドの処理中に次の関数を発行することで，SPPにサービスを要求します。

リクエスト/レスポンス型の場合：tpcall関数またはtpacall関数

会話型の場合：tpconnect関数

4.2.2　サーバUAPのシミュレート

(1)　RPCインタフェースのサーバUAPのシミュレート

RPCインタフェースのサーバUAPのシミュレート時には，サービス要求するSPPをダミーSPPとして起動します。シミュレートの対象となるダミーSPPは，ユーザサービス定義のtest_modeオペランドにdmysppを指定しておきます。

ダミーSPPは，OpenTP1のdcsvstartコマンドで起動します。ダミーSPPへのサービス要求には，dc_rpc_call関数を発行します。

ダミーSPPは，OpenTP1のdcsvstopコマンド，またはdcstopコマンドで停止します。

(2)　XATMIインタフェースのサーバUAPのシミュレート

XATMIインタフェースのサーバUAPのシミュレート時には，サービス要求するSPPをダミーSPPとして起動します。シミュレートの対象となるダミーSPPは，ユーザサービス定義のtest_modeオペランドにdmysppを指定しておきます。

ダミーSPPは，OpenTP1のdcsvstartコマンドで起動し，dcsvstopコマンド，またはdcstopコマンドで停止します。

サーバUAPシミュレート機能を使用して，会話型でサービス要求した場合，クライアントUAPが，tprecv関数でサービスの終了を示すイベントを受け取らないままプロセス，またはサービスを終了すると，テスタデーモン上に会話状態を管理するテーブルが残ったままになります。この場合は，ダミーSPPをいったん停止させたあと，再度起動してください。

4.3　MHPへのサービス要求

MCFのシミュレート時には，テストするMHPをシミュレートMHPとして起動します。テストの対象となるシミュレートMHPは，ユーザサービス定義のtest_modeオペランドにsimmhpを指定しておきます。

シミュレートMHPは，OpenTP1のdcsvstartコマンドまたはユーザサービス構成定義のdcsvstart指定で起動します。

MHPへのサービス要求は，utomhpsvcコマンドで実行します。utomhpsvcコマンド以外でサービスを要求すると，オンラインテスタはエラーメッセージを出力して，要求したサービスの実行をスキップします。この時，いったんオンラインテスタでサービスを受け付けるため，dc_rpc_call関数は正常終了しますが，サービスの応答データの内容は保証しません。

シミュレートMHPは，SPPとして動作します。そのため，シミュレートMHPはSPPに対するコマンドを使用して運用する必要があります。ただし，utosppsvcコマンドは使用できません。

シミュレートMHPは，OpenTP1のdcsvstopコマンド，またはdcstopコマンドで停止します。

4.4　テスタファイルの作成

テスタファイルの作成は，utofilcreコマンドで実行します。

テスタファイルの作成では，テストデータ定義ファイルを使用する場合と，運用コマンドが出力するデータを使用する場合とで，作成の手順やコマンドの入力形式が異なります。

4.4.1　テストデータ定義ファイルを使用したテスタファイルの作成

テストデータ定義ファイルを使用してテスタファイルを作成する場合の手順を，次に示します。

（例）RPC応答データファイルと運用コマンド結果データファイルを作成

テストデータ定義ファイルを，テキストエディタでオープンします。

RPC応答データファイルと運用コマンド結果データファイルの入力データを設定します。

記述内容を確認して，テストデータ定義ファイルをクローズします。

utofilcreコマンドにテストデータ定義ファイルを指定して実行します。

4.4.2　運用コマンドの出力データを使用したテスタファイルの作成

運用コマンドの出力データを使用してテスタファイルを作成する場合の手順を，次に示します。

（例）RPC要求データファイルを作成

RPCトレースデータファイルを編集出力して，テストデータに使用するトレースデータを決定します。

（例：トレース番号　6番のデータを使用）

使用するRPCトレースデータをトレースデータファイルの形式で出力して，ファイルに格納します。

utofilcreコマンドに，作成するテスタファイル名，テスタファイル種別，およびRPCトレースデータを格納したファイルを指定して実行します。

4.5　テスト情報の編集

4.5.1　テスト状況の表示

オンラインテスタを使用したテストの状況は，utolsコマンドで表示できます。

表示できる情報を，次に示します。

UAPのテストモード（ユーザサービス定義のtest_modeオペランドの指定）

UAPを起動したユーザのテストユーザID

サーバ名

サービスグループ名

表示内容については，「5.1　テストで使用する運用コマンド」を参照してください。

4.5.2　UAPトレース情報の取得

オンラインテスタで取得するUAPトレース情報は，OpenTP1のUAPトレースのものと同じです。

ただし，次の条件を満たすとき，各OpenTP1関数の入り口でのトレース情報と，オンラインテスタ用のトレース情報（テスタ情報）を追加して取得します。

ユーザサービス定義のtest_modeオペランドにtarget，simmhpを指定した場合，またはusableを指定し，テストモードで動作させた場合

ユーザサービス定義のuap_trace_maxオペランドに1以上を指定した（または指定を省略した）場合

トレースを取得するUAPをOpenTP1のdcsvstartコマンド，またはユーザサービス構成定義のdcsvstart指定で起動した場合

オンラインテスタでは，トレース情報をグループにまとめて，次のタイミングでトレースファイルに出力します。テスタ情報は，トレース情報をトレースファイルに出力する単位で，1回出力します。

dc_rpc_mainloop関数開始時

dc_mcf_mainloop関数開始時

dc_rpc_call関数開始時

dc_rpc_close関数終了時

RPCサービス関数終了時

tpcall関数開始時

tpacall関数開始時

tpconnect関数開始時

XATMIサービス関数終了時

一つのグループ内の情報でUAPトレース領域が満杯になった場合は，ラップアラウンドして再使用する前に，それまでの情報をトレースファイルに出力します。

トレースファイルは，OpenTP1ごと，かつテストユーザIDごとに作成します。そのため，同一テストユーザIDでトレース情報を出力する複数のUAPを並行して実行すると，複数UAPのトレース情報が混ざり，UAPトレースファイルに不正な内容が出力されるおそれがあります。また，複数UAPを並行して実行すると排他待ちが発生し，サービス要求がタイムアウトするおそれがあります。オンラインテスタ使用時には，同一テストユーザIDでトレース情報を出力するUAPを並行して実行しないでください。

また，二つのトレースファイルのうち，一方の大きさがテスタサービス定義のmax_trace_file_sizeオペランドに指定した値を超えた場合，スワップメッセージを出力します。以降のUAPトレースは，もう一方のトレースファイルに取得されます。両方のトレースファイルが満杯になると，トレース情報は取得できません。

そのため，スワップメッセージが出力された場合，ユーザは満杯になったトレースファイルを別のファイルにコピーし，満杯になったトレースファイルを削除する必要があります。その後，もう一方のトレースファイルも満杯になった時には，削除したファイル名でファイルを作成し，そのファイルに引き続きトレース情報を取得します。ただし，トレース情報取得中のファイルを削除すると，それ以降の情報が取得できなくなるので注意してください。

なお，dc_trn_info関数のトレース情報は，取得されません。

4.5.3　UAPトレース情報のマージ・編集出力

UAPトレース情報のマージは，utotrcmrgコマンドで実行します。

utotrcmrgコマンドを入力すると，指定した複数のトレースファイル内のデータが，グループごとにサービス実行順に並べられ，指定したファイル（トレースマージファイル）に出力されます。出力先に指定したファイルがすでにある場合は，内容を削除したあとに書き込まれます。

トレースマージファイルは，ファイル種別が異なる以外はトレースファイルと同じファイル形式なので，トレースマージファイルもマージできます。また，トレース情報取得中のトレースファイルもマージできます。

UAPトレース情報の編集出力は，utotrcoutコマンドで実行します。

utotrcoutコマンドを入力すると，指定されたトレースファイル，またはトレースマージファイルの内容を編集して，標準出力に出力します。

utotrcoutコマンドでは，次のような形式でトレース情報を出力できます。

特定のサービスのトレース情報だけを抜き出した形式

特定のサーバのトレース情報だけを抜き出した形式

トレース情報の一部を抜き出した形式

トレース情報をサービスの実行順に並べ替えた形式

指定した時間帯に取得したトレース情報だけを抜き出した形式

出力形式については，「5.1　テストで使用する運用コマンド」を参照してください。

4.5.4　MCFシミュレート関数のUAPトレース

MCFシミュレート関数でも，UAPトレース情報が取得されます。このとき，MCFアプリケーション定義など，オンラインテスタでは解析できない情報を必要とするトレース情報は取得できません。そのため，オンラインテスタはダミーの値を設定して対応します。

オンラインテスタが取得できない情報と，代わりに設定するダミーの値を次の表に示します。

表4‒2　オンラインテスタが取得できない情報とダミーの値

関数名

取得できない情報

設定するダミーの値

dc_mcf_mainloop関数

（開始時）

アプリケーション名

********

入力元論理端末名

********

アプリケーションの型

0

dc_mcf_mainloop関数

（リターン時）

アプリケーション名

********

なお，MCFシミュレート関数のdc_mcf_mainloop関数は，dc_rpc_mainloop関数を使用しています。そのため，dc_mcf_mainloop関数発行時はトレース情報としてdc_rpc_mainloop関数の情報も出力されます。

4.5.5　送信メッセージの編集出力

MCFシミュレート機能使用時に取得した送信メッセージの編集出力は，utomsgoutコマンドで実行します。utomsgoutコマンドを入力すると，指定されたMCF送信メッセージファイル内のデータを，標準出力，または指定したファイルに編集して出力します。

utomsgoutコマンドでは，次のような形式で送信メッセージを出力できます。

送信メッセージの一覧を簡略化した形式

MCF受信メッセージファイルの形式

MCF受信メッセージファイルの形式で出力しなかったメッセージだけを抜き出した形式

送信メッセージの中で，いちばん古いメッセージを抜き出した形式

送信メッセージの中で，いちばん新しいメッセージを抜き出した形式

特定の関数で取得したメッセージをだけ抜き出した形式

送信メッセージファイルの一部のメッセージだけを抜き出した形式

特定のサービスで送信したメッセージだけを抜き出した形式

出力形式については，「5.1　テストで使用する運用コマンド」を参照してください。

4.5.6　UAPの応答データの確認

クライアントUAPシミュレート機能で出力されたRPC応答データファイルとXATMI応答データファイルは，ダンプ編集出力して内容を確認できます。

出力データの形式については，「3.3　ユーザが作成するファイル」を参照してください。

4.5.7　UAPの送信データの確認

サーバUAPシミュレート機能で出力されたXATMI送信データファイルは，ダンプ編集出力して内容を確認できます。

出力データの形式については，「3.3　ユーザが作成するファイル」を参照してください。

なお，共用領域の内容は，次のとおりです。

項目

位置

長さ（バイト）

内容

共用領域

サービス名

0

32

送信先のサービス名が格納されます。

コール記述子

32

4

送信時のコール記述子が格納されます。

5　運用コマンド

オンラインテスタの運用コマンドの使用方法について説明します。

5.1　テストで使用する運用コマンド

オンラインテスタの運用コマンドについて説明します。コマンドの形式，規則などについては，マニュアル「OpenTP1 運用と操作」を参照してください。

テストで使用する運用コマンドの一覧を，次の表に示します。

表5‒1　テストで使用する運用コマンドの一覧

コマンド名

機能

utodbgstop

デバッガと連動しているUAPを停止します。

utodebug

UAPをデバッガと連動して起動します。

utofilcre

テスタファイルを作成します。

utofilout

テスタファイルの内容を編集出力します。

utols

テストの状況を表示します。

utomhpsvc

MHPにサービスを要求します。

utomsgout

送信メッセージを編集出力します。

utosppsvc

RPCインタフェースのSPPにサービスを要求します。

utotrcmrg

UAPトレース情報をマージします。

utotrcout

UAPトレース情報を編集出力します。

utoxsppsvc

XATMIインタフェースのSPPにサービスを要求します。

5.1.1　utodbgstop（デバッガと連動するUAPの停止）

(1)　名称

デバッガと連動するUAPの停止

(2)　形式

utodbgstop 〔-f〕 サーバ名

(3)　機能

デバッガと連動するUAPを停止します。

utodbgstopコマンドはOpenTP1システムが稼働しているマシン上にある，utodebugコマンドを実行したウィンドウ以外のウィンドウで実行します。

なお，utodbgstopコマンドでUAPを停止させたあとは，すみやかにデバッガも停止させてください。デバッガを停止させるまで，utodbgstopコマンド，およびutodebugコマンドは，応答待ち状態になります。

また，いったんutodbgstopコマンドで停止させたUAPは，デバッガコマンドで再度起動できません。

指定したサーバがデバッガと連動していない場合は，コマンドエラーとなります。

utodbgstopコマンドは，テスタサービスが起動中のときだけ使用できます。

(4)　オプション

-f

指定したサーバを強制停止します。このオプションの指定を省略すると，該当するサーバを正常終了します。

(5)　コマンド引数

サーバ名　　〜〈1〜8文字の識別子〉

停止させる，デバッガと連動するUAPのサーバ名を指定します。

(6)　注意事項

コマンド入力後に，次に示すメッセージおよび要因コードが出力される場合がありますが，無視してください。

メッセージID：KFCA01844-E

要因コード：STATUS

　　　　　　　EXIT

　　　　　　　ABORTING

　　　　　　　ABORT

コマンド入力後に，次に示すメッセージおよび要因コードが出力された場合は，デバッガを必ず停止させてください。

メッセージID：KFCA01844-E

要因コード：CRITICAL

5.1.2　utodebug（デバッガと連動するUAPの起動）

(1)　名称

デバッガと連動するUAPの起動

(2)　形式

utodebug サーバ名

(3)　機能

デバッガと連動するUAPを起動します。

utodebugコマンドを実行したウィンドウは，デバッガとの入出力に使用します。

utodebugコマンドを実行する場合，プロセスサービス定義のprcsvpathオペランドの指定，またはprcpathコマンドで，サーチパス名に$DCDIR/bin，/usr/bin，および/binを追加する必要があります。

utodebugコマンドはOpenTP1システムが稼働しているマシン上のウィンドウで実行します。一つのウィンドウ上では，一つのUAPをデバッガと連動してテストできます。デバッガを停止させるまで，このウィンドウ上でそのほかのコマンドは実行できません。

指定したサーバのユーザサービス定義のtest_modeオペランドに，targetまたはsimmhp以外を指定した場合は，コマンドエラーとなります。また，指定したサーバがすでに起動している場合も，コマンドエラーとなります。

utodebugコマンドは，テスタサービスが起動中のときだけ使用できます。

(4)　コマンド引数

サーバ名　　〜〈1〜8文字の識別子〉

デバッガと連動してテストを実行するUAPのサーバ名を指定します。

(5)　注意事項

デバッガと連動しているUAPが正常終了，または異常終了した場合は，デバッガを停止させてください。

デバッガ連動中にデバッガプロセスを強制的に終了させると，デバッガと連動していたUAPのプロセスが完全に終了しないで残ってしまう場合があります。この場合は，残っているプロセスをコマンドで終了させてください。

デバッガ連動中にutodebugコマンドを強制的に終了させると，デバッガプロセスに対する入出力とシェルに対する入出力が混在するため，デバッガを制御できなくなります。この場合は，デバッガプロセスとデバッガと連動しているUAPのプロセスを強制的に終了させてください。

デバッガとの連動テスト中にデバッガが制御できなくなった場合は，utodebugコマンドプロセスとデバッガプロセス，およびデバッガと連動しているUAPプロセスを強制的に終了させてください。その後，必要であれば再度，utodebugコマンドを実行してください。なお，デバッガプロセスと連動しているUAPプロセスのプロセスIDはprclsコマンドで取得できます。

5.1.3　utofilcre（テスタファイルの作成）

(1)　名称

テスタファイルの作成

(2)　形式

utofilcre{-e テストデータ定義ファイル名
    |-o テスタファイル名 -k テスタファイル種別 〔-i 入力データファイル名〕}

(3)　機能

指定したテストデータ定義ファイル，または運用コマンドで取り出したアンロードジャーナルファイルのレコードデータやRPCトレースデータから，テスタファイルを作成します。

(4)　オプション

-e　テストデータ定義ファイル名　　〜〈パス名〉

作成するテスタファイルの入力データを定義した，テストデータ定義ファイルの名称を指定します。

-o，-k，および-iオプションとは同時に指定できません。

-o　テスタファイル名　　〜〈パス名〉

運用コマンドで取り出したデータから作成する，テスタファイルの名称を指定します。このオプションを指定する場合，-kオプションを必ず指定してください。

-eオプションとは同時に指定できません。

-k　テスタファイル種別

運用コマンドで取り出したデータから作成する，テスタファイルの種別を指定します。指定できるテスタファイル種別を次に示します。

RRQ：RPC要求データファイル

RRT：RPC応答データファイル

XRQ：XATMI要求データファイル

XRT：XATMI応答データファイル

XRV：XATMI受信データファイル

NRV：非同期型受信メッセージファイル

SRV：同期型受信メッセージファイル

なお，運用コマンド結果データファイルは，コマンドから取り出したデータからファイルを作成できません。そのため，このオプションに運用コマンド結果データファイルは指定できません。

このオプションを指定する場合，-oオプションを必ず指定してください。

-eオプションとは同時に指定できません。

-i　入力データファイル名　　〜〈パス名〉

運用コマンドで取り出したデータを格納した，入力データファイルの名称を指定します。このオプションを指定する場合，-oオプションを必ず指定してください。

-oオプション指定時に，このオプションの指定を省略すると，標準入力からの入力と見なします。

-eオプションとは同時に指定できません。

(5)　注意事項

-oオプションを指定した場合に-iオプションの指定を省略すると，標準入力からの入力となります。そのため，入力ファイルをパイプ，リダイレクションなどで指定してください。なお，入力ファイルが指定されない場合，コマンドは入力待ち状態になります。この場合は，コマンドを強制的に終了させてください。

アンロードジャーナルファイルのmjレコードデータには，マップ名が取得されていません。このため，-oオプションを指定して，非同期型受信メッセージファイル，または同期型受信メッセージファイルを作成する場合，入力データにmjレコードデータを指定すると，マップ名に次の仮定値を設定します。

マップ名の仮定値：UTOMAP

5.1.4　utofilout（テスタファイルの編集出力）

(1)　名称

テスタファイルの編集出力

(2)　形式

utofilout -k テスタファイル種別 テスタファイル名

(3)　機能

指定したテスタファイルの内容を，指定したテスタファイル種別のデータ形式で編集して，標準出力に出力します。

テスタファイル種別には，編集出力するテスタファイルの種別を指定します。異なるテスタファイル種別を指定すると，指定したテスタファイル種別のデータ形式で編集し，編集できるデータであれば編集結果を出力します。編集できないデータの場合は，コマンドエラーとなります。

(4)　オプション

-k　テスタファイル種別

編集出力するテスタファイルの種別を指定します。指定できるテスタファイル種別を次に示します。

RRQ：RPC要求データファイル

RRT：RPC応答データファイル

XRQ：XATMI要求データファイル

XRT：XATMI応答データファイル

XRV：XATMI受信データファイル，およびXATMI送信データファイル

NRV：MCF受信メッセージファイル

（非同期型受信メッセージファイル，および同期型受信メッセージファイル）

COM：運用コマンド結果データファイル

(5)　コマンド引数

テスタファイル名　　〜〈パス名〉

編集するテスタファイルの名称を指定します。

(6)　出力形式（-kオプションにRRQを指定した場合）

（凡例）

ファイル情報

データ番号

固有情報データ

ユーザデータ

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

ユーザデータのロケーション

ユーザデータの16進数表示部

ユーザデータのASCII文字表示部

（説明）

ファイル種別

RPC要求データファイルのテスタファイル種別の表示

ファイル名称

指定したテスタファイルパス名（最大64文字）

データ番号

ファイルの先頭から付けた一連のデータ番号（最大10けた）

応答領域長

RPC要求データファイルのヘッダに指定した応答領域長（10進数　単位：バイト）

データ長

RPC要求データファイルのヘッダに指定したデータ長（10進数　単位：バイト）

-kオプションにRRQを指定した場合の出力例

(7)　出力形式（-kオプションにRRTを指定した場合）

（凡例）

ファイル情報

データ番号

固有情報データ

ユーザデータ

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

ユーザデータのロケーション

ユーザデータの16進数表示部

ユーザデータのASCII文字表示部

（説明）

ファイル種別

RPC応答データファイルのテスタファイル種別の表示

ファイル名称

指定したテスタファイルパス名（最大64文字）

データ番号

ファイルの先頭から付けた一連のデータ番号（最大10けた）

データ長

RPC応答データファイルのヘッダに指定したデータ長（10進数　単位：バイト）

-kオプションにRRTを指定した場合の出力例

(8)　出力形式（-kオプションにXRQを指定した場合）

（凡例）

ファイル情報

データ番号

固有情報データ

ユーザデータ

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

ユーザデータのロケーション

ユーザデータの16進数表示部

ユーザデータのASCII文字表示部

（説明）

ファイル種別

XATMI要求データファイルのテスタファイル種別の表示

ファイル名称

指定したテスタファイルパス名（最大64文字）

データ番号

ファイルの先頭から付けた一連のデータ番号（最大10けた）

呼出し種別

XATMI要求データファイルのヘッダに指定した呼出し種別（最大7文字）

文字列が設定されていない場合は'****'を表示します。

フラグ

XATMI要求データファイルのヘッダに指定したフラグ（8けた）

タイプ

XATMI要求データファイルのヘッダに指定したバッファタイプ（最大8文字）

文字列が設定されていない場合は'****'を表示します。

サブタイプ

XATMI要求データファイルのヘッダに指定したバッファサブタイプ（最大16文字）

文字列が設定されていない場合は'****'を表示します。

データ長

XATMI要求データファイルのヘッダに指定したデータ長（10進数　単位：バイト）

-kオプションにXRQを指定した場合の出力例

(9)　出力形式（-kオプションにXRTを指定した場合）

（凡例）

ファイル情報

データ番号

固有情報データ

ユーザデータ

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

ユーザデータのロケーション

ユーザデータの16進数表示部

ユーザデータのASCII文字表示部

（説明）

ファイル種別

XATMI応答データファイルのテスタファイル種別の表示

ファイル名称

指定したテスタファイルパス名（最大64文字）

データ番号

ファイルの先頭から付けた一連のデータ番号（最大10けた）

タイプ

XATMI応答データファイルのヘッダに指定したバッファタイプ（最大8文字）

文字列が設定されていない場合は'****'を表示します。

サブタイプ

XATMI応答データファイルのヘッダに指定したバッファサブタイプ（最大16文字）

文字列が設定されていない場合は'****'を表示します。

終了コード

XATMI応答データファイルのヘッダに指定したサービス終了コード（8けた）

リターンコード

XATMI応答データファイルのヘッダに指定したリターンコード（10進数　最大11けた）

データ長

XATMI応答データファイルのヘッダに指定したデータ長（10進数　単位：バイト）

-kオプションにXRTを指定した場合の出力例

(10)　出力形式（-kオプションにXRVを指定した場合）

（凡例）

ファイル情報

データ番号

固有情報データ

ユーザデータ

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

ユーザデータのロケーション

ユーザデータの16進数表示部

ユーザデータのASCII文字表示部

（説明）

ファイル種別

XATMI受信データファイル，およびXATMI送信データファイルのテスタファイル種別の表示

ファイル名称

指定したテスタファイルパス名（最大64文字）

データ番号

ファイルの先頭から付けた一連のデータ番号（最大10けた）

タイプ

XATMI受信データファイル，およびXATMI送信データファイルのヘッダに指定したバッファタイプ（最大8文字）

文字列が設定されていない場合は'****'を表示します。

サブタイプ

XATMI受信データファイル，およびXATMI送信データファイルのヘッダに指定したバッファサブタイプ（最大16文字）

文字列が設定されていない場合は'****'を表示します。

イベントフラグ

XATMI受信データファイル，およびXATMI送信データファイルのヘッダに指定したイベントフラグ（8けた）

データ長

XATMI受信データファイル，およびXATMI応答データファイルのヘッダに指定したデータ長（10進数　単位：バイト）

-kオプションにXRVを指定した場合の出力例

(11)　出力形式（-kオプションにNRVを指定した場合）

（凡例）

ファイル情報

データ番号

固有情報データ

ユーザデータ

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

ユーザデータのロケーション

ユーザデータの16進数表示部

ユーザデータのASCII文字表示部

（説明）

ファイル種別

MCF受信メッセージファイルのテスタファイル種別の表示

ファイル名称

指定したテスタファイルパス名（最大64文字）

データ番号

ファイルの先頭から付けた一連のデータ番号（最大10けた）

論理端末名称

MCF受信メッセージファイルのヘッダに指定した論理端末名称（最大8文字）

文字列が設定されていない場合は'****'を表示します。

マップ名称

MCF受信メッセージファイルのヘッダに指定したマップ名称（最大8文字）

文字列が設定されていない場合は'****'を表示します。

セグメント種別

MCF受信メッセージファイルのヘッダに指定したセグメント種別（1文字）

文字が設定されていない場合は'****'を表示します。

データ長

MCF受信メッセージファイルのヘッダに指定したデータ長（10進数　単位：バイト）

-kオプションにNRVを指定した場合の出力例

(12)　出力形式（-kオプションにCOMを指定した場合）

（凡例）

ファイル情報

データ番号

固有情報データ

標準出力データ（ユーザデータ）

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

標準エラー出力データ（ユーザデータ）

同じデータの場合には，次のように表示します。

（最初に一致したデータのロケーション）

−（最後に一致したデータのロケーション）：SAME DATA

ユーザデータのロケーション

ユーザデータの16進数表示部

ユーザデータのASCII文字表示部

（説明）

ファイル種別

運用コマンド結果データファイルのテスタファイル種別の表示

ファイル名称

指定したテスタファイルパス名（最大64文字）

データ番号

ファイルの先頭から付けた一連のデータ番号（最大10けた）

コマンド結果コード

運用コマンド結果データファイルのヘッダに指定したコマンド結果コード（10進数　最大11けた）

標準出力データ長

運用コマンド結果データファイルのヘッダに指定した標準出力文字列のデータ長（10進数　単位：バイト）

標準エラー出力データ長

運用コマンド結果データファイルのヘッダに指定した標準エラー出力文字列のデータ長（10進数　単位：バイト）

-kオプションにCOMを指定した場合の出力例

5.1.5　utols（テスト状況の表示）

(1)　名称

テスト状況の表示

(2)　形式

utols 〔サーバ名〔サーバ名〕…〕

(3)　機能

テスタサービスが管理しているテストUAPの状態を標準出力に出力します。ただし，出力対象がない場合は，何も出力しません。

utolsコマンドは，テスタサービスが起動中のときだけ使用できます。

(4)　コマンド引数

サーバ名　　〜〈1〜8文字の識別子〉

状態を表示させるユーザサーバの名称を指定します。

このコマンド引数の指定を省略すると，すべてのテスト対象のユーザサーバの状態を表示します。

(5)　出力形式

該当するUAPのテストモード情報（ユーザサービス定義のtest_modeオペランドの指定）を次のどれかで表示します。

target：test_mode=targetで起動

usable：test_mode=usableで起動

dmyspp：test_mode=dmysppで起動

simmhp：test_mode=simmhpで起動

UAPを起動したユーザのテストユーザID

UAPのテストモードがusableの場合は，'****'を表示します。

サーバ名（8文字以内）

サービスグループ名（31文字以内）

サービスグループの指定がない場合は，何も表示しません。

UAPと連動しているデバッガ名（8文字以内）

デバッガと連動していない場合は，何も表示しません。

(6)　注意事項

テスト対象のUAPが起動中，または停止中に，そのUAPを強制停止させた場合やOpenTP1システムが即時停止した場合，起動していないUAPや停止済みのUAPについての情報を表示することがあります。この場合，誤って表示されたUAPを再度起動すると，正しい情報が表示されます。

5.1.6　utomhpsvc（MHPへのサービス要求）

(1)　名称

MHPへのサービス要求

(2)　形式

utomhpsvc 〔-t MCF受信メッセージヘッダファイル名〕
          〔-n〕サービスグループ名 サービス名 MCF受信メッセージファイル名

(3)　機能

MCFシミュレート機能使用時，MHPに対して特定のサービスの実行を要求します。サービス要求先のMHPは，オンラインテスタが提供するMCFシミュレート関数ライブラリと結合させた，シミュレートMHPとして起動している必要があります。

テストモードで起動していないMHPにサービス要求した場合は，コマンドエラーとなります。また，テストモードで動作するSPPにサービス要求した場合，その動作は保証しません。

サービス要求後，システム共通定義のRPC最大応答待ち時間（watch_timeオペランドの指定値）を超えて応答がない場合は，送受信タイムアウトになり，コマンドを受け付けません。

(4)　オプション

-t　MCF受信メッセージヘッダファイル名　　〜〈1〜14文字の英数字〉

受信メッセージに付けるヘッダセグメントを格納した，MCF受信メッセージファイルの名称を指定します。

このオプションの指定を省略すると，受信メッセージにヘッダセグメントを付けません。

-n

指定したサービスを，非トランザクションMHPとして実行します。このオプションの指定を省略すると，サービスはトランザクションMHPとして実行します。

(5)　コマンド引数

サービスグループ名　　〜〈1〜31文字の識別子〉

実行するサービスのあるサービスグループの名称を指定します。

サービス名　　〜〈1〜31文字の識別子〉

実行するサービスの名称を指定します。

MCF受信メッセージファイル名　　〜〈1〜14文字の英数字〉

受信メッセージを格納した，MCF受信メッセージファイルの名称を指定します。

5.1.7　utomsgout（送信メッセージの編集出力）

(1)　名称

送信メッセージの編集出力

(2)　形式

utomsgout〔{-i|-r 出力先ファイル名}〕〔-w〕〔{-o|-l}〕
          〔-f 関数名〕〔-n 番号〕〔-t 論理端末名称〕
          〔-s サービスグループ名〔,サービス名〕…〕
           MCF送信メッセージファイル名

(3)　機能

オンラインテスタが出力した送信メッセージ情報を編集して，標準出力に出力します。ただし，-rオプションを指定した場合は，標準出力には出力しないで，指定したファイルに出力します。

指定したMCF送信メッセージファイルにOpenTP1が送信メッセージを出力中の場合，コマンドエラーとなります。

各オプションは，次のように分類されます。

出力形式を変更するためのオプション ： -i，-r

出力対象を限定するためのオプション ： -f，-l，-n，-o，-s，-t，-w

フラグ引数を持つオプションを重複して指定すると，あとに指定したオプションが有効になります。

(4)　オプション

-i

送信メッセージの一覧を簡略した形式で表示します。

-rオプションとは同時に指定できません。

-r　出力先ファイル名　　〜〈パス名〉

指定したメッセージを出力するファイルの名称を指定します。指定したメッセージは，MCF受信メッセージファイルのデータ形式で出力されます。出力先のファイルは，そのままMCF受信メッセージファイルとして使用できます。

-iオプションとは同時に指定できません。

-i，および-rオプションの指定を両方とも省略すると，セグメント情報と送信メッセージ情報を標準出力に出力します。

-w

-rオプションで出力していないメッセージだけを編集して出力します。

このオプションの指定を省略すると，すべてのメッセージを編集して出力します。

-o

編集の対象となるメッセージの中で，いちばん古いメッセージを一つ出力する場合に指定します。

-lオプションとは同時に指定できません。

このオプションと-lオプションの指定を両方とも省略すると，すべてのメッセージを出力します。

-l

編集の対象となるメッセージの中で，いちばん新しいメッセージを一つ出力する場合に指定します。

-oオプションとは同時に指定できません。

このオプションと-oオプションの指定を両方とも省略すると，すべてのメッセージを出力します。

-f　関数名

特定の関数で取得したメッセージを出力する場合に指定します。指定できる関数名を次に示します。

send：dc_mcf_send関数

reply：dc_mcf_reply関数

execap：dc_mcf_execap関数

sendrecv：dc_mcf_sendrecv関数

sendsync：dc_mcf_sendsync関数

なお，MCFシミュレート機能では，dc_mcf_resend関数が発行されても送信メッセージは再送（再出力）されません。そのため，このオプションにdc_mcf_resend関数は指定できません。

-n　番号

出力するメッセージを番号で選択する場合に指定します。各メッセージの番号は，-iオプションで一覧表示して確認してください。

-nオプションと，-i，-rオプション以外のオプションを同時に指定すると，-nオプションの指定が優先されます。

-t　論理端末名称　　〜〈1〜8文字の識別子〉

送信先の論理端末名称をキーにして出力する場合，その論理端末名称を指定します。

-s　サービスグループ名　　〜〈1〜31文字の識別子〉

サービス名　　〜〈1〜31文字の識別子〉

特定のサービスで送信したメッセージ情報を出力する場合に，サービスグループ名とサービス名を一緒に指定します。このとき，サービスグループ名とサービス名の間を','（コンマ）で区切ります。

サービスグループごとに，複数のサービスを指定できます。複数のサービスを指定する場合，サービス名とサービス名の間を','で区切ります。','の前後に空白などは入れないでください。

サービス名だけでは指定できません。

サービス名の指定を省略すると，指定したサービスグループにあるすべてのサービスの送信メッセージ情報を編集して出力します。

このオプションの指定を省略すると，すべてのサービスグループにあるすべてのサービスで送信したメッセージ情報を出力します。

(5)　コマンド引数

MCF送信メッセージファイル名　　〜〈パス名〉

送信メッセージを格納した，MCF送信メッセージファイルの名称を指定します。

(6)　出力形式（-i，および-rオプションの指定を省略した場合）

編集出力した送信メッセージの情報

送信メッセージの取得時間（時：分：秒）

メッセージの長さ（10けた以内）

論理端末名称（8文字以内）

メッセージを送信したサービスグループ名（31文字以内）

サービスグループ名が不明の場合は，'****'を表示します。

メッセージを送信したサービス名（31文字以内）

サービス名が不明の場合は，'****'を表示します。

次の取得関数名のどれか

dc_mcf_send関数

dc_mcf_reply関数

dc_mcf_execap関数

dc_mcf_sendrecv関数

dc_mcf_sendsync関数

次のセグメント種別のどれか

M：中間セグメント

L：最終セグメント

マップ名

マップ名がない場合は，'****'を表示します。

相対ロケーション

ダンプ表示（16進数字）

アスキー文字表示

文字表示できない場合は，'.'（ピリオド）で表示します。

-i，および-rオプションの指定を省略した場合の出力例

(7)　出力形式（-iオプションを指定した場合）

ファイル内のメッセージ番号

メッセージを送信した関数名

send：dc_mcf_send関数

reply：dc_mcf_reply関数

execap：dc_mcf_execap関数

sendrecv：dc_mcf_sendrecv関数

sendsync：dc_mcf_sendsync関数

メッセージを送信したサービスグループ名（31文字以内）

サービスグループ名が不明の場合は，'****'を表示します。

メッセージを送信したサービス名（31文字以内）

サービス名が不明の場合は，'****'を表示します。

-iオプションを指定した場合の出力例

(8)　注意事項

MCFシミュレート関数で取得する送信メッセージは，関数発行時点でMCF送信メッセージファイルに書き込まれます。ロールバックが発生しても，MCF送信メッセージファイル内の送信メッセージは残ります。

utomsgoutコマンドの-rオプションで出力したメッセージのセグメント種別は，［M…］Lとなります。例えば，3セグメントで構成される論理メッセージを出力した場合F，M，Lとなるセグメント種別が，実際はM，M，Lと出力されます。M，M，Lと出力されても，このままオンラインテスタ，またはオフラインテスタの入力に使用できます。

5.1.8　utosppsvc（RPCインタフェースのSPPへのサービス要求）

(1)　名称

RPCインタフェースのSPPへのサービス要求

(2)　形式

utosppsvc サービスグループ名 サービス名 RPC要求データファイル名 〔RPC応答データファイル名〕

(3)　機能

RPCインタフェースのSPPに対して，特定のサービスの実行を要求します。ただし，トランザクショナルRPCを期待するSPP（サービス要求元であらかじめトランザクションを生成していることを前提とするSPP）に対して，サービスの実行を要求できません。また，RPCインタフェースのSPP以外のUAPに対してutosppsvcコマンドを実行すると，コマンドエラーとなります。

サービス要求後，システム共通定義のRPC最大応答待ち時間（watch_timeオペランドの指定値）を超えて応答がない場合は，送受信タイムアウトになり，コマンドを受け付けません。

また，このコマンドは，シミュレートMHPに対しては使用できません。

(4)　コマンド引数

サービスグループ名　　〜〈1〜31文字の識別子〉

実行するサービスのあるサービスグループの名称を指定します。

サービス名　　〜〈1〜31文字の識別子〉

実行するサービスの名称を指定します。

RPC要求データファイル名　　〜〈パス名〉

サービス要求時の入力データを格納した，RPC要求データファイルの名称を指定します。

RPC応答データファイル名　　〜〈パス名〉

サービス実行後の応答データを格納する，RPC応答データファイルの名称を指定します。

このコマンド引数の指定を省略すると，応答データは破棄されます。

なお，出力先のファイルがすでにある場合，そのファイルに上書きして出力します。ファイルがない場合は，オンラインテスタがファイルを作成して出力します。

5.1.9　utotrcmrg（UAPトレース情報のマージ）

(1)　名称

UAPトレース情報のマージ

(2)　形式

utotrcmrg -o トレースマージファイル名 トレースファイル名 トレースファイル名〔トレースファイル名 …〕

(3)　機能

指定した複数のトレースファイルのトレース情報を，サービスの実行順に並べ，指定したファイルに出力します。

まったく同じトレース情報が複数ある場合，一つだけ出力します。

異なるバージョンのオンラインテスタで取得したトレースファイルをマージした場合，マージ後のトレース情報の順番は実際の取得順序と異なることがあります。

(4)　オプション

-o　トレースマージファイル名　　〜〈パス名〉

マージしたトレース情報を出力する，トレースマージファイルの名称を指定します。

(5)　コマンド引数

トレースファイル名　　〜〈パス名〉

マージするトレースファイル，またはトレースマージファイルの名称を指定します。

(6)　注意事項

指定したトレースファイルにネスト管理できないバージョンのトレース情報がある場合，警告メッセージが出力され，時系列にマージされます。

ネスト管理に必要なトレース情報がない場合，警告メッセージが出力されます。

5.1.10　utotrcout（UAPトレース情報の編集出力）

(1)　名称

UAPトレース情報の編集出力

(2)　形式

utotrcout 〔-s サービスグループ名〔,サービス名〕…〕
          〔-v サーバ名〕〔-i〕〔-n〕
          〔-t 〔編集開始日時〕〔,編集終了日時〕〕編集対象ファイル名

(3)　機能

指定したトレースファイル，またはトレースマージファイルのトレース情報を編集して標準出力に出力します。

(4)　オプション

-s　サービスグループ名　　〜〈1〜31文字の識別子〉

サービス名　　〜〈1〜31文字の識別子〉

特定のサービスのトレース情報を編集出力する場合に，そのサービスを含むサービスグループの名称とサービスの名称を一緒に指定します。このとき，サービスグループ名とサービス名の間を','（コンマ）で区切ります。

サービスグループごとに，複数のサービスを指定できます。複数のサービスを指定する場合，サービス名とサービス名の間を','で区切ります。','の前後に空白などを入れないでください。また，サービス名だけでは指定できません。

サービス名の指定を省略すると，指定したサービスグループにあるすべてのサービスのトレース情報を編集出力します。

このオプションの指定を省略すると，指定したファイル内にあるすべてのサービスグループのトレース情報を編集出力します。

-vオプションと同時に指定すると，両方の条件を満たすトレース情報を編集出力します。

-nオプションと同時に指定すると，指定したサービスの要求先のトレース情報も編集出力します。

-v　サーバ名　　〜〈1〜8文字の識別子〉

特定のサーバのトレース情報を編集出力する場合に指定します。

このオプションの指定を省略すると，指定したファイル内にあるすべてのサーバのトレース情報を編集出力します。

-sオプションと同時に指定すると，両方の条件を満たすトレース情報を編集出力します。

-nオプションと同時に指定すると，指定したサーバの要求先のトレース情報も編集出力します。

-i

編集対象のファイル中に取得されているトレース情報の関数名など，一部の情報を標準出力に出力します。

このオプションの指定を省略すると，トレース情報のすべての情報を標準出力に出力します。

-n

編集対象のファイル中に取得されているトレース情報を，サービスの実行順に並べ替え，標準出力に出力します。

-t　編集開始日時，編集終了日時

トレース情報の編集範囲を編集対象日時で指定します。編集対象日時は，最初にサービス要求したプロセスの取得日時を基に，補正した日時です。

編集開始日時，および編集終了日時は，1970年1月1日0時0分0秒から，現在の日時までの範囲で指定します。

編集開始日時を省略すると，編集対象ファイルの先頭から，指定した編集終了日時までを出力します。

編集終了日時を省略すると，指定した編集開始日時から，編集対象ファイルの最後までを出力します。

編集開始日時，編集終了日時は，次の形式で指定します。

hhmmss〔MMDD〔YYYY〕〕

hh：時（00≦hh≦23）

mm：分（00≦mm≦59）

ss：秒（00≦ss≦59）

MM：月（01≦MM≦12）

DD：日（01≦DD≦31）

YY：年（西暦）（1970≦YY≦9999）

編集開始日時，または編集終了日時の「年」の指定を省略すると，当年の指定日時と見なされます。また，「年月日」の指定を省略すると，当年，当月，当日の指定時刻と見なされます。

なお，編集開始日時と編集終了日時のどちらかは，必ず指定してください。

(5)　コマンド引数

編集対象ファイル名　　〜〈パス名〉

編集するトレースファイルの名称，またはトレースマージファイルの名称を指定します。

(6)　出力形式（-iオプションを省略した場合）

テスタ情報

起動したUAPのサーバ名（8文字以内）

最初にサービス要求したプロセスの取得日時を基に補正した日時

年（西暦下2けた）/月/日△時：分：秒の形式

起動していたサービスがあるサービスグループの名称（31文字以内）

SUPの場合は，'****'を表示します。

テスタ情報，またはUAPトレースを取得した日時

年（西暦下2けた）/月/日△時：分：秒の形式

トレースを取得したエントリの順序番号（6けた）

該当するUAPトレースを取得したプロセスのプロセスID

UAPを起動したユーザのテストユーザID（4文字以内）

UAPトレース情報（uatdump -eコマンドの出力形式と同じ）

取得したトレース情報の種別

トレース情報を取得したタイミング

関数がサービス関数開始・終了の場合，表示しません。

テスタ情報，またはUAPトレースを取得した日時

年（西暦下2けた）/月/日△時：分：秒の形式

トレースを取得したエントリの順序番号（6けた）

UAPを起動したサービスの名称（31文字以内）

SUPまたはサービス名が特定できない場合は，'****'を表示します。

OpenTP1関数の呼び出し情報の出力領域

-iオプションを省略した場合の出力例

SPP起動時に取得したトレース情報

SUP起動時に取得したトレース情報

サービス実行時に取得したトレース情報

SUP終了時に取得したトレース情報

SPP終了時に取得したトレース情報

(7)　出力形式（-iオプションを指定した場合）

テスタ情報

最初にサービス要求したプロセスの取得日時を基に補正した日時

年（西暦下2けた）/月/日△時：分：秒の形式

テスタ情報を取得した日時

年（西暦下2けた）/月/日△時：分：秒の形式

該当するUAPトレースを取得したプロセスのプロセスID

起動したUAPのサーバ名（8文字以内）

起動していたサービスがあるサービスグループの名称（31文字以内）

SUPの場合は，'****'を表示します。

取得したUAPのネスト番号

ネスト管理できないトレース情報の場合は，'0'を表示します。

サービス要求元がシミュレートしたクライアントUAPや，TP1/ClientのUAPの場合，サービス要求先のネスト番号は1から表示します。

UAPトレース情報

取得したトレース情報の種別

トレース情報を取得したタイミング

関数がサービス関数開始・終了の場合は，UAPを起動したサービスの名称（31文字以内）を表示します。

-iオプションを指定した場合の出力例

SPP起動時に取得したトレース情報

SUP起動時に取得したトレース情報

サービス実行時に取得したトレース情報

SUP終了時に取得したトレース情報

SPP終了時に取得したトレース情報

(8)　注意事項

編集対象ファイル中に，このコマンドより古いバージョンのトレース情報がある場合，警告メッセージを出力し，指定したファイル内に格納されている順序どおりに編集出力します。

-nオプション指定時に，必要なトレース情報がない（途中のトレース情報が抜けている）場合，警告メッセージを出力します。

-nオプション指定時，-tオプションの編集開始日時に，編集対象日時と次のグループの編集対象日時との間の日時を指定した場合，次のグループ以降のトレース情報を編集対象とします。

-nオプション指定時，サービス要求先のトレース情報の編集対象日時が，-tオプションの編集終了日時を超えた場合でも，サービス要求元のネストのレベルに戻るまでのトレース情報を，編集対象とします。

全入出力データ取得を指定して取得したトレース情報がある場合，入出力データの途中でテスタ情報が出力されることがあります。

各オプションを組み合わせて指定した場合，有効となる組み合わせを次に示します。

指定するオプション

-s

-v

-n

-t

-i

-s

-s

-s，-v

-s，-n

-s，-t

-s，-i

-v

−

-v

-v，-n

-v，-t

-v，-i

-n

−

−

-n

-n，-t

-n，-i

-t

−

−

−

-t

-t，-i

-i

−

−

−

−

-i

（凡例）

-x：-xオプションだけ有効となります。

-x，-y：-x，-yオプションとも有効となります。

−：該当しません。

5.1.11　utoxsppsvc （XATMIインタフェースのSPPへのサービス要求）

(1)　名称

XATMIインタフェースのSPPへのサービス要求

(2)　形式

utoxsppsvc 〔-f 送受信制御ファイル名〕 サービス名
            タイプトバッファ定義ファイル名 XATMI要求データファイル名
           〔XATMI応答データファイル名〕

(3)　機能

XATMIインタフェースのSPPに対して，特定のサービスの実行を要求します。XATMIを使用したSPP以外のUAPに対してutoxsppsvcコマンドを実行すると，コマンドエラーとなります。

また，このコマンドは，シミュレートMHPに対しては使用できません。

(4)　オプション

-f　送受信制御ファイル名　　〜〈パス名〉

会話型でサービス要求する場合に，送受信手順を定義した，送受信制御ファイルの名称を指定します。

(5)　コマンド引数

サービス名　　〜〈1〜31文字の識別子〉

実行するサービスの名称を指定します。

タイプトバッファ定義ファイル名　　〜〈パス名〉

タイプトバッファの情報を定義した，タイプトバッファ定義ファイルの名称を指定します。

XATMI要求データファイル名　　〜〈パス名〉

サービス要求（コネクション確立）時の入力データを格納した，XATMI要求データファイルの名称を指定します。

XATMI応答データファイル名　　〜〈パス名〉

サービス実行中に受け取る受信データやサービス実行後の応答データを格納する，XATMI応答データファイルの名称を指定します。

このコマンド引数の指定を省略すると，応答データは破棄されます。

なお，出力先のファイルがすでにある場合，そのファイルに上書きして出力します。ファイルがない場合は，オンラインテスタがファイルを作成して出力します。

(6)　注意事項

複数サービスとの会話はできません。

サービス要求がリクエスト/レスポンス型か会話型かは，XATMI要求データファイル内の呼出し種別に設定します。

リクエスト/レスポンス型のサービス要求で-fオプションを指定すると，無視して処理を続行します。会話型のサービス要求で-fオプションを省略すると，コマンドエラーとなります。

トランザクション内からのサービス要求はシミュレートできません。

送受信制御ファイル内に有効な行がない場合は，エラーにはなりませんが，コネクション確立要求直後にコマンドが終了します。

受信データや応答データが一つも受け取れなかった場合，XATMI応答データファイルは作成されません。一つでもデータを受け取った場合は，その後エラーが発生してもファイルが作成され，エラーまでのデータは残ります。

タイプトバッファ定義ファイルに指定したタイプトバッファ長と，XATMI要求データファイルやXATMI応答データファイルに指定したデータ長が異なる場合は，データファイルのデータ不正となります。

タイプトバッファ定義ファイルに指定したタイプトバッファ長と，SPPが管理しているバッファ長が異なる場合，次のような現象が発生します。

utoxsppsvcコマンドでのサービス要求のエラー

utoxsppsvcコマンドでのデータ受信エラー

SPPでのデータ受信エラー

XATMI応答データファイルがすでにある場合，コマンド開始時にファイル内のデータを削除します。そのため，その後のデータ出力がなくても，ファイル内にあったデータは残りません。

6　障害対策

オンラインテスタに関連して発生する障害と，その対策について説明します。

6.1　オンラインテスタの障害対策

オンラインテスタの障害対策について説明します。オンラインテスタに関連しない障害については，マニュアル「OpenTP1 運用と操作」を参照してください。

6.1.1　障害発生時の現象と原因

オンラインテスタに関連する障害の現象と，推定できる原因を，次の表に示します。

表6‒1　オンラインテスタに関連する障害の現象と原因

現象

原因

対策記述個所

オンラインテスタのコマンドが正常終了しません。

システム定義でオンラインテスタの使用を定義していません。

6.1.2(1)

オプションまたはコマンド引数の指定が誤っています。

コマンドの実行に必要なファイルが使用できません。

UAPトレース情報が取得できません。

システム定義でテスト対象を指定していません。

6.1.2(2)

システム定義で最大トレースファイル容量に0を指定しています。

システム定義でUAPトレース格納最大数に0を指定しています。

送信メッセージが取得できません。

システム定義でテスト対象を指定していません。

6.1.2(3)

システム定義で最大MCF送信メッセージファイル容量に0を指定しています。

送信メッセージ量が上限値を超えています。

会話型のサービス要求での送信データが取得できません。

システム定義で送信データの出力を指定していません。

6.1.2(4)

テスト対象のUAPが開始できません。

テストユーザIDを設定していません。

6.1.4(1)

システム定義でテスト対象を指定していません。

テスト対象外のUAPが開始できません。

システム定義でテスト対象を指定しています。

6.1.4(2)

テスト対象のUAPでdc_rpc_open関数がエラーリターンします。

システム定義でオンラインテスタの使用を定義していません。

6.1.4(3)

テスト対象のUAPがテストユーザID：_utoで再起動されます。

OpenTP1本体とオンラインテスタとの間でUAPの状態管理に矛盾があります。

6.1.4(4)

テスト対象のUAPが異常終了後に回復しません。

テスト対象のUAPがデバッガと連動しています。

6.1.4(5)

デバッガと連動するUAPでタイムアウトエラーが頻繁に発生します。

ユーザサービス定義の各監視時間に，適切な値を指定していません。

6.1.4(6)

6.1.2　オンラインテスタの障害

オンラインテスタに障害が発生した場合の対処方法を説明します。

(1)　オンラインテスタのコマンドが正常終了しない場合

次の処置をしたあと，再度コマンドを実行してください。

システムサービス構成定義で，オンラインテスタの使用が定義されていない場合，OpenTP1をいったん停止させ，オンラインテスタの使用を定義（uto_confオペランドにYを指定）したあと，再度OpenTP1を起動してください。

コマンドのオプションまたはコマンド引数の指定が誤っている場合，正しいオプションまたはコマンド引数を指定してください。

コマンドの実行に必要なファイルがない，またはアクセス権限がないために使用できない場合，ファイルを作成するかアクセス権限を変更してください。

(2)　UAPトレース情報が取得できない場合

(a)　トレース情報がまったく取得できない場合

テスタサービス定義で，最大トレースファイル容量（max_trace_file_sizeオペランド）に0を指定している場合，OpenTP1をいったん停止させ，1以上の値を指定したあと，再度OpenTP1を起動してください。

(b)　特定のUAPでトレース情報が取得できない場合

次の処置をしてください。

ユーザサービス定義でテスト対象に指定していない場合，UAPをいったん停止させ，テスト対象に指定（test_modeオペランドにtargetを指定）したあと，再度UAPを起動してください。

ユーザサービス定義でUAPトレース格納最大数（uap_trace_maxオペランド）に0を指定している場合，UAPをいったん停止させ，1以上の値を指定したあと，再度UAPを起動してください。

(c)　途中からのトレース情報が取得できない場合

次の処置をしてください。

トレースファイルが満杯になっている場合，満杯になったトレースファイルを別のファイルに退避したあと，削除してください。

UAP実行中にオンラインが即時停止した場合，オンライン再開始後，再度UAPを実行させてください。

UAPが異常を検知したときに，退避コアファイルを取得しないで即時停止した場合，退避コアファイルを取得するようにプログラムを変更したあと，再度UAPを実行させてください。

(3)　送信メッセージが取得できない場合

(a)　送信メッセージがまったく取得できない場合

テスタサービス定義で最大MCF送信メッセージファイル容量（max_message_file_sizeオペランド）に0を指定している場合，OpenTP1をいったん停止させ，1以上の値を指定したあと，再度OpenTP1を起動してください。

(b)　特定のUAPで送信メッセージが取得できない場合

ユーザサービス定義でテスト対象に指定していない場合，UAPをいったん停止させ，テスト対象に指定（test_modeオペランドにtargetを指定）したあと，再度UAPを起動してください。

(c)　途中からの送信メッセージが取得できない場合

MCF送信メッセージファイルが満杯になっている場合，満杯になったMCF送信メッセージファイルを別のファイルに退避したあと，削除してください。

(4)　会話型サービス要求での送信データが取得できない場合

(a)　送信データがまったく取得できない場合

ユーザサービス定義で送信データの出力（test_xatmi_send_fileオペランド）にNを指定している場合，UAPをいったん停止させ，Yを指定したあと，再度UAPを起動してください。

6.1.3　ファイルの障害

オンラインテスタが作成するファイルに障害が発生した場合，エラーメッセージにファイル名と要因コードが表示されますので，それを基に原因を調査し，対処してください。

6.1.4　UAPの障害

UAPに関する障害が発生した場合の対処方法を説明します。

(1)　テスト対象のUAPを開始できない場合

次の処置をしたあと，再度UAPを起動してください。

テストユーザIDが設定されていない場合，テストユーザIDを設定してください。

テストユーザIDに誤りがある場合，正しいテストユーザIDを再度設定してください。

ユーザサービス定義でテスト対象に指定していない場合，UAPをいったん停止させ，テスト対象に指定（test_modeオペランドにtargetを指定）したあと，再度UAPを起動してください。

(2)　テスト対象外のUAPを開始できない場合

ユーザサービス定義でテスト対象に指定されている場合，テスト対象外に指定（test_modeオペランドにnoを指定）するか，またはその定義文を削除したあと，再度UAPを起動してください。

(3)　テスト対象のUAPでdc_rpc_open関数がエラーリターンする場合

システムサービス構成定義で，オンラインテスタの使用が定義されていない場合，OpenTP1をいったん停止させ，オンラインテスタの使用を定義（uto_confオペランドにYを指定）したあと，再度OpenTP1を起動してください。

(4)　テスト対象のUAPがテストユーザID：_utoで開始された場合

次のような場合，テスト対象のUAPがテストユーザIDに_utoを設定して再起動することがあります。

UAPの正常終了中にOpenTP1システム，またはそのUAPを強制終了させたあとに，UAPが再起動する場合

OpenTP1システムが異常終了したあとに，UAPが再起動する場合

このとき，テストユーザIDに_utoを設定して再起動する旨を知らせるメッセージが出力されます。このUAPを別のテストユーザIDで実行したい場合は，UAPをいったん停止させたあと，再度起動してください。

(5)　テスト対象のUAPが異常終了後に回復しない場合

テスト対象のUAPがデバッガと連動している場合，UAPが異常終了しても回復処理は行われません。このとき，UAPの回復を抑止する旨を知らせるメッセージが出力されます。このUAPを再起動する場合は，次の処置をしてください。

デバッガプロセスが残っている場合は，デバッガを停止させてください。

(6)　デバッガと連動するUAPでタイムアウトエラーが頻繁に発生する場合

ユーザサービス定義の各監視時間の指定値によって，デバッガと連動して起動したUAPで，タイムアウトエラーが頻繁に発生する場合があります。タイムアウトエラーが発生した場合の現象と関連する定義の内容を，次の表に示します。

表6‒2　デバッガと連動するUAPで発生するタイムアウトエラーの現象と関連する定義内容

現象

関連するユーザサービス定義のset形式

dc_rpc_call関数がタイムアウトしてエラーリターンします。

set watch_time

タイムアウトエラーによって，該当するトランザクションブランチのプロセスが異常終了して，回復処理が行われます。その後，UAPが強制終了となります。

set trn_expiration_time

set trn_cpu_time

タイムアウトエラーによって，該当するUAPが異常終了して，UAPが強制終了となります。

set watch_next_chain_time

タイムアウトエラーによって，該当するUAPが異常終了しますが，サービスグループの閉塞が行われず，UAPは強制終了となります。

set term_watch_time

第3編　オンラインテスタ（TP1/Message Control/Tester）

7　機能

TP1/Message Controlオンラインテスタの次に示す機能について説明します。

・TP1/Message Control以外の資源更新処理の無効化

・送信メッセージの無効化

・アプリケーション起動メッセージの無効化

・エラーイベントの抑止

・MHPの自動閉塞機能の抑止

・UAPトレース情報の取得

7.1　MHPのテスト

TP1/Message Controlオンラインテスタ（以降，MCFオンラインテスタと呼びます）では，新規に作成したMHP，または変更したMHPをテストし，動作を確認できます。ただし，テストするMHPは，次に示す二つの条件を同時に満たしている必要があります。

トランザクション内のMHPである

TP1/Message Controlから直接起動されるMHPである

MHPをテストするためには，まずMCFオンラインテスタの使用宣言コマンド（mcfutfstコマンド）を実行して，MCFオンラインテスタの機能を使用できる状態にします。その後，テスト開始コマンド（mcftulesコマンド，mcfauapsコマンド，またはmcftusgsコマンド）を実行してテストを開始します。なお，MCFオンラインテスタの機能が使用できるかどうかを，状態表示コマンド（mcflsutfコマンド）で確認できます。

MCFオンラインテスタでは，次に示す単位でテストができます。

論理端末単位

アプリケーション単位

サービスグループ単位

テスト単位によってテスト開始のコマンドが異なります。

論理端末単位の場合，mcftulesコマンドを使用します。テスト範囲は，mcftulesコマンドに指定した論理端末からのメッセージをアプリケーションが受け取ってから，テスト中のメッセージがなくなるまでの間です。

アプリケーション単位の場合，mcfauapsコマンドを使用します。テスト範囲は，mcfauapsコマンドで指定したアプリケーションがメッセージを受け取ってからテスト中のメッセージがなくなるまでの間です。なお，アプリケーション単位でテストする場合は，mcfauapsコマンドの-kオプションで，テストするアプリケーションの種別を指定できます。指定できる種別は，ユーザアプリケーション，またはMCFイベントです。

サービスグループ単位の場合，mcftusgsコマンドを使用します。テスト範囲は，mcftusgsコマンドで指定したサービスグループが起動している間です。

また，テスト開始コマンドには，ユーザが使用するMCFオンラインテスタの機能を，オプションで指定します。指定できる機能を次に示します。

7.1.1　MCF以外の資源更新処理の無効化

テスト中のMHPがメッセージ処理中に更新したMCF以外のリソースマネジャの資源を，トランザクション終了時，更新前の状態に回復します。そのため，テスト後に資源を回復する必要はありません。

この機能を使用する場合，テスト開始コマンドの-eオプションにbackoutを指定します。

7.1.2　送信メッセージの無効化

テスト中のMHPが送信したメッセージを無効にします。そのため，オンラインの業務に影響を与えないでMHPをテストできます。

無効になるのは，テスト中のMHPが発行した次に示す関数によって送信されるメッセージです。

dc_mcf_send関数（メッセージの送信）

dc_mcf_sendsync関数（同期型のメッセージの送信）

dc_mcf_resend関数（メッセージの再送）

この機能を使用する場合，テスト開始コマンドの-eオプションにswmsgを指定します。

なお，次に示す関数によって送信されるメッセージは無効にできません。

dc_mcf_reply関数（応答メッセージの送信）

dc_mcf_sendrecv関数（同期型のメッセージの送受信）

7.1.3　アプリケーション起動メッセージの無効化

テスト中のMHPが送信した，分岐のアプリケーション起動メッセージを無効にします。そのため，オンラインの業務に影響を与えないでMHPをテストできます。

この機能を使用する場合，テスト開始コマンドの-eオプションにexecapを指定します。

なお，応答メッセージに関するアプリケーション起動メッセージは無効にできません。

7.1.4　エラーイベントの抑止

テスト中のMHPで発生するエラーイベントを抑止します。そのため，オンラインの業務に影響を与えないでMHPをテストできます。

抑止できるエラーイベントを次に示します。

不正アプリケーション名検出通知イベント（ERREVT1）

ただし，抑止できるのは論理端末単位のテストの場合だけです。

dc_mcf_receive関数を発行する前に異常終了して通知されるメッセージ廃棄通知イベント（ERREVT2）

閉塞に伴って発生するメッセージ廃棄通知イベント（ERREVT2）

MHP実行中に異常終了して通知されるUAP異常終了通知イベント（ERREVT3）

この機能を使用する場合，テスト開始コマンドの-eオプションにerrevtを指定します。

なお，次に示すエラーイベントは抑止できません。

未処理送信メッセージ廃棄イベント（ERREVTA）

タイマ起動メッセージ廃棄通知イベント（ERREVT4）

7.1.5　MHPの自動閉塞機能の抑止

MHPが異常終了したときに働くMHPの自動閉塞機能を抑止します。そのため，運用コマンドを入力して閉塞解除する必要はありません。

この機能を使用する場合，テスト開始コマンドの-eオプションにholdlimitを指定します。

テスト開始コマンドを実行したあとは，MCFオンラインテスタを使用しない場合と同様の手順でアプリケーションを起動します。

メッセージの受信から送信までのトランザクション処理の例を次の図に示します。MHPが異常終了した場合は，トランザクションを開始する前の状態に回復されます。

図7‒1　メッセージ受信から送信までのトランザクション処理の例

（説明）

テスト中の送信メッセージは，次に示す表に従った扱いになります。

メッセージ種別

テスト開始コマンドの指定

swmsg指定あり

swmsg指定なし

問い合わせ応答メッセージ

送信する

送信する

分岐メッセージ

送信しない※

送信する

注※

送信時にインタフェースをチェックし，エラーのときはエラーステータスコードを返します。

TP1/Message Control以外のリソースマネジャの資源を，テスト開始前の状態に回復する指定をしている場合，TP1/Message Control以外のリソースマネジャの資源を回復します。

資源回復の指定がない場合，更新した資源は更新したままとなります。

送信メッセージがあれば，送信メッセージを出力します。

7.2　テスト情報の取得

7.2.1　UAPトレース情報の取得

テスト中のMHPのトレース情報を取得できます。そのため，テスト中のMHPの動作を確認できます。ただし，TP1/Server Baseのオンラインテスタを使用する必要があります。

この機能を使用する場合，MCFオンラインテスタの使用宣言コマンド（mcfutfstコマンド）の-uオプションにテストユーザIDを指定し，テスト開始コマンド（mcftulesコマンド，mcfauapsコマンド，またはmcftusgsコマンド）の-eオプションにtraceを指定します。

8　テストの実行

テストの開始と終了，テストモードが重複した場合の扱い，テストモード情報の引き継ぎと編集について説明します。

8.1　テストの開始と終了

テスト開始コマンド（mcftulesコマンド，mcfauapsコマンド，またはmcftusgsコマンド）実行からテスト終了コマンド（mcftuleeコマンド，mcfauapeコマンド，またはmcftusgeコマンド）実行までの，MCFオンラインテスタの機能が有効である状態をテストモードといいます。

8.1.1　テストの開始とテスト環境の指定

MCFオンラインテスタの使用宣言コマンド（mcfutfstコマンド）を実行してMCFオンラインテスタの機能を使用できる状態にしたあと，テスト開始コマンドでテストの開始を宣言し，テスト環境（ユーザが使用するMCFオンラインテスタの機能）を指定します。テスト開始コマンドの指定内容をテストモード情報といいます。

MCFオンラインテスタの機能が使用できる状態かどうかは，MCFオンラインテスタの状態表示コマンド（mcflsutfコマンド）を実行すると，確認できます。

(1)　テストの開始

(a)　論理端末単位のテスト

mcftulesコマンドでテストを開始します。

mcftulesコマンドを実行すると，指定した名称の論理端末から起動するアプリケーションが，すべてテストモードになります。この状態を論理端末がテストモードであるといいます。

(b)　アプリケーション単位のテスト

mcfauapsコマンドでテストを開始します。

mcfauapsコマンドを実行すると，指定した名称のアプリケーションがテストモードになります。この状態をアプリケーションがテストモードであるといいます。

アプリケーションのテストは，既存のユーザアプリケーションプログラムにアプリケーションの処理を新規に追加した場合に実行します。

(c)　サービスグループ単位のテスト

mcftusgsコマンドでテストを開始します。

mcftusgsコマンドを実行すると，指定した名称のサービスグループがテストモードになります。この状態をサービスグループがテストモードであるといいます。

(d)　テスト開始コマンド実行時の注意

なお，テスト開始コマンドは，コネクションを閉塞してメッセージ送受信のない状態にしてから実行してください。メッセージ送受信中にテスト開始コマンドを実行すると，該当するアプリケーションが次に起動されたときからテストモードになります。

(2)　テスト環境の指定

テスト開始コマンドに，次に示すテスト環境を指定します。

TP1/Message Control以外の資源更新処理の無効化

送信メッセージの無効化

アプリケーション起動メッセージの無効化

エラーイベントの抑止

MHPの自動閉塞機能の抑止

UAPトレース情報の取得

(3)　テストモードの有効範囲

テストモードのアプリケーションに対する入力メッセージ，およびテストモードの論理端末から入力したメッセージを，テストモードメッセージといいます。

テストモードの有効範囲は，MHPがテストモードメッセージを受信してから，テスト中のメッセージがなくなるまでの間です。

8.1.2　テストの終了

運用コマンドを入力できるワークステーションからテスト終了コマンド（mcftuleeコマンド，mcfauapeコマンド，またはmcftusgeコマンド）を入力して，テストの終了を宣言します。

テスト終了コマンドを実行すると，指定した論理端末，アプリケーション，またはサービスグループのテストモードが解除されます。

8.2　テストモードの重複

あるアプリケーションに対して，テストモードになる指示単位が二つ以上ある場合，そのアプリケーションに対するテスト環境は，論理端末，アプリケーション，サービスグループの順に有効になります。

例えば，あるアプリケーションをテストモードの論理端末から入力する場合，該当するアプリケーションのテスト環境をmcfauapsコマンドで指定しても，mcftulesコマンドで指定した論理端末のテスト環境が有効になります。テストモードでない論理端末から入力したアプリケーションに対してmcfauapsコマンドでテスト環境を指定した場合は，そのテスト環境が有効になります。

論理端末とアプリケーションのテストモードの重複指定に関する扱いを，次の表に示します。

表8‒1　テストモードの重複指定に関する扱い

論理端末

アプリケーション

サービスグループ

テストモード情報が有効な単位

○

○

○

論理端末

×

論理端末

×

○

論理端末

×

論理端末

×

○

○

アプリケーション

×

アプリケーション

×

○

サービスグループ

×

−

（凡例）

○：テスト指定があります。

×：テスト指定がありません。

−：該当しません。

8.3　テストモード情報の引き継ぎ

テスト開始コマンドで指定したテストモード情報は，テスト中のMHPがdc_mcf_execap関数（アプリケーションプログラムの起動）を発行した場合，起動先のMHPに引き継がれます。

テストモード情報の引き継ぎを次の表に示します。

表8‒2　テストモード情報の引き継ぎ

論理端末

アプリケーション

サービスグループ

dc_mcf_execapで指定したアプリケーション

○

×

サービスグループ

サービスグループ

○

×

○

×

○

○

○

論理端末に対するテストモード情報を引き継ぎます。

×

×

○

×

×

○

○

dc_mcf_execapで指定したアプリケーションに対するテストモード情報を引き継ぎます。

dc_mcf_execapで起動されたMHPに対するテストモード情報を引き継ぎます。

起動元のアプリケーションに対するテストモード情報を引き継ぎます。

×

×

○

起動元のMHPに対するテストモード情報を引き継ぎます。

×

−

（凡例）

○：テスト指定があります。

×：テスト指定がありません。

−：該当しません。

8.4　テスト情報の編集

8.4.1　テストモード情報の表示

テスト開始コマンドで指定した論理端末，アプリケーションまたはサービスグループ（MHP）のテストモード情報は，テストモード情報の表示コマンド（mcftulsle，mcfaulsap，またはmcftulssgコマンド）を入力すると，標準出力に出力できます。そのため，オペレータはオンライン中のテスト状況をつかめ，テストを監視できます。

8.4.2　UAPトレース情報の取得

MHPのUAPトレース情報を取得するためには，あらかじめ次に示す指定をしておく必要があります。

システムサービス構成定義でuto_conf=Yと指定

テスタサービス定義のmax_trace_file_sizeに最大トレースファイル容量を指定

ユーザサービス定義でtest_mode=noと指定

MCFオンラインテスタの使用宣言コマンドの-uオプションにテストユーザIDを指定

MCFオンラインテスタのテスト開始コマンドの-eオプションにtraceを指定

8.4.3　UAPトレース情報のマージ・編集出力

MHPのUAPトレース情報を取得し，オンラインテスタのutotrcoutコマンドを実行すると，MHPのトレース情報を編集して，標準出力に出力できます。出力形式はTP1/Server Baseのオンラインテスタの仕様に従います。

なお，次に示す関数のトレース情報は出力されません。

dc_mcf_open関数

dc_mcf_close関数

dc_mcf_regster関数

dc_mcf_mainloop関数

MHPのトレース情報を出力するディレクトリは，「$DCDIR/spool/uto/テストユーザID」となります。テストユーザIDは，MCFオンラインテスタの使用宣言コマンドの-uオプションに指定したテストユーザIDです。

なお，MHPのトレースファイルには，「trace1」と「trace2」の二つがあります。テスタサービス定義で指定した最大トレースファイル容量を超える書き込みが発生すると，ファイルが切り替わります。このとき，トレースファイルが満杯になって切り替わった旨のメッセージが出力されます。このメッセージが出力されたら，ユーザは満杯になったトレースファイルの内容を別ファイルにコピーしたあと，満杯になったトレースファイルを削除してください。

システムサービス構成定義，テスタサービス定義，およびユーザサービス定義については「3.1　オンラインテスタのシステム定義」を参照してください。また，utotrcoutコマンドについては「5.1　テストで使用する運用コマンド」を参照してください。

9　運用コマンド

MCFオンラインテスタで使用する運用コマンドについて説明します。

9.1　テストで使用する運用コマンド

MCFオンラインテスタで使用できる運用コマンドについて説明します。運用コマンドの形式，規則などについては，マニュアル「OpenTP1 運用と操作」を参照してください。

テストで使用する運用コマンドの一覧を，次の表に示します。

表9‒1　テストで使用する運用コマンドの一覧

コマンド名

機能

mcfutfst

MCFオンラインテスタの使用を宣言します。

mcflsutf

MCFオンラインテスタの状態を表示します。

9.1.1　mcfutfst（MCFオンラインテスタの使用宣言）

(1)　名称

MCFオンラインテスタの使用宣言

(2)　形式

mcfutfst 〔-u テストユーザID〕

(3)　機能

MCFオンラインテスタの使用を宣言します。

mcfutfstコマンドを実行してMCFオンラインテスタの使用を宣言しないと，mcfutfstコマンド，およびmcflsutfコマンド以外のMCFオンラインテスタのコマンドは受け付けられません。

すでにMCFオンラインテスタの使用を宣言している場合は，mcfutfstコマンドは受け付けられません。

mcfutfstコマンドは，コネクションを閉塞してメッセージ送受信のない状態にしてから実行してください。

なお，MCFオンラインテスタはTP1/Message Control終了時に終了します。

(4)　オプション

-u　テストユーザID　　〜〈1〜4文字の識別子〉

トレースファイルのディレクトリを決めるテストユーザIDを指定します。

MHPのトレース情報を取得する場合は，このオプションを必ず指定してください。

9.1.2　mcflsutf（MCFオンラインテスタの状態表示）

(1)　名称

MCFオンラインテスタの状態表示

(2)　形式

mcflsutf

(3)　機能

MCFオンラインテスタの機能が使用できる状態かどうかを標準出力に出力します。

MCFオンラインテスタの機能を使用する場合は，mcfutfstコマンドを実行して，MCFオンラインテスタの使用を宣言しておく必要があります。

(4)　出力形式

A00  MCFモード=TEST テストユーザID=mhp
 1.             2.                3.

MCFマネジャプロセス識別子，およびMCF通信プロセス識別子

MCFモードの表示

TEST：MCFオンラインテスタの機能が使用できる状態

NORMAL：MCFオンラインテスタの機能が使用できない状態

テストユーザIDが指定されていない場合は，'****'を表示します。

9.2　論理端末単位のテストで使用する運用コマンド

MCFオンラインテスタの，論理端末単位のテストで使用するコマンドについて説明します。運用コマンドの形式，規則などについては，マニュアル「OpenTP1 運用と操作」を参照してください。

論理端末単位のテストで使用する運用コマンドの一覧を，次の表に示します。

表9‒2　論理端末単位のテストで使用する運用コマンドの一覧

コマンド名

機能

mcftulsle

論理端末のテストモード情報を表示します。

mcftules

論理端末単位のテストを開始します。

mcftulee

論理端末単位のテストを終了します。

9.2.1　mcftulsle（論理端末のテストモード情報の表示）

(1)　名称

論理端末のテストモード情報の表示

(2)　形式

mcftulsle -l 論理端末名称

(3)　機能

指定した論理端末のテストモード情報を標準出力に出力します。

(4)　オプション

-l　論理端末名称　　〜〈1〜8文字の識別子〉

テストモード情報を表示する論理端末の名称を指定します。

論理端末名称に '*'を指定すると，テストモードのすべての論理端末についてテストモード情報を表示します。また，論理端末名称の先行文字列に続いて '*'を指定（先行文字列*）すると，先行文字列で始まるすべての論理端末のテストモード情報を表示します。

複数の論理端末名称は指定できません。

(5)　出力形式

A01 LEual1 back trac swms erre exec hold
 1.   2.    3.   4.   5.   6.   7.   8.

MCFマネジャプロセス識別子，およびMCF通信プロセス識別子

論理端末名称（8文字以内）

トランザクション終了時，資源をテスト前の状態に回復するかどうかの表示

back：回復する

nobk：回復しない

テストモードのトランザクションの処理中に，MHPのトレース情報を取得するかどうかの表示

trac：取得する

notr：取得しない

テストモードのトランザクションが発行した送信メッセージを無効にするかどうかの表示

swms：無効にする

nosw：無効にしない

エラーイベントの起動を抑止するかどうかの表示

erre：抑止する

noer：抑止しない

テストモードのトランザクションが発行したアプリケーション起動メッセージを無効にするかどうかの表示

exec：無効にする

noex：無効にしない

テストモードのトランザクションが異常終了した場合に，MHPの自動閉塞機能を抑止するかどうかの表示

hold：抑止する

noho：抑止しない

9.2.2　mcftules（論理端末単位のテストの開始）

(1)　名称

論理端末単位のテストの開始

(2)　形式

mcftules 〔-e "〔{backout|ba}〕 〔{trace|tr}〕 〔{swmsg|sw}〕
         〔{errevt|er}〕 〔{execap|ex}〕 〔{holdlimit|ho}〕"〕

          -l 論理端末名称

(3)　機能

指定した論理端末をテストモードにし，テストを開始します。

mcftulesコマンドは，コネクションを閉塞してメッセージ送受信のない状態にしてから実行してください。

(4)　オプション

-e

テストモードのオプションを指定します。

複数のフラグ引数を指定するときは，引用符（"）で囲んで，フラグ引数とフラグ引数との間を空白で区切ります。

（フラグ引数）

backout

トランザクション終了時，テスト中にトランザクションで使用した資源をテスト前の状態に回復します。

このフラグ引数の指定を省略すると，テスト前の状態に回復しないで，テスト中に更新した資源の状態が有効になります。

trace

テストモードのトランザクションの処理中に，MHPのUAPトレース情報を取得します。

このフラグ引数の指定を省略すると，MHPのUAPトレース情報は取得されません。

swmsg

テストモードのトランザクションの処理中にMHPが送信したメッセージを無効にします。無効になるのは，テスト中のMHPが発行した次に示す関数によって送信されるメッセージです。

・dc_mcf_send関数（メッセージの送信）

・dc_mcf_sendsync関数（同期型のメッセージの送信）

・dc_mcf_resend関数（メッセージの再送）

このフラグ引数の指定を省略すると，これらの関数によって送信したメッセージが有効になります。

errevt

テスト中にエラーイベントが発生した場合，エラーイベントの起動を抑止します。抑止できるエラーイベントを次に示します。

・不正アプリケーション名検出通知イベント（ERREVT1）

・dc_mcf_receive関数を発行する前に異常終了して通知されるメッセージ廃棄通知イベント（ERREVT2）

・閉塞に伴って発生するメッセージ廃棄通知イベント（ERREVT2）

・MHP実行中に異常終了して通知されるUAP異常終了通知イベント（ERREVT3）

このフラグ引数の指定を省略すると，これらのエラーイベントの起動は抑止されません。

execap

テストモードのトランザクションが発行した分岐のアプリケーション起動メッセージを無効にします。

このフラグ引数の指定を省略すると，分岐のアプリケーション起動メッセージが有効になります。

holdlimit

テストモードのMHPが異常終了した場合に，MHPの自動閉塞機能を抑止します。

このフラグ引数の指定を省略すると，MHPの自動閉塞機能は抑止されません。

-l　論理端末名称　　〜〈1〜8文字の識別子〉

テストを開始する論理端末の名称を指定します。

論理端末名称に'*'および'先行文字列*'と指定した一括指定はできません。

複数の論理端末名称は指定できません。

9.2.3　mcftulee（論理端末単位のテストの終了）

(1)　名称

論理端末単位のテストの終了

(2)　形式

mcftulee -l 論理端末名称

(3)　機能

指定した論理端末のテストモードを解除し，テストを終了します。

(4)　オプション

-l　論理端末名称　　〜〈1〜8文字の識別子〉

テストを終了する論理端末の名称を指定します。

論理端末名称に'*'および'先行文字列*'と指定した一括指定はできません。

複数の論理端末名称は指定できません。

9.3　アプリケーション単位のテストで使用する運用コマンド

MCFオンラインテスタの，アプリケーション単位のテストで使用するコマンドについて説明します。運用コマンドの形式，規則などについては，マニュアル「OpenTP1 運用と操作」を参照してください。

アプリケーション単位のテストで使用する運用コマンドの一覧を，次の表に示します。

表9‒3　アプリケーション単位のテストで使用する運用コマンドの一覧

コマンド名

機能

mcfaulsap

アプリケーションのテストモード情報を表示します。

mcfauaps

アプリケーション単位のテストを開始します。

mcfauape

アプリケーション単位のテストを終了します。

9.3.1　mcfaulsap（アプリケーションのテストモード情報の表示）

(1)　名称

アプリケーションのテストモード情報の表示

(2)　形式

mcfaulsap -s {MCF通信プロセス識別子|アプリケーション起動プロセス識別子}
          -a アプリケーション名 〔-k アプリケーション名種別〕

(3)　機能

指定したアプリケーションのテストモード情報を標準出力に出力します。

(4)　オプション

-s　MCF通信プロセス識別子｜アプリケーション起動プロセス識別子

〜〈16進数字〉((01〜ef))

MCF通信プロセス識別子，またはアプリケーション起動プロセス識別子を指定します。

ERREVT，またはdc_mcf_execap関数で指定したアプリケーションをテストする場合，アプリケーション起動プロセス識別子を指定します。そのほかの場合はMCF通信プロセス識別子を指定します。

複数のMCF通信プロセス識別子，または複数のアプリケーション起動プロセス識別子は指定できません。

-a　アプリケーション名　　〜〈1〜8文字の識別子〉

テストモード情報を表示するアプリケーションの名称を指定します。

アプリケーション名に '*'を指定すると，テストモードのすべてのアプリケーションについてテストモード情報を表示します。また，アプリケーション名の先行文字列に続いて '*'を指定（先行文字列*）すると，先行文字列で始まるすべてのアプリケーションのテストモード情報を表示します。

複数のアプリケーション名は指定できません。

-k　アプリケーション名種別

-aオプションで指定するアプリケーションの種別を指定します。

user：ユーザアプリケーション

mcf：MCFイベント

このオプションの指定を省略すると，-aオプションで指定するアプリケーション名は，ユーザアプリケーション名であると仮定されます。

(5)　出力形式

A01 user aprep01 back trac swms erre exec hold
 1.   2.    3.    4.   5.   6.   7.   8.   9.

MCFマネジャプロセス識別子，MCF通信プロセス識別子，またはアプリケーション起動プロセス識別子

アプリケーション名種別の表示

user：ユーザアプリケーション

mcf：MCFイベント

アプリケーション名，またはMCFイベント名

トランザクション終了時，資源をテスト前の状態に回復するかどうかの表示

back：回復する

nobk：回復しない

テストモードのトランザクションの処理中に，MHPのトレース情報を取得するかどうかの表示

trac：取得する

notr：取得しない

テストモードのトランザクションが発行した送信メッセージを無効にするかどうかの表示

swms：無効にする

nosw：無効にしない

エラーイベントの起動を抑止するかどうかの表示

erre：抑止する

noer：抑止しない

テストモードのトランザクションが発行したアプリケーション起動メッセージを無効にするかどうかの表示

exec：無効にする

noex：無効にしない

テストモードのトランザクションが異常終了した場合に，MHPの自動閉塞機能を抑止するかどうかの表示

hold：抑止する

noho：抑止しない

9.3.2　mcfauaps（アプリケーション単位のテストの開始）

(1)　名称

アプリケーション単位のテストの開始

(2)　形式

mcfauaps -s {MCF通信プロセス識別子|アプリケーション起動プロセス識別子}
        〔-e "〔{backout|ba}〕 〔{trace|tr}〕 〔{swmsg|sw}〕
        〔{errevt|er}〕 〔{execap|ex}〕 〔{holdlimit|ho}〕"〕
         -a アプリケーション名 〔-k アプリケーション名種別〕

(3)　機能

指定したアプリケーションをテストモードにし，テストを開始します。

mcfauapsコマンドは，コネクションを閉塞してメッセージ送受信のない状態にしてから実行してください。

(4)　オプション

-s　MCF通信プロセス識別子｜アプリケーション起動プロセス識別子

〜〈16進数字〉((01〜ef))

MCF通信プロセス識別子，またはアプリケーション起動プロセス識別子を指定します。

dc_mcf_execap関数で指定したアプリケーションをテストする場合，アプリケーション起動プロセス識別子を指定します。ERREVTをテストする場合は，次の表に従って指定します。そのほかの場合はMCF通信プロセス識別子を指定します。

複数のMCF通信プロセス識別子，または複数のアプリケーション起動プロセス識別子は指定できません。

表9‒4　ERREVTをテストする場合に指定する識別子（mcfauapsコマンド）

テストするERREVT

指定する識別子

MCF通信プロセス識別子

アプリケーション起動プロセス識別子

不正アプリケーション名通知イベント（ERREVT1）

○

×

dc_mcf_receive関数を発行する前に異常終了して通知されるメッセージ廃棄イベント（ERREVT2）

×

○

閉塞に伴って発生するメッセージ廃棄イベント（ERREVT2）

○※

○※

MHP実行中に異常終了して通知されるUAP異常終了通知イベント（ERREVT3）

×

○

（凡例）

○：指定してください。

×：指定しないでください。

注※

MCF通信プロセス識別子とアプリケーション起動プロセス識別子を，両方とも指定します。

-e

テストモードのオプションを指定します。

複数のフラグ引数を指定するときは，引用符（"）で囲んで，フラグ引数とフラグ引数との間を空白で区切ります。

（フラグ引数）

backout

トランザクション終了時，テストモードのトランザクションで使用した資源をテスト前の状態に回復します。

このフラグ引数の指定を省略すると，テスト前の状態に回復しないで，テスト中に更新した資源の状態が有効になります。

trace

テストモードのトランザクションの処理中に，MHPのUAPトレース情報を取得します。

このフラグ引数の指定を省略すると，MHPのUAPトレース情報は取得されません。

swmsg

テストモードのトランザクションの処理中にMHPが送信したメッセージを無効にするかどうかを指定します。無効になるのは，テスト中のMHPが発行した次に示す関数によって送信されるメッセージです。

・dc_mcf_send関数（メッセージの送信）

・dc_mcf_sendsync関数（同期型のメッセージの送信）

・dc_mcf_resend関数（メッセージの再送）

このフラグ引数の指定を省略すると，これらの関数によって送信されるメッセージが有効になります。

errevt

テスト中にエラーイベントが発生した場合，エラーイベントの起動を抑止します。抑止できるエラーイベントを次に示します。

・不正アプリケーション名検出通知イベント（ERREVT1）

ただし，抑止できるのは論理端末単位のテストの場合だけです。

・dc_mcf_receive関数を発行する前に異常終了して通知されるメッセージ廃棄通知イベント（ERREVT2）

・閉塞に伴って発生するメッセージ廃棄通知イベント（ERREVT2）

・MHP実行中に異常終了して通知されるUAP異常終了通知イベント（ERREVT3）

このフラグ引数の指定を省略すると，これらのエラーイベントの起動は抑止されません。

execap

テストモードのトランザクションが発行した，分岐のアプリケーション起動メッセージを無効にします。

このフラグ引数の指定を省略すると，分岐のアプリケーション起動メッセージが有効になります。

holdlimit

テストモードのMHPが異常終了した場合に，MHPの自動閉塞機能を抑止します。

このフラグ引数の指定を省略すると，MHPの自動閉塞機能は抑止されません。

-a　アプリケーション名　　〜〈1〜8文字の識別子〉

テストを開始するアプリケーションの名称を指定します。

アプリケーション名に'*'および'先行文字列*'と指定した一括指定はできません。

複数のアプリケーション名は指定できません。

-k　アプリケーション名種別

-aオプションで指定するアプリケーションの種別を指定します。

user：ユーザアプリケーション

mcf：MCFイベント

このオプションの指定を省略すると，-aオプションで指定するアプリケーション名は，ユーザアプリケーション名であると仮定されます。

9.3.3　mcfauape（アプリケーション単位のテストの終了）

(1)　名称

アプリケーション単位のテストの終了

(2)　形式

mcfauape -s {MCF通信プロセス識別子|アプリケーション起動プロセス識別子}
         -a アプリケーション名  〔-k アプリケーション名種別〕

(3)　機能

指定したアプリケーションのテストモードを解除し，テストを終了します。

(4)　オプション

-s　MCF通信プロセス識別子｜アプリケーション起動プロセス識別子

〜〈16進数字〉((01〜ef))

MCF通信プロセス識別子，またはアプリケーション起動プロセス識別子を指定します。

dc_mcf_execap関数で指定したアプリケーションをテストする場合，アプリケーション起動プロセス識別子を指定します。ERREVTをテストする場合は，次の表に従って指定します。そのほかの場合はMCF通信プロセス識別子を指定します。

複数のMCF通信プロセス識別子，または複数のアプリケーション起動プロセス識別子は指定できません。

表9‒5　ERREVTをテストする場合に指定する識別子（mcfauapeコマンド）

テストするERREVT

指定する識別子

MCF通信プロセス識別子

アプリケーション起動プロセス識別子

不正アプリケーション名通知イベント（ERREVT1）

○

×

dc_mcf_receive関数を発行する前に異常終了して通知されるメッセージ廃棄イベント（ERREVT2）

×

○

閉塞に伴って発生するメッセージ廃棄イベント（ERREVT2）

○※1

○※2

MHP実行中に異常終了して通知されるUAP異常終了通知イベント（ERREVT3）

×

○

（凡例）

○：指定してください。

×：指定しないでください。

注※1

受信メッセージによる起動先が閉塞の場合です。

注※2

dc_mcf_execap関数による起動先が閉塞の場合です。

-a　アプリケーション名　　〜〈1〜8文字の識別子〉

テストを終了するアプリケーションの名称を指定します。

アプリケーション名に'*'および'先行文字列*'と指定した一括指定はできません。

複数のアプリケーション名は指定できません。

-k　アプリケーション名種別

-aオプションで指定するアプリケーションの種別を指定します。

user：ユーザアプリケーション

mcf：MCFイベント

このオプションの指定を省略すると，-aオプションで指定するアプリケーション名は，ユーザアプリケーション名であると仮定されます。

9.4　サービスグループ単位のテストで使用する運用コマンド

MCFオンラインテスタの，サービスグループ単位のテストで使用するコマンドについて説明します。運用コマンドの形式，規則などについては，マニュアル「OpenTP1 運用と操作」を参照してください。

サービスグループ単位のテストで使用する運用コマンドの一覧を，次の表に示します。

表9‒6　サービスグループ単位のテストで使用する運用コマンドの一覧

コマンド名

機能

mcftulssg

サービスグループのテストモード情報を表示します。

mcftusgs

サービスグループ単位のテストを開始します。

mcftusge

サービスグループ単位のテストを終了します。

9.4.1　mcftulssg（サービスグループのテストモード情報の表示）

(1)　名称

サービスグループのテストモード情報の表示

(2)　形式

mcftulssg  -g  サービスグループ名

(3)　機能

指定したサービスグループのテストモード情報を標準出力に出力します。

(4)　オプション

-g　サービスグループ名　　〜〈1〜31文字の識別子〉

サービスグループ名を指定します。

サービスグループ名に'*'を指定すると，テストモードのすべてのサービスグループについてテストモード情報を出力します。また，サービスグループ名の先行文字列に続いて'*'を指定（先行文字列*）すると，先行文字列で始まるすべてのサービスグループのテストモード情報を出力します。

(5)　出力形式

A01 SVG01 LEual1 back trac swms erre exec hold
 1.   2.    3.    4.   5.    6.   7.  8.   9.

MCFマネジャプロセス識別子，およびMCF通信プロセス識別子

サービスグループ名

論理端末名称（8文字以内）

トランザクション終了時，資源をテスト前の状態に回復するかどうかの表示

back：回復する

nobk：回復しない

テストモードのトランザクションの処理中に，MHPのトレース情報を取得するかどうかの表示

trac：取得する

notr：取得しない

テストモードのトランザクションが発行した送信メッセージを無効にするかどうかの表示

swms：無効にする

nosw：無効にしない

エラーイベントの起動を抑止するかどうかの表示

erre：抑止する

noer：抑止しない

テストモードのトランザクションが発行したアプリケーション起動メッセージを無効にするかどうかの表示

exec：無効にする

noex：無効にしない

テストモードのトランザクションが異常終了した場合に，MHPの自動閉塞機能を抑止するかどうかの表示

hold：抑止する

noho：抑止しない

9.4.2　mcftusgs（サービスグループ単位のテストの開始）

(1)　名称

サービスグループ単位のテストの開始

(2)　形式

mcftusgs -g サービスグループ名 〔-e "〔{backout|ba}〕 〔{trace|tr}〕
                                  〔{swmsg|sw}〕 〔{errevt|er}〕
                                  〔{execap|ex}〕 〔{holdlimit|ho}〕"〕

(3)　機能

指定したサービスグループをテストモードにします。mcftusgsコマンドは，コネクションを閉塞してメッセージ送受信のない状態にしてから実行してください。

(4)　オプション

-g　サービスグループ名　　〜〈1〜31文字の識別子〉

テストを開始するサービスグループ名称を指定します。

サービスグループ名に'*'および'先行文字列*'と指定した一括指定はできません。

複数のサービスグループ名は指定できません。

-e

テストモードのオプションを指定します。

複数のフラグ引数を指定するときは，引用符（"）で囲んで，フラグ引数とフラグ引数との間を空白で区切ります。

（フラグ引数）

backout

トランザクション終了時，テスト中にトランザクションで使用した資源をテスト前の状態に回復します。

このフラグ引数の指定を省略すると，テスト前の状態に回復しないで，テスト中に更新した資源の状態が有効になります。

trace

テストモードのトランザクションの処理中に，MHPのUAPトレース情報を取得します。

このフラグ引数の指定を省略すると，MHPのUAPトレース情報は取得されません。

swmsg

テストモードのトランザクションの処理中にMHPが送信したメッセージを無効にします。無効になるのは，テスト中のMHPが発行した次に示す関数によって送信されるメッセージです。

・dc_mcf_send関数（メッセージの送信）

・dc_mcf_sendsync関数（同期型のメッセージの送信）

・dc_mcf_resend関数（メッセージの再送）

このフラグ引数の指定を省略すると，これらの関数によって送信したメッセージが有効になります。

errevt

テスト中にエラーイベントが発生した場合，エラーイベントの起動を抑止します。抑止できるエラーイベントを次に示します。

・不正アプリケーション名検出通知イベント（ERREVT1）

ただし，抑止できるのは論理端末単位のテストの場合だけです。

・dc_mcf_receive関数を発行する前に異常終了して通知されるメッセージ廃棄通知イベント（ERREVT2）

・閉塞に伴って発生するメッセージ廃棄通知イベント（ERREVT2）

・MHP実行中に異常終了して通知されるUAP異常終了通知イベント（ERREVT3）

このフラグ引数の指定を省略すると，これらのエラーイベントの起動は抑止されません。

execap

テストモードのトランザクションが発行した分岐のアプリケーション起動メッセージを無効にします。

このフラグ引数の指定を省略すると，分岐のアプリケーション起動メッセージが有効になります。

holdlimit

テストモードのMHPが異常終了した場合に，MHPの自動閉塞機能を抑止します。

このフラグ引数の指定を省略すると，MHPの自動閉塞機能は抑止されません。

9.4.3　mcftusge（サービスグループ単位のテストの終了）

(1)　名称

サービスグループ単位のテストの終了

(2)　形式

mcftusge -g サービスグループ名

(3)　機能

指定したサービスグループのテストモードを解除し，テストを終了します。

(4)　オプション

-g　サービスグループ名　　〜〈1〜31文字の識別子〉

テストを終了するサービスグループの名称を指定します。

サービスグループ名に'*'および'先行文字列*'と指定した一括指定はできません。

複数のサービスグループ名は指定できません。

第4編　オフラインテスタ

10　機能

オフラインテスタで実行するテストのための，各種機能について説明します。

10.1　オフラインテスタの機能

オフラインテスタには，UAPをテストするための次のような機能があります。

クライアントUAPシミュレート機能

クライアントUAPがなくてもサーバUAPがテストできるよう，クライアントUAPの処理をシミュレートする機能です。

サーバUAPシミュレート機能

サーバUAPがなくてもクライアントUAPがテストできるよう，サーバUAPの処理をシミュレートする機能です。

MCFシミュレート機能

MHPおよびMHPからサービス要求されるSPPがテストできるよう，メッセージ送受信処理をシミュレートする機能です。

ファイルサービスシミュレート機能

UAPからのDAMファイルやTAMファイルに対するアクセスがテストできるよう，DAMサービスやTAMサービスをシミュレートする機能です。

OpenTP1提供関数シミュレート機能

OpenTP1本体が提供する関数と同じ名称のシミュレート関数を使用して，関数の処理をシミュレートする機能です。

運用コマンドシミュレート機能

テストするUAPが運用コマンドを発行する場合に，コマンドの処理をシミュレートする機能です。

テスタファイル作成機能

各シミュレート機能使用時に必要となるテスタファイルを作成する機能です。

連続実行コマンド機能

ファイルに設定したオフラインテスタのサブコマンドを，テスト中に連続して実行する機能です。

デバッガ連動機能

テストするUAPをデバッガの制御下で動作させる機能です。

オフラインテスタトレース情報取得機能

テストするUAPのトレース情報を取得する機能です。

10.2　クライアントUAPのシミュレート

オフラインテスタでは，クライアントUAPの代わりとなってサーバUAPにサービスを要求できます。そのため，ユーザはクライアントUAPがなくてもサーバUAPをテストできます。これを，クライアントUAPシミュレート機能といいます。

クライアントUAPのシミュレートは，オフラインテスタのコマンドで実行します。ユーザは，サーバUAPに渡す処理データを，あらかじめサービス要求データファイルに作成しておきます。

サービス要求データファイルには，シミュレートするUAPのインタフェース別に，次の3種類があります。

RPC要求データファイル（RPCインタフェースのUAPシミュレート時）

XATMI要求データファイル（XATMIインタフェースのUAPシミュレート時）

TxRPC要求データファイル（TxRPCインタフェースのUAPシミュレート時）

クライアントUAPシミュレート機能の概要を，次の図に示します。

図10‒1　クライアントUAPのシミュレート

10.2.1　RPCインタフェースのクライアントUAPのシミュレート

RPCインタフェースに従ってサービス要求するクライアントUAPをシミュレートする場合，ユーザは，サーバUAPに渡す処理データを，あらかじめRPC要求データファイルに作成しておきます。

10.2.2　XATMIインタフェースのクライアントUAPのシミュレート

XATMIインタフェースに従ってサービス要求するクライアントUAPをシミュレートする場合，ユーザは，サーバUAPに渡す処理データを，あらかじめXATMI要求データファイルに作成しておきます。

また，会話型のサービスを要求する場合は，テストするサーバUAPがサービス中に受信するデータを，あらかじめXATMI受信データファイルに作成しておきます。サーバUAPからの送信データがある場合は，サービスごとにオフラインテスタがファイル名を問い合わせてきます。ユーザがコマンドでXATMI送信データファイルのファイル名を連絡すると，送信データをXATMI送信データファイルに取得します。

10.2.3　TxRPCインタフェースのクライアントUAPのシミュレート

TxRPCインタフェースに従ってサービス要求するクライアントUAPをシミュレートする場合，ユーザは，サーバUAPに渡す処理データを，あらかじめTxRPC要求データファイルに作成しておきます。

10.3　サーバUAPのシミュレート

オフラインテスタでは，サーバUAPの代わりとなってクライアントUAPが要求するサービスを実行できます。そのため，ユーザはサーバUAPがなくてもクライアントUAPをテストできます。これを，サーバUAPシミュレート機能といいます。

サーバUAPのシミュレートは，OpenTP1のコマンドでシミュレートするサーバUAPを起動して実行します。ユーザは，クライアントUAPへ渡す応答データを，あらかじめサービス応答データファイルに作成しておきます。クライアントUAPからサービス要求があると，オフラインテスタは応答データをファイルから読み込み，クライアントUAPに返します。

サービス応答データファイルには，シミュレートするUAPのインタフェース別に，次の3種類があります。

RPC応答データファイル（RPCインタフェースのUAPシミュレート時）

XATMI応答データファイル（XATMIインタフェースのUAPシミュレート時）

TxRPC応答データファイル（TxRPCインタフェースのUAPシミュレート時）

シミュレートするサーバUAPは，オフラインテスタ環境定義で，あらかじめシミュレート対象であることを定義しておきます。このサーバUAPはシミュレートの対象となり，実際には起動されません。

サーバUAPシミュレート機能の概要を，次の図に示します。

図10‒2　サーバUAPのシミュレート

10.3.1　RPCインタフェースのサーバUAPのシミュレート

RPCインタフェースに従ってサービス要求されるサーバUAPをシミュレートする場合，ユーザは，クライアントUAPへ返す応答データを，あらかじめRPC応答データファイルに作成しておきます。クライアントUAPからサービス要求があると，オフラインテスタは応答データをファイルから読み込み，クライアントUAPに返します。

10.3.2　XATMIインタフェースのサーバUAPのシミュレート

XATMIインタフェースに従ってサービス要求されるサーバUAPをシミュレートする場合，ユーザは，クライアントUAPへ返す応答データを，あらかじめXATMI応答データファイルに作成しておきます。クライアントUAPからサービス要求があると，オフラインテスタは応答データをファイルから読み込み，クライアントUAPに返します。

また，会話型のサービスを要求する場合は，テストするクライアントUAPがサービス中に受信するデータを，あらかじめXATMI受信データファイルに作成しておきます。クライアントUAPからの送信データがある場合は，サービスごとにオフラインテスタがファイル名を問い合わせてきます。ユーザがコマンドでXATMI送信データファイルのファイル名を連絡すると，送信データをXATMI送信データファイルに取得します。

10.3.3　TxRPCインタフェースのサーバUAPのシミュレート

TxRPCインタフェースに従ってサービス要求されるサーバUAPをシミュレートする場合，ユーザは，クライアントUAPへ返す応答データを，あらかじめTxRPC応答データファイルに作成しておきます。クライアントUAPからサービス要求があると，オフラインテスタは応答データをファイルから読み込み，クライアントUAPに返します。

10.4　MCFのシミュレート

オフラインテスタは，TP1/Message Control（以降，MCFと呼びます）の代わりとなってMHPとのメッセージ送受信を実行できます。そのため，ユーザはMCFがなくてもMHPをテストできます。これを，MCFシミュレート機能といいます。

MHPのアプリケーションの起動は，オフラインテスタのコマンドで実行します。ユーザは，MHPに渡すメッセージを，あらかじめMCF受信メッセージファイルに作成しておきます。

MCFシミュレート機能の概要を，次の図に示します。

図10‒3　MCFのシミュレート

10.5　ファイルサービスのシミュレート

ここでは，ファイルに対するアクセスをテストするための，ファイルサービスのシミュレートについて説明します。

10.5.1　DAMサービスのシミュレート

オフラインテスタは，UAPからのDAMファイルに対するアクセスをテストするために，DAMサービスをシミュレートします。これを，DAMサービスシミュレート機能といいます。

エディタ，またはDAMファイル作成シミュレート関数（dc_dam_create関数）で作成したファイルは，TP1/FS/Direct Accessのファイルインタフェースで扱えます。ユーザは，オフラインテスタ環境定義で，論理ファイル名と実際のファイルが対になるように定義しておきます。

オフラインテスタでシミュレートするDAMファイルは，UAPからの更新要求に対しては即時更新（ただし，遅延書き込み）されます。UAPの異常終了や，ロールバック要求が発生した場合は，ファイルは戻さないで，更新したままになります。

また，オフラインテスタ起動時のオプションの指定で，ファイルの更新を抑止できます。この場合，UAPから更新要求の関数が発行されてもファイル上では更新されません。更新要求後に再入力したデータは，更新要求前の内容のままになります。

さらに，オフラインテスタ環境定義でDAMファイルの排他の有無を指定できます。ただし，排他は関数での指定に関係なく，ファイル単位になります。

なお，dc_trn_unchained_commit関数を発行しても，DAMファイルはクローズしません。

DAMサービスシミュレート機能の概要を，次の図に示します。

図10‒4　DAMサービスのシミュレート

10.5.2　TAMサービスのシミュレート

オフラインテスタは，UAPからのTAMファイルに対するアクセスをテストするために，TAMサービスをシミュレートします。これを，TAMサービスシミュレート機能といいます。

オフラインテスタのコマンド（utftamcreコマンド）で作成したファイルは，TP1/FS/Table Accessのファイルインタフェースで扱えます。ユーザは，オフラインテスタ環境定義で，論理ファイル名と実際のファイルが対になるように定義しておきます。

オフラインテスタでシミュレートするTAMファイルは，TP1/FS/Table Accessと同じTAMデータファイルを使用できるほか，インデクスの索引方式も同じです。ただし，TAMファイルにDAMサービスの関数でアクセスする機能は使用できません。また，このファイルは共用メモリ量の削減のため，TAMファイルの管理部とインデクス部だけを共用メモリ上に置いているので，データ部には直接TAMファイル上でアクセスします。

オフラインテスタでシミュレートするTAMファイルは，UAPからの更新要求に対しては即時更新（ただし，遅延書き込み）します。UAPの異常終了や，ロールバック要求が発生した場合は，ファイルは戻さないで，更新したままになります。

また，オフラインテスタ起動時のオプションの指定で，ファイルの更新を抑止できます。この場合，UAPから更新要求の関数が発行されてもファイル上では更新されません。更新要求後に再入力したデータは，更新要求前の内容のままになります。

さらに，オフラインテスタ環境定義でTAMファイルの排他の有無を指定できます。ただし，排他は関数での指定に関係なく，TAMファイル単位になります。

なお，dc_trn_unchained_commit関数を発行しても，TAMファイルはクローズしません。

TAMサービスシミュレート機能の概要を，次の図に示します。

図10‒5　TAMサービスのシミュレート

10.6　OpenTP1提供関数のシミュレート

オフラインテスタには，OpenTP1本体が提供する関数の代わりとして，各関数ごとにOpenTP1が提供する関数と同じ名称の関数が用意されています。これを，シミュレート関数といいます。シミュレート関数は，UAPとリンケージして使用します。

また，OpenTP1が提供する関数の実行に対するリターン値を，関数リターン値ファイルにあらかじめ設定しておくことで，設定した情報をリターン値としてUAPに返すことができます。この機能は，オフラインテスタがする引数チェックに対して，エラーがなかった場合に実行します。引数チェックでエラーが見つかると，エラーに該当するリターン値がUAPに返ります。

ただし，DAMおよびTAM関連の関数は，エラーのリターン値を設定したときはその値が返りますが，正常のリターン値を設定したときは，実際に処理した結果がリターン値として返ります。そのため，テスト処理中にエラーが発生すると，そのエラーのリターン値が返ります。

XATMIインタフェースのtpsend関数とtprecv関数では，関数リターン値ファイルにイベント名が設定できます。また，TP1/Multiの関数（dc_adm_get_〜関数）では，出力データ（ノード識別子とサーバ名）も設定できます。

各シミュレート関数と，その設定できるリターン値については，「14.　関数のシミュレーション内容」を参照してください。

TP1/Shared Table Accessが提供する関数を使用する場合は，その関数が使用するISTテーブルをオフラインテスタ起動時のオフラインテスタ環境定義で定義する必要があります。

10.7　UAPから発行する運用コマンドのシミュレート

オフラインテスタは，UAPからdc_adm_call_command関数で運用コマンドの実行を要求した場合，コマンドの実行をシミュレートできます。これを，運用コマンドシミュレート機能といいます。

運用コマンドの実行をシミュレートするために，ユーザはあらかじめコマンドの実行結果データを，運用コマンド結果データファイルに作成しておきます。UAPでdc_adm_call_command関数が実行されると，オフラインテスタはコマンドの実行結果データをファイルから読み込み，UAPに返します。

運用コマンドシミュレート機能の概要を，次の図に示します。

図10‒6　UAPから発行する運用コマンドのシミュレート

10.8　テスタファイルの作成

オフラインテスタで各種のシミュレート機能を使用するためには，機能ごとに専用のデータファイルを作成する必要があります。これをテスタファイルといいます。

テスタファイルはそれぞれ専用のデータ形式で記述されていますが，オフラインテスタでは，ユーザがコマンドで簡単にテスタファイルを作成できます。これを，テスタファイル作成機能といいます。

テスタファイル作成機能で作成できるテスタファイルの一覧を，次の表に示します。

表10‒1　テスタファイル作成機能で作成できるテスタファイルの一覧

テスタファイル名

テスタファイルを使用する機能

サービス要求データファイル

RPC要求データファイル

クライアントUAPシミュレート機能

XATMI要求データファイル

クライアントUAPシミュレート機能

TxRPC要求データファイル

クライアントUAPシミュレート機能

サービス応答データファイル

RPC応答データファイル

サーバUAPシミュレート機能

XATMI応答データファイル

サーバUAPシミュレート機能

TxRPC応答データファイル

サーバUAPシミュレート機能

XATMI受信データファイル

クライアントUAPシミュレート機能

MCF受信メッセージファイル

MCFシミュレート機能

運用コマンド結果データファイル

運用コマンドシミュレート機能

テスタファイル作成機能では，ユーザがあらかじめ作成したテストデータ定義ファイルのデータを使用して，テスタファイルを作成します。テストデータ定義ファイルのデータは，テキストエディタで作成できます。また，テストデータ定義ファイルには，複数のテスタファイルのデータをまとめて設定できます。

なお，テスタファイルは，各ファイルの形式に従ってバイナリエディタでも作成できます。

10.9　コマンドの連続実行

オフラインテスタでは，あらかじめファイルに登録しておいたオフラインテスタのコマンドを，順番に実行できます。これを，連続実行コマンド機能といいます。

ユーザがコマンドを連続実行コマンドファイルに設定しておくと，オフラインテスタがファイルを読み，設定された順にコマンドを実行します。応答用のサブコマンドが指定されていると，そのサブコマンドを実行しますが，指定されていないと，ユーザからの応答待ちになります。そのため，あらかじめテスト順序が決まっている場合などに有効です。

連続実行コマンド機能の概要を，次の図に示します。

図10‒7　コマンドの連続実行

10.10　デバッガの連動

オフラインテスタでは，UAPをデバッガの下で実行できます。これを，デバッガ連動機能といいます。

オフラインテスタ環境定義でUAPごとにデバッガの連動を指定すると，UAPのmain関数からデバッガの制御下で動作します。

デバッガを連動させると，1ステップ単位のデバッグやバッチ形式のデバッグが，簡単にできます。

デバッガとして使用できるのは，次の二つです。

dbx

cbltd（COBOL2002）

デバッガ連動機能の概要を，次の図に示します。

図10‒8　デバッガの連動

10.11　テスト情報の取得

10.11.1　オフラインテスタトレース情報の取得

オフラインテスタでは，OpenTP1の提供する関数発行時の引数の内容や，リターン情報を，トレース情報として標準出力，またはオフラインテスタ環境定義で指定したファイルに出力できます。これを，オフラインテスタトレース情報取得機能といいます。標準出力と，ファイルに出力されるトレース情報の内容や形式は同じものです。

また，トレース情報を取得したトレースファイルからは，オフラインテスタのコマンドで特定のサービスの情報だけを取り出せます。

なお，複数のオフラインテスタ実行時に，出力先として同じトレースファイルを共用すると，ファイルの内容が破壊されます。トレースファイルは共用しないでください。

オフラインテスタトレース情報取得機能の概要を，次の図に示します。

図10‒9　オフラインテスタトレース情報の取得

11　テスト環境の設定

オフラインテスタで，テストを実行するために必要な環境設定の方法について説明します。

11.1　オフラインテスタのシステム定義

オフラインテスタのシステム定義について説明します。定義の構成，規則などについては，マニュアル「OpenTP1 システム定義」を参照してください。

11.1.1　オフラインテスタ環境定義

オフラインテスタ環境定義では，オフラインテスタの次のような実行条件を定義します。

UAPの定義

RPC要求データファイル格納ディレクトリの定義

XATMI要求データファイル格納ディレクトリの定義

TxRPC要求データファイル格納ディレクトリの定義

RPC応答データファイル格納ディレクトリの定義

XATMI応答データファイル格納ディレクトリの定義

TxRPC応答データファイル格納ディレクトリの定義

XATMI送受信データファイル格納ディレクトリの定義

MCF受信メッセージファイル格納ディレクトリの定義

運用コマンド結果データファイル格納ディレクトリの定義

連続実行コマンドファイル格納ディレクトリの定義

DAMファイルの定義

TAMファイルの定義

ISTテーブルの定義

関数リターン値ファイルの定義

トレースファイルの定義

プロトコルの定義

各定義は，オフラインテスタ環境定義ファイル上に記述します。オフラインテスタ環境定義ファイルには，ユーザが任意のファイル名を付けます。このファイル名は，オフラインテスタを開始させる際の，コマンド引数になります。

オフラインテスタ環境定義の規則を次に示します。

一つの定義は一つの行に記述します。

定義は，半角文字で記述します。大文字と小文字は区別して記述します。

行（定義）の終わりには，','（コンマ）を記述します。コンマ以降はコメントと見なされます。

全体の終わりには，';'（セミコロン）を記述します。セミコロン以降はコメントと見なされます。

定義解析中，次のような場合には，エラーメッセージが出力されたあと，その定義を無視して定義解析が続行されます。

指定されたディレクトリおよびファイル（DAMファイル以外）がない場合

書き込み先のファイルが書き込みモードでオープンできないなど，必要なアクセスができない場合

定義解析中にエラーがあった場合

解析終了後，オフラインテスタの起動を続行するかどうか，ユーザの指定待ちになります。ユーザの指定を次に示します。

'1'：オフラインテスタの起動を続行します。

'2'（または'end'）：オフラインテスタの起動を中断します。

定義内容は省略できません。省略すると書式エラーになります。

書式エラーになった場合，その定義内容の有効・無効の判断を次の表に示します。

表11‒1　書式エラーの内容と定義内容の判断

定義名

書式エラーの内容

定義内容

有効時の仮定

UAPの定義

サービスグループ名，実行形式プログラム名，およびユーザサービス定義ファイル名の指定なし

無効

−

'N'と'F'を同時に指定

有効

'F'だけを仮定

文末に','または';'なし

有効

文末に','を仮定

RPC要求データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

XATMI要求データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

TxRPC要求データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

RPC応答データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

XATMI応答データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

TxRPC応答データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

XATMI送受信データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

MCF受信メッセージファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

運用コマンド結果データファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

連続実行コマンドファイル格納ディレクトリの定義

ディレクトリ名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

DAMファイルの定義

物理ファイル名，論理ファイル名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

TAMファイルの定義

TAMテーブル名，TAMファイル名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

ISTテーブルの定義

ISTテーブル名，レコード長，レコード数の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

関数リターン値ファイルの定義

ファイル名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

トレースファイルの定義

ファイル名の指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

プロトコルの定義

プロトコルの指定なし

無効

−

文末に','または';'なし

有効

文末に','を仮定

その他

上記以外の定義名を指定

無効

−

（凡例）

−：該当しません。

オフラインテスタ環境定義の定義例を次に示します。

〈定義例〉

 # UAPの定義
 SPP = spp1 spp1.out spp1user,
 SPP = spp2 DUMMY DUMMY F,
 SPP = spp3 spp.out spp3user D dbx,
 SPP = spp4 spp4.out spp4user,
 SPP = spp5 spp5.out spp5user N D dbx -I /betran/utf/uap/src spp5.out,
 MHP = mhp1 mhp1.out mhp1usr,
 #
 # RPC要求データファイル格納ディレクトリの定義
 rpc_message = /betran/utf/rpcmsg,
 #
 # XATMI要求データファイル格納ディレクトリの定義
 tp_message = /betran/utf/xatmimsg,
 #
 # TxRPC要求データファイル格納ディレクトリの定義
 txrpc_message = /betran/utf/txrpcmsg,
 #
 # RPC応答データファイル格納ディレクトリの定義
 rpc_return_data = /betran/utf/rpc_return,
 #
 # XATMI応答データファイル格納ディレクトリの定義
 tp_return_data = /betran/utf/tp_return,
 #
 # TxRPC応答データファイル格納ディレクトリの定義
 txrpc_return_data = /betran/utf/tx_return,
 #
 # XATMI送受信データファイル格納ディレクトリの定義
 tp_converse = /betran/utf/tp_converse,
 #
 # MCF受信メッセージファイル格納ディレクトリの定義
 mcf_message = /betran/utf/mcfmsg,
 #
 # 運用コマンド結果データファイル格納ディレクトリの定義
 adm_call_cmd = /betran/utf/etc/call_cmd_val,
 #
 # 連続実行コマンドファイル格納ディレクトリの定義
 cmdfile = /betran/utf/etc,
 #
 # DAMファイルの定義
 damfile = damfile1 /betran/utf/dam/damfile1,
 damfile = damfile2 /betran/utf/dam/damfile2 N,
 #
 # TAMファイルの定義
 tamtable = tamtable1 /betran/utf/dam/tamfile1,
 tamtable = tamtable2 /betran/utf/dam/tamfile2 N,
 #
 # ISTテーブルの定義
 isttable = isttable 128 64,
 isttable = ist2 4 256,
 #
 # 関数リターン値ファイルの定義
 func_value_file = /betran/utf/etc/return_val,
 #
 # トレースファイルの定義
 tracefile = /betran/utf/log/trace,
 #
 # プロトコルの定義
 protocol = OSI/TP;
 #

(1)　UAPの定義

(a)　形式

{SPP|MHP}={サービスグループ名|サービス名} 実行形式プログラム名
           ユーザサービス定義ファイル名〔 T 〕
           〔{F|D デバッガ名|〔N〕〔D デバッガ名〕}〕{,|;}

(b)　機能

オフラインテスタの下で実行するUAPについて，次の項目を定義します。

UAPの種別（SPP，MHP）

サービスグループ名

サービスグループ名に対応した実行形式プログラム名

サービスグループ名に対応したユーザサービス定義ファイル名

サーバUAPシミュレート機能を使用するかどうか

デバッガ連動機能を使用するかどうか

なお，定義の対象となるのはSPPとMHPだけです。SUPは，オフラインテスタでのテストの対象外となります。

(c)　オペランド

SPP | MHP

定義名として，サービスグループの種別を指定します。

SPP：SPPを示します。

MHP：MHPを示します。

サービスグループ名

サービスグループ名を指定します。TxRPCインタフェースのUAPシミュレート機能を実行する場合は，IDLファイルに指定したインタフェース名を指定します。

サービス名

XATMIインタフェースのサーバUAPシミュレート機能を実行する場合に，サービス名を指定します。

実行形式プログラム名

このサービスグループを実行するUAP名（実行形式プログラム名）を指定します。サービス関数をシミュレートする場合は，実在しない名称でもかまいません。

ユーザサービス定義ファイル名

このサービスグループの実行環境を定義した，ユーザサービス定義ファイルの名称を指定します。TxRPCインタフェースのUAPシミュレート機能を実行する場合は，txidlコマンドで作成したユーザサービス定義ファイルを指定します。サービス関数をシミュレートする場合は，実在しない名称でもかまいません。

T

TxRPCインタフェースのUAPシミュレート機能を使用する場合に指定します。この指定は，サービスグループ種別にSPPを指定した場合だけ指定できます。MHPを指定した場合はエラーとなります。

F

サーバUAPシミュレート機能を使用する場合に指定します。

この指定がない場合は，オフラインテスタ開始時にサービスグループを起動します。

D　デバッガ名　〔デバッガ引数〕

デバッガの下でUAPを実行させる場合に指定します。

デバッガ名として指定できるのは次の値です。ただし，デバッガ名のチェックはしません。

dbx：デバッガとしてdbxを使用する場合に指定します。

cbltd：デバッガとしてCOBOL2002を使用する場合に指定します。

この指定では，デバッガに渡す引数が指定できます。引数を指定しない場合は，実行形式プログラム名を引数として指定します。引数を指定する場合は，その引数をそのままデバッガに渡す引数にします。

デバッガへ渡す引数で指定する，実行可能ファイル名と実行形式プログラム名は同じにしてください。異なっていてもエラーにはなりませんが，デバッガには引数で指定された実行可能ファイル名が渡され，オフラインテスタでは実行形式プログラム名で管理されます。

N

オフラインテスタ開始時に，該当するサービスグループ（UAP）の起動を抑止して，オフラインテスタ開始後にstartサブコマンドでサービスグループを起動したい場合に指定します。

この指定がない場合は，オフラインテスタ開始時にサービスグループを起動します。

(d)　注意事項

同じサービスグループ名を，重複して定義できません。重複して定義した場合は，先に定義した方が有効になります。次に示す例では，'spp1'が重複して指定されているため，2行目の定義がエラーになります。

（例）

SPP = spp1 spp1.load spp1usr,
SPP = spp1 spp2.load spp2usr,　← エラーになります。

(e)　定義例

# UAPの定義
SPP = spp1 spp1.out spp1user,
SPP = spp2 DUMMY DUMMY F,
SPP = spp3 spp.out spp3user D dbx,
SPP = spp4 spp4.out spp4user,
SPP = spp5 spp5.out spp5user N D dbx -I /betran/utf/uap/src spp5.out,
MHP = mhp1 mhp1.out mhp1usr;
#

(2)　RPC要求データファイル格納ディレクトリの定義

(a)　形式

rpc_message = RPC要求データファイル格納ディレクトリ名{,|;}

(b)　機能

RPC要求データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

rpc_message

定義名として，rpc_messageを指定します。

RPC要求データファイル格納ディレクトリ名

RPC要求データファイルを格納する，ディレクトリのパス名を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，RPC要求データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# RPC要求データファイル格納ディレクトリの定義
rpc_message = /betran/utf/rpcmsg;
#

(3)　XATMI要求データファイル格納ディレクトリの定義

(a)　形式

tp_message = XATMI要求データファイル格納ディレクトリ名{,|;}

(b)　機能

XATMI要求データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

tp_message

定義名として，tp_messageを指定します。

XATMI要求データファイル格納ディレクトリ名

XATMI要求データファイルを格納する，ディレクトリのパス名を指定します。

オフラインテスタを実行中のディレクトリと異なる場合は，XATMI要求データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# XATMI要求データファイル格納ディレクトリの定義
tp_message = /betran/utf/xatmimsg;
#

(4)　TxRPC要求データファイル格納ディレクトリの定義

(a)　形式

txrpc_message = TxRPC要求データファイル格納ディレクトリ名{,|;}

(b)　機能

TxRPC要求データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

txrpc_message

定義名として，txrpc_messageを指定します。

TxRPC要求データファイル格納ディレクトリ名

TxRPC要求データファイルを格納する，ディレクトリのパス名を指定します。

オフラインテスタを実行中のディレクトリと異なる場合は，TxRPC要求データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# TxRPC要求データファイル格納ディレクトリの定義
txrpc_message = /betran/utf/txrpcmsg;
#

(5)　RPC応答データファイル格納ディレクトリの定義

(a)　形式

rpc_return_data = RPC応答データファイル格納ディレクトリ名{,|;}

(b)　機能

RPC応答データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

rpc_return_data

定義名として，rpc_return_dataを指定します。

RPC応答データファイル格納ディレクトリ名

RPC応答データファイルを格納する，ディレクトリのパス名を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，RPC応答データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# RPC応答データファイル格納ディレクトリの定義
rpc_return_data = /betran/utf/rpc_return;
#

(6)　XATMI応答データファイル格納ディレクトリの定義

(a)　形式

tp_return_data = XATMI応答データファイル格納ディレクトリ名{,|;}

(b)　機能

XATMI応答データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

tp_return_data

定義名として，tp_return_dataを指定します。

XATMI応答データファイル格納ディレクトリ名

XATMI応答データファイルを格納する，ディレクトリのパス名を指定します。

オフラインテスタを実行中のディレクトリと異なる場合は，XATMI応答データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# XATMI応答データファイル格納ディレクトリの定義
tp_return_data = /betran/utf/tp_return;
#

(7)　TxRPC応答データファイル格納ディレクトリの定義

(a)　形式

txrpc_return_data = TxRPC応答データファイル格納ディレクトリ名{,|;}

(b)　機能

TxRPC応答データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

txrpc_return_data

定義名として，txrpc_return_dataを指定します。

TxRPC応答データファイル格納ディレクトリ名

TxRPC応答データファイルを格納する，ディレクトリのパス名を指定します。

オフラインテスタを実行中のディレクトリと異なる場合は，TxRPC応答データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# TxRPC応答データファイル格納ディレクトリの定義
txrpc_return_data = /betran/utf/tx_return;
#

(8)　XATMI送受信データファイル格納ディレクトリの定義

(a)　形式

tp_converse = XATMI送受信データファイル格納ディレクトリ名{,|;}

(b)　機能

XATMI送信データファイルとXATMI受信データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

tp_converse

定義名として，tp_converseを指定します。

XATMI送受信データファイル格納ディレクトリ名

XATMI送信データファイルとXATMI受信データファイルを格納する，ディレクトリのパス名を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，XATMI送信データファイルとXATMI受信データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# XATMI送受信データファイル格納ディレクトリの定義
tp_converse = /betran/utf/tp_converse;
#

(9)　MCF受信メッセージファイル格納ディレクトリの定義

(a)　形式

mcf_message = MCF受信メッセージファイル格納ディレクトリ名{,|;}

(b)　機能

MCF受信メッセージファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

mcf_message

定義名として，mcf_messageを指定します。

MCF受信メッセージファイル格納ディレクトリ名

MCF受信メッセージファイルを格納する，ディレクトリのパス名を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，MCF受信メッセージファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# MCF受信メッセージファイル格納ディレクトリの定義
mcf_message = /betran/utf/mcfmsg;
#

(10)　運用コマンド結果データファイル格納ディレクトリの定義

(a)　形式

adm_call_cmd = 運用コマンド結果データファイル格納ディレクトリ名{,|;}

(b)　機能

運用コマンド結果データファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

adm_call_cmd

定義名として，adm_call_cmdを指定します。

運用コマンド結果データファイル格納ディレクトリ名

運用コマンド結果データファイルを格納する，ディレクトリのパス名を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，運用コマンド結果データファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# 運用コマンド結果データファイル格納ディレクトリの定義
adm_call_cmd = /betran/utf/etc/call/cmd/val;
#

(11)　連続実行コマンドファイル格納ディレクトリの定義

(a)　形式

cmdfile = 連続実行コマンドファイル格納ディレクトリ名{,|;}

(b)　機能

連続実行コマンドファイルを格納する，ディレクトリの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

cmdfile

定義名として，cmdfileを指定します。

連続実行コマンドファイル格納ディレクトリ名

連続実行コマンドファイルを格納する，ディレクトリのパス名を指定します。

オフラインテスタを実行中のディレクトリと異なる場合は，連続実行コマンドファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# 連続実行コマンドファイル格納ディレクトリの定義
cmdfile = /betran/utf/etc;
#

(12)　DAMファイルの定義

(a)　形式

damfile = 論理ファイル名 物理ファイル名 〔N〕{,|;}

(b)　機能

DAMサービスのシミュレートで使用するファイルを，論理ファイル名と物理ファイル名で対にして指定します。

UAPがアクセスするすべてのDAMファイルについて定義します。

(c)　オペランド

damfile

定義名として，damfileを指定します。

論理ファイル名

論理ファイル名を指定します。

物理ファイル名

オフラインテスタ用DAMファイルの名称を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，DAMファイルを格納しているディレクトリ名を付けて指定します。

N

関数での指定に関係なく，排他をしない場合に指定します。

(d)　定義例

# DAMファイルの定義
damfile = damfile1 /betran/utf/dam/damfile1,
damfile = damfile2 /betran/utf/dam/damfile2 N;
#

(13)　TAMファイルの定義

(a)　形式

tamtable = TAMテーブル名 TAMファイル名 〔N〕{,|;}

(b)　機能

TAMサービスのシミュレートで使用するTAMファイルを，TAMテーブル名とTAMファイル名で対にして指定します。

UAPがアクセスするすべてのTAMファイルについて定義します。

(c)　オペランド

tamtable

定義名として，tamtableを指定します。

TAMテーブル名

TAMテーブル名を指定します。TAMテーブル名はTAMサービスの関数で使用する名称です。

TAMファイル名

オフラインテスタ用TAMファイルの名称を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，TAMファイルを格納しているディレクトリ名を付けて指定します。

N

関数での指定に関係なく，排他をしない場合に指定します。また，COBOLのUAPでTAMファイルにアクセスする場合に指定します。

(d)　定義例

# TAMファイルの定義
tamtable = tamtable1 /betran/utf/tam/tamfile1,
tamtable = tamtable2 /betran/utf/tam/tamfile2 N;
#

(e)　注意事項

TAMテーブル名とTAMファイル名は，重複して指定できません。重複して指定した場合は，先に定義したものが有効になります。

(14)　ISTテーブルの定義

(a)　形式

isttable = ISTテーブル名 レコード長 レコード数{,|;}

(b)　機能

ISTサービスのシミュレートで使用するISTテーブルを，ISTテーブル名，レコード長とレコード数で組にして指定します。

UAPがアクセスするすべてのISTテーブルについて定義します。

ISTテーブルは64個まで定義できます。

(c)　オペランド

isttable

定義名として，isttableを指定します。

ISTテーブル名

ISTテーブル名を指定します。ISTテーブル名はISTサービスの関数で使用する名称です。

レコード長

ISTテーブルのレコード長をバイト単位で指定します。

レコード数

ISTテーブルが持つレコードの個数を指定します。

(d)　定義例

# ISTテーブルの定義
isttable = isttbl1 8 12,
isttable = isttbl2 10 20;
#

(15)　関数リターン値ファイルの定義

(a)　形式

func_value_file = 関数リターン値ファイル名{,|;}

(b)　機能

関数リターン値を設定する，ファイルの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

func_value_file

定義名として，func_value_fileを指定します。

関数リターン値ファイル名

関数リターン値ファイル名を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，関数リターン値ファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# 関数リターン値ファイルの定義
func_value_file = /betran/utf/etc/return_val;
#

(16)　トレースファイルの定義

(a)　形式

tracefile = トレースファイル名{,|;}

(b)　機能

オフラインテスタトレース情報を格納する，ファイルの名称を定義します。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

tracefile

定義名として，tracefileを指定します。

トレースファイル名

トレースファイル名を指定します。オフラインテスタを実行中のディレクトリと異なる場合は，トレースファイルを格納しているディレクトリ名を付けて指定します。

(d)　定義例

# トレースファイルの定義
tracefile = /betran/utf/log/trace;
#

(17)　プロトコルの定義

(a)　形式

protocol = プロトコル名{,|;}

(b)　機能

TP1/Message Controlでのプロトコルを定義します。この定義は，COBOL，DMLで作成したUAPをテストする場合でだけ有効です。OSI TP以外のプロトコルの場合は，この定義はしません。重複して定義した場合は，最後に定義したものが有効になります。

(c)　オペランド

protocol

定義名として，protocolを指定します。

プロトコル名

プロトコル名を指定します。

OSI/TP：OSI TPプロトコルを示します。

ただし，OSI TP以外を指定した場合は，エラーになります。

(d)　定義例

# プロトコルの定義
protocol = OSI/TP;
#

11.1.2　ユーザサービス定義

オフラインテスタの実行に必要な定義を，ユーザサービス定義で定義します。定義方法や記述形式は，OpenTP1のユーザサービス定義と同じです。ユーザサービス定義については，マニュアル「OpenTP1 システム定義」を参照してください。

(1)　形式

(a)　set形式

set service = "サービス名 = エントリポイント名"
             〔,"サービス名 = エントリポイント名"〕
              … 〔set server_type = betran|xatmi〕

(b)　putenv形式

{{〔putenv 環境変数名 環境変数値〕}}

(2)　機能

ユーザサービス定義として定義することで，オフラインテスタを実行できます。

(3)　オペランド

(a)　set形式

service = "サービス名 = エントリポイント名"

このサービスグループに属するサービス名と，そのサービスを使用できるエントリポイント名の組を，すべてのサービスについて指定します。

エントリポイント名とはC言語の関数であり，COBOL言語のプログラム名，または入り口名のことです。ここで指定するエントリポイント名は，RPC（XATMI）インタフェース定義に指定する名称と同じものを指定します。

RPC（XATMI）インタフェースのサービス関数，およびRPC（XATMI）インタフェース定義については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

server_type = betran | xatmi　　〜《betran》

OpenTP1（RPC）の関数を使用するか，XATMIの関数を使用するかを指定します。

betran：OpenTP1（RPC）の関数を使用します。

xatmi：XATMIの関数を使用します。

(b)　putenv形式

環境変数名

このサービスグループのプロセスで，指定した環境変数に値を設定します。

COBOL言語の動作環境をOpenTP1が起動するため，COBOL言語環境の設定に使用します。UAPの実行形式プログラムごとに，任意の環境変数を与えられます。標準C言語ライブラリ'putenv'を参照してください。

(4)　定義例

(a)　set形式

set service      = "service = xwsvkd0100"
set server_type  = betran

(b)　putenv形式

putenv    CBLCORE 1

11.1.3　関数リターン値の設定

OpenTP1が提供する関数のリターン値として任意の値を返す場合，あらかじめ関数リターン値ファイルを作成して，リターン値を設定します。

また，XATMI関数のtpsend関数とtprecv関数のイベントタイプや，マルチノード機能で使用する関数に渡す出力データ（ノード識別子，サーバ名）も設定できます。

定義方法や記述形式は，オフラインテスタ環境定義と同じです。

(1)　形式

(a)　リターン値を設定する場合

{関数名|プログラム名(要求コード)} = リターン値 {,|;}

(b)　イベントタイプを設定する場合

{tpsend|tprecv} = TPEEVENT,
{tpsend(event)|tprecv(event)} = イベントタイプ {,|;}

(c)　出力データを設定する場合

{マルチノード機能で使用する関数名(node_id)|マルチノード機能で使用する関数名(sv_name)} = {ノード識別子|サーバ名}{,|;}

(2)　機能

OpenTP1提供関数のリターン値として返す，任意の値を定義します。

また，XATMI関数のtpsend関数とtprecv関数のイベントタイプや，TP1/Multiの関数に渡す出力データ（ノード識別子，サーバ名）の値を定義します。

(3)　オペランド

(a)　リターン値を設定する場合

関数名 | プログラム名(要求コード)

リターン値を返す関数名，またはプログラム名(要求コード)を指定します。

関数名

C言語の関数に対するリターン値を設定します。

プログラム名(要求コード)

COBOL言語のプログラムに対するリターン値を設定します。(　)の中には要求コードを設定します。

リターン値　　〜〈1〜39文字の英数字〉

関数，またはプログラムによって返されるリターン値（COBOL言語ではリターンコード）を設定します。リターン値は，定数名を大文字で設定します。TX関数でCOBOL言語のリターンコードを設定する場合は，定数名でも設定します。

また，リターン値は，定数名を使わないで数値（10進数）でも設定できます。数値で指定する場合に指定できる範囲を，次に示します。

インタフェース

指定できる数値の範囲

C言語インタフェース

-99999〜99999

COBOL言語インタフェース

0〜99999※

注

範囲外の場合は，文字列と見なします。

注※

TX関数については，-99999〜99999の範囲で指定できます。

なお，定義されていない定数名が指定された場合や，数値が誤って指定された場合（数字以外の指定など）は，関数が正常にリターンしたと見なします。

(b)　イベントタイプを設定する場合

{tpsend | tprecv}=TPEEVENT

イベントタイプを設定することを示します。

tpsend(event) | tprecv(event)

イベントタイプを設定する関数を指定します。

tpsend(event)：tpsend関数にイベントタイプを設定します。

tprecv(event)：tprecv関数にイベントタイプを設定します。

イベントタイプ

tpsend関数またはtprecv関数に設定する，イベントタイプを設定します。

イベントタイプの設定を省略した場合は，TPEV_SVCERRを仮定します。

(c)　出力データを設定する場合

マルチノード機能で使用する関数名(node_id) | マルチノード機能で使用する関数名(sv_name)

出力データを設定する関数名と，出力データの種別を設定します。

node_id：出力データとしてノード識別子を設定します。

sv_name：出力データとしてサーバ名を設定します。

設定できる関数名と，それに対応する出力データの種別を，次に示します。

関数名

出力データの種別

dc_adm_get_nd_status_next関数

node_id

dc_adm_get_sv_status_next関数

sv_name

dc_adm_get_nodeconf_next関数

node_id

dc_adm_get_node_id関数

node_id

ノード識別子 | サーバ名

設定するノード識別子，またはサーバ名を設定します。

関数リターン値ファイル内のノード識別子とサーバ名の設定順序は，UAPで発行するマルチノード機能の関数の発行順序と対応します。

設定を省略した場合や設定に誤りがあった場合，その行は無視されます。したがって，ノード識別子やサーバ名はないものとして処理され，その個数はカウントされません。

関数リターン値ファイルに設定したノード識別子やサーバ名の個数より，UAPで発行した対応する関数の個数が多い場合，余分の関数のリターン値としてDCADMER_NO_MORE_ENTRYが返されます。ただし，dc_adm_get_node_id関数は除きます。

(4)　定義例

(a)　C言語の場合

dc_jnl_ujput  = 0,
dc_dam_open   = DCDAMER_PROTO,
#dc_trn_begin = DC_OK,
dc_dam_read   = -1600,
tpsend        = TPEEVENT,
tpsend(event) = TPEV_DISCONIMM,
dc_adm_get_nd_status_next(node_id) = ND01
        :
        :
dc_logprint   = DC_OK;

(b)　COBOL言語の場合

CBLDCJNL(UJPUT)  = 0,
#CBLDCTRN(BEGIN) = 905,
CBLDCDAM(READ)   = 1600,
        :
        :
CBLDCLOG(PRINT)  = 1905;

(5)　注意事項

定義解析では，関数とリターン値の正当性や，関係についてはチェックしません。

関数名（プログラム名）として，サポートしない関数，リターン値を返さない関数，およびオフライン環境でDAMファイルにアクセスする関数の名称を指定した場合，書式不正と見なされます。

重複して指定（同じ名称の関数の指定や，同じ機能の関数とプログラムの指定），できません。重複して指定した場合は，先に指定したりターン値が設定されたりします。

定義解析中に書式エラーを検出した場合は，エラーメッセージを出力して解析を続行します。書式エラーのあった定義内容の有効・無効の判断は，次のようになります。

書式エラーの内容

定義内容

有効時の仮定

文末に','または';'なし

有効

文末に','を仮定

その他

無効

−

（凡例）

−：該当しません。

要求コードには，マニュアル「OpenTP1 プログラム作成リファレンス COBOL言語編」に記載されている要求コードを指定します。ただし，次に示す機能については，要求コードを次のように設定してください。

機能

要求コード

TAMテーブルのレコード削除

DELT

TAMレコードのレコード入力

READ

TAMレコードの更新/出力

WRIT

正常終了したときに状態コードを返すCOBOL言語プログラムのリターン値は，次のように設定してください。

CBLDCADM(STATUS)

ユーザサーバの状態コードをリターン値として設定します。

CBLDCTAM(GST)

次に示す値を設定します。

1：RO（オープン状態）を返す場合

2：RC（クローズ状態）を返す場合

3：HL（論理閉塞状態）を返す場合

4：HO（障害閉塞状態）を返す場合

（例）CBLDCADM(STATUS)=1　と設定した場合，次を返します。

リターン値=0

ユーザサーバ状態コード=1

CBLDCTAM(GST)=3　と設定した場合，次を返します。

リターン値=0

TAMテーブル状態=HL（論理閉塞状態）

11.1.4　連続実行コマンドの設定

決めておいた順序でコマンドを連続して実行する場合，あらかじめ連続実行コマンド定義ファイルを作成し，実行したい順序でコマンドを設定しておきます。途中にendサブコマンドを指定した場合は，オフラインテスタは終了し，以降のコマンドは実行しません。

連続実行コマンド定義ファイルには，サービス実行中にオフラインテスタからの問い合わせに対して応答するコマンド（readサブコマンドなど）も指定できます。

指定がなければ入力待ちになります。

定義方法や記述形式は，オフラインテスタ環境定義と同じです。

(1)　形式

コマンド名 〔コマンド引数 … 〕 {,|;}

(2)　機能

オフラインテスタに連続して実行させるコマンドを定義します。

(3)　オペランド

コマンド名

コマンド名として指定できるのは，次の値です。

call

end

ps

read

start

stop

write

そのほかのコマンドを指定した場合は，コマンドエラーのメッセージが出力され，コマンドを無視して処理が続行されます。

コマンド引数

指定したコマンドに対する，コマンド引数を指定します。

(4)　定義例

call  ser1 sppsub1 a_data,
call  ser2 mcfsub b_data+c_data,
call  ser3 sppsub2 d_data,
read  rtn_data,
#call ser1 sppsub1 b_data,
         :
         :
end;

(5)　注意事項

定義解析中に書式エラーを検出した場合は，エラーメッセージを出力して定義解析が続行されます。書式エラーのあった定義内容の有効・無効の判断は，次のようになります。

書式エラーの内容

定義内容

有効時の仮定

文末に','または';'なし

有効

文末に','を仮定

その他

無効

−

（凡例）

−：該当しません。

コマンドは，実際にcmdautoサブコマンドが入力されたあとに，個々のコマンドを実行する時点でチェックされます。

11.1.5　スタブの生成

スタブは，RPC環境やXATMI環境，およびTxRPC環境でサービスを使用できるUAP（SPPとMHP）に必要です。

RPCおよびXATMIインタフェースのUAPの場合，スタブはRPC（XATMI）インタフェース定義を格納した，RPC(XATMI)インタフェース定義ファイルからスタブゼネレータで作成します。TxRPCインタフェースのUAPの場合，スタブやサーバUAPのテンプレートなどは，インタフェース定義言語ファイルからOpenTP1のコマンドで作成します。作成したスタブはC言語のコンパイラで翻訳して，サーバUAPのオブジェクトファイルに結合させます。

オフラインテスタで使用するスタブの作成方法は，実業務用のUAPの場合と同じです。スタブの作成方法については，マニュアル「OpenTP1 プログラム作成リファレンス C言語編」を参照してください。

11.2　ユーザが作成するファイル

オフラインテスタを使用するために，ユーザが作成するファイルの一覧を次の表に示します。

表11‒2　ユーザが作成するファイルの一覧

ファイル種別

用途と内容

作成タイミング

削除者

削除タイミング

サービス要求データファイル

RPC要求データファイル

RPCインタフェースのクライアントUAPシミュレート機能使用時，サービス要求先に渡すデータを格納します。

サービス要求前

ユーザ

任意

XATMI要求データファイル

XATMIインタフェースのクライアントUAPシミュレート機能使用時，サービス要求先に渡すデータを格納します。

サービス要求前

ユーザ

任意

TxRPC要求データファイル

TxRPCインタフェースのクライアントUAPシミュレート機能使用時，サービス要求先に渡すデータを格納します。

サービス要求前

ユーザ

任意

サービス応答データファイル

RPC応答データファイル

RPCインタフェースのサーバUAPシミュレート機能使用時，サービス結果として応答するデータを格納します。

シミュレート対象のSPPの起動時

ユーザ

任意

XATMI応答データファイル

XATMIインタフェースのサーバUAPシミュレート機能使用時，サービス結果として応答するデータを格納します。

シミュレート対象のSPPの起動時

ユーザ

任意

TxRPC応答データファイル

TxRPCインタフェースのサーバUAPシミュレート機能使用時，サービス結果として応答するデータを格納します。

シミュレート対象のSPPの起動時

ユーザ

任意

XATMI受信データファイル

tprecv関数で受信するデータを格納します。

サービス要求前

ユーザ

任意

MCF受信メッセージファイル

MCFシミュレート機能使用時，MHPに渡すメッセージを格納します。

サービス要求前

ユーザ

任意

運用コマンド結果データファイル

運用コマンドシミュレート機能使用時，実行結果としてUAPに返すデータを格納します。

サービス要求前

ユーザ

任意

ユーザファイル

DAM，TAM機能使用時，ユーザファイルとして使用します。

オフラインテスタ起動前

ユーザ

任意

注

ユーザが作成するファイルは，次のファイルを除いたすべてのファイルで，オンラインテスタのものが使用できます。

・XATMI受信データファイル

・MCF受信メッセージファイル（非同期型受信メッセージファイル）

・運用コマンド結果データファイル

11.2.1　サービス要求データファイル

(1)　RPC要求データファイル

RPCインタフェースのクライアントUAPシミュレート機能使用時，サービスに対応したサービス関数に渡すデータを格納します。一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

データ長

0

4

サービス関数に渡すデータの長さを指定します

（1〜DCRPC_MAX_MESSAGE_SIZEの指定値）。

応答領域長

4

4

サービス関数に渡す応答領域長を指定します

（1〜DCRPC_MAX_MESSAGE_SIZEの指定値）。

データ

8

n

サービス関数に渡すデータを指定します。

(c)　注意事項

サービス関数の引数との関係を次に示します。

データ

データ長

応答領域長

RPC要求データファイルは，オンラインテスタのファイルも使用できます。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

(2)　XATMI要求データファイル

XATMIインタフェースのクライアントUAPシミュレート機能使用時，サービスに対応したサービス関数に渡すデータを格納します。一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

呼び出し種別

0

8

サービスを呼び出す際に，呼び出し元の関数の種別を指定します。

call：tpcall関数からの呼び出し

acall：tpacall関数からの呼び出し

connect：tpconnect関数からの呼び出し

タイプ

8

8

バッファタイプとして，次の文字列のどれかを指定します。

X_OCTET

X_COMMON

X_C_TYPE

サブタイプ

16

16

サブタイプを16文字以下の文字列で指定します。ただし，タイプに'X_OCTET'を指定した場合は，サブタイプはヌル文字とします。

フラグ

32

4

サービス関数に渡す次のフラグを，16進数で指定します。

0x00000000L：0

0x00000004L：TPNOREPLY

0x00000008L：TPNOTRAN

0x00000100L：TPNOCHANGE

0x00000800L：TPSENDONLY

0x00001000L：TPRECVONLY

データ長

36

4

サービス関数に渡すデータの長さを指定します（0〜524288）。データがない場合は0を指定します。

0を指定すると，タイプ，サブタイプの指定は無視されます。

データ

40

n

サービス関数に渡すデータを指定します。

(c)　注意事項

サービス関数の引数との関係を次に示します。

void tpservice(svcinf)
     TPSVCINFO *svcinf;

     struct TPSVCINFO {
               char name[32];    ……1.
               char *data;       ……2.
               long len;         ……3.
               long flags;       ……4.
               int cd;           ……5.
           }

サービス名

タイプ，サブタイプにマッピングされたデータが格納されているアドレス

dataで示すデータの長さ

フラグ（指定したフラグをビット列で格納）

会話記述子（0を格納）

XATMI要求データファイルは，オンラインテスタのファイルも使用できます。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

応答データ領域は，応答データ内のバッファタイプ，サブタイプに従って再度割り当てられます。

タイプ，サブタイプを指定した場合のデータ長とデータは，スタブで定義したデータ構造（構造体）と同じでなければなりません。また，スタブで定義したデータ構造は，バウンダリ調整が行われます（合計長は4の整数倍となります）。そのため，ファイルで指定するデータはその調整部分を考慮して作成する必要があります。

(3)　TxRPC要求データファイル

TxRPCインタフェースのクライアントUAPシミュレート機能使用時，サービスに対応したサービス関数に渡すデータを格納します。一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

メジャーバージョン

0

2

txidlコマンドのインタフェース定義で指定した，メジャーバージョンの値を指定します。

省略する場合は，0を指定します。

マイナーバージョン

2

2

txidlコマンドのインタフェース定義で指定したマイナーバージョンの値を指定します。

省略する場合は，0を指定します。

データ長

4

4

データ部に指定するデータの長さを指定します

（0〜DCRPC_MAX_MESSAGE_SIZEの指定値-16）。

データ

8

n

サービス関数に渡す引数データを指定します。ただし，引数にアドレスを設定する場合は，アドレスの指す領域の内容そのものをデータに設定してください。

アドレスがヌルの場合は，文字列"#NULL##"をデータに設定してください。

(c)　注意事項

TxRPC要求データファイルのデータ内容と，サービス関数の引数と引数が受け取るデータの関係を次に示します。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

データ内容に誤りがある場合のUAPの動作は保証しません。

11.2.2　サービス応答データファイル

(1)　RPC応答データファイル

RPCインタフェースのサーバUAPシミュレート機能使用時，シミュレート対象のSPPにサービスを要求した際に，サービスの要求元へ返す応答データを格納します。

一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

データ長

0

4

サービス要求元へ返すデータの長さを指定します

（0〜2147483647）。

データ

4

n

サービス要求元へ返すデータを指定します。

(c)　注意事項

サービス要求元のサービス要求関数（dc_rpc_call関数）の引数との関係を次に示します。

dc_rpc_call(……,in,in_len,out,out_len)
                            1.

データ

RPC応答データファイルは，オンラインテスタのファイルも使用できます。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

(2)　XATMI応答データファイル

XATMIインタフェースのサーバUAPシミュレート機能使用時，シミュレート対象のSPPにサービスを要求した際に，サービスの要求元へ返す応答データを格納します。

一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

タイプ

0

8

バッファタイプとして，次の文字列のどれかを指定します。

X_OCTET

X_COMMON

X_C_TYPE

サブタイプ

8

16

サブタイプを16文字以下の文字列で指定します。ただし，タイプに'X_OCTET'を指定した場合は，サブタイプはヌル文字とします。

サービス終了コード

24

4

tpreturn関数のrvalで指定する次のどちらかの値を，16進数で指定します。この値は，tperrno領域に設定されます。

0x04000000L：TPSUCCESS

0x20000000L：TPFAIL

リターンコード

28

4

tpreturn関数のrcodeで指定する値を16進数で指定します。この値は，tpurcode領域に設定されます。

データ長

32

4

サービス要求元に返すデータの長さを指定します（0〜524288）。データがない場合は0を指定します。

0を指定すると，タイプ，サブタイプの指定は無視されます。

データ

36

n

サービス要求元に返すデータを指定します。

(c)　注意事項

サービス終了関数（tpreturn関数）の引数との関係を次に示します。

tpreturn(rval,rcode,data,len,……)
           1.   2.    3.  4.

サービス終了コード

リターンコード

タイプ，サブタイプで確保されたバッファに格納したデータ

データ長

XATMI応答データファイルは，オンラインテスタのファイルも使用できます。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

タイプ，サブタイプを指定した場合のデータ長とデータは，スタブで定義したデータ構造（構造体）と同じでなければなりません。また，スタブで定義したデータ構造は，バウンダリ調整が行われます（合計長は4の整数倍となります）。そのため，ファイルで指定するデータはその調整部分を考慮して作成する必要があります。

(3)　TxRPC応答データファイル

TxRPCインタフェースのサーバUAPシミュレート機能使用時，シミュレート対象のSPPにサービスを要求した際に，サービスの要求元へ返す応答データを格納します。一つのファイルには，一つのデータを作成します。

(a)　ファイルの構造

(b)　ファイルの内容

項目

位置

長さ（バイト）

内容

システム領域

0

12

オフラインテスタが使用する領域です。

使用しないでください。

データ長

12

4

データ部に指定するデータの長さと，リターン値の長さの合計を指定します

（0〜DCRPC_MAX_MESSAGE_SIZEの指定値-16）。

リターン値

16

m

サービス関数のリターン値を指定します。データの型とサイズはtxidlコマンドのインタフェース定義に指定した値となります。サービス関数がvoid型の場合，リターン値は指定できません。

データ

16+m

n

クライアントに返す引数データを指定します。引数データには，txidlコマンドのインタフェース定義のパラメタ宣言に[out]属性で指定した引数だけを指定します。

引数にアドレスを設定する場合は，アドレスの指す領域の内容そのものをデータに設定してください。アドレスがヌルの場合は，文字列"#NULL##"をデータに設定してください。

(c)　注意事項

TxRPC応答データファイルのデータ内容と，サービス関数の引数と引数が受け取るデータの関係を次に示します。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

データ内容に誤りがある場合のUAPの動作は保証しません。

11.2.3　XATMI受信データファイル

tprecv関数で，UAPが受け取るメッセージを格納します。一つのファイルには複数のデータを作成でき，順番にtprecv関数へ渡します。

(1)　ファイルの構造

(2)　ファイルの内容

項目

位置

長さ（バイト）

内容

共用領域

0

36

XATMI送信データファイルとの共用領域です。

空白，またはヌル文字を指定します。

タイプ

36

8

バッファタイプとして，次の文字列のどれかを指定します。

X_OCTET

X_COMMON

X_C_TYPE

サブタイプ

44

16

サブタイプを16文字以下の文字列で指定します。

ただし，タイプに'X_OCTET'を指定した場合は，サブタイプはヌル文字とします。

イベントフラグ

60

4

tprecv関数に渡す次の文字列のどれかを，16進数で指定します。

0x00000000L：0

0x00000001L：TPEV_DISCONIMM

0x00000002L：TPEV_SVCERR

0x00000004L：TPEV_SVCFAIL

0x00000008L：TPEV_SVCSUCC

0x00000020L：TPEV_SENDONLY

データ長

64

4

tprecv関数に渡すデータの長さを指定します（0〜524288）。データがない場合は0を指定します。

0を指定すると，タイプ，サブタイプの指定は無視されます。

データ

68

n

tprecv関数に渡すデータを指定します。

(3)　注意事項

メッセージ受信関数（tprecv関数）の引数との関係を次に示します。

tprecv(……,data,len,……,revent)
              1.  2.        3.

タイプ，サブタイプで確保されたバッファに格納したデータ

データ長

イベントフラグ

XATMI受信データファイルは，オンラインテスタのファイルは使用できません。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

データ長に満たないデータを指定した場合は，エラーとなります。また，データ長を超えた部分のデータは無視されます。

受信データは実行単位に作成します。一つのサービスで複数回tprecv関数を発行する場合は，その数だけデータを作成しておく必要があります。データの数よりtprecv関数の発行回数が多い場合は，tpreturn関数のデータが受信されたものとし，それ以降は，エラーとなります。

XATMI受信データファイルは，サービス単位にオープン，クローズします。

タイプ，サブタイプを指定した場合のデータ長とデータは，スタブで定義したデータ構造（構造体）と同じでなければなりません。また，スタブで定義したデータ構造は，バウンダリ調整が行われます（合計長は4の整数倍となります）。そのため，ファイルで指定するデータはその調整部分を考慮して作成する必要があります。

11.2.4　MCF受信メッセージファイル

1論理メッセージは，一つまたは複数のセグメントで構成されています。1セグメントはセグメント情報の入ったヘッダ部と，メッセージデータであるデータ部で構成されています。

セグメントには，次の五つの種別があります。

単セグメント

1論理メッセージが1セグメントで構成されている場合のセグメント

先頭セグメント

1論理メッセージが複数セグメントで構成されている場合の先頭セグメント

中間セグメント

1論理メッセージが複数セグメントで構成されている場合の中間セグメント

最終セグメント

1論理メッセージが複数セグメントで構成されている場合の最終セグメント

ヘッダセグメント

二つのメッセージを連結する場合に，先頭に付けるセグメント

なお，セグメントの種別は，ヘッダ部に指定します。

MCF関数（dc_mcf_receive関数，dc_mcf_recvsync関数，またはdc_mcf_sendrecv関数）で，UAPが受け取るメッセージを格納します。一つのファイルには，一つの論理メッセージを作成します。ヘッダセグメントを使用すると，二つのメッセージを連結できます。

(1)　ファイルの構造

●　1論理メッセージ1セグメントのとき

●　1論理メッセージ複数セグメントのとき

●　ヘッダセグメントのとき

(2)　ファイルの内容

項目

位置

長さ（バイト）

内容

ヘッダ

入出力論理端末名

0

9

MCF関数でやり取りするための論理端末名を指定します（最後のヌル文字を含みます）。

複数セグメントのときは，各セグメントで同じものを指定します。

マップ名称

9

9

マップ名称を指定します（最後のヌル文字を含みます）。複数セグメントのときは，各セグメントで同じものを指定します。

この指定はマップ名称を返す関数でだけ有効です。

予備

18

9

ヌル文字を指定します。

セグメント種別

27

1

次の文字のどれかを指定します。

F：先頭セグメントのとき

M：中間セグメントのとき

L：最終セグメントのとき

O：単セグメントのとき

H：ヘッダセグメントのとき

メッセージ長

28

4

メッセージの長さを指定します（0〜2147483647）。

データ

メッセージ

32

n

セグメントの実体（データ）を，メッセージ長で指定した長さで指定します。

(3)　注意事項

MCF受信メッセージファイルの構造と，MCF関数でのUAPからのメッセージ受信要求との関係を次に示します。

ヘッダセグメントを連結すると，別ファイルに作成したデータを先頭セグメント，または単セグメントと合成してUAPに渡せます。ヘッダセグメントと，MCF関数でのUAPからのメッセージ受信要求との関係を次に示します。

MHPへのサービス要求時にセグメントヘッダに指定したセグメント種別と，実行時のファイルの種別との関係を次に示します。

●　1論理メッセージ1セグメントの場合

セグメント種別にF，M，およびLを指定した場合には，Oを指定した場合と同様に扱い，エラーとしません。

セグメント種別

ファイルの扱い

F

MCF受信メッセージファイルとして扱います。

M

L

O

H，X

ファイル不正として，ファイル名を問い合わせます。

（凡例）

X：F，M，L，O，およびH以外の指定

●　1論理メッセージ複数セグメントの場合

セグメント種別にL，H，およびOを指定したメッセージを受信すると，メッセージ完了と判断して以降のセグメントを無視します。セグメント種別にFを指定した場合とMを指定した場合は，同等に扱います。

セグメント種別

MHPが受信するセグメント

先頭セグメント

中間セグメント

最終セグメント

F

M

L

F，M，L

F

L

M

F，L※1

F

O

L

F，O※2

M

M

L

M，M，L

L

M

F

L※3

O

O

O

O※3

F

L

M

F，L※1

F

M

H

受信しません※4。

X

M

L

F

X

L

F

M

X

H

F

L

H※3

H

O

O

H※3

（凡例）

X：F，M，およびL以外の指定

注※1

Mは無視されます。

注※2

Lは無視されます。

注※3

中間セグメント以降は無視されます。

注※4

ファイル不正として，ファイル名を問い合わせます。

●　ヘッダセグメントによるファイルの連結の場合

セグメント種別にHを指定した場合にだけ連結します。そのほかのセグメント種別の場合は，連結するファイルの指定は無視します。

セグメント種別（連結の組み合わせ）

ファイルの扱い

H＋（Fで始まるファイル）

連結したMCF受信メッセージファイルとして扱います。

H＋（Mで始まるファイル）

H＋（Lで始まるファイル）

H＋（Oで始まるファイル）

H＋（Xで始まるファイル）

F，M，L，およびO＋（不特定の種別で始まるファイル）

＋以降のファイルを無視します。

X＋（不特定の種別で始まるファイル）

ファイル不正として，ファイル名を問い合わせます。

（凡例）

X：F，M，L，O，およびH以外の指定

ファイル名には'+'，空白，およびタブを使用できません。また，ファイル名として，'ps'または'end'は使用できません。

11.2.5　DAMファイル

DAMサービスシミュレート機能使用時，オフラインテスタ用のDAMファイルデータを格納します。DAMファイルは，エディタ，またはオフラインテスタが提供する関数（dc_dam_create関数）を使用したプログラムを作成・実行することで作成します。

(1)　ファイルの構造

(2)　ファイルの内容

項目

位置

長さ（バイト）

内容

ヘッダ

ファイル名

0

64

該当するDAMファイルの名称を指定します。内容はチェックしません。

ブロック長

64

4

1ブロックの長さを指定します（0〜32760）。

総ブロック数

68

4

データ部にあるブロックの総数を指定します（1〜2147483647）。

未使用

72

2

ヌル文字を指定します

閉塞状態

74

2

次のどれかを指定します。

0x0000：非閉塞状態（通常状態）

0x0001：論理閉塞状態

0x0002：障害閉塞状態

予備

76

20

ヌル文字を指定します。

データ

ブロック

96

n

任意のデータをブロック単位で指定します。

(3)　注意事項

ヘッダ部の総ブロック数と実際のブロック数が等しいかどうかはチェックされません。実際のブロック数が少ないと，データのアクセス時にエラーになります。

11.2.6　TAMファイル

TAMサービスシミュレート機能使用時，オフラインテスタ用のTAMデータを格納します。TAMファイルは，TAMデータファイルを基に，オフラインテスタのコマンド（utftamcreコマンド）で作成します。コマンドについては，「13.1　テストで使用する運用コマンド」を参照してください。

TAMデータファイルは，TP1/FS/Table Accessで使用する本来のTAMファイルと同じ方法で作成します。また，実業務用のTAMファイルをそのまま使用してもかまいません。実業務用のTAMファイルの作成方法は，マニュアル「OpenTP1 運用と操作」を参照してください。

11.2.7　運用コマンド結果データファイル

運用コマンドシミュレート機能使用時に，コマンドの実行結果としてUAPに返すデータを格納します。一つのファイルには，一つのデータを格納します。

(1)　ファイルの構造

(2)　ファイルの内容

項目

位置

長さ（バイト）

内容

ヘッダ

運用コマンドの結果コード

0

4

dc_adm_call_command関数の引数statに設定する値を指定します。

標準出力文字列長

4

4

標準出力文字列の長さ（ヌル文字を含みます）を指定します（0〜2147483647）。

標準エラー出力文字列長

8

4

標準エラー出力文字列の長さ（ヌル文字を含みます）を指定します（0〜2147483647）。

標準出力文字列

12

n

dc_adm_call_command関数の引数outmsgに設定するデータを指定します（最後のヌル文字を含みます。ヌル文字が付けられていない場合は文字列の最後の文字をヌル文字に置き換えます）。

標準出力文字列長が0の場合は指定しても無視されます。

標準エラー出力文字列

−

n

dc_adm_call_command関数の引数errmsgに設定するデータを指定します（最後のヌル文字を含みます。ヌル文字が付けられていない場合は文字列の最後の文字をヌル文字に置き換えます）。

標準エラー出力文字列長が0の場合は指定しても無視されます。

（凡例）

−：該当しません。

(3)　注意事項

運用コマンド結果データファイルは，オンラインテスタのものは使用できません。

標準出力文字列と標準エラー出力文字列の最後には，ヌル文字を付けてください。ヌル文字が付いていない場合は，文字列の最後の文字がヌル文字に置き換えられます。また，文字列長に0を指定した場合は，文字列を指定しても無視されます。

ファイル名には'+'を使用できません。また，ファイル名として，'ps'または'end'は使用できません。

DMLのSEND文で運用コマンドを発行する場合は，データ部を次のように指定します。

標準出力文字列長

0を指定します。

標準エラー出力文字列長

0を指定します（標準エラー出力を受け取らない指定の場合）。

11.3　ファイルの作成

ここでは，テスタファイルを簡単に作成するためのテストデータ定義ファイルの作成，およびオフラインテスタが作成するファイルについて説明します。

11.3.1　テストデータ定義ファイルの作成

テストデータ定義ファイルを作成すると，テスタファイル作成機能で簡単にテスタファイルを作成できます。

テストデータ定義ファイルの名称は任意です。テストデータ定義ファイルから作成できるテスタファイルを次に示します。

RPC要求データファイル

XATMI要求データファイル

TxRPC要求データファイル

RPC応答データファイル

XATMI応答データファイル

TxRPC応答データファイル

XATMI受信データファイル

MCF受信メッセージファイル

運用コマンド結果データファイル

(1)　形式

#コメント       ……1.

start テスタファイル識別子 テスタファイル種別 出力先ファイル名 ……2.

キーワード = 入力データ       ……5.

キーワード = 入力データ

sep       ……3.

キーワード = 入力データ
     :           :
     :           :
キーワード = 入力データ

end       ……4.

なお，形式中の太字の数字は，「(3)　説明」の番号と対応しています。

(2)　機能

テスタファイルに設定するテストデータを定義すると，テスタファイル作成コマンドでテスタファイルを作成できます。

なお，定義ファイルでの1行の長さは，改行コードを含めて512バイトまでです。

(3)　説明

1.コメント文

コメントを記述します。

コメント

コメントを，1行で記述します。

2.start文

一つのテスタファイルの入力データの開始を宣言します。各テスタファイルの入力データごとに，必ず記述します。

一つのテストデータ定義ファイル内に複数のテスタファイルの入力データを作成した場合，1テスタファイルの入力データの最後にend文を記述します。

テスタファイル識別子　　〜〈14文字以内の英数字〉

テストデータ定義ファイル中に記述した各テスタファイルのデータを区別するための識別子を指定します。1テストデータ定義ファイルで，一意の名称を指定します。

テスタファイル種別

テスタファイルの種別を指定します。指定できるテスタファイル種別を次に示します。

RRQ：RPC要求データファイル

XRQ：XATMI要求データファイル

TRQ：TxRPC要求データファイル

RRT：RPC応答データファイル

XRT：XATMI応答データファイル

TRT：TxRPC応答データファイル

XRV：XATMI受信データファイル

NRV：MCF受信メッセージファイル

COM：運用コマンド結果データファイル

出力先ファイル名　　〜〈パス名〉

入力データを基に作成する，テスタファイルの名称を指定します。

一つのテストデータ定義ファイル内に，複数のテスタファイル種別の入力データを作成する場合は，ファイル種別ごとに異なった出力先ファイル名を指定します。

テスタファイル種別が異なる入力データで出力先ファイル名を重複して指定すると，指定したファイルはテストデータが追加された状態で作成されます。この場合，エラーにはなりませんが，作成されたテスタファイルがテストで使用できないことがあります。

また，すでにあるファイル名を指定した場合は，テストデータがそのファイルに追加された状態で作成されます。

3.sep文

一つのファイルに複数のデータを記述するテスタファイルを作成する場合に，一つのデータの区切りを指定します。ただし，オフラインテスタの場合は，一つのファイルに複数のデータを記述しても先頭のデータだけが有効となり，二番目以降のデータは無視されます。

次のテスタファイルを作成する際に指定できます。

XATMI受信データファイル

運用コマンド結果データファイル

4.end文

一つのテスタファイルの入力データの終了を宣言します。各テスタファイルの入力データごとに，必ず記述します。

5.入力データ定義文

各テスタファイルの入力データを定義します。

入力データには，あらかじめ設定できる情報が決められている固定情報データと，ユーザが任意の情報を設定できるユーザデータ（キーワードがdataの場合）とがあります。一つのテストデータ内では，固定データはすべてユーザデータの前に記述してください。

なお，一つのテストデータ内では，入力データを重複して指定できません。ただし，運用コマンド結果データファイルでは，標準出力文字列データと標準エラー出力文字列データを設定するため，ユーザデータを2回指定します。

キーワード

各テスタファイル特有のデータを区別するための，キーワードを指定します。

キーワードの前後の空白文字やタブコードは無視されます。

入力データ

キーワードに対応する入力データを指定します。

入力データの前後の空白文字やタブコードは無視されます。

固定情報データを指定する場合の入力データの形式は，「(5)　テスタファイルのキーワードに対応する入力データの形式」の表を参照してください。

(4)　入力データにユーザデータを指定する場合に必要な設定

ユーザデータを指定する場合の，入力データの形式を次に示します。

(a)　ユーザデータ長の設定

ユーザデータ全体のデータ長は，固定情報データとして次の形式で設定します。

data_len=バイト数

ユーザデータとして設定したデータが，バイト数に設定したデータ長を超えた場合は，データを切り捨ててメッセージを出力します。データがデータ長に満たない場合は，それ以上のデータは設定しません。

(b)　ユーザデータの初期化

ユーザデータは，テスタファイル作成コマンドで，指定されたユーザデータ長分を初期化します。

(c)　文字データの設定

文字データは，次の形式で設定します。

data='データ'

文字データで記述した場合は，データの最後にヌル文字を付けません。

(d)　バイナリデータの設定

バイナリデータは，次の形式で設定します。

data=データ

データは10進数と16進数で記述できます。記述方法を次に示します。

10進数：数値をそのまま設定します。

16進数：数値の前に'0x'を付けます。

（例）

data=5 → データ：10進数の5
data=0x05 → データ：16進数の5

データは，int型で設定されます。

(e)　16進コード形式データの設定

16進コード形式のデータは，次の形式で設定します。

data=(code)0xデータ

データの部分には，16進コードで，nバイトのデータを2nけたで記述します。1行の最大長を超えないかぎり，記述できるデータのバイト数の制限はありません。

データ1バイトには，0x00 〜 0xffの値を記述します。

(code)の指定がない場合，データはバイナリデータの16進数の記述と見なします。

(f)　特殊文字の設定

改行コード，タブコード，ヌル文字，' ' '（一重引用符）および'¥'は，文字データ中で特殊文字として扱います。これらの文字を記述する場合は，次の形式で記述してください。

記述する文字

記述形式

改行コード

¥n

タブコード

¥t

ヌル文字

¥0

' ' '（一重引用符）

¥'

'¥'

¥¥

(g)　ファイルからのデータ読み込みの設定

ファイルから読み込んだデータをユーザデータとして使用する場合は，次の形式で設定します。

data=(file)ファイルのパス名

（例）

data=(file)/tmp/datafile → データ：/tmp/datafileのデータを設定

(h)　データの開始位置の設定

データを任意の位置から設定する場合は，次の形式で設定します。

data=［ユーザデータ先頭からのオフセット］データ

(i)　複数データ形式の設定

ユーザデータに複数のデータ型を使用する場合は，次の形式で設定します。

data=データ
    =データ
        ：
        ：

（例）

data=0x00000001   → 1番目のデータ
    ='ABCDEF'     → 2番目のデータ

(j)　バウンダリの調整

複数のデータ型の記述で前後のデータ型が異なる場合，テスタファイル作成コマンドで自動的に前のデータとのバウンダリを調整してデータを設定します。ただし，次の場合にはバウンダリを調整しません。

ファイルからユーザデータを読み込む場合

ユーザデータの開始位置を設定した場合

16進コード形式でデータを設定した場合

(5)　テスタファイルのキーワードに対応する入力データの形式

各テスタファイルのキーワードと，それに対応する入力データの形式の一覧を，以降の表に示します。

指定する情報については，「11.2　ユーザが作成するファイル」の各テスタファイルの説明を参照してください。

表11‒3　RPC要求データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

out_len

応答領域長

dc_rpc_call関数に指定する応答領域長を，10進数または16進数で設定します。

dataより前で設定します。

data_len

データ長

dc_rpc_call関数でサーバUAPに渡すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

dc_rpc_call関数でサーバUAPに渡すユーザデータを設定します。

表11‒4　XATMI要求データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

call_kind

呼び出し種別

サービス要求する関数種別として，次の文字列のどれかを設定します。

call

acall

connect

dataより前で設定します。

buff_type

タイプ

バッファタイプとして，次の文字列のどれかを設定します。

X_OCTET

X_COMMON

X_C_TYPE

dataより前で設定します。

sub_type

サブタイプ

サブタイプを16文字以内の文字列で設定します。dataより前で設定します。

（例）sub_type=subtype01

flag

フラグ

サービス関数に渡すフラグとして，次の文字列を設定します。複数のフラグを設定する場合は，'｜'で区切ります。

0

TPNOREPLY

TPNOTRAN

TONOCHANGE

TPSENDONLY

TPRECVONLY

dataより前で設定します。

data_len

データ長

tpcall関数，tpacall関数，またはtpconnect関数でサーバUAPに渡すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

tpcall関数，tpacall関数，またはtpconnect関数でサーバUAPに渡すユーザデータを設定します。

表11‒5　TxRPC要求データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

version

バージョン番号

txidlコマンドのインタフェース定義で指定したバージョン番号を10進数または16進数で設定します。dataより前で設定します。バージョン番号は省略できます。省略時は，0が設定されたと見なします。設定できる範囲は0〜65535です。

（例）

version=　　　バージョンは，0.0となります。

version=2　　 バージョンは，2.0となります。

version=3.2　　バージョンは，3.2となります。

data_len

データ長

サーバUAPに渡すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

サーバUAPに渡すユーザデータを設定します。

表11‒6　RPC応答データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

data_len

データ長

サービス終了時にクライアントUAPに返すユーザデータ長を，10進数または16進数で設定します。dataより前で設定します。

data

データ

サービス終了時にクライアントUAPに返すユーザデータを設定します。

表11‒7　XATMI応答データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

buff_type

タイプ

バッファタイプとして，次の文字列のどれかを設定します。

X_OCTET

X_COMMON

X_C_TYPE

dataより前で設定します。

sub_type

サブタイプ

サブタイプを16文字以内の文字列で設定します。dataより前で設定します。

（例）sub_type=subtype01

rval

サービス終了コード

サービス終了コードとして，次の文字列のどれかを設定します。

TPSUCCESS

TPFAIL

dataより前で設定します。

rcode

リターンコード

リターンコードを10進数または16進数で設定します。dataより前で設定します。

data_len

データ長

サービス終了時にクライアントUAPに返すユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

データ

サービス終了時にクライアントUAPに返すユーザデータを設定します。

表11‒8　TxRPC応答データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

data_len

データ長

クライアントUAPに渡すユーザデータ長を，10進数または16進数で設定します。

dataより前で設定します。

svc_rtn

リターン値

クライアントUAPに渡すリターン値を，10進数または16進数で設定します。

dataより前で設定します。

data

データ

クライアントUAPに渡すユーザデータを設定します。

表11‒9　XATMI受信データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

buff_type

タイプ

バッファタイプとして，次の文字列のどれかを設定します。

X_OCTET

X_COMMON

X_C_TYPE

dataより前で設定します。

sub_type

サブタイプ

サブタイプを16文字以内の文字列で設定します。dataより前で設定します。

（例）sub_type=subtype01

event

イベントフラグ

tprecv関数に渡すイベントフラグとして，次の文字列のどれかを設定します。

0

TPEV_DISCONIMM

TPEV_SVCERR

TPEV_SVCFAIL

TPEV_SVCSUCC

TPEV_SENDONLY

dataより前で設定します。

data_len

データ長

tprecv関数に渡すユーザデータ長を10進数または16進数で設定します。

dataより前で設定します。

data

データ

tprecv関数に渡すユーザデータを設定します。

sep

sep文

複数サービス分のデータを記述する場合に，1サービス分のデータの最後に記述します。ただし，最終データのあとには記述しません。

注

複数サービス分のデータを設定する場合は，buff_type以下のデータを繰り返し設定します。

表11‒10　MCF受信メッセージファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

termname

入出力論理端末名称

dc_mcf_receive関数に渡す入出力論理端末名称を，8文字以内の文字列で設定します。dataより前で設定します。

mapname

マップ名

dc_mcf_receive関数に渡すマップ名を，8文字以内の文字列で設定します。

dataより前で設定します。

seg_kind

セグメント種別

dc_mcf_receive関数に渡すセグメント種別として，次の文字のどれかを設定します。

F

M

L

O

H

複数セグメント分のデータがある場合は，次のどれかの順序で設定します。

F…M…L

F…F…L

M…M…L

L

H

O

dataより前で設定します。

data_len

メッセージ長

dc_mcf_receive関数に渡すセグメントのユーザデータ長を10進数または16進数で設定します。dataより前で設定します。

data

メッセージ

dc_mcf_receive関数に渡すセグメントのユーザデータを設定します。

注

複数セグメント分のデータを設定する場合は，seg_kind以下のデータを繰り返し設定します。

表11‒11　運用コマンド結果データファイルのキーワードと対応する入力データの形式

キーワード

指定する情報

説明

status_code

運用コマンドの結果コード

運用コマンドが返す結果コードを，10進数で設定します。dataより前で設定します。

outsize

標準出力文字列長

運用コマンドが標準出力に出力するメッセージ長を，10進数または16進数で設定します。dataより前で設定します。

errsize

標準エラー出力文字列長

運用コマンドが標準エラー出力に出力するメッセージ長を，10進数または16進数で設定します。dataより前で設定します。

data

標準出力文字列

運用コマンドが標準出力に出力するメッセージを，文字データで設定します。

data

標準エラー出力文字列

運用コマンドが標準エラー出力に出力するメッセージを，文字データで設定します。

sep

sep文

複数コマンド分のデータを記述する場合に，1コマンド分のデータの最後に記述します。ただし，最終データのあとには記述しません。

11.3.2　オフラインテスタが作成するファイル

オフラインテスタ使用時に，オフラインテスタが作成するファイルの一覧を次の表に示します。

表11‒12　オフラインテスタが作成するファイルの一覧

ファイル種別

用途と内容

作成タイミング

削除者

削除タイミング

XATMI送信データファイル

tpsend関数で送信するデータを格納します。

tpsend関数発行時

ユーザ

任意

一時記憶データファイル

MCFシミュレート機能使用時，UAPのdc_mcf_tempput関数で更新しdc_mcf_tempget関数で受け取るデータを格納します。

左記の関数内※1

オフラインテスタ※2

dc_mcf_contend関数発行時

トレースファイル

オフラインテスタトレース情報を取得します。

オフラインテスタ（UAP）の最初のトレース取得時

ユーザ

任意

注※1

ディレクトリ/tmp下に，dc_mcf_receive関数で取得した論理端末名称をファイル名にして作成されます。ただし，ディレクトリ/tmp下に同じ名称のファイルがある場合は，作成されません。

注※2

dc_mcf_contend関数を発行するUAPを動作させない場合は，ユーザが任意のタイミングで削除します。

12　テストの実行

オフラインテスタでの，テストの実行方法について説明します。

12.1　UAPの作成

12.1.1　UAP実行形式プログラムの作成

(1)　RPC・XATMIインタフェースのUAP実行形式プログラムの作成

RPC・XATMIインタフェースのUAP実行形式プログラムの作成手順を次の図に示します。

図12‒1　RPC・XATMIインタフェースのUAP実行形式プログラムの作成手順

RPC・XATMIインタフェースのUAP実行形式プログラムの作成に必要なスタブのソースプログラムは，RPC（XATMI）インタフェース定義ファイルを使用して，OpenTP1のstbmakeコマンドで作成します。stbmakeコマンドについては，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

スタブ生成の例を次に示します。

（例）RPCインタフェース定義ファイルからのスタブ生成

    stbmake spp1stb.def
                 1.

RPCインタフェース定義ファイル名

この例の場合に生成されるソースファイル名はspp1stb_sstb.cとなります。

（例）XATMIインタフェース定義ファイルからのスタブ生成

    stbmake -x spp1stb.def
                    1.

XATMIインタフェース定義ファイル名

この例の場合に生成されるソースファイル名はspp1stb_stbx.c，ヘッダファイル名はspp1stb_stbx.hとなります。

スタブの生成後，スタブとUAP（C言語，またはCOBOL言語）をコンパイルします。コンパイルに必要なOpenTP1のヘッダファイルは，OpenTP1本体が提供しているものを使用します。

コンパイル終了後，スタブのオブジェクトファイルとUAPのオブジェクトファイルを，オフラインテスタが提供するシミュレート関数ライブラリとリンケージします。

(2)　TxRPCインタフェースのUAP実行形式プログラムの作成

TxRPCインタフェースのUAP実行形式プログラムの作成手順を次の図に示します。

図12‒2　TxRPCインタフェースのUAP実行形式プログラムの作成手順

TxRPCインタフェースのUAP実行形式プログラムの作成に必要な，クライアントスタブやサーバスタブのソースプログラム，およびサーバUAPのテンプレートなどは，インタフェース定義言語ファイル（IDLファイル）を使用して，OpenTP1のtxidlコマンドで作成します。txidlコマンドについては，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

スタブおよびテンプレート生成の例を次に示します。

（例）IDLファイルからのスタブ生成

    txidl spp1.idl
              1.

インタフェース定義言語ファイル名

この例の場合に生成されるファイルは次の六つとなります。

・spp1_cstub.c（クライアントスタブソース）

・spp1_sstub.c（サーバスタブソース）

・Cspp1（クライアント用ユーザサービス定義）

・Sspp1（サーバ用ユーザサービス定義）

・spp1.h（ヘッダファイル）

・spp1.c（サーバソースプログラムテンプレート）

ファイルの生成後，テンプレートを基にUAPをコーディングして，スタブとUAP（C言語）をコンパイルします。コンパイルに必要なOpenTP1のヘッダファイルは，OpenTP1本体が提供しているものを使用します。UAPを作成する手順については，マニュアル「OpenTP1 プログラム作成リファレンス C言語編」を参照してください。

コンパイル終了後，スタブのオブジェクトファイルとUAPのオブジェクトファイルを，オフラインテスタが提供するシミュレート関数ライブラリとリンケージします。この場合，クライアントUAPはクライアントスタブのオブジェクトファイルを，サーバUAPはサーバスタブのオブジェクトファイルをリンケージしてください。

12.2　オフラインテスタの開始と終了

オフラインテスタは，utfstartコマンドで開始させます。utfstartコマンドには，オフラインテスタの実行条件を定義したオフラインテスタ環境定義ファイルの名称と，オプションパラメタを指定します。

オフラインテスタを起動すると，オフラインテスタ環境定義ファイルで指定したサービスグループが起動されます。すべてのUAPがmain関数を実行してサービス開始関数（dc_rpc_mainloop関数，またはdc_mcf_mainloop関数）を発行した時点で，コマンド入力を促すプロンプト'?>'が表示され，オフラインテスタのサブコマンドを入力できる状態になります。

オフラインテスタの起動時は，複数のサービスグループが一度に起動されるので，複数のUAPが並行に動作することがあります。

サブコマンドが入力できる状態でendサブコマンドを入力すると，オフラインテスタは終了します。

12.3　UAPの起動と停止

オフラインテスタは，OpenTP1の代わりにUAP（サービスグループ）の起動・停止を制御しています。オフラインテスタ起動時には，オフラインテスタ環境定義で起動抑止を指定していないすべてのUAPを起動します。また，オフラインテスタの起動完了後に，startサブコマンドでまだ起動していないUAPや，障害などで停止したUAPを起動できます。

オフラインテスタの終了時には，起動されているすべてのUAPを停止させます。

また，stopサブコマンドで個別にUAPを停止できます。

12.4　サービスの要求

サービスを要求するには，次の二つの方法があります。

dc_rpc_call関数やそのほかの関数などによるプログラム内からのサービス要求

callサブコマンド入力によるサービス要求

callサブコマンドでサービス要求する場合は，UAPの起動後（サービスグループの開始後）にコマンドを入力します。

12.5　テスタファイルの作成

テスタファイルの作成は，utffilcreコマンドで実行します。

テストデータ定義ファイルを使用してテスタファイルを作成する場合の手順は，オンラインテスタと同じです。作成手順については，「11.3.1　テストデータ定義ファイルの作成」を参照してください。

12.6　コマンドの連続実行

連続実行コマンド機能は，cmdautoサブコマンドを入力して実行します。cmdautoサブコマンドには，コマンド引数として連続実行コマンドファイルの名称を指定します。

連続実行コマンドファイルには，ユーザの応答待ち時に入力するコマンドも指定できます。なお，ファイル内のコマンドにエラーがあると，コマンドを無視するか，ユーザの応答待ちになります。

連続コマンド実行中にstopサブコマンドの実行以外でUAPプロセス（デバッガプロセス）が終了すると，連続実行コマンド機能を続行するか，中断するかの応答待ちになります。また，途中でサブコマンドの指定が足りなくなると，オフラインテスタからの問い合わせがあります。

12.7　デバッガの連動

オフラインテスタ環境定義でデバッガとの連動を指定しておくと，UAPはデバッガの制御下で動作します。テスト対象のUAPのソースファイルがあるディレクトリをデバッガに指示するなどの，デバッガへのパラメタが必要な場合は，あらかじめオフラインテスタ環境定義で指定しておきます。

デバッガとの連動は，UAPのmain関数から実行されます。ユーザは，デバッガに制御がわたって初期設定後，プログラム開始のコマンドを入力して実際にプログラムを開始させます。プログラムの実行が終了したあとは，デバッガを終了させます。なお，デバッガの再開始はできません。

デバッガとして使用できるのは次の二つです。

dbx

cbltd（COBOL2002）

デバッガの使用については，各デバッガの使用方法に従ってください。

12.8　オフラインテスタトレース情報の編集

オフラインテスタトレース情報は，オフラインテスタ起動時のオプションで，情報の出力可否や出力先，内容を選択してトレースファイルに取得します。トレースファイルに取得したトレース情報は，utftrcpicコマンドでサービス単位，サービスグループ単位に分けて出力できます。

トレースファイルのオープンなど，トレース情報を取得するための準備は，dc_rpc_open関数内でされます。そのため，dc_rpc_open関数より前で発行した関数のトレース情報は取得できません。また，DAMファイルアクセス用の次のシミュレート関数のトレース情報も取得できません。

dc_dam_create関数

dc_dam_get関数

dc_dam_iclose関数

dc_dam_iopen関数

dc_dam_put関数

COBOL言語のUAPで，要求コードやDMLなどの指定を誤った際に，APIのトレース情報を出力しないことがあります。この場合，メッセージKFCA20016-E，またはKFCA20018-Eが出力されます。また，DMLの記述を誤った際に，エラー情報が出力されて（COBOLコンパイラが出力）異常終了することがあります。

main関数の実行中など，UAPが並行して動作しているときのトレース情報は，トレース情報の行単位で混在している場合があります。これを防ぐためには，サービスグループの起動時点をずらす必要があります。

12.9　テスト実行中の注意事項

オフラインテスタでテストを実行する際の注意事項を示します。

12.9.1　オフラインテスタに関する注意事項

(1)　テスタプロセス異常終了時の後処理

オフラインテスタは，プロセス間を制御するために，パイプ機能および共用メモリ機能を使用しています。

割り込みキーを入力するなど，不測の事態でオフラインテスタを異常終了させた場合，使用中だった共用メモリ領域や一時ファイルが割り当てられたままになります。

そのままでもオフラインテスタを再度実行できますが，資源効率に問題がある場合は，ユーザが削除してください。

オフラインテスタが使用する一時ファイルに付けるファイル名は，次のとおりです。

shmxxxx（/tmpディレクトリの下に作成）

cpixxxx（/tmpディレクトリの下に作成）

ppixxxx（/tmpディレクトリの下に作成）

tttttttt（/tmpディレクトリの下に作成）

aaaaaaaaxxxx（/tmpディレクトリの下に作成）

（凡例）

xxxx

実行時のプロセスIDの16進表示です。

tttttttt

dc_mcf_receive関数で先頭セグメントを受信したときに返された論理端末名称と同じ名称です（最大8文字）。

aaaaaaaa

オフラインテスタ環境定義ファイルで指定したISTテーブル名称と同じ名称です（最大8文字）。

（例）

shm4e7

cpi3e9

ppi3e8

termnalA

また，オフラインテスタの異常終了のタイミングによっては，UAPプロセスおよびデバッガプロセス（デバッガの連動指定時）が残ることがあります。この場合は，ユーザがkillコマンドでプロセスを終了させてください。

(2)　オフラインテスタの上限値

オフラインテスタ使用時の上限値を，次の表に示します。

表12‒1　オフラインテスタの上限値

項目

項目の詳細

上限値

上限値を超えたときの処置

UAP起動待ち時間

オフラインテスタ起動時またはstartサブコマンド実行時，UAPプロセスを生成してからUAPプロセスが起動を開始する（dc_rpc_open関数を発行する）までの時間

60分

エラーメッセージを出力後，プロセスを強制終了させます※1。

UAP停止待ち時間

オフラインテスタ終了時またはstopサブコマンド実行時，UAPプロセスに終了を要求してから終了するまでの時間。デバッガの連動を指定しているUAPでは，デバッガプロセスが終了するまでの時間

10分

UAPプロセス，およびデバッガプロセスを強制終了させます。

コマンド行長さ

オフラインテスタのサブコマンドのコマンド行の長さ。または連続実行コマンドファイルの定義行の長さ

254バイト

エラーメッセージを出力後，コマンドを拒否します。

定義行長さ

オフラインテスタ環境定義ファイルの定義行の長さ，または関数リターン値ファイルの定義行の長さ

510バイト

エラーメッセージを出力後，その行を無視して定義解析を続行します※2。

パス名情報長さ

オフラインテスタ環境定義やコマンドで指定する，ディレクトリ名やパス名の長さ

255バイト

エラーメッセージを出力後，その指定を無効にします。

関数リターン値の定義数

関数リターン値ファイル内の関数リターン値の定義数

200

エラーメッセージを出力後，以降の行を無視して処理を続行します。

DAMファイル数

一つのUAP内で，dc_dam_open関数またはdc_dam_create関数でオープンしたDAMファイルの数

200

エラーメッセージを出力後，dc_dam_open関数またはdc_dam_create関数をエラーリターンさせます。

TAMファイル数

一つのUAP内で，dc_tam_open関数でオープンしたTAMファイルの数

200

エラーメッセージを出力後，dc_tam_open関数をエラーリターンさせます。

dc_rpc_call関数の発行数

一つのUAP内で，dc_rpc_poll_any_replies関数を発行しないで，DCRPC_NOWAIT指定のdc_rpc_call関数を発行した数

200

エラーメッセージを出力後，dc_rpc_call関数をエラーリターンさせます。

同期型メッセージ送受信関数の発行数

一つのサービス内で，dc_mcf_sendrecv関数，およびdc_mcf_recvsync関数を発行した数

100

エラーメッセージを出力後，dc_mcf_sendrecv関数またはdc_mcf_recvsync関数をエラーリターンさせます。

注※1

デバッガの連動を指定しているUAPは，対象外です。

注※2

定義解析終了後，オフラインテスタの起動を続行するかどうかの応答待ちになります。

(3)　サービスグループのリカーシブコール

オフラインテスタでは，サービス関数内でdc_rpc_call関数を発行して，サービスをネストして実行できます。ただし，別サービスであっても，同じサービスグループ内のサービスをネスト内で2回以上コールできません。

オフラインテスタでのリカーシブコールの例を，次の図に示します。

図12‒3　オフラインテスタでのリカーシブコール

(4)　サービスを受け付ける前後で発行できない関数

オフラインテスタでは，サービスを受け付ける前やサービスを受け付けたあと（dc_rpc_mainloop関数，またはdc_mcf_mainloop関数の発行前かリターン後）に次の関数を発行すると，エラーメッセージが出力されてエラーリターンします。

dc_rpc_call関数

dc_adm_call_command関数

dc_mcf_open，dc_mcf_close，dc_mcf_mainloop以外のMCF関数

(5)　ユーザオウンコーディング関数

オフラインテスタでは，ユーザオウンコーディングに関する関数のうち，dc_mcf_svstart関数はサポートしません。この関数を含むUAPをテストする場合，ユーザは同じ名称のダミーの関数を作成して，リンケージしてください。

(6)　DAMファイルアクセス関数でのTAMテーブルへのアクセス

オフラインテスタでは，DAMファイルアクセス関数でTAMテーブルにアクセスできません。アクセスした場合は，その動作は保証しません。

(7)　トランザクション内外の処理

オフラインテスタでは，トランザクション内外を意識した処理はサポートしません。

(8)　tpsend関数でのイベントの受け取り

XATMIインタフェースの会話型のサービス要求では，tpsend関数でイベントを受け取ることはできません。UAPのイベントを確認する場合は，関数リターン値ファイルを使用してください。

(9)　ISTテーブルへのアクセス

オフラインテスタのISTシミュレーション機能では，ISTテーブルの内容を一時ファイルに格納して，参照や更新の処理をしています。このため，本来なら発生しないファイルアクセスエラーが発生する場合があります。

この場合は，エラーメッセージが出力され，ファイルアクセスエラーが発生した関数がエラーリターンします。リターン値は，その関数が返すエラーリターン値のどれかです。

12.9.2　ファイルに関する注意事項

(1)　DAMファイル・TAMファイルの排他

DAMファイルやTAMファイルの排他は，ファイル単位で行います。このため，本来なら並行に動作してもデッドロックしないUAP間（同じDAMファイルの別ブロックをブロック排他するUAP間など）で，デッドロックが発生することがあります。

この場合，次のように処理して対処してください。

オフラインテスタ環境定義の指定で排他を抑止します。

utfstartコマンドの-cオプションの指定で更新を抑止します。

オフラインテスタ開始後にstartサブコマンドでUAPを順に起動して，UAPを並行動作させないようにします。

(2)　DAMファイルの一括処理ブロック数

オフラインテスタでは，dc_dam_create関数およびdc_dam_iopen関数発行時に設定される一括処理ブロック数の値に関係なく，1ブロック単位で処理します。ただし，0より小さい値では処理されません。

(3)　DAMファイル・TAMファイルのクローズ処理

dc_dam_open関数またはdc_tam_open関数を発行したあとは，必ずdc_dam_close関数またはdc_tam_close関数を発行してください。

dc_dam_close関数またはdc_tam_close関数を発行しないままサービスグループが終了した場合，そのサービスを再度実行すると，DAM（TAM）ファイルの二重オープンエラーや，排他エラーが発生することがあります。

この場合は，stopサブコマンドで該当するサービス（グループ）を停止し，startサブコマンドで再度起動してください。

(4)　COBOL UAPでのTAMファイルの排他

COBOL言語のUAPでは，TAMファイルは排他しません。COBOL言語を使用してUAPを作成する場合は，オフラインテスタ環境定義のTAMファイルの定義で，排他の抑止を指定してください。排他の抑止を指定しないと，TAMファイルにアクセスするサービスを再度実行した際に，排他エラーが発生することがあります。

この場合は，stopサブコマンドで該当するサービス（グループ）を停止し，startサブコマンドで再度起動してください。

12.9.3　UAPに関する注意事項

(1)　UAPの無限ループ

オフラインテスタでは，タイマ監視をしていないため，無限ループなどによってUAPからの応答がなくなった場合，オフラインテスタの応答もなくなることがあります。

この場合は，ユーザが別ウィンドウでkillコマンドを入力し，UAPプロセスを強制停止させてください。

なお，killコマンドで応答のなくなったUAP以外のプロセスを強制停止させた場合の動作は保証しません。

13　運用コマンド

オフラインテスタの運用コマンド，サブコマンドの使用方法について説明します。

13.1　テストで使用する運用コマンド

テストで使用する運用コマンドの一覧を，次の表に示します。

表13‒1　テストで使用する運用コマンドの一覧

コマンド名

機能

utfdamcre

オフラインテスタ用DAMファイルを作成します。

utffilcre

テスタファイルを作成します。

utfstart

オフラインテスタを開始します。

utftamcre

オフラインテスタ用のTAMファイルを作成します。

utftrcpic

ファイルからオフラインテスタトレース情報を取り出します。

13.1.1　utfdamcre（オフラインテスタ用DAMファイルの作成）

(1)　名称

オフラインテスタ用DAMファイルの作成

(2)　形式

utfdamcre ブロック長 ブロック数 DAMファイル名  〔入力ファイル名〕

(3)　機能

DAMデータファイルを入力して，オフラインテスタ用のDAMファイルを作成します。

(4)　コマンド引数

ブロック長　　〜((セクタ長 × n − 8))

DAMファイルのブロック長を指定します。

ブロック数　　〜((1〜2147483647))

作成するDAMファイルのブロック数を指定します。DAMファイルの大きさは，（ブロック長 × ブロック数 ＋ 96）バイトとなります。

DAMファイル名　　〜〈パス名〉

作成するDAMファイル名を指定します。

入力ファイル名　　〜〈パス名〉

DAMファイルに出力するデータを格納したファイル名を指定します。この指定を省略した場合は，DAMファイルにはヌルデータが出力されます。

(5)　注意事項

utfdamcreコマンド実行時にエラーが発生した場合，DAMファイルが割り当て状態のままとなります。そのため，utfdamcreコマンドを再度実行する前に，rmコマンドを使用してDAMファイルを削除する必要があります。

utfdamcreコマンドで指定したブロック数と入力ファイルのブロック数が異なる場合は，次のようになります。

指定したブロック数　＞　入力ファイルのブロック数の場合

DAMファイルの最後までヌルデータのブロックを出力します。

指定したブロック数　＜　入力ファイルのブロック数の場合

入力ファイルからのブロック入力を中止して，KFCA20789-Wのメッセージを出力してutfdamcreコマンドを終了します。

13.1.2　utffilcre（テスタファイルの作成）

(1)　名称

テスタファイルの作成

(2)　形式

utffilcre -e テストデータ定義ファイル名

(3)　機能

指定したテストデータ定義ファイルから，テスタファイルを作成します。

(4)　オプション

-e　テストデータ定義ファイル名　　〜〈パス名〉

作成するテスタファイルの入力データを定義した，テストデータ定義ファイルの名称を指定します。

13.1.3　utfstart（オフラインテスタの開始）

(1)　名称

オフラインテスタの開始

(2)　形式

utfstart〔-s〕〔-l〕〔-i〕〔-f〕〔-g〕〔-d〕〔-c〕オフラインテスタ環境定義ファイル名

(3)　機能

オフラインテスタ環境定義ファイルの内容に従って，オフラインテスタを開始します。

(4)　オプション

-s

サービス関数名とリターン情報を，オフラインテスタトレース情報として標準出力へ出力します。

-iオプションと同時に指定した場合，この指定は無視されます。

-l

サービス関数名やリターン情報のほか，関数の引数情報をオフラインテスタトレース情報として標準出力へ出力します。

-iオプションと同時に指定した場合，この指定は無視されます。

-i

オフラインテスタトレース情報の出力を抑止します。

-f

オフラインテスタトレース情報を，標準出力とトレースファイルへ出力します。トレースファイルがすでにある場合は，最後のデータの後ろに追加して出力します。トレースファイルがない場合は，オフラインテスタがトレースファイルを作成して出力します。

-gオプションと同時に指定した場合，この指定は無視されます。

-g

オフラインテスタトレース情報を，標準出力とトレースファイルへ出力します。トレースファイルがすでにある場合は，トレースファイルを再度作成し，ファイルの先頭からトレース情報を出力します。トレースファイルがない場合は，オフラインテスタがトレースファイルを作成して出力します。

-d

関数の引数情報がデータ領域（バッファなど）のとき，データ領域の内容をすべて標準出力へ出力します。

この指定を省略した場合は，20バイト分だけを出力します。

このオプションは，-lオプションを指定した場合にだけ有効です。

-c

DAMサービスとTAMサービスで，DAMファイル，およびTAMファイルを更新しません。

この指定を省略した場合は，DAMファイル，およびTAMファイルを更新します。

(5)　コマンド引数

オフラインテスタ環境定義ファイル名　　〜〈パス名〉

テスト環境を定義した，オフラインテスタ環境定義ファイルの名称を指定します。

(6)　注意事項

すべてのオプションを省略した場合は，-lを仮定します。

13.1.4　utftamcre（オフラインテスタ用TAMファイルの作成）

(1)　名称

オフラインテスタ用TAMファイルの作成

(2)　形式

utftamcre -r レコード長 -l キー領域長 -k キー開始位置 -m 最大レコード数
          〔-t〕〔-u ハッシュエントリ使用率〕〔-s〕
          〔-d TAMデータファイル名〕TAMファイル名

(3)　機能

TAMデータファイルを入力して，オフラインテスタ用のTAMファイルを作成します。

(4)　オプション

-r　レコード長　　〜((1〜2147483647))

TAMファイルのレコード長を指定します。

-l　キー領域長　　〜((1〜2147483647))

キーの長さを指定します。

-k　キー開始位置

レコードの先頭を0とした，キーの開始位置までのオフセットを指定します。

-sオプションを指定した場合，-kオプションの指定が0以外の場合はエラーになります。また，TAMファイルの管理部のレコード長は，（レコード長 − キー領域長）になります。

-m　最大レコード数　　〜((1〜2147483647))

TAMテーブル内の最大レコード数を指定します。

-t

TAMテーブルをツリー構造で作成します。

省略時にはハッシュ構造で作成します。ただし，その場合は必ず-uオプションを指定してください。

-u　ハッシュエントリ使用率　　〜((1〜100))

ハッシュ域として使用するインデクスの使用率を指定します。

-tオプションを指定した場合は，-uオプションを指定するとエラーになります。

-s

レコードの内容からキー領域を削除する場合に指定します。

-d　TAMデータファイル名　　〜((255))

TAMデータファイルの名称を指定します。最大255文字まで指定でき，この文字数を超えるとエラーになります。また，TAMファイル名とTAMデータファイル名が同じ場合はエラーになります。

なお，指定したファイル名が同じかどうかは，単純にファイル名を比較して判断されます。

(5)　コマンド引数

TAMファイル名　　〜〈パス名〉

このコマンドで作成するTAMファイルの名称を指定します。

(6)　注意事項

TAMデータファイルのデータ長が（レコード長 × 最大レコード数）を超える場合は，エラーになります。

TAMデータファイルのデータ長が，-rオプションで指定したレコード長で割り切れない場合は，あまりのデータ長分のデータは切り捨てられ，TAMファイルには格納されません。

13.1.5　utftrcpic（トレース情報の取り出し）

(1)　名称

トレース情報の取り出し

(2)　形式

utftrcpic トレースファイル名 サービスグループ名
         〔サービス名〔データファイル名〕〕

(3)　機能

オフラインテスタトレース情報を，キーを基にトレースファイルから取り出し，標準出力へ出力します。

(4)　コマンド引数

トレースファイル名　　〜〈パス名〉

オフラインテスタトレース情報を取得した，トレースファイルの名称を指定します。

サービスグループ名　　〜〈1〜31文字の識別子〉

キー情報として，取り出したいトレース情報を含むサービスグループの名称を指定します。

サービス名　　〜〈1〜31文字の識別子〉

キー情報として，取り出したいトレース情報を含むサービスの名称を指定します。

この指定を省略した場合は，トレース情報はサービスグループ単位で取り出します。

データファイル名　　〜〈パス名〉

キー情報として，サービス実行時のデータファイル名を特定したい場合に，そのデータファイルの名称を指定します。

(5)　出力形式

時刻と関数の情報

サービスグループを起動した時刻（時：分：秒）

C言語の関数名

COBOL言語の機能名

要求コード

DML文名

引数の情報

(IN)は，UAPが関数の引数で指定した内容の表示を，(OUT)は，関数がUAPに返す内容の表示を意味します。文字列領域のアドレスがヌル文字の場合は，'引数名(OUT)=NULL'を表示します。

データとデータ長の情報

データの内容を表示する場合，データ長分だけを1行40バイトで表示します。

異常時の形式について，次に示します。

（例）

データのアドレスがヌル文字の場合

データ名(IN)=NULL

データ長が0の場合

データ名(IN)=

オプションフラグの情報

オプションフラグ名

COBOL言語フラグ名

COBOL言語フラグ種別

指定を誤っていた場合は，誤ったフラグのコードがそのまま表示されます。

COBOL言語のフラグ名とフラグ種別は'[***]'と表示されます。

表示例を次に示します。

（例）

オプションフラグ(IN)=00000001

DCDAM_FILE_EXCLUSIVE［排他種別：B］

00000006[***]

リターン値の情報

C言語リターン値定義名

C言語リターン値10進数表示

COBOL言語リターン値10進数表示

オフラインテスタ開始時のメッセージと，SPP起動時に取得したトレース情報

サブコマンド入力時に取得したトレース情報（テスト開始）

サービス実行時に取得したトレース情報

テスタファイル読み込み時に取得したトレース情報

サブコマンド入力時に取得したトレース情報（テスト終了）

オフラインテスタ終了時，SPP停止時に取得したトレース情報

(6)　注意事項

オフラインテスタトレース情報を取り出す範囲は，サービスの開始から終了までです。

サービスの開始から終了までの間に，readまたはwriteサブコマンドの入力待ちかファイル名の入力待ちが発生した場合は，その応答内容によってトレース情報の取り出し範囲が変わります。

応答内容と取り出し範囲の関係を次に示します。

入力待ち種別

応答内容

トレース情報の取り出し範囲

readまたはwriteサブコマンドの入力待ち

readまたはwriteサブコマンドを入力

コマンド入力以降のトレース情報も取り出します。

psサブコマンドを入力

コマンド入力情報とコマンド実行結果は取り出しません。

endサブコマンドを入力

コマンド入力以降のトレース情報は取り出しません。

不正なコマンドを入力

コマンド入力情報とエラーメッセージは取り出しません。

ファイル名の入力待ち

psサブコマンドを入力

コマンド入力情報とコマンド実行結果は取り出しません。

endサブコマンドを入力

コマンド入力以降のトレース情報は取り出しません。

psまたはendサブコマンド以外を入力

コマンド入力以降のトレース情報も取り出します。

13.2　テストで使用するサブコマンド

テストで使用するサブコマンドの一覧を，次の表に示します。

表13‒2　テストで使用するサブコマンドの一覧

コマンド名

機能

call

サービスを要求します。

cmdauto

コマンドを連続実行します。

end

オフラインテスタを終了します。

ps

テスト状況を表示します。

read

オフラインテスタにテスタファイル名を連絡します。

start

サービスグループを起動します。

stop

サービスグループを停止します。

write

オフラインテスタにテスタファイル名を連絡します。

13.2.1　call（サービスの要求）

(1)　名称

サービスの要求

(2)　形式

call サービスグループ名 サービス名{RPC要求データファイル名|
                              XATMI要求データファイル名|
                              TxRPC要求データファイル名|
                              MCF受信メッセージファイル名
                              〔 + MCF受信メッセージファイル名〕}

(3)　機能

サービスグループ名に対応したSPP，またはMHPプロセスを起動し，サービス名に対応したサービス関数を実行します。

(4)　コマンド引数

サービスグループ名　　〜〈1〜31文字の識別子〉

起動するサービスを含むサービスグループの名称を指定します。

サービス名　　〜〈1〜31文字の識別子〉

起動するサービスの名称を指定します。

RPC要求データファイル名　　〜〈パス名〉

RPCインタフェースのSPPへサービス要求する場合，最初のサービス関数で受け取るデータを格納したRPC要求データファイルの名称を指定します。

XATMI要求データファイル名　　〜〈パス名〉

XATMIインタフェースのSPPへサービス要求する場合，最初のサービス関数で受け取るデータを格納したXATMI要求データファイルの名称を指定します。

TxRPC要求データファイル名　　〜〈パス名〉

TxRPCインタフェースのSPPへサービス要求する場合，最初のサービス関数で受け取るデータを格納したTxRPC要求データファイルの名称を指定します。

MCF受信メッセージファイル名　　〜〈パス名〉

MHPへサービス要求する場合，UAPがMCF関数で受け取るデータを格納したMCF受信メッセージファイルの名称を指定します。

連結構成にする場合は，連結するMCF受信メッセージファイルの名称を'+'で続けて指定します。

(5)　注意事項

サービスグループ名はオフラインテスタ環境定義で，サービス名はユーザサービス定義で定義しておく必要があります。

各テスタファイルにアクセスできない場合や，ファイルの内容が誤っている場合，次のプロンプトが表示され，ファイル名の入力待ち状態になります。MCF受信メッセージファイルの連結指定時に，片方のファイルだけでエラーが発生した場合は，エラーの発生したファイル名だけでなく，連結指定でのファイル名を指定してください。

〈形式〉

file(group1:service1)?>
       1.      2.

サービスグループ名

サービス名

13.2.2　cmdauto（コマンドの連続実行）

(1)　名称

コマンドの連続実行

(2)　形式

cmdauto 連続実行コマンドファイル名

(3)　機能

連続実行コマンドファイルの内容に従って，コマンドを連続して実行します。

(4)　コマンド引数

連続実行コマンドファイル名　　〜〈パス名〉

連続して実行するコマンドを記述した，連続実行コマンドファイルの名称を指定します。

13.2.3　end（オフラインテスタの終了）

(1)　名称

オフラインテスタの終了

(2)　形式

end

(3)　機能

起動されているサービスグループを停止させ，オフラインテスタを終了します。

(4)　注意事項

このコマンドは，各サービスグループのdc_rpc_mainloop関数を正常リターンさせます。10分経過してもUAPプロセス（デバッガ連動指定時はデバッガプロセス）が終了しない場合，UAPプロセス（デバッガプロセス）を強制終了します。ただし，readサブコマンド，またはファイル名の入力待ち状態でこのコマンドを入力すると，そのサービスグループは，オフラインテスタがdc_rpc_close関数を発行してから，正常終了します。

13.2.4　ps（テスト状況の表示）

(1)　名称

テスト状況の表示

(2)　形式

ps

(3)　機能

オフラインテスタ下のプロセスの状態を表示します。

(4)　出力形式

psサブコマンドを実行した時刻（時：分：秒）

UAPプロセスID

プロセスが停止状態のときは'*****'を表示します。

サービスグループの種別コード

SPP：SPPを示します。

MHP：MHPを示します。

サービスグループ名

プロセスの状態

R：このサービスグループのプロセスが起動状態であることを示します。

E：このサービスグループのプロセスが停止状態であることを示します。

F：サーバUAPシミュレート機能で，シミュレート対象として指定（起動・停止の対象外）していることを示します。

デバッガ連動指定の有無

D：デバッガの連動を指定していることを示します。

＊：デバッガの連動を指定していないことを示します。

デバッガのプロセスID

プロセスが停止状態のときは'*****'を表示します。

13.2.5　read（テスタファイル名の連絡）

(1)　名称

テスタファイル名の連絡

(2)　形式

read テスタファイル名〔 + MCF受信メッセージファイル名〕

(3)　機能

各種シミュレート機能で必要になったテスタファイル名を，オフラインテスタに連絡します。

(4)　コマンド引数

テスタファイル名　　〜〈パス名〉

オフラインテスタに連絡する，テスタファイルの名称を指定します。

どのテスタファイル名の連絡が必要なのかは，次のプロンプト中に表示されます。

〈形式〉

サービスグループ名

サービス名（サービス外では表示しません）

テスタファイルの種別

・rpc_rtn：サービス応答データファイル

・crm_rtn：XATMI応答データファイル

・trp_trn：TxRPC応答データファイル

・crm_rcv：XATMI受信データファイル

・mcf_msg：MCF受信メッセージファイル

・adm_cmd：運用コマンド結果データファイル

MCF受信メッセージファイル名　　〜〈パス名〉

テスタファイル名をMCF受信メッセージファイル名で連結構成にする場合に，'+'に続けて連結するMCF受信メッセージファイルの名称を指定します。

13.2.6　start（サービスグループの起動）

(1)　名称

サービスグループの起動

(2)　形式

start {SPP|MHP} サービスグループ名

(3)　機能

次のようなUAPを再起動させます。

オフラインテスタ開始時にサービスグループ起動の抑止を指定したUAP

テスト中に異常終了したUAP

(4)　コマンド引数

SPP｜MHP

起動するサービスグループの種別を指定します。

SPP：SPPを示します。

MHP：MHPを示します。

サービスグループ名　　〜〈1〜31文字の識別子〉

起動するサービスグループの名称を指定します。

サービスグループ名はオフラインテスタ環境定義で定義しておく必要があります。

13.2.7　stop（サービスグループの停止）

(1)　名称

サービスグループの停止

(2)　形式

stop {SPP|MHP} サービスグループ名

(3)　機能

起動中のUAPを停止させます。

(4)　コマンド引数

SPP｜MHP

停止するサービスグループの種別を指定します。

SPP：SPPを示します。

MHP：MHPを示します。

サービスグループ名　　〜〈1〜31文字の識別子〉

停止するサービスグループの名称を指定します。

サービスグループ名はオフラインテスタ環境定義で定義しておく必要があります。

13.2.8　write（テスタファイル名の連絡）

(1)　名称

テスタファイル名の連絡

(2)　形式

write テスタファイル名

(3)　機能

各種シミュレート機能で必要になったテスタファイル名を，オフラインテスタに連絡します。

(4)　コマンド引数

テスタファイル名　　〜〈パス名〉

オフラインテスタに連絡する，テスタファイルの名称を指定します。

どのテスタファイル名の連絡が必要なのかは，次のプロンプト中に表示されます。

〈形式〉

サービスグループ名

サービス名（サービス外では表示しません）

テスタファイルの種別

crm_snd：XATMI送信データファイル

14　関数のシミュレーション内容

オフラインテスタが提供するシミュレート関数の内容と，関数のリターン値について説明します。

14.1　関数のシミュレーション内容の一覧

ここでは，関数のシミュレーション内容と，関数シミュレート時の注意事項について説明します。

14.1.1　関数のシミュレーション内容

シミュレート関数での，OpenTP1の提供する関数のシミュレーション内容一覧を，次の表に示します。

表14‒1　OpenTP1の提供する関数のシミュレーション内容一覧

機能名称

関数名

〔プログラム名

(要求コード)〕

<DML>

機能

トレース情報の取得可否

リターン値の設定可否

関数の処理

システム運用の管理(adm)

dc_adm_call_command関数

〔CBLDCADM(COMMAND)〕

運用コマンドの発行

○

○

運用コマンド結果データファイルから，データを入力して返します。

dc_adm_complete関数

〔CBLDCADM(COMPLETE)〕

ユーザサーバの開始完了報告

○

○

−

dc_adm_status関数

〔CBLDCADM(STATUS)〕

ユーザサーバの状態報告

○

○

正常時は，リターン値としてDCADM_STAT_START_NORMALを，リターンコードとして0を返します。

dc_adm_get_nd_status_begin関数

OpenTP1ノードのステータス取得処理開始

○

○

関数リターン値ファイルに設定したノード識別子の個数を取得します。

dc_adm_get_nd_status_next関数

OpenTP1ノードのステータス取得

○

○

関数リターン値ファイルに設定したノード識別子を取得します。正常時は，C言語のリターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_nd_status_done関数

OpenTP1ノードのステータス取得処理終了

○

○

−

dc_adm_get_nd_status関数

OpenTP1ノードのステータス取得

○

○

正常時は，リターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_node_id関数

システム共通定義からの自ノード識別子取得

○

○

関数リターン値ファイルに設定したノード識別子を取得します。

dc_adm_get_sv_status_begin関数

サーバのステータス取得処理開始

○

○

関数リターン値ファイルに設定したサーバ名の個数を取得します。

dc_adm_get_sv_status_next関数

OpenTP1ノード上のサーバのステータス取得

○

○

関数リターン値ファイルに設定したサーバ名を取得します。正常時は，C言語のリターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_sv_status_done関数

サーバのステータス取得処理終了

○

○

−

dc_adm_get_sv_status関数

指定したサーバのステータス取得

○

○

正常時は，リターン値としてDCADM_STATUS_NORMALを返します。

dc_adm_get_nodeconf_begin関数

ノード識別子取得開始

○

○

関数リターン値ファイルに設定したノード識別子の個数を返します。

dc_adm_get_nodeconf_next関数

関数発行元が属するマルチノードエリア，または指定されたサブエリアの全ノード識別子取得

○

○

関数リターン値ファイルに設定したノード識別子を返します。

dc_adm_get_nodeconf_done関数

ノード識別子取得終了

○

○

−

DAMファイルサービス(dam)

dc_dam_close関数

〔CBLDCDAM(CLOS)〕

DAMファイルのクローズ

○

○

DAMファイルをクローズします。

dc_dam_create関数

〔CBLDCDMB(CRAT)〕

物理ファイルの割り当て

×

×

DAMファイルを生成し，そのファイル記述子を返します。

dc_dam_end関数

〔CBLDCDAM(END)〕

回復対象外ファイルの使用終了宣言

○

○

−

dc_dam_get関数

〔CBLDCDMB(GET)〕

物理ファイルのブロック読み込み

×

×

DAMファイルから指定ブロックを指定バッファに読み込みます。

dc_dam_hold関数

〔CBLDCDAM(HOLD)〕

DAMファイルの論理閉塞

○

○

DAMファイルのヘッダに閉塞のステータスを設定し，閉塞状態にします。

dc_dam_iclose関数

〔CBLDCDMB(CLOS)〕

物理ファイルのクローズ

×

×

DAMファイルをクローズします。

dc_dam_iopen関数

〔CBLDCDMB(OPEN)〕

物理ファイルのオープン

×

×

DAMファイルをオープンし，そのファイル記述子を返します。

dc_dam_open関数

〔CBLDCDAM(OPEN)〕

DAMファイルのオープン

○

○

DAMファイルをオープンし，そのファイル記述子を返します。また，ファイル排他の指定がある場合はファイルを排他します。

dc_dam_put関数

〔CBLDCDMB(PUT)〕

物理ファイルのブロック書き込み

×

×

DAMファイルの指定ブロックにバッファの内容を書き込みます。

dc_dam_read関数

〔CBLDCDAM(READ)〕

DAMファイルのブロック読み込み

○

○

DAMファイルの指定ブロックを指定バッファに読み込みます。また，ブロック排他の指定がある場合はファイルを排他します。

dc_dam_start関数

〔CBLDCDAM(STRT)〕

回復対象外ファイルの使用開始宣言

○

○

−

dc_dam_status関数

〔CBLDCDAM(STAT)〕

DAMファイル状態表示

○

○

DAMファイルの状態を返します。

dc_dam_release関数

〔CBLDCDAM(RLSE)〕

DAMファイルの閉塞解除

○

○

DAMファイルのヘッダが閉塞のステータスの場合，これをリセットし，閉塞を解除します。

dc_dam_rewrite関数

〔CBLDCDAM(REWT)〕

DAMファイルのブロック更新

○

○

DAMファイルの指定ブロックに指定バッファの内容を書き込みます。

dc_dam_write関数

〔CBLDCDAM(WRIT)〕

DAMファイルの出力

○

○

DAMファイルの指定ブロックに指定バッファの内容を書き込みます。

共用テーブルサービス(ist)

dc_ist_close関数

〔CBLDCIST(CLOS)〕

ISTテーブルのクローズ

○

○

ISTテーブルをクローズします。

dc_ist_open関数

〔CBLDCIST(OPEN)〕

ISTテーブルのオープン

○

○

ISTテーブルをオープンし，その記述子を返します。

dc_ist_read関数

〔CBLDCIST(READ)〕

ISTテ−ブルからのレコード読み込み

○

○

ISTテーブルから指定レコードを指定バッファに読み込みます。

dc_ist_write関数

〔CBLDCIST(WRIT)〕

ISTテーブルへのレコード書き込み

○

○

ISTテーブルへ指定されたレコードを書き込みます。

ユーザジャーナルの取得(jnl)

dc_jnl_ujput関数

〔CBLDCJNL(UJPUT)〕

UAP履歴情報の取得

○

○

−

資源の排他制御(lck)

dc_lck_get関数

〔CBLDCLCK(GET)〕

資源の排他要求

○

○

−

dc_lck_release_all関数

〔CBLDCLCK(RELALL)〕

全資源の排他解除要求

○

○

−

dc_lck_release_byname関数

〔CBLDCLCK(RELNAME)〕

資源名称指定による排他解除要求

○

○

−

メッセージログ管理(log)

dc_logprint関数

〔CBLDCLOG(PRINT)〕

ログメッセージ出力要求

○

○

−

メッセージ制御機能(mcf)

dc_mcf_execap関数

〔CBLDCMCF(EXECAP)〕

<SEND>

アプリケーションの起動

○

○

−

dc_mcf_mainloop関数

〔CBLDCMCF(MAINLOOP)〕

MCFサービス開始

○

○

オフラインテスタにサービスの開始を報告します。該当するMHPへのサービス要求があると，サービス関数を実行し，再度サービス要求待ちになります。オフラインテスタの終了などでUAPの終了要求を受け取ると，リターンします。

dc_mcf_receive関数

〔CBLDCMCF(RECEIVE)〕

<RECEIVE>

メッセージ受信

○

○

MCF受信メッセージファイルからセグメントを入力し，メッセージ受信領域に格納します。また，トランザクション通番をカウントアップします。

dc_mcf_reply関数

〔CBLDCMCF(REPLY)〕

<SEND>

応答メッセージの送信

○

○

−

dc_mcf_rollback関数

〔CBLDCMCF(ROLLBACK)〕

<ROLLBACK>

部分回復

○

○

この関数発行後の処理を別トランザクションとして動作するように指定したとき，トランザクション通番をカウントアップします。

dc_mcf_send関数

〔CBLDCMCF(SEND)〕

<SEND>

メッセージ送信

○

○

−

dc_mcf_open関数

〔CBLDCMCF(OPEN)〕

MCF通信サービス使用のための準備・初期化

○

○

−

dc_mcf_close関数

〔CBLDCMCF(CLOSE)〕

MCF通信サービス使用のための環境を消去

○

×

−

dc_mcf_sendrecv関数

〔CBLDCMCF(SENDRECV)〕

<SEND>

同期型メッセージ送受信

○

○

最終セグメントのトレースを出力後，MCF受信メッセージファイルからセグメントを入力し，メッセージ受信領域に格納します。

dc_mcf_recvsync関数

〔CBLDCMCF(RECVSYNC)〕

<RECEIVE>

同期型メッセージ受信

○

○

MCF受信メッセージファイルからセグメントを入力し，メッセージ受信領域に格納します。

dc_mcf_sendsync関数

〔CBLDCMCF(SENDSYNC)〕

<SEND>/<ENABLE>/<DISABLE>

同期型メッセージ送信

○

○

−

dc_mcf_tempget関数

〔CBLDCMCF(TEMPGET)〕

<RECEIVE>

継続問い合わせ応答用一時記憶データ受け取り

○

○

一時記憶データファイルからデータを入力し，メッセージ受信領域に格納します。ファイルがない場合は，ヌル文字を格納します。

dc_mcf_tempput関数

〔CBLDCMCF(TEMPPUT)〕

<SEND>

継続問い合わせ応答用一時記憶データ更新

○

○

一時記憶データファイルを更新します。ファイルがない場合は，ファイルを作成して更新します。

dc_mcf_contend関数

〔CBLDCMCF(CONTEND)〕

<DISABLE>

継続問い合わせ応答終了

○

○

一時記憶データファイルを削除します。

dc_mcf_regster関数

UOC関数アドレス登録

○

○

−

dc_mcf_resend関数

〔CBLDCMCF(RESEND)〕

メッセージの再送信

○

○

−

dc_mcf_commit関数

〔CBLDCMCF(COMMIT)〕

同期点取得

○

○

トランザクション通番をカウントアップします。

リモートプロシジャコール(rpc)

dc_rpc_call関数

〔CBLDCRPC(CALL)〕

遠隔サービス呼び出し

○

○

オフラインテスタにサービス関数の実行を要求します。DCRPC_NOWAIT指定の場合，リターン値としてディスクリプタ（正の整数）を返します。DCRPC_NOREPLY指定の場合，指定したサービス（関数）には応答長として0を返します。

dc_rpc_close関数

〔CBLDCRPC(CLOSE)〕

UAP終了処理

○

×

−

dc_rpc_mainloop関数

〔CBLDCRSV(MAINLOOP)〕

SPPサービス開始

○

○

オフラインテスタにサービスの開始を報告します。該当するSPPへのサービス要求があると，サービス関数を実行し，再度サービス要求待ちになります。オフラインテスタの終了などでUAPの終了要求を受け取ると，リターンします。

dc_rpc_open関数

〔CBLDCRPC(OPEN)〕

UAP開始処理

○

○

共用メモリを割り当てたあと，UAPの開始をオフラインテスタに報告します。

dc_rpc_poll_any_replies関数

〔CBLDCRPC(POLLANYR)〕

dc_rpc_call関数（DCRPC_NOWAIT指定）の応答を受信

○

○

flagsがDCNOFLAGSの場合，まだ応答受信されていないdc_rpc_call関数（DCRPC_NOWAIT指定）の中で最初に発行したdc_rpc_call関数のディスクリプタを返します。

flagsがDCRPC_SPECIFIC_MSGの場合，DC_OKを返します。SPP内で正常終了したdc_rpc_call関数が発行されていない場合，DCRPC_PROTOを返します。

dc_rpc_discard_further_replies関数

〔CBLDCRPC(DISCARDF)〕

dc_rpc_call関数（DCRPC_NOWAIT指定）の応答を取り消し

○

×

dc_rpc_call関数（DCRPC_NOWAIT指定）で返したすべてのディスクリプタを取り消します。

dc_rpc_get_callers_address関数

〔CBLDCRPC(GETCLADR)〕

クライアントのノードアドレス通知

○

×

クライアントのアドレスとして，ADDRESS（固定値）を返します。

dc_rpc_set_service_prio関数

〔CBLDCRPC(SETSVPRI)〕

サービス要求のスケジュールプライオリティ設定

○

×

−

dc_rpc_get_service_prio関数

〔CBLDCRPC(GETSVPRI)〕

サービス要求のスケジュールプライオリティ値の取得

○

×

dc_rpc_set_service_prio関数で設定したスケジュールプライオリティの値を返します。

dc_rpc_set_watch_time関数

〔CBLDCRPC(SETWATCH)〕

サービス応答待ち時間更新

○

○

サービス応答待ち時間を更新します。

dc_rpc_get_watch_time関数

〔CBLDCRPC(GETWATCH)〕

サービス応答待ち時間参照

○

×

dc_rpc_set_watch_time関数で設定した値を参照します。未発行時には180を返します。

TAMファイルサービス(tam)

dc_tam_close関数

TAMテーブルのクローズ

○

○

TAMテーブルファイルの排他を解除し，クローズします。

dc_tam_delete関数

〔CBLDCTAM(ERS,ERSR)〕

TAMテーブルからレコード削除

○

○

キー値で指定されたレコードをTAMテーブルから削除します。TAMテーブルファイルの内容も変更します。

dc_tam_get_inf関数

〔CBLDCTAM(GST)〕

TAMテーブルの情報取得

○

○

指定TAMテーブルファイルに対するオープン要求が関数発行元プロセスから発行されていればDCTAM_STS_OPNを，発行されていなければDCTAM_STS_CLSを返します。

dc_tam_open関数

TAMテーブルのオープン

○

○

テーブルIDでの指定TAMテーブルファイルをオープンし，そのファイル記述子をテーブルIDとして返します。TAMテーブル排他の指定がある場合，TAMテーブルファイルを排他します。

dc_tam_read関数

〔CBLDCTAM(FxxR,FxxU)〕

TAMテーブルのレコード検索

○

○

共用メモリ上のTAMテーブル（管理部，インデクス部）から該当するインデクスを検索し，そのインデクスに対応するレコードをTAMテーブルファイルから読み込みます。レコード排他の指定がある場合，TAMテーブルファイルを排他します。

dc_tam_read_cancel関数

TAMテーブルのレコード検索を取り消し

○

○

指定レコードを含むTAMテーブルファイルに対する排他を解除します。

dc_tam_rewrite関数

TAMテーブルのレコード検索前提の更新

○

○

指定バッファの内容をTAMテーブル上の指定レコードに書き込みます。

dc_tam_write関数

〔CBLDCTAM(MFY,MFYS,STR)〕

TAMテーブルのレコード更新・追加

○

○

共用メモリ上のTAMテーブル（管理部，インデクス部）から該当するインデクスを検索し，そのインデクスに対応する，TAMテーブルファイル上のレコードに，指定バッファの内容を書き込みます。

トランザクション制御(trn)

dc_trn_begin関数

〔CBLDCTRN(BEGIN)〕

トランザクションの開始

○

○

トランザクション通番をカウントアップします。

dc_trn_chained_commit関数

〔CBLDCTRN(C-COMMIT)〕

トランザクションのコミット（連鎖モード）

○

○

トランザクション通番をカウントアップします。

dc_trn_chained_rollback関数

〔CBLDCTRN(C-ROLL)〕

トランザクションのロールバック（連鎖モード）

○

○

トランザクション通番をカウントアップします。

dc_trn_info関数

〔CBLDCTRN(INFO)〕

現在のトランザクションの情報をリターン

○

○

関数リターン値ファイルの指定がなければ，0を返します。

dc_trn_unchained_commit関数

〔CBLDCTRN(U-COMMIT)〕

トランザクションのコミット（非連鎖モード）

○

○

−

dc_trn_unchained_rollback関数

〔CBLDCTRN(U-ROLL)〕

トランザクションのロールバック（非連鎖モード）

○

○

−

TXインタフェース(tx_〜)

tx_begin関数

〔TXBEGIN〕

トランザクションの開始

○

○

トランザクション通番をカウントアップし，TXINFO情報を初期化します。

tx_close関数

〔TXCLOSE〕

リソースマネジャ集合のクローズ

○

○

−

tx_commit関数

〔TXCOMMIT〕

トランザクションのコミット

○

○

連鎖モードの場合，トランザクション通番をカウントアップします。

tx_info関数

〔TXINFORM〕

現在のトランザクションの情報をリターン

○

○

関数リターン値ファイルの指定がなければ，0を返します。

tx_open関数

〔TXOPEN〕

リソースマネジャ集合のオープン

○

○

−

tx_set_commit_return関数

〔TXSETCOMMITRET〕

commit_return特性の設定

○

○

−

tx_set_transaction_control関数

〔TXSETTRANCTL〕

transaction_control特性の設定

○

○

transaction_control特性を設定します。

tx_set_transaction_timeout関数

〔TXSETTIMEOUT〕

transaction_timeout特性の設定

○

○

−

tx_rollback関数

〔TXROLLBACK〕

トランザクションのロールバック

○

○

連鎖モードの場合，トランザクション通番をカウントアップし，transaction_state特性を設定します。

XATMIインタフェース(tp〜)

tpalloc関数

タイプトバッファの割り当て

○

○

引数のtype型で指定されたバッファを割り当て，そのポインタを返します。

tpfree関数

タイプトバッファの解放

○

×

tpalloc関数，tprealloc関数で割り当てたバッファを解放します。

tprealloc関数

タイプトバッファのサイズの変更

○

○

tpalloc関数，tprealloc関数で割り当てたバッファのサイズを変更します。

tptypes関数

タイプトバッファの情報の取得

○

○

tpalloc関数，tprealloc関数で割り当てたバッファのタイプとサブタイプを返します。

tpservice関数

サービス関数のテンプレート

○

×

サービス関数を呼び出す直前にトレース情報を取得します。

tpreturn関数

サービス関数からのリターン

○

○

リターン情報を設定して，サービス要求元にリターンします。

tpadvertise関数

サービス名の広告

○

○

−

tpunadvertise関数

サービス名の広告の取り消し

○

○

−

tpacall関数

サービスの非同期要求

○

○

オフラインテスタにサービス関数の実行を要求します。呼び出し結果はtpgetrply関数で返します。

tpcall関数

サービスの同期要求

○

○

オフラインテスタにサービス関数の実行を要求します。

tpcancel関数

サービスのキャンセル

○

○

tpacall関数で呼び出したサービスの応答をキャンセルします。

tpgetrply関数

サービスからの非同期応答の受信

○

○

サービス関数の実行結果を返します。

tpconnect関数

会話型サービスとのコネクションの確立

○

○

オフラインテスタにサービス関数の実行を要求します。実行結果はtprecv関数で返します。

tpdiscon関数

会話型サービスとのコネクションの切断

○

○

受信待ち（tprecv関数）があれば終了させ，tpdiscon関数受け付け後のtpsend関数，tprecv関数を受け付けないようにします。

tprecv関数

会話型サービスからのメッセージ受信

○

○

XATMI受信データファイルからデータを入力します。

tpsend関数

会話型サービスへのメッセージ送信

○

○

XATMI送信データファイルにデータを出力します。

オンラインテスタ(uto)

dc_uto_test_status関数

〔CBLDCUTO(T-STATUS)〕

ユーザサーバのテスト状態報告

○

○

非テストモード状態を返します。

（凡例）

○：取得または設定できます。

×：取得または設定できません。

−：処理しません。

14.1.2　関数シミュレート時の注意事項

関数シミュレート時の注意事項を次に示します。

関数発行元のUAPの種別，トランザクション状態，およびmain関数の内か外かはチェックされません。

関数の発行順序は，オフラインテスタの動作に影響するものだけがチェックされます。

引数の内容はチェックされません。ユーザがトレース情報を確認してチェックしてください。

COBOL言語のプログラムで，インタフェースコードや要求コードに設定誤りがある場合は，該当するプログラムのトレースは取得されません。ただし，エラーメッセージは出力されます。

dc_trn_〜関数と，tx_〜関数は混在して使用できません。また，混在して使用してもチェックされません。

オフラインテスタは，トランザクションの回数（以後，トランザクション通番と呼びます）をカウントしています。トランザクション通番は，一部のシミュレート関数発行時と，callサブコマンド実行時にカウントアップします。トランザクション通番は，tx_info関数のトレース情報で参照できます。トランザクション通番をカウントアップするシミュレート関数については，「14.1.1　関数のシミュレーション内容」を参照してください。

14.2　シミュレート関数リターン値の一覧

シミュレート関数のリターン値の一覧（ただし，0，DC_OK，DCMCFRTN_00000，TX_OKを除きます）を，次の表に示します。

表14‒2　シミュレート関数のリターン値一覧

機能名称

関数名

〔プログラム名

(要求コード)〕

<DML>

C言語でのリターン値

COBOL言語でのリターンコード

システム運用の管理(adm)

dc_adm_call_command関数

〔CBLDCADM(COMMAND)〕

DCADMER_STATNOTZERO

DCADMER_PARAM

DCADMER_MEMORY_OUT

DCADMER_MEMORY_ERR

DCADMER_MEMORY_OUTERR

DCADMER_PROTO

01801

01802

01803

01804

01805

01807※1

dc_adm_complete関数

〔CBLDCADM(COMPLETE)〕

DCADM_STAT_START_NORMAL

DCADMER_PROTO

DCADMER_PARAM

00000

01830※1

01831

dc_adm_status関数

〔CBLDCADM(STATUS)〕

DCADMER_PROTO

DCADMER_PARAM

01830※1

01831

dc_adm_get_nd_status_begin関数

DCADMER_PROTO

DCADMER_PARAM

−※1，※2

−

dc_adm_get_nd_status_next関数

DCADM_STAT_START_NORMAL

DCADMER_PROTO

DCADMER_PARAM

DCADMER_NO_MORE_ENTRY

−

−※1，※3

−

−

dc_adm_get_nd_status_done関数

DCADMER_PROTO

DCADMER_PARAM

−※1，※3

−

dc_adm_get_nd_status関数

DCADM_STAT_START_NORMAL

DCADMER_PROTO

DCADMER_PARAM

−

−※1，※2

−

dc_adm_get_node_id関数

DCADMER_PROTO

DCADMER_PARAM

−※1，※2

−

dc_adm_get_sv_status_begin関数

DCADMER_PROTO

DCADMER_PARAM

−※1，※2

−

dc_adm_get_sv_status_next関数

DCADM_STAT_START_NORMAL

DCADMER_PROTO

DCADMER_PARAM

DCADMER_NO_MORE_ENTRY

−

−※1，※3

−

−

dc_adm_get_sv_status_done関数

DCADMER_PROTO

DCADMER_PARAM

−※1，※3

−

dc_adm_get_sv_status関数

DCADM_STAT_START_NORMAL

DCADMER_PROTO

DCADMER_PARAM

−

−※1，※2

−

dc_adm_get_nodeconf_begin関数

DCADMER_PROTO

DCADMER_PARAM

−※1，※2

−

dc_adm_get_nodeconf_next関数

DCADMER_PROTO

DCADMER_PARAM

DCADMER_NO_MORE_ENTRY

−※1，※3

−

−

dc_adm_get_nodeconf_done関数

DCADMER_PROTO

DCADMER_PARAM

−※1，※3

−

DAMファイルサービス(dam)

dc_dam_close関数

〔CBLDCDAM(CLOS)〕

DCDAMER_PROTO

DCDAMER_BADF

DCDAMER_PARAM_FLAGS

01600※1

01603

01611

dc_dam_create関数

〔CBLDCDMB(CRAT)〕

DCDAMER_NOMEM

DCDAMER_OPENED

DCDAMER_PARAM_FLAGS

DCDAMER_FILEER

DCDAMER_PNUMER

DCDAMER_EXIST

DCDAMER_IOER

DCDAMER_OPENNUM

DCDAMER_ACCESS

DCDAMER_LBLNER

DCDAMER_LBNOER

DCDAMER_LFNOVF

01607

01608

01611

01614

01615

01617

01620

01627

01628

01630

01631

01635

dc_dam_end関数

〔CBLDCDAM(END)〕

DCDAMER_PROTO

DCDAMER_PARAM_FLAGS

01600※1

01611

dc_dam_get関数

〔CBLDCDMB(GET)〕

DCDAMER_BADF

DCDAMER_BUFER

DCDAMER_SEQER

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_EOF

01603

01604

01605

01611

01620

01637

dc_dam_hold関数

〔CBLDCDAM(HOLD)〕

DCDAMER_PROTO

DCDAMER_UNDEF

DCDAMER_PARAM_LFNAME

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_LHOLDED

DCDAMER_OHOLDED

01600※1

01601

01610

01611

01620

01625

01626

dc_dam_iclose関数

〔CBLDCDMB(CLOS)〕

DCDAMER_BADF

DCDAMER_PARAM_FLAGS

01603

01611

dc_dam_iopen関数

〔CBLDCDMB(OPEN)〕

DCDAMER_NOMEM

DCDAMER_OPENED

DCDAMER_PARAM_FLAGS

DCDAMER_FILEER

DCDAMER_PNUMER

DCDAMER_NOEXIST

DCDAMER_IOER

DCDAMER_OPENNUM

DCDAMER_ACCESS

DCDAMER_LFNOVF

01607

01608

01611

01614

01615

01619

01620

01627

01628

01635

dc_dam_open関数

〔CBLDCDAM(OPEN)〕

DCDAMER_PROTO

DCDAMER_UNDEF

DCDAMER_EXCER

DCDAMER_OPENED

DCDAMER_PARAM_LFNAME

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_LHOLD

DCDAMER_OHOLD

DCDAMER_OPENNUM

DCDAMER_ACCESS

01600※1

01601

01602

01608

01610

01611

01620

01621

01622

01627

01628

dc_dam_put関数

〔CBLDCDMB(PUT)〕

DCDAMER_BADF

DCDAMER_BUFER

DCDAMER_SEQER

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_EOF

01603

01604

01605

01611

01620

01637

dc_dam_read関数

〔CBLDCDAM(READ)〕

DCDAMER_PROTO

DCDAMER_EXCER

DCDAMER_BADF

DCDAMER_BUFER

DCDAMER_BNOER

DCDAMER_PARAM_KEYNO

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_LHOLD

DCDAMER_OHOLD

01600※1

01602

01603

01604

01606

01609

01611

01620

01621

01622

dc_dam_start関数

〔CBLDCDAM(STRT)〕

DCDAMER_PROTO

DCDAMER_PARAM_FLAGS

DCDAMER_STARTED

01600※1

01611

01647

dc_dam_status関数

〔CBLDCDAM(STAT)〕

DCDAMER_PROTO

DCDAMER_UNDEF

DCDAMER_PARAM_LFNAME

DCDAMER_PARAM_FLAGS

DCDAMER_PARAM_ERROR

DCDAMER_IOER

01600※1

01601

01610

01611

01612

01620

dc_dam_release関数

〔CBLDCDAM(RLSE)〕

DCDAMER_PROTO

DCDAMER_UNDEF

DCDAMER_PARAM_LFNAME

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_NOLHOLD

DCDAMER_NOOHOLD

01600※1

01601

01610

01611

01620

01623

01624

dc_dam_rewrite関数

〔CBLDCDAM(REWT)〕

DCDAMER_PROTO

DCDAMER_BADF

DCDAMER_BUFER

DCDAMER_BNOER

DCDAMER_PARAM_KEYNO

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_LHOLD

DCDAMER_OHOLD

DCDAMER_BUFOV

01600※1

01603

01604

01606

01609

01611

01620

01621

01622

01641

dc_dam_write関数

〔CBLDCDAM(WRIT)〕

DCDAMER_PROTO

DCDAMER_EXCER

DCDAMER_BADF

DCDAMER_BUFER

DCDAMER_BNOER

DCDAMER_PARAM_KEYNO

DCDAMER_PARAM_FLAGS

DCDAMER_IOER

DCDAMER_LHOLD

DCDAMER_OHOLD

DCDAMER_BUFOV

01600※1

01602

01603

01604

01606

01609

01611

01620

01621

01622

01641

共用テーブルサービス(ist)

dc_ist_close関数

〔CBLDCIST(CLOS)〕

DCISTER_PROTO

DCISTER_BADID

DCISTER_PARAM_FLAGS

−※1

−

−

dc_ist_open関数

〔CBLDCIST(OPEN)〕

DCISTER_PROTO

DCISTER_UNDEF

DCISTER_OPENED

DCISTER_PARAM_TBLNAME

DCISTER_PARAM_FLAGS

−※1

−

−

−

−

dc_ist_read関数

〔CBLDCIST(READ)〕

DCISTER_PROTO

DCISTER_BADID

DCISTER_BUFER

DCISTER_RNOER

DCISTER_NOMEM

DCISTER_PARAM_KEYNO

DCISTER_PARAM_FLAGS

−※1

−

−

−

−

−

−

dc_ist_write関数

〔CBLDCIST(WRIT)〕

DCISTER_PROTO

DCISTER_BADID

DCISTER_BUFER

DCISTER_RNOER

DCISTER_NOMEM

DCISTER_PARAM_KEYNO

DCISTER_PARAM_FLAGS

DCISTER_BUFOV

−※1

−

−

−

−

−

−

−

ユーザジャーナルの取得(jnl)

dc_jnl_ujput関数

〔CBLDCJNL(UJPUT)〕

DCJNLER_PARAM

DCJNLER_SHORT

DCJNLER_PROTO

01101

01102

01105※1

資源の排他制御(lck)

dc_lck_get関数

〔CBLDCLCK(GET)〕

DCLCKER_PARAM

DCLCKER_OUTOFTRN

00401

00455※1

dc_lck_release_all関数

〔CBLDCLCK(RELALL)〕

DCLCKER_PARAM

DCLCKER_OUTOFTRN

00401

00455※1

dc_lck_release_byname関数

〔CBLDCLCK(RELNAME)〕

DCLCKER_PARAM

DCLCKER_OUTOFTRN

00401

00455※1

メッセージログ管理(log)

dc_logprint関数

〔CBLDCLOG(PRINT)〕

DCLOGER_PARAM_ARGS

DCLOGER_COMM

01900

01901※1

メッセージ制御機能(mcf)

dc_mcf_execap関数

〔CBLDCMCF(EXECAP)〕

<SEND>

DCMCFER_PROTO

DCMCFRTN_71002

DCMCFRTN_72000

DCMCFRTN_72001

DCMCFRTN_72005

DCMCFRTN_72016

DCMCFRTN_72024

DCMCFRTN_72026

DCMCFRTN_72041

DCMCFRTN_72108

70901※1，※4

71002

72000

72001

72005

72016

72024

72026

72041

72108

dc_mcf_mainloop関数

〔CBLDCMCF(MAINLOOP)〕

DCMCFER_INVALID_ARGS

DCMCFER_PROTO

DCMCFER_FATAL

70900

70901※1，※5

70902

dc_mcf_receive関数

〔CBLDCMCF(RECEIVE)〕

<RECEIVE>

DCMCFER_PROTO

DCMCFRTN_71000

DCMCFRTN_71001

DCMCFRTN_71002

DCMCFRTN_72000

DCMCFRTN_72001

DCMCFRTN_72013

DCMCFRTN_72016

DCMCFRTN_72024

DCMCFRTN_72025

DCMCFRTN_72036

70901※1，※4

71000

71001

71002

72000

72001

72013

72016

72024

72025

72036

dc_mcf_reply関数

〔CBLDCMCF(REPLY)〕

<SEND>

DCMCFER_PROTO

DCMCFRTN_71002

DCMCFRTN_72000

DCMCFRTN_72005

DCMCFRTN_72016

DCMCFRTN_72017

DCMCFRTN_72026

DCMCFRTN_72041

DCMCFRTN_72047

70901※1，※4

71002

72000

72005

72016

72017

72026

72041

72047

dc_mcf_rollback関数

〔CBLDCMCF(ROLLBACK)〕

<ROLLBACK>

DCMCFER_PROTO

DCMCFRTN_72000

DCMCFRTN_72027

70901※1，※4

72000

72027

dc_mcf_send関数

〔CBLDCMCF(SEND)〕

<SEND>

DCMCFER_PROTO

DCMCFRTN_71002

DCMCFRTN_72000

DCMCFRTN_72001

DCMCFRTN_72005

DCMCFRTN_72016

DCMCFRTN_72017

DCMCFRTN_72020

DCMCFRTN_72024

DCMCFRTN_72026

DCMCFRTN_72041

70901※1，※4

71002

72000

72001

72005

72016

72017

72020

72024

72026

72041

dc_mcf_open関数

〔CBLDCMCF(OPEN)〕

DCMCFER_INVALID_ARGS

DCMCFER_PROTO

70900

70901※1

dc_mcf_close関数

〔CBLDCMCF(CLOSE)〕

−

−

dc_mcf_sendrecv関数

〔CBLDCMCF(SENDRECV)〕

<SEND>

DCMCFER_PROTO

DCMCFRTN_71002

DCMCFRTN_71108

DCMCFRTN_72000

DCMCFRTN_72001

DCMCFRTN_72005

DCMCFRTN_72013

DCMCFRTN_72016

DCMCFRTN_72024

DCMCFRTN_72026

DCMCFRTN_72036

DCMCFRTN_72041

70901※1，※4

71002

71108

72000

72001

72005

72013

72016

72024

72026

72036

72041

dc_mcf_recvsync関数

〔CBLDCMCF(RECVSYNC)〕

<RECEIVE>

DCMCFER_PROTO

DCMCFRTN_71001

DCMCFRTN_71108

DCMCFRTN_72000

DCMCFRTN_72001

DCMCFRTN_72013

DCMCFRTN_72016

DCMCFRTN_72024

DCMCFRTN_72025

DCMCFRTN_72036

DCMCFRTN_73001

70901※1，※4

71001

71108

72000

72001

72013

72016

72024

72025

72036

73001

dc_mcf_sendsync関数

〔CBLDCMCF(SENDSYNC)〕

<SEND>/<ENABLE>/<DISABLE>

DCMCFER_PROTO

DCMCFRTN_71002

DCMCFRTN_72000

DCMCFRTN_72001

DCMCFRTN_72005

DCMCFRTN_72016

DCMCFRTN_72024

DCMCFRTN_72026

DCMCFRTN_72041

70901※1，※4

71002

72000

72001

72005

72016

72024

72026

72041

dc_mcf_tempget関数

〔CBLDCMCF(TEMPGET)〕

<RECEIVE>

DCMCFER_PROTO

DCMCFRTN_72000

DCMCFRTN_72013

DCMCFRTN_72016

DCMCFRTN_72036

DCMCFRTN_72106

70901※1，※4

72000

72013

72016

72036

72106

dc_mcf_tempput関数

〔CBLDCMCF(TEMPPUT)〕

<SEND>

DCMCFER_PROTO

DCMCFRTN_71103

DCMCFRTN_72000

DCMCFRTN_72013

DCMCFRTN_72016

DCMCFRTN_72035

DCMCFRTN_72106

70901※1，※4

71103

72000

72013

72016

72035

72106

dc_mcf_contend関数

〔CBLDCMCF(CONTEND)〕

<DISABLE>

DCMCFER_PROTO

DCMCFRTN_72000

DCMCFRTN_72016

70901※1

72000

72016

dc_mcf_regster関数

DCMCFER_INVALID_ARGS

DCMCFER_PROTO

−

−※1

dc_mcf_resend関数

〔CBLDCMCF(RESEND)〕

DCMCFER_PROTO

DCMCFRTN_72000

DCMCFRTN_72001

DCMCFRTN_72011

DCMCFRTN_72016

DCMCFRTN_72017

DCMCFRTN_72024

DCMCFRTN_72047

70901※1，※4

72000

72001

72011

72016

72017

72024

72047

dc_mcf_commit関数

〔CBLDCMCF(COMMIT)〕

DCMCFER_PROTO

DCMCFRTN_72000

DCMCFRTN_72016

70901※1，※4

72000

72016

リモートプロシジャコール(rpc)

dc_rpc_call関数

〔CBLDCRPC(CALL)〕

DCRPCER_INVALID_ARGS

DCRPCER_PROTO

DCRPCER_MESSAGE_TOO_BIG

DCRPCER_REPLY_TOO_BIG

DCRPCER_NO_SUCH_SERVICE_GROUP

DCRPCER_NO_SUCH_SERVICE

DCRPCER_SERVICE_CLOSED

DCRPCER_SYSERR_AT_SERVER

DCRPCER_SYSER

00301

00302※1，※5

00308

00309

00310

00311

00312

00316

00318

dc_rpc_close関数

〔CBLDCRPC(CLOSE)〕

−

−

dc_rpc_mainloop関数

〔CBLDCRSV(MAINLOOP)〕

DCRPCER_INVALID_ARGS

DCRPCER_PROTO

DCRPCER_FATAL

00301

00302※1，※5

00303

dc_rpc_open関数

〔CBLDCRPC(OPEN)〕

DCRPCER_INVALID_ARGS

DCRPCER_PROTO

DCRPCER_FATAL

00301

00302

00303

dc_rpc_poll_any_replies関数

〔CBLDCRPC(POLLANYR)〕

DCRPCER_INVALID_ARGS

DCRPCER_PROTO

DCRPCER_REPLY_TOO_BIG

DCRPCER_NO_SUCH_SERVICE

DCRPCER_SERVICE_CLOSEDDCRPCER_SYSERR_AT_SERVER

DCRPCER_NO_BUFS_AT_SERVER

DCRPCER_ALL_RECEIVED

00301

00302※1，※6

00309

00311

00312

00316

00318

00321

dc_rpc_discard_further_replies関数

〔CBLDCRPC(DISCARDF)〕

−

−

dc_rpc_get_callers_address関数

〔CBLDCRPC(GETCLADR)〕

−

−

dc_rpc_set_service_prio関数

〔CBLDCRPC(SETSVPRI)〕

−

−

dc_rpc_get_service_prio関数

〔CBLDCRPC(GETSVPRI)〕

DCRPCER_PROTO

00302※1

dc_rpc_set_watch_time関数

〔CBLDCRPC(SETWATCH)〕

DCRPCER_INVALID_ARGS

DCRPCER_PROTO

00301

00302※1

dc_rpc_get_watch_time関数

〔CBLDCRPC(GETWATCH)〕

DCRPCER_PROTO

00302※1

TAMファイルサービス(tam)

dc_tam_close関数

DCTAMER_PARAM_FLG

DCTAMER_PROTO

DCTAMER_NOOPEN

−

−※1

−

dc_tam_delete関数

〔CBLDCTAM(ERS,ERSR)〕

DCTAMER_PARAM_KEY

DCTAMER_PARAM_KNO

DCTAMER_PARAM_BFA

DCTAMER_PARAM_BFS

DCTAMER_PARAM_FLG

DCTAMER_PROTO

DCTAMER_NOOPEN

DCTAMER_NOREC

DCTAMER_LOCK

DCTAMER_MEMORY

DCTAMER_IO

01702

01703

01704

01705

01708

01721※1

01726

01731

01736

01769

01770

dc_tam_get_inf関数

〔CBLDCTAM(GST)〕

DCTAMER_PARAM_TBL

DCTAMER_PARAM_FLG

DCTAMER_UNDEF

DCTAMER_PROTO

01701

01708

01710

01721※1

dc_tam_open関数

DCTAMER_PARAM_TBL

DCTAMER_PARAM_FLG

DCTAMER_UNDEF

DCTAMER_PROTO

DCTAMER_NOLOAD

DCTAMER_OPENED

DCTAMER_LOCK

DCTAMER_OPENNUM

DCTAMER_IO

−

−

−

−※1

−

−

−

−

−

dc_tam_read関数

〔CBLDCTAM(FxxR,FxxU)〕

DCTAMER_PARAM_KEY

DCTAMER_PARAM_KNO

DCTAMER_PARAM_BFA

DCTAMER_PARAM_BFS

DCTAMER_PARAM_FLG

DCTAMER_PROTO

DCTAMER_NOOPEN

DCTAMER_IDXTYP

DCTAMER_NOREC

DCTAMER_LOCK

DCTAMER_MEMORY

DCTAMER_IO

01702

01703

01704

01705

01708

01721※1

01726

01729

01731

01736

01769

01770

dc_tam_read_cancel関数

DCTAMER_PARAM_KEY

DCTAMER_PARAM_KNO

DCTAMER_PARAM_FLG

DCTAMER_PROTO

DCTAMER_NOOPEN

DCTAMER_NOREC

DCTAMER_MEMORY

−

−

−

−※1

−

−

−

dc_tam_rewrite関数

DCTAMER_PARAM_KEY

DCTAMER_PARAM_KNO

DCTAMER_PARAM_DTA

DCTAMER_PARAM_DTS

DCTAMER_PARAM_FLG

DCTAMER_PROTO

DCTAMER_NOOPEN

DCTAMER_NOREC

DCTAMER_MEMORY

DCTAMER_IO

−

−

−

−

−

−※1

−

−

−

−

dc_tam_write関数

〔CBLDCTAM(MFY,MFYS,STR)〕

DCTAMER_PARAM_KEY

DCTAMER_PARAM_KNO

DCTAMER_PARAM_DTA

DCTAMER_PARAM_DTS

DCTAMER_PARAM_FLG

DCTAMER_PROTO

DCTAMER_NOOPEN

DCTAMER_NOREC

DCTAMER_EXKEY

DCTAMER_LOCK

DCTAMER_NOAREA

DCTAMER_MEMORY

DCTAMER_IO

01702

01703

01706

01707

01708

01721※1

01726

01731

01735

01736

01763

01769

01770

トランザクション制御(trn)

dc_trn_begin関数

〔CBLDCTRN(BEGIN)〕

DCTRNER_PROTO

00905※1

dc_trn_chained_commit関数

〔CBLDCTRN(C-COMMIT)〕

DCTRNER_PROTO

00905※1

dc_trn_chained_rollback関数

〔CBLDCTRN(C-ROLL)〕

DCTRNER_PROTO

00905※1

dc_trn_info関数

〔CBLDCTRN(INFO)〕

1

00001

00908

dc_trn_unchained_commit関数

〔CBLDCTRN(U-COMMIT)〕

DCTRNER_PROTO

00905※1

dc_trn_unchained_rollback関数

〔CBLDCTRN(U-ROLL)〕

DCTRNER_PROTO

00905※1

TXインタフェース(tx_〜)

tx_begin関数

〔TXBEGIN〕

TX_PROTOCOL_ERROR

TX_PROTOCOL_ERROR※1

tx_close関数

〔TXCLOSE〕

−

−

tx_commit関数

〔TXCOMMIT〕

TX_PROTOCOL_ERROR

TX_PROTOCOL_ERROR※1

tx_info関数

〔TXINFORM〕

TX_PROTOCOL_ERROR

TX_PROTOCOL_ERROR※1

tx_open関数

〔TXOPEN〕

TX_ERROR

TX_ERROR※1

tx_set_commit_return関数

〔TXSETCOMMITRET〕

TX_EINVAL

TX_NOT_SUPPORTED

TX_PROTOCOL_ERROR

TX_EINVAL

TX_NOT_SUPPORTED

TX_PROTOCOL_ERROR※1

tx_set_transaction_control関数

〔TXSETTRANCTL〕

TX_EINVAL

TX_PROTOCOL_ERROR

TX_EINVAL

TX_PROTOCOL_ERROR※1

tx_set_transaction_timeout関数

〔TXSETTIMEOUT〕

TX_EINVAL

TX_PROTOCOL_ERROR

TX_EINVAL

TX_PROTOCOL_ERROR※1

tx_rollback関数

〔TXROLLBACK〕

TX_PROTOCOL_ERROR

TX_PROTOCOL_ERROR※1

XATMIインタフェース(tp〜)

tpalloc関数

TPEINVAL

TPENOENT

TPESYSTEM

TPEPROTO

−

−

−

−※1

tpfree関数

−

−

tprealloc関数

TPEINVAL

TPESYSTEM

TPEPROTO

−

−

−※1

tptypes関数

TPEINVAL

TPEPROTO

−

−※1

tpreturn関数

−

−

tpadvertise関数

TPEINVAL

TPEPROTO

−

−※1

tpunadvertise関数

TPEINVAL

TPEPROTO

−

−※1

tpacall関数

TPEINVAL

TPEPROTO

TPENOENT

TPEITYPE

TPETRAN

−

−※1，※7，※8，※9

−

−

−

tpcall関数

TPEINVAL

TPEPROTO

TPENOENT

TPEITYPE

TPEOTYPE

TPETRAN

TPESVCFAIL

TPESVCERR

−

−※1，※7，※8，※9

−

−

−

−

−

−

tpcancel関数

TPEBADDESC

TPETRAN

TPEPROTO

−

−

−※1，※7，※8

tpgetrply関数

TPEBADDESC

TPEOTYPE

TPESYSTEM

TPEPROTO

TPESVCFAIL

TPESVCERR

−

−

−

−※1，※7，※8，※9，※10

−

−

tpconnect関数

TPEINVAL

TPENOENT

TPEITYPE

TPETRAN

TPEPROTO

−

−

−

−

−※1，※7，※8，※9

tpdiscon関数

TPEBADDESC

TPEPROTO

−

−※1，※7，※8，※11

tprecv関数

TPEINVAL

TPEOTYPE

TPEBADDESC

TPEPROTO

−

−

−

−※1，※7，※8，※12

tpsend関数

TPEINVAL

TPEBADDESC

TPEPROTO

−

−

−※1，※7，※8，※13

オンラインテスタ(uto)

dc_uto_test_status関数

〔CBLDCUTO(T-STATUS)〕

DCUTOER_PROTO

DCUTOER_PARAM_FLAGS

DCUTOER_PARAM_ADDS

02701※1

02757

02758

（凡例）

−：リターン値（リターンコード）がない場合です。

注

XATMIインタフェースの場合，C言語でのリターン値はtperrnoに返す値を示します。

注※1

dc_rpc_open関数が未発行の場合です。

注※2

dc_adm_get_nd_status_begin関数，dc_adm_get_sv_status_begin関数，またはdc_adm_get_nodeconf_begin関数が発行済みの場合です。

注※3

dc_adm_get_nd_status_begin関数，dc_adm_get_sv_status_begin関数，またはdc_adm_get_nodeconf_begin関数が未発行の場合です。

注※4

メイン関数で発行した場合です。

注※5

dc_mcf_mainloop関数またはdc_rpc_mainloop関数が発行済みの場合です。

注※6

非同期応答型のdc_rpc_call関数が未発行の場合です。

注※7

tpreturn関数の発行後の場合です。

注※8

サービスパラダイムの異なるサービス環境での発行の場合です。

注※9

サービスグループのリカーシブコールの場合です。

注※10

tpacall関数が未発行の場合です。

注※11

コネクションのオリジネータでない場合です。

注※12

コネクションの属性がTPSENDONLYの場合です。

注※13

コネクションの属性がTPRECVONLYの場合です。

14.3　シミュレート機能未サポート関数一覧

「14.1.1　関数のシミュレーション内容」で示しているように，オフラインテスタのシミュレート関数を使用するとOpenTP1の提供する関数のシミュレーションができます。ただし，以降の表で示しているOpenTP1の提供する関数については，オフラインテスタでのシミュレート関数が未サポートです。したがって，これらの関数をUAPで実行しても，トレース情報の取得や関数引数の変更などの処理を実行しないで，以降の表に示すリターン値を返します。また，関数リターン値ファイルのリターン値の設定もできません。

シミュレート機能未サポート関数の一覧を，C言語の場合とCOBOL言語の場合に分けて，以降の表に示します。

表14‒3　シミュレート機能未サポート関数一覧（C言語）

機能名称

関数名

OpenTP1提供関数の機能

リターン値

リモートプロシジャコール（rpc）

dc_rpc_call_to関数

通信先を指定した遠隔サービスの呼び出し

0

dc_rpc_get_error_descriptor関数

エラーが発生した非同期応答型RPC要求の記述子の取得

1

dc_rpc_discard_specific_reply関数

特定の処理結果の受信の拒否

DC_OK

dc_rpc_service_retry関数

サービス関数のリトライ

DC_OK

dc_rpc_get_gateway_address関数

ゲートウェイのノードアドレスの取得

DC_OK

dc_rpc_cltsend関数

CUPへの一方通知

DC_OK

リモートAPI機能（rap）

dc_rap_connect関数

rapリスナーとのコネクションの確立

DC_OK

dc_rap_disconnect関数

rapリスナーとのコネクションの解放

DC_OK

性能検証用トレース（prf）

dc_prf_utrace_put関数

ユーザ固有の性能検証用トレースの取得

DC_OK

dc_prf_get_trace_num関数

性能検証用トレース取得通番の通知

DC_OK

メッセージ送受信（mcf）

dc_mcf_ap_info関数

アプリケーション情報通知

DCMCFRTN_00000

dc_mcf_ap_info_uoc関数

UOCへのアプリケーション情報通知

DCMCFRTN_00000

dc_mcf_timer_set関数

ユーザタイマ監視の設定

DC_OK

dc_mcf_timer_cancel関数

ユーザタイマ監視の取り消し

DC_OK

DAMファイルサービス（dam）

dc_dam_bseek関数

物理ファイルのブロックの検索

関数の引数に指定した，相対ブロック番号をリターンします。

dc_dam_dget関数

物理ファイルからブロックの直接入力

504

dc_dam_dput関数

物理ファイルへブロックの直接出力

504

表14‒4　シミュレート機能未サポート関数一覧（COBOL言語）

機能名称

プログラム名(要求コード)

OpenTP1提供関数の機能

ステータスコード

リモートプロシジャコール（rpc）

CBLDCRPC('GETERDES')

エラーが発生した非同期応答型RPC要求の記述子の取得

00000

CBLDCRPC('DISCARDS')

特定の処理結果の受信の拒否

00000

CBLDCRPC('SVRETRY')

サービスプログラムのリトライ

00000

CBLDCRPC('GETGWADR')

ゲートウェイのノードアドレスの取得

00000

リモートAPI機能（rap）

CBLDCRAP('CONNECT')

rapリスナーとのコネクションの確立

00000

CBLDCRAP('DISCNCT')

rapリスナーとのコネクションの解放

00000

ジャーナルデータの編集（jnl）

CBLDCJUP('CLOSERPT')

jnlrput出力ファイルのクローズ

00000

CBLDCJUP('OPENRPT')

jnlrput出力ファイルのオープン

00000

CBLDCJUP('RDGETRPT')

jnlrput出力ファイルからジャーナルデータの入力

00000

性能検証用トレース（prf）

CBLDCPRF('PRFPUT')

ユーザ固有の性能検証用トレースの取得

00000

CBLDCPRF('PRFGETN')

性能検証用トレース取得通番の通知

00000

メッセージ送受信（mcf）

CBLDCMCF('APINFO')

アプリケーション情報通知

00000

DAMファイルサービス（dam）

CBLDCDMB('BSEK')

物理ファイルのブロックの検索

00000

CBLDCDMB('DGET')

物理ファイルからブロックの直接入力

00000

CBLDCDMB('DPUT')

物理ファイルへブロックの直接出力

00000

XATMIインタフェース（tp〜）

TPCALL

リクエスト型/レスポンス型サービスの呼び出しと応答の受信

TPOK※

TPACALL

リクエスト型/レスポンス型サービスの呼び出し

TPOK※

TPGETRPLY

リクエスト型/レスポンス型サービスからの非同期応答の受信

TPOK※

TPCANCEL

リクエスト型，またはレスポンス型サービスのキャンセル

TPOK※

TPCONNECT

会話型サービスとのコネクションの確立

TPOK※

TPDISCON

会話型サービスとのコネクションの切断

TPOK※

TPRECV

会話型サービスからのメッセージの受信

TPOK※

TPSEND

会話型サービスへのメッセージの送信

TPOK※

TPADVERTISE

サービス名の広告

TPOK※

TPUNADVERTISE

サービス名の広告の取り消し

TPOK※

TPSVCSTART

サービスルーチンの開始

TPOK※

TPRETURN

サービスルーチンからのリターン

ステータスコードはありません。

注※

実行結果を示すリターン値が設定されるデータ領域（TP-STATUS）に，TPOKを設定します。

第5編　UAPトレース

15　UAPトレースの使用方法

UAPトレースの使用方法について説明します。

15.1　UAPトレースの取得

UAPから呼び出したOpenTP1の関数に関する情報を取得する機能をUAPトレースといいます。OpenTP1では，UAPトレースをUAPトレースデータファイル，またはプロセスの固有領域に取得しています。

UAPが異常終了したときにUAPトレースを使用すると，UAPで発行したライブラリ関数の履歴を編集出力できます。編集出力した結果を基に，UAPが異常終了した原因を解析できます。

UAPトレースは，次のようなUAPで使用できます。

異常終了したUAP

dcstop -dfコマンドで強制停止したUAP

dcsvstop -dfコマンドで強制停止したUAP

prckillコマンドで強制停止したUAP

15.1.1　UAPトレースを取得する単位

UAPトレースは，UAPプロセス単位に取得しています。UAPプロセスごとに取得したUAPトレースデータファイル，または退避コアファイルを基に，UAPトレースを編集出力します。

UAPトレースを取得する対象のUAPは，SUP，SPP，およびMHPです。

15.1.2　トレース領域の定義

UAPトレースで使用する領域の大きさは，ユーザサービス定義のuap_trace_maxオペランドで指定します。ユーザサービス定義については，マニュアル「OpenTP1 システム定義」を参照してください。

15.1.3　取得する情報

UAPトレースでは，UAPからOpenTP1のライブラリ関数を呼ぶときに，引数に設定した各種情報が取得されます。このうち，関数がリターンしたときの情報を，関数からの出口情報といいます。また，UAPからの関数呼び出しでOpenTP1関数に入ったときの情報を，関数への入り口情報といいます。

オンラインテスタ（TP1/Online Tester）を使用している場合は，UAPトレースデータには実行したすべての関数の入り口情報と出口情報が取得されます。

また，オンラインテスタ（TP1/Online Tester）使用時に全入出力データの取得を指定した場合は，入出力データも取得されます。

15.2　UAPトレースの編集出力

UAPトレースを編集出力する方法について説明します。

15.2.1　UAPトレースを編集出力する単位

UAPトレースを編集出力するのは，UAPプロセス単位です。複数のUAPプロセスに渡る処理の場合でも，異常終了したUAPプロセスで実行していたトランザクションブランチの情報だけを出力します。

UAPの通信形態と取得するUAPトレースの例を次の図に示します。

図15‒1　UAPの通信形態と取得するUAPトレースの例

15.2.2　UAPトレースを編集出力する方法

UAPトレースを編集出力するには，次の二つの方法があります。

(1)　自動でファイルに編集出力する

UAPプロセスごとにOpenTP1が取得する異常終了情報を格納するファイルを，退避コアファイルといいます。UAPの異常終了時に退避コアファイルがあれば，UAPトレースはファイルに自動で編集出力されます。UAPトレースが編集出力されるファイルを，UAPトレース編集出力ファイルといいます。

退避コアファイルとUAPトレース編集出力ファイルのディレクトリとファイル名を，次の表に示します。

表15‒1　退避コアファイルとUAPトレース編集出力ファイルのディレクトリとファイル名

名称

ディレクトリ

ファイル名

退避コアファイル

$DCDIR/spool/save/※1

サーバ名n※2

UAPトレース編集出力ファイル

$DCDIR/spool/save/

サーバ名n.uat※2

注※1

プロセスサービス定義のprc_coresave_pathオペランドを指定している場合，退避コアファイルは，prc_coresave_pathオペランドに指定したディレクトリに退避します。

注※2

n：退避コアファイルの通番（1〜3）

ただし，OpenTP1の強制停止時（dcsvstop -dfコマンドの実行時，または実時間監視タイムアウトになったとき）に出力される退避コアファイルには，通番は付きません。

UAPトレースを自動でファイルに編集出力する場合の概要を，次の図に示します。

図15‒2　UAPトレースを自動でファイルに編集出力する場合の概要

(2)　コマンドで標準出力に編集出力する

uatdumpコマンドを入力すると，UAPトレースは標準出力に編集出力されます。uatdumpコマンドの使用方法については，「15.2.3　uatdump（UAPトレースの編集出力）」を参照してください。

UAPトレースをコマンドで標準出力に編集出力する場合の概要を，次の図に示します。

図15‒3　UAPトレースをコマンドで標準出力に編集出力する場合の概要

15.2.3　uatdump（UAPトレースの編集出力）

(1)　名称

UAPトレースの編集出力

(2)　形式

uatdump {〔退避コアファイル名〕｜-f 〔UAPトレースデータファイル名〕}

(3)　機能

指定したUAPトレースデータファイル，または退避コアファイルを編集して，標準出力に出力します。

オンラインテスタ（TP1/Online Tester）を使用しているノードでは，実行したすべての関数の出口情報と入り口情報を編集出力します。ただし，テスタ情報の出力は抑止するため，テスタ情報直後のデータが欠落する場合があります。

(4)　オプション

-f　UAPトレースデータファイル名　　〜＜パス名＞

uap_trace_file_putオペランドにYを指定して取得したUAPトレースデータファイルを編集出力するときに，そのファイル名をパス名で指定します。

引数の指定を省略すると，UAPトレースデータファイル名には，コマンドを実行するカレントディレクトリ下のdcuat.mapが仮定されます。

(5)　コマンド引数

退避コアファイル名　　〜〈パス名〉

異常終了したUAPプロセスの退避コアファイルを，パス名で指定します。

引数の指定を省略すると，退避コアファイル名には，コマンドを実行するカレントディクトリ下のcoreが仮定されます。

(6)　出力メッセージ

メッセージID

内容

出力先

KFCA03100-E

メモリ不足が発生しました。

標準エラー出力

KFCA03101-E

オプションフラグが不正です。

標準エラー出力

KFCA03102-E

指定したファイルはありません。

標準エラー出力

KFCA03103-E

指定したファイルにトレースデータがありません。

標準エラー出力

KFCA03104-W

トレースデータに不正な種別コードがあります。

標準エラー出力

KFCA03105-I

ヘルプメッセージ。

標準出力

KFCA03110-E

指定したファイルのトレースデータが破壊されています。

標準エラー出力

(7)　出力形式

uatdumpコマンドの出力形式については，「15.2.4　UAPトレースの編集出力形式」を参照してください。

(8)　注意事項

uap_trace_file_putオペランドにYを指定した場合，次の注意事項があります。

取得したUAPトレースデータファイルを編集出力するときは-fオプションを指定してください。

-fオプションを指定しないと，UAPトレースが編集できないため，コマンドがエラーになります。

uatdumpコマンドに-fオプションを指定して実行した場合，UAPへの影響を抑えるため，UAPトレースデータファイルをUAPと同期を取らずに参照します。このため，UAPが動作している最中にuatdumpコマンドを実行すると，タイミングによっては，最新の情報を取得できないことがあります。

uatdumpコマンドに-fオプションを指定して実行した場合，UAPと同期を取らずにUAPトレースデータファイルを参照するため，KFCA03104-WやKFCA03110-Eメッセージが出力されることがあります。この場合，再度，-fオプションを指定してuatdumpコマンドを実行してください。

UAPが動作している最中にuatdumpコマンドを実行すると，UAPの性能に影響をおよぼします。

uap_trace_file_putオペランドは，次のどれかの定義で指定します。

システム共通定義

ユーザサービスデフォルト定義

ユーザサービス定義

15.2.4　UAPトレースの編集出力形式

UAPトレースを自動でファイルに編集出力した場合，およびuatdumpコマンドで標準出力に編集出力した場合の編集出力形式を，次に示します。

(1)　出力形式

（凡例）

UAPトレースヘッダ

UAPトレースデータ

オンラインテスタを使用している場合は，入り口情報と出口情報が交互に出力されます。出口情報の場合は（出口），入り口情報の場合は（入口）と表示されます。

OpenTP1関数の呼び出し情報の出力領域

出力領域に出力される内容は，発行した関数によって異なります。

（説明）

サービスグループ名

起動していたサービスがあるサービスグループ名

SUP，MHPの場合はアスタリスクが表示されます。

プロセスID

該当のUAPトレースを取得したプロセスのプロセスID

サイズ

UAPトレース情報領域の大きさ（10進数　単位：バイト）

関数

発行したOpenTP1関数

取得日時

UAPトレースを取得した日時

西暦下2けた/月/日 △ 時:分:秒の形式

トレース取得通番

UAPトレースデータを取得したときに付けた一連の番号（最大6けた）

サービス名

起動していたサービス名（最大32文字）

SUP，MHPの場合はアスタリスクが表示されます。

リターンコード

OpenTP1関数の実行結果

(2)　出力例

HIUXOLTF[HIUXOLTF]
サービスグループ名 = dam_svg
プロセスID = 2029                          サイズ = 8576

関数 = dc_rpc_open （出口）
   取得日時 = 98/07/20 11:39:20           トレース取得通番 = 2
   サービス名 = ****
     サーバ名 = damspp
     オプションフラグ = 0x00000000 (DCNOFLAGS)
   リターンコード = 0  （正常終了）

関数 = dc_dam_open （出口）
   取得日時 = 98/07/20 11:39:20           トレース取得通番 = 3
   サービス名 = ****
     リクエストコード = OPEN
     論理ファイル名 = sppfile
     オプションフラグ = 0x00000022 (DCDAM_NOWAIT)
                                (DCDAM_BLOCK_EXCLUSIVE)
   リターンコード = 0  （ファイル記述子）

関数 = XATMIサービス関数開始情報
   取得日時 = 98/07/20 11:39:25           トレース取得通番 = 4
   サービス名 = REFSVC_A
     ノード名 = 2c3gfm01
     サービス名 = REFSVC_A
     受信タイプ名 = X_C_TYPE
     受信サブタイプ名 = sub1
     ------ 受信データ ------
     00008c    534b492d 50415241 44494345 00000000   SKI- PARA
     DICE ....
     00009c    00000000 00000000 00000000 00000000   .... ....
     .... ....
     受信データ長 = 104
     フラグ = 0x00000000
     ディスクリプタ = 0

関数 = tpconnect （出口）
   取得日時 = 98/07/20 11:39:25           トレース取得通番 = 5
   サービス名 = REFSVC_A
     サービス名 = REFSVC_C
     送信タイプ名 = X_C_TYPE
     送信サブタイプ名 = sub1
     ------ 送信データ ------
     00006c    534b492d 50415241 44494345 00000000   SKI- PARA
     DICE ....
     00007c    00000000 00000000 00000000 00000000   .... ....
     .... ....
     送信データ長 = 50
     フラグ = 0x00001000 (TPRECVONLY)
   リターンコード = 1390287197

関数 = tprecv （出口）
   取得日時 = 98/07/20 11:39:25           トレース取得通番 = 6
   サービス名 = REFSVC_A
     ディスクリプタ = 1390287197
     受信タイプ名 = X_C_TYPE
     受信サブタイプ名 = sub1
     ------ 受信データ ------
     000050    4e4f5254 482d464c 49474854 00000000   NORT H-FL
     IGHT ....
     000060    00000000 00000000 00000000 00000000   .... ....
     .... ....
     受信データ長 = 104
     フラグ = 0x00000000
     イベント = 0x0008   (TPEV_SVCSUCC)
     tperrno = 22 (TPEEVENT)
     tpurcode = 0x00000000
   リターンコード = -1

関数 = tpreturn （出口）
   取得日時 = 98/07/20 11:39:25           トレース取得通番 = 7
   サービス名 = REFSVC_A
     リターンバリュー = 0x04000000        ユーザリターン値 = 22
     送信タイプ名 = X_C_TYPE
     送信サブタイプ名 = sub1
     ------ 送信データ ------
     000054    4e4f5254 482d464c 49474854 00000000   NORT H-FL
     IGHT ....
     000064    00000000 00000000 00000000 00000000   .... ....
     .... ....
     送信データ長 = 50
     フラグ = 0x00000000

関数 = XATMIサービス関数終了情報
   取得日時 = 98/07/20 11:39:25           トレース取得通番 = 8
   サービス名 = REFSVC_A
     ノード名 = 2c3gfm01
     サービス名 = REFSVC_A
     送信タイプ名 = X_C_TYPE
     送信サブタイプ名 = sub1
     ------ 送信データ ------
     00008c    4e4f5254 482d464c 49474854 00000000   NORT H-FL
     IGHT ....
     00009c    00000000 00000000 00000000 00000000   .... ....
     .... ....
     送信データ長 = 104

関数 = XATMIサービス関数開始情報
   取得日時 = 98/07/20 11:39:25           トレース取得通番 = 9
   サービス名 = REFSVC_B
     ノード名 = 2c3gfm01
     サービス名 = REFSVC_B
     受信タイプ名 = X_C_TYPE
     受信サブタイプ名 = sub1
     ------ 受信データ ------
     00008c    534b492d 50415241 44494345 00000000   SKI- PARA
     DICE ....
     00009c    00000000 00000000 00000000 00000000   .... ....
     .... ....
     受信データ長 = 104
     フラグ = 0x00000c00 (TPSENDONLY)
                          (TPCONV)
     ディスクリプタ = 1028921693
   :  :  :  :  :   :  :  :  :
   :  :  :  :  :   :  :  :  :

索引

A

adm_call_cmd[1]

B

backout[1]

C

call[1]

cmdauto[1]

cmdfile[1]

D

damfile[1]

DAMサービスシミュレート機能[1]

DAMサービスのシミュレート[1]

DAMファイル[1]

DAMファイルの定義[1]

dcstop[1]、[2]

dcsvstart[1]、[2]、[3]

dcsvstop[1]、[2]

DCUTOKEY[1]

DCUTOTRCACCL[1]、[2]

E

end[1]

end文[1]、[2]

errevt[1]

execap[1]

F

func_value_file[1]

H

holdlimit[1]

I

isttable[1]

ISTテーブルの定義[1]

J

jnledit[1]

M

max_message_file_size[1]

max_trace_file_size[1]

mcf_message[1]

mcfauape[1]

mcfauaps[1]、[2]、[3]、[4]、[5]

mcfaulsap[1]

mcflsutf[1]、[2]

mcftulee[1]

mcftules[1]、[2]、[3]、[4]、[5]

mcftulsle[1]

mcftulssg[1]

mcftusge[1]

mcftusgs[1]、[2]、[3]、[4]、[5]

mcfutfst[1]、[2]、[3]

MCF以外の資源更新処理の無効化[1]

MCFオンラインテスタ[1]

MCFオンラインテスタの使用宣言[1]

MCFオンラインテスタの状態表示[1]

MCFシミュレート関数[1]

MCFシミュレート関数のUAPトレース[1]

MCFシミュレート機能[1]、[2]

MCF受信メッセージファイル[1]、[2]

MCF受信メッセージファイル格納ディレクトリの定義[1]

MCF送信メッセージファイル[1]

MCFのシミュレート[1]、[2]

MHPの自動閉塞機能の抑止[1]

MHPのテスト[1]

MHPへのサービス要求[1]、[2]

O

OpenTP1提供関数のシミュレート[1]

P

protocol[1]

ps[1]

R

read[1]

recv文[1]

rpc_message[1]

rpc_return_data[1]

rpc_trace[1]

rpc_trace_name[1]

rpc_trace_size[1]

RPCインタフェースのSPPへのサービス要求[1]

RPCインタフェースのクライアントUAPのシミュレート[1]、[2]

RPCインタフェースのサーバUAPのシミュレート[1]、[2]

RPC応答データファイル[1]、[2]、[3]

RPC応答データファイル格納ディレクトリの定義[1]

RPC要求データファイル[1]、[2]、[3]、[4]

RPC要求データファイル格納ディレクトリの定義[1]

S

send文[1]

sep文[1]、[2]

server_type[1]

service[1]

SPPへのサービス要求[1]

start[1]

start文[1]、[2]

stop[1]

swmsg[1]

T

tamtable[1]

TAMサービスシミュレート機能[1]

TAMサービスのシミュレート[1]

TAMファイル[1]

TAMファイルの定義[1]

test_adm_call_command[1]

test_data_trace[1]

test_debugger[1]

test_mode[1]

test_transaction_commit[1]

test_xatmi_send_file[1]

tp_converse[1]

tp_message[1]

tp_return_data[1]

TP1/Message Control/Tester[1]

TP1/Message Controlのオンラインテスタ[1]

TP1/Offline Tester[1]

TP1/Online Tester[1]

TP1/Server Baseのオンラインテスタ[1]

trace[1]

tracefile[1]

txrpc_message[1]

txrpc_return_data[1]

TxRPCインタフェースのクライアントUAPのシミュレート[1]

TxRPCインタフェースのサーバUAPのシミュレート[1]

TxRPC応答データファイル[1]、[2]

TxRPC応答データファイル格納ディレクトリの定義[1]

TxRPC要求データファイル[1]、[2]

TxRPC要求データファイル格納ディレクトリの定義[1]

U

uap_trace_file_put[1]

UAPから発行する運用コマンドのシミュレート[1]、[2]

UAP実行形式プログラムの作成[1]

UAPトレース[1]

UAPトレース情報取得機能[1]

UAPトレース情報の取得[1]、[2]、[3]、[4]

UAPトレース情報の編集出力[1]

UAPトレース情報のマージ[1]

UAPトレース情報のマージ・編集出力[1]、[2]

UAPトレース情報マージ・編集機能[1]

UAPトレースデータファイル[1]

UAPトレースの概要[1]

UAPトレースの取得[1]

UAPトレースの使用方法[1]

UAPトレースの編集出力[1]、[2]

UAPトレースの編集出力形式[1]

UAPトレース編集出力ファイル[1]

UAPトレースを取得する単位[1]

UAPトレースを編集出力する単位[1]

UAPトレースを編集出力する方法[1]

UAPに関する注意事項[1]

UAPの応答データの確認[1]

UAPの起動と停止[1]

UAPの作成[1]、[2]

UAPの障害[1]

UAPの送信データの確認[1]

UAPの定義[1]

UAPプロセス単位[1]

uatdump[1]

utfdamcre[1]

utffilcre[1]

utfstart[1]

utftamcre[1]

utftrcpic[1]

uto_conf[1]

uto_server_count[1]

utodbgstop[1]

utodebug[1]

utofilcre[1]、[2]

utofilout[1]

utols[1]、[2]

utomhpsvc[1]、[2]

utomsgout[1]、[2]

utosppsvc[1]、[2]

utoterm[1]

utotrcmrg[1]、[2]

utotrcout[1]、[2]、[3]

utoxsppsvc[1]、[2]

W

watch_time[1]

write[1]

X

XATMIインタフェースのSPPへのサービス要求[1]

XATMIインタフェースのクライアントUAPのシミュレート[1]、[2]

XATMIインタフェースのサーバUAPのシミュレート[1]、[2]

XATMI応答データファイル[1]、[2]、[3]、[4]

XATMI応答データファイル格納ディレクトリの定義[1]

XATMI受信データファイル[1]、[2]

XATMI送受信データファイル格納ディレクトリの定義[1]

XATMI送信データファイル[1]、[2]

XATMI要求データファイル[1]、[2]、[3]

XATMI要求データファイル格納ディレクトリの定義[1]

あ

アプリケーション起動メッセージの無効化[1]

アプリケーション単位のテスト[1]

アプリケーション単位のテストで使用する運用コマンド[1]

アプリケーション単位のテストの開始[1]

アプリケーション単位のテストの終了[1]

アプリケーションのテストモード情報の表示[1]

アプリケーションプログラム起動要求のシミュレート[1]

い

一時記憶データファイル[1]、[2]、[3]

イベントタイプを設定する場合[1]

入り口情報[1]

インタフェース定義言語ファイル[1]

う

運用コマンド[1]、[2]、[3]

運用コマンド結果データファイル[1]、[2]、[3]

運用コマンド結果データファイル格納ディレクトリの定義[1]

運用コマンドシミュレート機能[1]、[2]

運用コマンドの出力データを使用したテスタファイルの作成[1]

え

エラーイベントの抑止[1]

お

オフラインテスタ[1]

オフラインテスタが作成するファイル[1]

オフラインテスタ環境定義ファイル[1]

オフラインテスタトレース情報取得機能[1]

オフラインテスタトレース情報の取得[1]

オフラインテスタトレース情報の編集[1]

オフラインテスタに関する注意事項[1]

オフラインテスタの開始[1]

オフラインテスタの開始と終了[1]

オフラインテスタの機能[1]

オフラインテスタのシステム定義[1]

オフラインテスタの終了[1]

オフラインテスタ用DAMファイルの作成[1]

オフラインテスタ用TAMファイルの作成[1]

オンラインテスタ[1]

オンラインテスタが作成するファイル[1]

オンラインテスタの機能[1]

オンラインテスタのシステム定義[1]

オンラインテスタの障害[1]

オンラインテスタの障害対策[1]

か

会話型のサービス要求[1]

環境定義[1]

環境変数の設定[1]

関数のシミュレーション内容[1]

関数のシミュレーション内容の一覧[1]

関数リターン値の設定[1]

関数リターン値ファイル[1]

関数リターン値ファイルの定義[1]

く

クライアントUAPシミュレート機能[1]、[2]

クライアントUAPのシミュレート[1]、[2]、[3]

け

継続問い合わせ応答のシミュレート[1]

こ

固定情報データ[1]

コマンドで標準出力に編集出力する[1]

コマンドの連続実行[1]、[2]、[3]

さ

サーバUAPシミュレート機能[1]、[2]

サーバUAPのシミュレート[1]、[2]、[3]

サービス応答データファイル[1]、[2]、[3]、[4]

サービスグループ単位のテスト[1]

サービスグループ単位のテストで使用する運用コマンド[1]

サービスグループ単位のテストの開始[1]

サービスグループ単位のテストの終了[1]

サービスグループの起動[1]

サービスグループの停止[1]

サービスグループのテストモード情報の表示[1]

サービスの要求[1]、[2]

サービス要求データファイル[1]、[2]、[3]、[4]

最終セグメント[1]

し

資源更新処理の無効化[1]

資源更新処理無効化機能[1]

システムサービス構成定義[1]

システム定義[1]、[2]

自動でファイルに編集出力する[1]

シミュレートMHP[1]

シミュレート関数[1]

シミュレート関数リターン値の一覧[1]

シミュレート機能未サポート関数一覧[1]

ジャーナルデータ方式[1]

出力データを設定する場合[1]

取得する情報[1]

障害対策[1]

障害発生時の現象と原因[1]

使用可能UAP[1]

す

スタブの生成[1]

せ

先頭セグメント[1]

全入出力データトレース取得機能[1]

そ

送受信手順の設定[1]

送信メッセージの編集[1]

送信メッセージの編集出力[1]、[2]

送信メッセージの無効化[1]

送信メッセージ編集機能[1]

た

退避コアファイル[1]、[2]

タイプトバッファの設定[1]

ダミーSPP[1]

単セグメント[1]

ち

中間セグメント[1]

て

出口情報[1]

テスタサービス定義[1]

テスタサービス定義（コマンド形式）[1]

テスタとUAPトレース[1]

テスタの種類と概要[1]

テスタファイル[1]

テスタファイル作成機能[1]、[2]

テスタファイルの作成[1]、[2]、[3]、[4]、[5]、[6]

テスタファイルの作成・編集出力[1]

テスタファイルの編集出力[1]、[2]

テスタファイル編集出力機能[1]

テスタファイル名の連絡[1]、[2]

テスト開始コマンド実行時の注意[1]

テスト環境[1]

テスト環境の指定[1]

テスト環境の設定[1]、[2]

テスト実行中の注意事項[1]

テスト状況の表示[1]、[2]、[3]

テスト情報の取得[1]、[2]、[3]

テスト情報の編集[1]、[2]

テスト専用UAP[1]、[2]

テスト対象外UAP[1]

テストデータ定義ファイルの作成[1]、[2]

テストデータ定義ファイル方式[1]

テストデータ定義ファイルを使用したテスタファイルの作成[1]

テストで使用する運用コマンド[1]、[2]、[3]

テストで使用するサブコマンド[1]

テストの開始[1]

テストの開始と終了[1]

テストの開始とテスト環境の指定[1]

テストの実行[1]、[2]、[3]

テストの終了[1]

テストモード[1]

テストモード情報[1]

テストモード情報の引き継ぎ[1]

テストモード情報の表示[1]

テストモードの重複[1]

テストモードの有効範囲[1]

テストモードメッセージ[1]

テストユーザID[1]

テスト用ディレクトリの作成[1]

デバッガと連動するUAPの起動[1]

デバッガと連動するUAPの停止[1]

デバッガの連動[1]、[2]、[3]

デバッガ連動機能[1]、[2]

と

同期型受信メッセージファイル[1]

同期点処理のシミュレート[1]

トレース情報の取り出し[1]

トレースファイル[1]、[2]、[3]

トレースファイルの定義[1]

トレース領域の定義[1]

に

入力データ定義文[1]、[2]

ひ

非同期型受信メッセージファイル[1]

ふ

ファイルサービスのシミュレート[1]

ファイルに関する注意事項[1]

ファイルの作成[1]、[2]

ファイルの障害[1]

プロトコルの定義[1]

へ

ヘッダセグメント[1]

ま

マージ・編集出力[1]

め

メッセージ送受信のシミュレート[1]

ゆ

ユーザが作成するファイル[1]、[2]

ユーザサービス定義[1]、[2]

ユーザデータ[1]

り

リクエスト/レスポンス型のサービス要求[1]

リターン値を設定する場合[1]

れ

連続実行コマンド機能[1]

連続実行コマンドの設定[1]

連続実行コマンドファイル[1]

連続実行コマンドファイル格納ディレクトリの定義[1]

ろ

論理端末情報の指定[1]

論理端末単位のテスト[1]

論理端末単位のテストで使用する運用コマンド[1]

論理端末単位のテストの開始[1]

論理端末単位のテストの終了[1]

論理端末のテストモード情報の表示[1]