3.1 HSIC-ECDエビデンスファイル
HSIC-ECDエビデンスファイルの形式について説明します。
ファイル名
HSIC-ECDエビデンスファイルのファイル名を次に示します。
-
evidence.txt
出力契機
出力契機にHSIC-ECDエビデンスファイルがない場合は、新たにファイルを作成して出力します。
HSIC-ECDエビデンスファイルがすでにある場合は追加書きします。
HSIC-ECDエビデンスファイルの出力契機および出力内容を次の表に示します。
出力契機 |
出力内容 |
---|---|
サーブレット/JSPでSQLを実行したとき |
実行したSQL情報 |
サーブレット/JSPでUPDATE文を実行したとき |
SQL更新前情報、SQL更新後情報 |
サーブレット/JSPでINSERT文を実行したとき |
SQL更新後情報 |
サーブレット/JSPでDELETE文を実行したとき |
SQL更新前情報 |
サーブレット/JSPでSELECT文を実行したとき |
SQL参照情報 |
HSIC-ECD内でエラーが発生した場合 |
エラーメッセージ |
出力形式
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:出力契機ごとの出力内容
出力される内容は次のとおりです。
-
実行したSQL情報
-
SQL更新前情報
-
SQL更新後情報
-
SQL参照情報
-
エラーメッセージ
文字コードはUTF-8で出力します。
-
実行したSQL情報
出力契機を表すコードとして、SQL実行前は「SQL START」、SQL実行後は「SQL END」を出力します。
「SQL START」と「SQL END」の間の行に、Javaアプリケーションが実行したSQLを出力します。
「SQL END」の行の下に空行を出力します。
Javaアプリケーションが実行するSQLで例外が発生した場合は、「SQL END」の行は出力しません。
Javaアプリケーションが実行するSQLにバインド変数が使用されている場合は、次に示す規則で変換して出力します。
-
setterで設定したバインド変数の値を、toString()で文字列に変換して出力します。
-
setterがsetString()、setTime()、setDate()、setTimestamp()の場合は、''で囲んで出力します。
-
setDate()などのjava.util.Calendarを引数とするsetterは、引数のCalendarオブジェクトに設定したタイムゾーンに合わせた日時を出力します。
-
文字列化できない型や値は、<>で囲んで出力します。
例1:null → <null>
例2:byte[] → <byte[]>
-
HSIC-ECDが対応していないsetterを使用した場合は、バインド変数の値に変換しないで、バインド変数名をそのまま出力します。
HSIC-ECDが対応しているsetterは、「1.2.1 SQL出力機能」の対応しているsetterの説明を参照してください。
実行したSQL情報の出力例を次に示します。
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
SQL更新前情報
SQL更新前情報は、実行したSQL情報の前に出力します。
出力契機を表すコードとして「before update」を出力します。
次の行にHSIC-ECDが更新前情報を取得するために実行したSQLを出力します。
その次の行から、HSIC-ECDが取得した結果を次のように出力します。
-
結果は、toString()メソッドで文字列に変換して、要素を空白区切りで出力します。
-
データ型が、CHAR、VARCHAR、NCHAR、NVARCHAR、MCHAR、MVARCHAR、DATE、TIME、TIMESTAMPの場合は、''で囲んで出力します。
-
結果がnull値の場合は、<null>と出力します。
-
抽象データ型、BLOB型の場合は、<>で型を囲んで出力します。
-
最後の行の後ろには空行を出力します。
HSIC-ECDが制限事項とする構文が使用されていた場合は、KFSF50002-Wメッセージを出力します。
HSIC-ECDが更新前情報を取得するために実行したSQLでエラーが発生した場合は、KFSF50001-Eメッセージを出力します。
SQL更新前情報の出力例を次に示します。
2015/04/19 18:37:52.550 before update
SELECT column1, column2 WHERE column3 = 'xxx'
AAA <null>
SQL更新後情報
SQL更新後情報は、実行したSQL情報の後ろに出力します。
出力契機を表すコードとして「after update」を出力します。
次の行にHSIC-ECDが更新後情報を取得するために実行したSQLを出力します。
その次の行から、HSIC-ECDが取得した結果を次のように出力します。
-
結果は、toString()メソッドで文字列に変換して、要素を空白区切りで出力します。
-
データ型が、CHAR、VARCHAR、NCHAR、NVARCHAR、MCHAR、MVARCHAR、DATE、TIME、TIMESTAMPの場合は、''、で囲んで出力します。
-
結果がnull値の場合は、<null>と出力します。
-
抽象データ型、BLOB型の場合は、<>で型を囲んで出力します。
-
最後の行の後ろには空行を出力します。
HSIC-ECDが制限事項とする構文が使用されていた場合は、KFSF50002-Wメッセージを出力します。
HSIC-ECDが更新後情報を取得するために実行したSQLで例外が発生した場合は、KFSF50001-Eメッセージを出力します。
HSIC-ECDがSQL更新後情報取得のために実行したSQLや、Javaアプリケーションが実行するSQLで例外が発生した場合は、SQL更新後情報は出力しません。
SQL更新後情報の出力例を次に示します。
2015/04/19 18:37:53.020 before update
SELECT column1, column2 WHERE column3 = 'xxx'
BBB 100
SQL参照情報
SQL参照情報は、実行したSQL情報の後ろに出力します。
出力契機を表すコードとして「result set」を出力します。
次の行にHSIC-ECDが参照情報を取得するために実行したSQLを出力します。
その次の行から、HSIC-ECDが取得した結果を次のように出力します。
-
結果は、toString()メソッドで文字列に変換して、要素を空白区切りで出力します。
-
データ型が、CHAR、VARCHAR、NCHAR、NVARCHAR、MCHAR、MVARCHAR、DATE、TIME、TIMESTAMPの場合は、''で囲んで出力します。
-
結果がnull値の場合は、<null>と出力します。
-
抽象データ型、BLOB型の場合は、<>で型を囲んで出力します。
-
最後の行の後ろには空行を出力します。
HSIC-ECDが制限事項とする構文が使用されていた場合は、KFSF50002-Wメッセージを出力します。
HSIC-ECDがSQL参照情報を取得するために実行したSQLで例外が発生した場合は、KFSF50001-Eメッセージを出力します。
SQL参照情報の出力例を次に示します。
2015/04/19 18:37:49.370 result set
SELECT column1, column2 WHERE column3 = 'xxx'
AAA null
エラーメッセージ
HSIC-ECDが実行したSQLで例外が発生した場合などに出力する情報です。
出力契機を示すコードとして「HSIC msg」を出力します。
次の行からエラーメッセージテキストを出力します。最後の行の後ろには空行を出力します。
エラーメッセージの出力例を次に示します。
2015/04/19 18:37:49.370 HSIC msg KFSFxxxxx-E ‥