9 WebLogic ServerでのOracle Databaseの使用

WebLogic Serverは、Oracleデータベースの特定の機能との統合により、いくつかの高度な機能を提供します。

Oracle Database 12.1に対するWebLogic JDBC機能

WebLogic Server、11gおよび12cのJDBCドライバ、およびOracle Databaseの11gおよび12.1バージョンの様々な組合せでサポートされているOracleデータベースの機能について学習します。

表9-1 Oracle Database 12.1の機能サポート

機能 WebLogic Server 10.3.6/12.1.xと、11gドライバおよびOracle Database 11gR2 WebLogic Server 10.3.6/12.1.xと、11gドライバおよびOracle Database 12c WebLogic Server 10.3.6/12.1.1と、12c以降のドライバおよびOracle Database 11gR2 WebLogic Server 12.1.2以降と、12c以降のドライバおよびOracle Database 11gR2 WebLogic Server 10.3.6/12.1.1と、12c以降のドライバおよびOracle Database 12c WebLogic Server 12.1.2以降と、12c以降のドライバおよびOracle Database 12c

JDBCリプレイ・ドライバ(読取り/書込み)

いいえ

いいえ

いいえ

いいえ

はい(Active GridLinkのみで読取り/書込み、XAトランザクションなし)

はい(Active GridLinkおよび汎用データ・ソースの読取り/書込み、XAトランザクションなし)

プラガブル・データベース(PDB)

いいえ

はい(Set Containerを除く)

いいえ

いいえ

はい

はい

PDBの動的切替え

いいえ

いいえ

いいえ

いいえ

いいえ

はい(XAなし)

データベース常駐接続プーリング(DRCP)

いいえ

いいえ

いいえ

はい

いいえ

はい

Oracle Notification Service (ONS)の自動構成

いいえ

いいえ

いいえ

いいえ

いいえ

はい(Active GridLinkのみ)

グローバル・データ・サービス(GDS)

いいえ

はい(Active GridLinkのみ)

いいえ

いいえ

はい(Active GridLinkのみ)

はい(Active GridLinkのみ)

JDBC 4.1 (ojdbc7.jarファイルおよびJDK 7使用)

いいえ

いいえ

はい

はい

はい

はい

WebLogic Oracle Database 12.1に対するJDBC機能は次のとおりです:

JDK 7に対するJDBC 4.1サポート

WebLogic Serverは、JDK 7の使用環境でJDBC 4.1仕様をサポートしており、JDBCドライバはJDBC 4.1準拠です。新しいJDBC 4.1のメソッドを使用する場合は、ojdbc7.jarを使用する必要があります。JDBC™ 4.1仕様を参照してください。

ノート:

Java SE 8のgetParentLoggerメソッドの使用に必要なjava.sql.driverインタフェースは、現時点ではサポートされていません。http://docs.oracle.com/javase/8/docs/api/index.html?java/sql/Driver.htmlを参照してください。

JDK 7では、http://jcp.org/aboutJava/communityprocess/maintenance/jsr114/114MR2approved.pdfで定義されたRowset 1.1の軽微な変更もサポートしています。新規RowSetFactoryのWebLogic Serverへの実装をweblogic.jdbc.rowset.JdbcRowSetFactoryといいます。

JDBCリプレイ・ドライバのサポート

JDBCリプレイ・ドライバ(リプレイとも呼ばれる)は、Active GridLinkおよび汎用データ・ソースに対応する、アプリケーションに依存しない汎用インフラストラクチャです。これによって、アプリケーションの観点からの作業の回復が可能になり、多くのシステム障害、通信障害およびハードウェア障害がマスクされます。「JDBCリプレイ・ドライバ」を参照してください。

データベース常駐接続プーリングのサポート

データベース常駐接続プーリング(DRCP)はOracleデータベース・サーバーの機能で、これにより中間層システムをまたぐ可能性のある複数の接続プール間の接続を共有できます。「データベース常駐接続プーリング」を参照してください

プラガブル・データベースを使用するコンテナ・データベース

