JDBC クラスパス未定義の例外

JDBC クラスパス変数が定義されていないデータベース・リポジトリーまたはプロパティー拡張リポジトリーを使用する場合、WebSphere Application Server の始動時に以下の例外が発生する可能性があります。

問題

以下の Virtual member manager のトレースの例に示すような、UndefinedVariableException が発生する。

Loading JDBC driver class: com.ibm.db2.jcc.DB2Driver
Getting ${VMM_JDBC_CLASSPATH} using variable map...
Failed to retrieve WAS variable: VMM_JDBC_CLASSPATH 
	com.ibm.wsspi.runtime.variable.UndefinedVariableException: Undefined variable VMM_JDBC_CLASSPATH
		at com.ibm.ws.runtime.component.VariableMapImpl.expand(VariableMapImpl.java:373)
		at com.ibm.ws.runtime.component.VariableMapImpl.expand(VariableMapImpl.java:325)
		at com.ibm.ws.wim.dao.DAOHelper.loadJDBCClass(DAOHelper.java:111)
		at com.ibm.ws.wim.dao.AbstractDAO.loadJDBCClass(AbstractDAO.java:324)
		at com.ibm.ws.wim.dao.AbstractDAO.getDirectAccessConnection(AbstractDAO.java:339)
		at com.ibm.ws.wim.config.ConfigValidator.validateDBParams(ConfigValidator.java:285)
		at com.ibm.ws.wim.config.ConfigValidator.validateRepositoryParams(ConfigValidator.java:214)

解決方法

以下の手順を実行して、WebSphere Application Server の構成内で VMM_JDBC_CLASSPATH 変数を定義します。
  1. WebSphere Application Server 管理コンソールを開始します。
  2. 「環境」 > 「WebSphere 変数」をクリックします。
  3. 「有効範囲」セクションで、ドロップダウン・リストから「セル」を選択します。
  4. 「新規」をクリックして、新規の変数を作成します。
  5. 「名前」フィールドに、VMM_JDBC_CLASSPATH と入力します。
  6. 「値」フィールドに、JDBC ドライバー・ライブラリー・ファイルのパスを入力します。それぞれのパスは、UNIX または Linux の場合はコロン (:)、Windows の場合はセミコロン (;) で区切ります。 例えば、Linux また UNIX のパスは、/opt/IBM/SQLLIB/java/db2jcc.jar:/opt/IBM/SQLLIB/java/db2jcc_license_cu.jar. のようになります。
  7. 「OK」をクリックします。
  8. さらに、インストール済みの各 WebSphere Application Server ノードの ${WAS_HOME}/lib ディレクトリーに、指定した JDBC ドライバー・ライブラリー・ファイルをコピーします。
  9. 構成を保存して、WebSphere Application Server を再始動します。
    注: クラスター環境では、デプロイメント・マネージャーとノード・エージェントを停止してから再始動する必要もあります。


利用条件 | フィードバック