※ 本記事は、Stephen Feltsによる”Upgrade WebLogic Server to use 23.x JDBC Driver“を翻訳したものです。

2024年5月9日


Oracle 23.xデータベース・ドライバが使用可能であり、WebLogic Server (WLS)で動作します。

WLS 12.2.1.4.0および14.1.1.0.0には、ドライバjarファイルの19.3バージョンが付属しています。新しい機能を使用するには、既存のインストールをアップグレードして、23.xドライバjarファイルを使用できます。WLS 12.2.1.4.0はJDK8で実行されるため、JDK8バージョンをダウンロードする必要があります。WLS 14.1.1.0.0はJDK8またはJDK11で実行されるため、JDK8ドライバとJDK11ドライバのどちらを使用するかを決定する必要があります。JDK11で実行している場合は、Java SE 9で導入された最新のJDBC 4.3 APIを取得するために、JDK11ドライバを使用することをお薦めします。

Oracle 23.xデータベース・ドライバ・ファイルのダウンロード

ドライバjarファイルは、https://www.oracle.com/database/technologies/appdev/JDBC-downloads.html からダウンロードできます。このページの23cセクションに移動すると、最新バージョンが表示されます。実行するJDKのバージョンに応じて、「Zipped JDBC driver (ojdbc11.jar) and Companion Jars」または「Zipped JDBC driver (ojdbc8.jar) and Companion Jars」のいずれかをダウンロードします。

この項では、12.2.1.4.0または14.1.1.0.0リリースのWebLogic ServerでOracle 23.xドライバを使用するために必要なファイルを示します。

ノート: これらのjarファイルは、CLASSPATHの先頭にあるWebLogic Serverの実行に使用されるCLASSPATHに追加する必要があります。これらは、すべての19.x Oracleデータベース・クライアントjarファイルの前に配置する必要があります。

ファイル

説明

ojdbc8.jar or ojdbc11.jar Oracle JDBC Driver

simplefan.jar

Fast Application Notification

ucp.jar or ucp11.jar

Universal Connection Pool

ons.jar

Oracle Network Server client

orai18n.jar

Internationalization support

oraclepki.jar

Oracle Wallet support

xdb.jar

SQLXML support

xmlparserv2_sans_jaxp_services.jar SQLXML support

 

ノート: 以前のドキュメントでは、AQJMSで実行するためのAQJMS.jarのインストール、およびXML処理のためのorai18n-collation.jarおよびorai18n-mapping.jarのインストールが説明されていました。これらのjarファイルは、JDBCドライバおよびUCPダウンロードでは使用できません。これらのjarファイルのいずれかが必要な場合は、jarファイルを取得してCLASSPATHに追加するために、Oracle Databaseクライアント、Administratorパッケージ・クライアント・インストールまたはフル・データベース・インストールをインストールする必要があります。

WebLogic ServerのCLASSPATHまたはPRE_CLASSPATHを更新

Oracle 23.x JDBCドライバを使用するには、WebLogic Server環境でCLASSPATHを更新する必要があります。前述の必須Oracle 23.xドライバ・ファイルで指定されている必要なファイルの先頭にCLASSPATHを追加します(19.xドライバjarファイルの前)。startWebLogic.shを使用している場合は、PRE_CLASSPATHも設定する必要があります。次のコード・サンプルは、WebLogic環境のCLASSPATHを更新する単純なシェル・スクリプトの概要を示しています。ORACLE23が、ファイルがアンパッケージされたディレクトリ(またはスクリプトにハードコード)に適切に設定されていることを確認してください。

#!/bin/sh
# source this file in to add the new 23.x jar files at the beginning of the CLASSPATH
case “`uname`” in
*CYGWIN*)
SEP=”;”
;;
Windows_NT)
SEP=”;”
;;
*)
SEP=”:”
;;
esac

dir=${ORACLE23:?}

ojdbc=ojdbc8.jar
ucp=ucp.jar
#uncomment the next two lines to use JDK11 jars
#ojdbc=ojdbc11.jar
#ucp=ucp11.jar

