内容は次のとおりです。
Oracle Database 12c リリース1(12.1)の『Oracle Universal Connection Pool for JDBC開発者ガイド』における変更は次のとおりです。
このリリースの新機能は次のとおりです。
アプリケーション・コンティニュイティのサポート
第9章「アプリケーション・コンティニュイティの保証」を参照してください。
グローバル・データ・サービスのサポート
「グローバル・データ・サービスの使用方法」を参照してください。
データベース常駐接続プールのサポート
データベース常駐接続プール(DRCP)は、多くのクライアントで共有されるサーバーの接続プールです。アクティブ接続数がオープン接続数より大幅に少ない場合、接続プールのDRCPを使用する必要があります。Universal Connection Pool for JDBCは、DRCP機能を完全にサポートします。
「DRCPでのUCPの使用」を参照してください。
関連項目: データベース常駐接続プールの詳細は『Oracle Database JDBC開発者ガイド』を参照してください。 |
計画停止の場合の適切な排出のサポート
「計画停止のシナリオ」を参照してください。
複数のPDB(プラガブル・データベース)またはテナント間の接続の共通プールの共有を有効にするために、Oracle JDBCおよびUCPではJavaのマルチテナント・データ・ソースを提供します。Oracle Database 12cリリース1 (12.1)では、これは、次を組み合せたものに基づきます。
任意のPDBに対するアクセス権を保持するグローバル・データベース・ユーザー
UCP接続ラベリング
コールバック機能の新しいSET CONTAINER
文
SET CONTAINER
文の利点は、別のPDBへの既存の接続がある場合に、プールでPDBへの新しい接続を作成する必要がないことです。プールでは、既存の接続を使用でき、SET CONTAINER
文で、目的のPDBに接続できます。このためには、次のコマンドを使用します。
ALTER SESSION SET CONTAINER
=<PDB Name>
これによって、新しい接続を最初から作成する必要がなくなります。
UCP接続ラベリング・コールバック・インタフェース
次の図でJavaのマルチテナント・データ・ソースの動作方法を示します。
Tenant1
は、データベースIDにマップされた対応するラベルを使用してgetConnection()
メソッドをコールすることで、PDB1
への接続を要求します。
UCPは、使用されていない接続がプールにあるかを特定のラベルを仮に使用して検索します。
Conn1
ラベルがPDB1
を読み取る場合、接続はJDBCに渡されてから、使用のためにTenant1
に渡されます。
または、Conn1
ラベルがPDB1
を読み取らない場合、次のことが発生します。
UCPはALTER SESSION SET CONTAINER
文を使用し、ユーザー実装コールバックconfigure
メソッドを起動して、Conn1
をPDB1
に設定します。
SET CONTAINER
文がサーバーに渡されて解析されます。
サーバーは、その文を実行し、PDB固有のロールをTenant1
脚注 1 に割り当てます。
その後、サーバーはConn1
をPDB1
に接続してから、対応するデータベースID (dbid
)およびその他のプロパティをJDBCに戻します。
JDBCはUCPに通知して、Conn1
をTenant1
に使用のために渡します。
関連項目: Oracle Technology Networkに投稿されたJavaのマルチテナント・データ・ソースのホワイト・ペーパー:
|
脚注
脚注 1: PDBのグローバル・ユーザーの場合、パスワードで保護されているロールなしでは多くのタスクを実行できません。