Oracle JDBC およびライブラリーの非互換性

Oracle 10g または Oracle 11g のいずれかの JDBC ドライバーとともに Oracle OCI ドライバーを使用する場合は、製品の始動時に問題が発生することがあります。リソース・マネージャーおよび Oracle のエラーが表示される可能性があります。

このタスクについて

以下のようなエラーが (IBM® Business Monitor で) 表示されることがあります。
11/11/08 13:24:59:907 EST] 0000003b WSRdbXaResour E   DSRA0304E:  XAException が発生しました。(11/11/08 13:24:59:907 EST] 0000003b WSRdbXaResour E   DSRA0304E:  XAException occurred.) XAException の内容および詳細は次のとおりです。(XAException contents and details are:)
XA エラー: -3 (The XA Error is            : -3)
XA エラー・メッセージ: トランザクション・ブランチでリソース・マネージャー・エラーが発生しました。(The XA Error message is    : A resource manager error has occured in the transaction branch.)
Oracle エラー・コード: 1024 (The Oracle Error code is   : 1024)
Oracle エラー・メッセージ: 内部 XA エラー (The Oracle Error message is: Internal XA Error)
原因: null。(The cause is               : null.)
[11/11/08 13:24:59:907 EST] 0000003b WSRdbXaResour E   DSRA0302E:  XAException が発生しました。([11/11/08 13:24:59:907 EST] 0000003b WSRdbXaResour E   DSRA0302E:  XAException occurred.) エラー・コード: XAER_RMERR (-3)。(Error code is: XAER_RMERR (-3).) 例外: <null> (Exception is: <null>)
[11/11/08 13:24:59:907 EST] 0000003b XATransaction E   J2CA0027E: dataSource jdbc/wbm/MonitorDatabase から XA リソース・アダプターの Start を呼び出しているときに例外が発生しました。([11/11/08 13:24:59:907 EST] 0000003b XATransaction E   J2CA0027E: An exception occurred while invoking start on an XA Resource Adapter from dataSource jdbc/wbm/MonitorDatabase)

Oracle OCI ドライバーの使用時に、Oracle Instant Client JDBC ドライバー (ojdbc14.jar) と Oracle フル・インストール・ライブラリーの間に非互換性が存在する場合に、上記のエラーが表示されます。

Oracle OCI ドライバーの使用時に上記のエラーを解決するには、WebSphere Application Server JDBC プロバイダーのクラスパスとネイティブ・ライブラリー・パスが同期していることを確認する必要があります。

手順

  1. 管理コンソールで、「リソース」 > 「JDBC」 > 「JDBC プロバイダー」を選択します。
  2. クラスパスには、ojdbc14.jar ファイルが入っているディレクトリーを指定します。例えば、${MONITOR_JDBC_DRIVER_PATH}/ojdbc14.jar です。 このパスは、シン・クライアントと OCI クライアントの両方で有効です。
  3. ネイティブ・ライブラリー・パスには、以下を指定します。
    • Windows .dll ファイルが入っているディレクトリーを指定します。例えば、ORACLE_HOME/bin です。
    • Linux Unix .so ファイルが入っているディレクトリーを指定します。例えば、ORACLE_HOME/lib です。
    ネイティブ・ライブラリー・パスは OCI クライアントの場合のみ必要です。 ORACLE_HOME は WebSphere 変数ではありませんが、変数として追加できます。
    • ojdbc14.jar ファイルを Oracle インストール済み環境から取得した場合、ネイティブ・ライブラリー・パスは ORACLE_HOME/bin (Windows) または ORACLE_HOME/lib (UNIX) を指す必要があります。
    • ojdbc14.jar ファイルを Oracle Instant Client から取得した場合、ネイティブ・ライブラリー・パスは Oracle Instant Client ディレクトリーを指す必要があります。
    • ネイティブ・ライブラリー・パスを入力しないと、WebSphere Application Server はオペレーティング・システムのパスを使用します。これによって、OCI クライアントを使用している場合に競合が発生することがあります。