CLASSPATH=”${dir}/${ojdbc}${SEP}$CLASSPATH”
CLASSPATH=”${dir}/${ucp}${SEP}$CLASSPATH”
CLASSPATH=”${dir}/
simplefan.jar${SEP}$CLASSPATH”
CLASSPATH=”${dir}/ons.jar${SEP}$CLASSPATH”
CLASSPATH=”${dir}/
orai18n.jar${SEP}$CLASSPATH”
CLASSPATH=”${dir}/
oraclepki.jar ${SEP}$CLASSPATH”
CLASSPATH=”${dir}/xdb.jar${SEP}$CLASSPATH”
CLASSPATH=”${dir}/
xmlparserv2_sans_jaxp_services.jar${SEP}$CLASSPATH”

たとえば、このスクリプトをsetdb23_jars.shという名前の環境に保存し、次を実行します

. ./setdb23_jars.sh

export PRE_CLASSPATH=”$CLASSPATH” 

WLSのCLASSPATHにdms.jarを入れないでください。クラスパスにdms.jarを指定すると、Connection.setClientInfo()の動作が変更され、Oracle Fusion Middleware環境でのみ使用されます。また、WLSクラスパス内の他のjarと競合するため、xmlparserv2.jarを使用しないでください。

デバッグに固有のojdbc*g.jarファイルがなくなり、診断用のojdbc*dms.jarがなくなりました(診断動作は、クラスパスにdms.jarを指定することで有効になります)。

上位互換性

ドライバの動作変更

ドライバの変更は、https://download.oracle.com/otn-pub/otn_software/jdbc/23c/JDBC-UCP-ReleaseNotes-23c.txt で説明されています。次に、WLSで監視される変更を示します。

  • 23.xより前にVARNUM形式で送信されていたブール型ですが、23.xからブール型として送信されます。
    ただし、サーバー側のPLSQLおよびOCIでは、以前に送信されたとおりに送信されることを想定しています。
    PLSQLおよびthinドライバを以前のように連携させるには、新しい接続プロパティ oracle.jdbc.sendBooleanInPLSQL があります。
    このような条件ではfalseとして設定する必要があります。これにより、適切なバインダーを選択できます。
  • 23c以降では、UCPデータソースはWLS XA (ただしLLRではない)トランザクションに参加できます。
  • ドライバのデバッグは完全にオーバーホールされます。完全デバッグを有効にするには、-Doracle.jdbc.diagnostic.enableLogging=true -Doracle.jdbc.diagnostic.enableSensitiveDiagnostics=true -Doracle.jdbc.diagnostic.permitSensitiveDiagnostics=true  -Doracle.ucp.diagnostic.enableLogging=true -Djava.util.logging.config.file=./logging.config を使用します
    次に、./logging.config を作成します:

 handlers = java.util.logging.ConsoleHandler
 oracle.jdbc.level = FINEST
 java.util.logging.ConsoleHandler.level = FINEST
 java.util.logging.ConsoleHandler.formatter = oracle.jdbc.diagnostics.OracleSimpleFormatter

       あるいは

 oracle.jdbc.handlers = java.util.logging.FileHandler
 oracle.jdbc.level = FINEST
 java.util.logging.FileHandler.level = FINEST
 java.util.logging.FileHandler.pattern = %h/jdbc_incident_%u.log
 java.util.logging.FileHandler.limit = 50000
 java.util.logging.FileHandler.count = 10
 java.util.logging.FileHandler.formatter = oracle.jdbc.diagnostics.OracleSimpleFormatter

startWebLogic.shを使用している場合は、これらのシステム・プロパティをJAVA_OPTIONSに追加できます。

上位互換性バグ

これらはWLS 14.1.2.0.0で修正されます。

  • Bug 36066918 – Deploying an AGL datasource that is configured with the XA replay driver and auto-ONS fails with
    java.lang.AbstractMethodError.