コンテナ・データベース(CDB)はOracleデータベース機能の1つであり、多数のデータベースを、単一CDBに含まれる複数のプラガブル・データベース(PDB)を使用して単一データベースに統合することにより、多数のデータベースを持つ場合のオーバーヘッドを最小限に抑えます。プラガブル・データベースを使用するコンテナ・データベースを参照してください

グローバル・データ・サービスのサポート

グローバル・データ・サービス(GDS)はOracle Databaseの機能の1つであり、分散データベース環境でのロード・バランシング、フォルト・トレランス、リソース活用を自動化します。「Global Database Services」を参照してください

自動ONSリスナー

WebLogic Serverリリース12.1.2以降でOracle Database 12cを使用している場合は、Active GridLinkデータ・ソース構成の一部としてONSリスナーのリストを指定する必要はありません。ONSリストはデータベースからドライバに自動的に提供されます。「FANイベントの有効化」を参照してください

Oracle Database 12.2に対するWebLogic JDBC機能

WebLogic JDBCには、特にOracle Database 12.2.xを使用する必要のあるいくつかの機能があります。WebLogic ServerのリリースとOracle Database 12.2.xリリースの様々な組合せでサポートされる機能について学習します。

表9-2 Oracle Database 12.2の機能サポート

機能 説明 導入されたWebLogic Server データベース・リリース

JDBC 4.2

「JDBC 4.2インタフェース」を参照

12.1.3

12.1.0.1

サービスの切替え

「サービスの切替え」を参照

12.2.1

12.2

JDBCリプレイ・ドライバ

「データベース12.2 JDBCリプレイ・ドライバ」を参照してください

12.2.1

12.2

UCP MT共有プールのサポート

ユニバーサル接続プール・マルチテナント共有プールのサポートを参照

12.2.1.1.0

12.2

段階的排出

計画されたメンテナンスの間、すべての接続を即時にクローズするのではなく、接続を段階的に排出します。これは、アプリケーションのパフォーマンスが不均一になることを防ぎます。「段階的排出」を参照

12.2.1.2.0

12.1の12.2での拡張

AGLでの@aliasまたは@ldapを含むURLのサポート

「AGLでの@aliasまたは@ldapを含むURLのサポート」を参照

12.2.1.2.0

12.2

データ・ソースの共有プール

共有プール機能により、複数のデータ・ソース定義で基になる接続プールを共有する機能が提供されます。「共有プールのデータ・ソースの使用」を参照

12.2.1.3.0

12.2

トランザクション・ガードの統合

トランザクション・ガードは、計画済および計画外の停止中の、重複する発行を最大1回の実行に抑えるためにアプリケーションで使用される汎用インフラストラクチャを提供します。『Oracle WebLogic Server JTAアプリケーションの開発』「トランザクション・ガードの使用」を参照してください。

12.2.1.3.0

12.1.0.2

WebLogic Oracle Database 12.2に対するJDBC機能は次のとおりです:

JDBC 4.2インタフェース

JDK 8にはJDBC 4.2用の新しいAPIがあり、JDBC 4.2準拠のデータベース・ドライバでサポートされます。JDK 8とJDBC 4.2をサポートする最初のOracleドライバは12.2.0.1です

JDBC 4.2のjava.sqlおよびjavax.sqlで導入された機能を次に示します

  • JDBCType列挙とSQLTypeインタフェースの追加

  • CallableStatementでのREF CURSORのサポート

  • 最大Logical LOBサイズとREF CURSORのサポートの有無を返すDatabaseMetaDataメソッド

  • 大きい更新カウントのサポートの追加

JDBC 4.2 APIの変更点は、https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/jdbc_42.htmlに記載されています

データベース12.2 JDBCリプレイ・ドライバ

JDBCリプレイ・ドライバはOracle Database 12.2の新機能です。その名前はoracle.jdbc.replay.OracleXADataSourceImplです。12.2より前のドライバでWebLogic Serverを実行すると、クラスをロードできないことを示すエラーがスローされます。

