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関数のトレース情報は,取得されません。