原典情報: <ORACLE_HOME>/relnotes/readmes/README_ucp.txt
目次
[ORACLE_HOME]/ucp/libには、次のファイルが含まれています。
ucp.jar
JDK 6およびJDK 7用のクラス。スタンドアロンのUCP/JDBCアプリケーション用の組込みJDBCプール・アダプタ・クラスのみでなく、ユニバーサル接続プール・クラスも含まれています。
ucpdemos.jar
JDK 6およびJDK 7用のクラス。ユニバーサル接続プールのデモおよびコード・サンプル、サンプル・ロギング構成、および高速接続フェイルオーバー用のクイックスタート・ツールキットが含まれています。
Javadoc/ドキュメント/デモ:
すべてOTNからダウンロードできます。
Oracle Installerにより、ユニバーサル接続プールのファイルが[ORACLE_HOME]/ucp ディレクトリに配置されます。
CLASSPATHに[ORACLE_HOME]\ucp\lib\ucp.jarを追加します。
CLASSPATHに[ORACLE_HOME]/ucp/lib/ucp.jarを追加します。
UCPはDB2やSQLServerなどのOracle以外のデータベースのみでなく、11gや10gデータベースなど、以前のOracle Databaseでも機能します。JDBCドライバおよびベンダーのデータベース・バージョンなど、UPCの完全な証明書情報はOTNを参照してください。
11g RACデータベースの機能を活用するよう設計されているため、UCPの接続アフィニティ機能(Webセッション・ベースのアフィニティおよびトランザクション・ベースのアフィニティ)は、Oracle Real Application Clusters (RAC)11.1以上で使用するよう設計されています。これらのUCP機能は、以前のバージョンのRACでは正常に機能しない可能性があります。
このリリースでは、UCPは、データベース・サーバーによってFCF、アプリケーションなどの機能のために生成されたONS構成を自動的に取得できますが、PoolDataSource.setONSConfiguration(String remoteONSConfig)をコールしてこれらの構成を上書きすることもできます。詳細は、UCP 12.1ドキュメントのグローバル・データ・サービスの使用に関する項を参照してください。
RACの機能では、現在128を超えるインスタンスをサポートしています。前のリリースではこれが上限でした。
ランタイム接続ロード・バランシング(RCLB)が大幅に改善されました。接続のオープンおよびクローズが最小化され、RCLBはサーバー・アドバイザリにスムースかつ厳密に従うようになりました。UCP 12.1では、ログで高度なRCLB統計情報も提供されます。
接続アフィニティ機能に厳密なアフィニティ・モードが追加されます。常に同じインスタンスへの接続が必要なアプリケーションは、システム・プロパティ"oracle.ucp.jdbc.oracle.affinity.strict"をtrueに設定できます。このモードでは、アフィニティ・インスタンスへの利用可能な接続が見つからない場合、UCPが例外をスローします。詳細は、UCP 12.1ドキュメントの接続アフィニティの使用に関する項を参照してください。
長時間実行中の問合せでの流用されている接続で、AbandonedConnectionTimeout処理がより適切になります。UCP 12.1ドキュメントの中止接続タイムアウトの設定に関する項を参照してください。
このリリースでは、不良接続の自動削除がサポートされます。SQLRecoverableExceptionが発生しているJDBC接続は、プールには戻されません。
UCPの接続ラベル付け機能を使用していて、高速接続フェイルオーバーとRACのロード・バランシング・アドバイザを有効化している場合は接続ラベル付けよりランタイム接続ロード・バランシング(RCLB)が優先されることに注意してください。つまり、RACが有効化されている環境では、UCPのRCLB方が、一般的な接続ラベル付け機能よりパフォーマンス特性が優れています。
Oracle Bug #15880508: 12.1では、UCPのランタイム接続ロード・バランシング(RCLB)機能が動作するには、Oracle JDBC 12.1ドライバのjarが必要です。これは、THINまたはJDBC-OCIドライバを使用している場合に当てはまります。
データベース常駐接続プーリング(DRCP)で接続ラベリングを使用すると、DRCPの簡易なタグ付けサポートのせいで、最適なパフォーマンスが得られないことがあります。
組込みプール・アダプタPoolDataSourceおよびPoolXADataSourceを使用しているアプリケーションでは、プールを使用すると、指定された接続ファクトリに、接続URL、ホスト、ポートなどのプロパティを実行時に動的に設定できます。ただし、接続URLを除くその他の接続ファクトリ・プロパティの設定時に、プールはリフレッシュされません。これは、標準の接続ファクトリ・プロパティ(たとえば、user、password、portNumber、databaseNameなどを含むjavax.sql.DataSourceのプロパティ)と、接続ファクトリに固有のカスタマイズ・プロパティの両方に当てはまります。
回避策: プールに接続が移入された後は、アプリケーションで重要な接続ファクトリ・プロパティの動的設定を回避する必要があります。これを回避できない場合は、すべての動的プロパティが設定された後に、アプリケーションで明示的にプールのリフレッシュを実行できます。
プールの起動中に、接続のオープンおよびクローズが過剰に行われます
UCP JDBCプロキシ参照のパブリック以外のドライバ・インタフェース
UCP JDBCプロキシ内の不良接続の処理
大規模なInitialPoolSizeが構成されると、プールの起動が遅くなります
closeOnCompletion()後にStatement.isClosed()が間違った値を返します
FAN UPイベント処理時のブロックに関する問題
接続プロキシでUCP isValid(0)の動作が不適切です
不明瞭なエラー・メッセージ「接続はすべて使用中です」
過負荷状態で、接続待機タイムアウトの処理で問題が発生しました
AbandonedConnectionTimeoutが、長時間実行中の問合せを中止しました
接続リクエスト・キューでの同期に関する問題
インスタンス当たりの接続数が不適切です
UCPによって作成されたセッションで、ログオフ・トリガーが起動されません
接続検証によりプールがブロックされます
2つめのプール・インスタンスの作成時にInstanceAlreadyExistsExceptionが発生します
新規接続時にラベリング・コールバックconfigure()がコールされません
FCFで大文字のサービス名を使用できません
接続検証により、FAN処理が遅延しました
未処理FANイベントに、GetFCFProcessingInfo()が空の文字列を返しました
MBean操作でプール名をMBeanにマップする必要があります
InactiveConnectionTimeoutにより、接続のクローズ/オープンが過剰に行われます
MBean登録時にNoClassDefFoundErrorにより、プールでエラーが発生します