データ・ソースがデータベース12.2のJDBCリプレイ・ドライバを使用して実行されている場合、テスト表の名前は次のように検証されます:

  • SQL ISVALIDまたはSQL PINGDATABASEの場合、変更はありません。

  • 表名(tablenameからselect count(*)に変換される)またはSQL SELECTが指定されている場合は、SQL ISVALIDに変換されます。

  • 他の値(DMLまたはDDL)を指定すると、例外がスローされ、データ・ソースはデプロイされません。

ノート:

12.2 JDBCリプレイ・ドライバでは、グローバル・トランザクションのリプレイはサポートされません。XA接続上のローカル・トランザクションをサポートしています。
 

AGLでの@aliasまたは@ldapを含むURLのサポート

この機能を使用すると、AGLのURLで別名またはLDAP接続を使用できます。

別名の形式はjdbc:oracle:thin:@aliasで、この「alias」はtnsnames.oraファイルで定義されている別名です。

LDAP構文に関する項を参照してください。

別名を使用するには、次のステップを実行する必要があります。

  1. システム・プロパティのDoracle.net.tns_admin=tns_directoryを指定し、このtns_directoryは、tnsnames.oraファイルのディレクトリの場所です。

  2. tns_directoryで指定されているディレクトリ内にtnsnames.oraファイルを作成します。または、このファイルを変更します。

    エントリの形式: alias=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=service)))

    ここで、hostはデータベース・リスナーのURL、portはデータベース・リスナーのポート、serviceは接続する先のデータベースのサービス名です。
  3. 接続文字列を別名に置き換えることで、データ・ソース定義URLで別名を使用します。

    たとえば、管理コンソールの「接続プール」タブでURL属性をjdbc:oracle:thin:@aliasに変更します。

Oracle Database 19.3に対するWebLogic JDBC機能

WebLogic Server 14.1.1.0.0はOracle 19.3 JDBCドライバに含まれています。

18cおよび19cのJDBCドライバでサポートされている新機能は次のとおりです。
  • サービスまたはPDBの再配置または停止に先立つサーバーの排出
  • Oracle Databaseにリクエスト境界が表示される
  • 透過アプリケーション・コンティニュイティ(TAC)
  • URLでのHTTPプロキシ・ホストおよびポートの定義のサポート
  • Autonomous Transaction Processing (ATP)データベースとの統合の強化

18cおよび19c JDBCドライバの詳細は、Oracle Databaseドキュメント新機能ドキュメントを参照してください。

WebLogic ServerでJDBC 4.3仕様がサポートされるのは、環境でJDK 11が使用されており、JDBCドライバがJDBC 4.3準拠であるときです。JDBC 4.3の新しいメソッドを使用するには、「JDBC 4.3インタフェースのサポート」を参照してください

JDBC 4.3インタフェースのサポート

JDBC 4.3仕様では、シャーディング、作業単位境界、およびリテラルと識別子のエンクォートのための新しいAPIが定義されています。JDBC 4.3のAPIの変更の概要は、https://docs.oracle.com/javase/9/docs/api/java/sql/package-summary.htmlを参照してください

WebLogic Serverで新しいJDBC 4.3 APIがサポートされるのは、環境でJDK 11が使用されており、JDBCドライバがJDBC 4.3準拠であるときです。Oracle ThinドライバでJDBC 4.3のメソッドを使用するには、19c以上のojdbc10.jarがサーバーのCLASSPATHに存在している必要があります。

GenericおよびActive GridLinkデータ・ソース・タイプでのOracleアプリケーション継続性統合では、作業単位境界APIが内部的に呼び出されます。このとき、接続が接続プールから予約され、解放されると接続プールに戻されます。新しいデータ・ソース構成属性を使用すると、このAPIがサポートされるOracleリプレイ・ドライバおよびOracle 4.3以外のドライバでのJDBC接続で、自動作業単位境界を実行するかどうかを制御できます。InvokeBeginEndRequestに関する項を参照してください。

ノート:

  • OracleシャーディングAPIは、UCPデータ・ソース・タイプでのみサポートされます。「ユニバーサル接続プール・データ・ソースの使用」を参照してください
  • WebLogic Server 14.1.1.0では、Oracle XAドライバ・クラスで構成されているGenericおよびActive GridLinkデータ・ソースの自動作業単位境界はデフォルトで無効です。