10.5 HSIC-ECDのエビデンスファイル
HSIC-ECDのエビデンスファイルについて説明します。
出力先
HSIC-ECDのエビデンスファイルは、次のディレクトリに出力します。
HSIC-ECDインストールディレクトリ\evidence
ファイル名
HSIC-ECDのエビデンスファイルは、次のファイルに出力します。
evidence_テストID.txt
出力契機
出力契機にディレクトリ、またはエビデンスファイルがない場合は、新たにディレクトリを作成して出力します。
エビデンスファイルがすでにある場合は、追加で書き込みます。
エビデンスファイルの出力契機を次に示します。
出力契機 |
出力内容 |
---|---|
サーブレット/JSPでSQLを実行したとき |
実行したSQL情報 |
サーブレット/JSPで実行したSQLがUPDATE文 |
DB更新前情報、またはDB更新後情報 |
サーブレット/JSPで実行したSQLがINSERT文 |
DB更新後情報 |
サーブレット/JSPで実行したSQLがDELETE文 |
DB更新前情報 |
サーブレット/JSPで実行したSQLがSELECT文 |
SQL参照情報 |
アプリケーション固有情報機能の対象としたクラスまたはメソッドの実行 |
プラグインで出力した情報 |
HSIC-ECD内でエラーが発生した場合 |
エラーメッセージ |
出力形式
yyyy/mm/dd hh:mm:ss.zzz XX..XX tt..tt tt..tt :
- yyyy/mm/dd
-
年月日
- hh:mm:ss.zzz
-
時分秒ミリ秒(精度は、Linuxの場合は約1ミリ秒、Windowsの場合は約10ミリ秒)
- XX..XX
-
出力契機を表すコード
- tt..tt
-
出力契機ごとの出力内容
文字コードはUTF-8で出力します。
出力契機ごとの出力内容
- 実行したSQL情報
-
SQL実行前に、出力契機を表すコード「SQL START」、実行後に出力契機を表すコード「SQL END」を出力します。
「SQL START」と「SQL END」の間の行に、アプリケーションが実行したSQLを出力します。
アプリケーションが実行したSQL、「SQL END」の行の後ろには空行を出力します。
アプリケーションが実行するSQLで例外が発生した場合は、「SQL END」の行は出力しません。
アプリケーションが実行するSQLにバインド変数が使用されている場合は、次の規則でバインド変数を文字列に変換してから出力します。
-
setterで設定したバインド変数の値をtoString()で文字列に変換します。
-
setterがsetString()、setTime()、setDate()、setTimestamp()の場合は、''で囲ってバインド変数を出力します。
-
setDate()などのjava.util.Calendarを引数とするsetterは、引数のCalendarオブジェクトに設定したタイムゾーンに合わせた日時を出力します。
-
文字列化できない型や値は、<>で型や値を囲った文字列を出力します。
例
「null」の場合、「<null>」が出力されます。
「byte[]」の場合、「<byte[]>」が出力されます。
-
HSIC-ECDが対応していないsetterを使用した場合は、バインド変数の値に変換しないで、バインド変数名をそのまま出力します。
出力例を次に示します。
2015/04/19 18:37:52.590 SQL START UPDATE "schema1"."table1" SET column1 = DEFAULT, column2 = 100 WHERE column3 = '商品1' 2015/04/19 18:37:52.590 SQL END
-
- DB更新前情報
-
実行したSQL情報の前にDB更新前情報を出力します。
出力契機を表すコードに「before update」と出力します。
次の行にHSIC-ECDが更新前情報を取得するために実行したSQLを出力します。
その次の行からHSIC-ECDが取得した結果を出力します。
結果は、取得した列のデータ型が文字列で表現できる場合、toString()メソッドで文字列に変換して、要素を空白区切りで出力します。
データ型が、文字列型や時刻および日時を表す型の場合、''で囲って出力します。
結果がnull値の場合は、<null>を出力します。
文字列で表現できないデータ型は、<BLOB>のように、<>で型を囲って出力します。
最後の行の後ろには空行を出力します。
HSIC-ECDが制限事項とする構文が使用されていた場合は、KFSF50002-Wメッセージを出力します。
HSIC-ECDが更新前情報を取得するために実行したSQLでエラーが発生した場合は、KFSF50001-Eメッセージを出力します。
出力例を次に示します。
2015/04/19 18:37:52.550 before update SELCT column1, column2 WHERE column3 = 'xxx' AAA <null>
- DB更新後情報
-
実行したSQL情報の後にDB更新後情報を出力します。
出力契機を表すコードに「after update」と出力します。
次の行にHSIC-ECDが更新後情報を取得するために実行したSQLを出力します。
その次の行からHSIC-ECDが取得した結果を出力します。
結果は、取得した列のデータ型が文字列で表現できる場合、toString()メソッドで文字列に変換して、要素を空白区切りで出力します。
データ型が、文字列型や時刻および日時を表す型の場合、''で囲って出力します。
結果がnull値の場合は、<null>を出力します。
文字列で表現できないデータ型は、<BLOB>のように、<>で型を囲って出力します。
最後の行の後ろには空行を出力します。
HSIC-ECDが制限事項とする構文が使用されていた場合は、KFSF50002-Wメッセージを出力します。
HSIC-ECDが更新後情報を取得するために実行したSQLで例外が発生した場合は、KFSF50001-Eメッセージを出力します。
HSIC-ECDがSQL更新前情報取得のために実行したSQLや、アプリケーションが実行するSQLで例外が発生した場合は、SQL更新後情報は出力しません。
出力例を次に示します。
2015/04/19 18:37:53.020 after update SELCT column1, column2 WHERE column3 = 'xxx' BBB 100
- SQL参照情報
-
SQL参照情報は、実行したSQL情報の後に出力します。
出力契機を表すコードに「result set」と出力します。
次の行にHSIC-ECDが参照情報を取得するために実行したSQLを出力します。
その次の行からHSIC-ECDが取得した結果を出力します。
結果は、取得した列のデータ型が文字列で表現できる場合、toString()メソッドで文字列に変換して、要素を空白区切りで出力します。
データ型が、文字列型や時刻および日時を表す型の場合、''で囲って出力します。
結果がnull値の場合は、<null>と出力します。
文字列で表現できないデータ型は、<BLOB>のように、<>で型を囲って出力します。
最後の行の後ろには空行を出力します。
HSIC-ECDが制限事項とする構文が使用されていた場合は、KFSF50002-Wメッセージを出力します。
HSIC-ECDがSQL参照情報を取得するために実行したSQLで例外が発生した場合は、KFSF50001-Eメッセージを出力します。
出力例を次に示します。
2015/04/19 18:37:49.370 result set SELCT column1, column2 WHERE column3 = 'xxx' AAA null
- プラグインが出力した情報
-
HSIC-ECDプラグインがHSICEvidenceWriter.write()を使用して出力した情報です。
出力契機を示すコードに「plugin」と出力します。
次の行からHSICEvidenceWriter.write()で指定した文字列を出力します。
最後の行の後ろには空行を出力します。
出力例を次に示します。
2015/04/19 18:37:49.370 plugin aaa.bbb(arg1=ccc)
- エラーメッセージ
-
HSIC-ECDが実行したSQLで例外が発生した場合などに出力する情報です。
出力契機を示すコードに「HSIC msg」と出力します。
次の行からエラーメッセージテキストを出力します。
最後の行の後ろには空行を出力します。
出力例を次に示します。
2015/04/19 18:37:49.370 HSIC msg KFSFxxxxx-E ‥
- ヘッダ
-
HSIC-ECDが出力するエビデンスファイルには、次のヘッダ情報が出力されます。
/***** HSIC-ECD Evidence File *****/