Oracle10g のJDBC ドライバを使用してデータベースとの接続を行う場合に、セキュリティポリシーの設定が足りないために、java.lang.ExceptionInInitializerError が発生することがあります。
セキュリティ例外の発生状況は、次のJava システムプロパティを指定してセキュリティログを採取することで確認できます。
”AccessControlException”の出力状況を確認してください。
名前 : java.security.debug
値 :
access.failure
設定方法については、[ ドメイン構築・基本設定ガイド > 3. ドメイン > 3.8. Java VMオプションの設定 > 3.8.1. WebOTX AS で既定のJava VM オプションの設定方法 ]
か[ ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.1. TPシステム > 7.1.3. 操作・状態確認(プロセスグループ) > 7.1.3.2. 設定の変更 ] を参照してください。
<INSTANCE_ROOT>/config/server.policy に次の記述を追加してください。
grant {
permission java.lang.RuntimePermission
"createClassLoader";
};
セキュリティ例外発生によって接続に失敗した場合、webotx_jdbc.log、または、プロセスグループのログファイルに次の内容が出力されます。
WODataSource.getConnection() : failed to
get connection : catch java.lang.ExceptionInInitializerError
また、webotx_agent.log、または、プロセスグループのログファイルに次の内容が出力されます。
Caused by:
java.security.AccessControlException: access
denied (java.lang.RuntimePermission createClassLoader)
セキュリティ例外発生後に接続に失敗した場合には、webotx_jdbc.log、または、プロセスグループのログファイルに次の内容が出力されます。
WODataSource.getConnection() : failed to
get connection : catch java.lang.NoClassDefFoundError
ログは、次のファイルに出力されます。
エージェントプロセス内で動作する場合:
${INSTANCE_ROOT}/logs/jdbc/webotx_jdbc.log
Standard/Enterprise
のプロセスグループ内で動作する場合:
${INSTANCE_ROOT}/logs/tpsystem/<apgname>/<pgname>/<pgname>.<pid>.log