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トレース情報取得機能
○
△
−
○
×
デバッガ連動機能
○
×
−
○
×
表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を指定してテストモードで動作している場合だけ有効です。
-
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に対する閉塞,および閉塞解除は要求できません。
-
このUAPで発行した関数のすべての入出力データを,トレース情報として取得するかどうかを指定します。全入出力データをトレース情報として取得できる関数については,「2.8.1 UAPトレース情報の取得」を参照してください。
- Y:全入出力データをUAPトレース情報として取得します。
-
この指定は,テスタサービス定義のmax_trace_file_sizeオペランドに1以上の値を指定して,UAPがテスト対象として動作する場合に有効となります。
- N:入出力データの一部をUAPトレース情報として取得します。
-
この指定は,テスタサービス定義のmax_trace_file_sizeオペランドに1以上の値を指定して,UAPがテスト対象として動作する場合に有効となります。
(b) コマンド形式
なし。
(c) putenv形式のオペランド
-
大きなデータに対して全入出力データトレースを取得する際,従来どおりの取得方式とするか,取得時間を短縮させる取得方式とするかを指定します。送受信メッセージや入出力データの大きさが数MBに達するような場合は,このputenv形式定義に1を指定することを推奨します。
0:従来どおりの方法で全入出力データトレースを取得します。
1:短縮方式で全入出力データトレースを取得します。
このオペランドが未指定の場合,または不当な値が指定された場合は,0が指定されたものとします。
ユーザサービス定義のtest_data_traceオペランドにYが指定されていない場合は,指定内容を無効とします。
このオペランドは,ユーザサービスデフォルト定義にも指定できます。
(d) dcputenv形式のオペランド
-
大きなデータに対して全入出力データトレースを取得する際,従来どおりの取得方式とするか,取得時間を短縮させる取得方式とするかを指定します。送受信メッセージや入出力データの大きさが数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
無
全入出力データトレースの取得方法
短
短
短
従
従
従
短
従
従