内容は次のとおりです。
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のグローバル・ユーザーの場合、パスワードで保護されているロールなしでは多くのタスクを実行できません。