JDBC ドライバのロードに失敗する場合の対処

事象説明

JDBC データソースからJDBC コネクションを取得する際、JDBC ドライバのクラスパス設定や、JDBC データソースの定義に誤りがある場合に、JDBC ドライバのクラスをロードできずにjava.sql.SQLException が発生することがあります。

状況の確認方法

JDBC ドライバのロード失敗の発生状況は、JDBC データソースのログファイル(wojdbc.log)、または、プロセスグループのログファイルを採取することで確認できます。

復旧方法

[対象となるエラー事象]の(1)または(2)の例外が出力された場合、JDBC ドライバへのクラスパスが不足しているかクラスパスの設定に誤りがあります。クラスパスを正しく設定してください。

また、[対象となるエラー事象]の(3)の例外が出力された場合にも、同様に、JDBC ドライバへのクラスパスが不足しているかクラスパスの設定に誤りがある可能性があります。クラスパスの設定を確認し、問題があればクラスパスを正しく設定してください。

アプリケーションで使用するJDBC ドライバをクラスパスに追加するには、JDBC ドライバを
<INSTANCE_ROOT>/lib/ext 配下に配置する方法と、クラスパスの定義を追加する方法があります。その反映にはドメインの再起動が必要です。クラスパスの設定方法の詳細については、詳細は[ ドメイン構築・基本設定ガイド > 3. ドメイン > 3.8. Java VMオプションの設定 > 3.8.1. WebOTX AS で既定のJava VM オプションの設定方法 ] のクラスパスの設定 をご参照ください。

[対象となるエラー事象]の(3)の例外が出力された場合、クラスパスの設定上の問題とは別に、jdbcDriverName プロパティが正しく設定されていないか、データソース名[dataSourceName]に誤りがあります。jdbcDriverName プロパティやデータソース名[dataSourceName]に適切な値を設定してください。詳細は[ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.8. JDBCデータソース ] をご参照ください。

jdbcDriverName プロパティは、専用のデータソースの種別[dataSourceType]がないJDBC ドライバを使用する際に設定が必要となります。jdbcDriverName プロパティの設定方法は次の通りです。XXXXX の部分には、使用するJDBC ドライバのjava.sql.Driver 実装クラスを指定してください。




対象となるエラー事象

JDBC ドライバのロードに失敗すると、JDBC データソースのログファイル(wojdbc.log)、または、プロセスグループのログファイルに次のいずれかの内容が出力されます(XXXXX の部分には、JDBC ドライバのクラス名が出力されます)。

    (1) java.sql.SQLException: [NEC][WOJDBC] class not found : XX.XXX
    (2) java.sql.SQLException: [NEC][WOJDBC] failed to load suitable driver : 〜 class not found : XXX.XX
    (3) java.sql.SQLException: No suitable driver


ログは、次のファイルに出力されます。

    エージェントプロセス内で動作する場合:
    ${INSTANCE_ROOT}/logs/jdbc/wojdbc.log

    Standard/Enterprise のプロセスグループ内で動作する場合:
    ${INSTANCE_ROOT}/logs/tpsystem/<apgname>/<pgname>/<pgname>.<pid>.log


関連情報