2017年3月1日更新
このドキュメントには、オラクルのユニバーサル接続プール(UCP)に関するよくある質問とその回答が掲載されています。ここでは特定の技術的な質問にのみ回答しています。また、これらの質問と回答は、お客様からよくある質問と既知のすべての問題に対する解決策を文書化するために使用されます。サーバー・ドキュメント(JDBCドキュメントを含む)は、オンラインでもご利用いただけます。
UCPに関するよくある質問のページは、UCPに関するあらゆる質問に回答する新しいページです。UCPの使用を容易にし、その優れた機能を説明することを目的としています。
UCPとは何ですか?
UCPとは、Universal Connection Poolの略です。UCPは、JDBC、JCA、LDAPなど、あらゆる種類の接続に対応する単一の接続プールです。Oracle以外のJDBCドライバ、およびOracle以外のデータベースへのJDBC接続をサポートします。OracleデータベースへのOracle JDBC接続にUCPを使用する場合、従来のJDBC Implicit Connection Cacheを含め、あらゆる機能を利用できます。UCPはオラクル製品で幅広く使用されています。フェイルオーバーを正常に処理し、接続やリソースを管理できることなど、多くの理由からUCPの使用をお薦めします。
UCPの使用方法を教えてください。
UCPはスタンドアロンのjarファイルです。ファイル名はucp.jarです。UCPはJDBC jarファイルには含まれていません。
UCP jarファイルはどこで入手できますか?
必要なバージョンのUCP jarファイルをOracle Technology NetworkのJDBC、UCPおよびSQLJダウンロード・ページからダウンロードしてください。
UCPに関する詳しい情報はどこで入手できますか?
詳細については、UCPリファレンス・ガイドを参照してください。
UCPにはどのアプリケーション・コンテナを使用する必要がありますか?
UCPは、Apache Tomcat、IBM WebSphere、JBoss、WebLogicなど、あらゆるアプリケーション・コンテナとともに使用できます。
UCPはWebLogicで動作しますか?
UCPはWebLogicで動作します。ただし、オラクルが提供し、同様の機能をすべて備えている「Active GridLink」の使用をお薦めします。
サポートされているUCPのバージョンは何ですか?
現在サポートされているucp.jarファイルのバージョンは、12.2、12.1、11.1、11.2です。
JDBCドライバと異なるバージョンのucp.jarを使用できますか?
12c(12.1.0.1.0)以前のバージョンのUCPは、どのバージョンのOracle JDBCドライバでも動作します。新しいプールを備えたUCP 12.1.0.2は、Oracle JDBCドライバ12.1.0.2に依存しています。例: 12.2.0.1のucp.jarには、12.2.0.1以降のojdbc8.jarが必要です。ucp.jarとJDBCドライバは、同じバージョンのものを使用することをお薦めします。
ucp.jarのバージョンはデータベースのバージョンに依存しますか?
データベースのバージョンの互換性は、UCPのバージョンではなくJDBCドライバのバージョンによって決まります。UCP jarファイルは、JDBCドライバのバージョンと互換性があることが必要です。
UCPを使用してデータベース接続を作成する方法を教えてください。
UCP for JDBCは、プールが有効化されたデータソースを提供します。アプリケーションはこのデータソースを使用して、UCP JDBC接続プールから接続を流用します。以下に手順を示します。
(1) プールが有効化されたデータソースのインスタンスを取得します。
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
(2) データベースへの物理接続を取得するために必要な接続プロパティを設定します。
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@//localhost:1521/XE");
pds.setUser("<user>"); pds.setPassword("<password>");
(3) 接続プールのデフォルトの動作をオーバーライドするために、任意のプール・プロパティを設定します。
ONSとは何ですか?
Oracle Notification Server(ONS)は、シンプルなパブリッシュ/サブスクライブ・メソッドを使用して、ローカルとリモートの両方で利用されるイベント・メッセージを生成し、配信します。ONSデーモンはローカルで実行され、構成されたノード・リスト(他のONSデーモンがアクティブなノード)との間でメッセージを送受信します。Oracle Real Application Clusters(RAC)やFast Connection Failover(FCF)などの高度なOracle Database機能には、Oracle Clientソフトウェアに含まれるons.jarが必要です。
ONSの使用方法を教えてください。
ONSは、ons.jarという名前のjarファイルです。クラスパス、およびJDBCとUCPのjarファイルが配置されている場所に、このファイルを含めてください。
ONSの構成方法を教えてください。
ONSの構成は、ORACLE_HOME/opmn/conf/ons.configにある構成ファイル(ons.config)によって制御されます。ons.configに含まれる構成情報は、名前/値のペアによって定義されます。これには以下が含まれている必要があります。
localport: ONSがローカル・クライアントと通信するためにlocalhostインターフェイス上でバインドするポート。
remoteport: ONSが他のリモートONSデーモンと通信するためにすべてのインターフェイス上でバインドするポート。
nodes: ホスト名、またはIPアドレスとポートのいずれかを指定して通信する、他のONSデーモンのリスト。
# First three values are required
localport=4100
remoteport=4200
nodes=racnode1:4200, racnode2:4200, racnode3:4200
ONSがリスニングする標準ポートは何ですか?
ONSは、「ローカル」ポートと「リモート」ポート、つまりONS構成の「localport=」と「remoteport=」のみを区別します。通常は、6100と6200になります。ただし、これらは6100と6200である必要はありません。ONSクライアントとサーバー・ホストの両方で一貫性を保って設定されていれば、これらの値を任意のポート番号に構成できます。
ONSポートの変更方法を教えてください。
ONSポートは、クライアント側とサーバー側で変更する必要があります。
クライアント側: ons.configファイルのlocalport、remoteportを変更します。
サーバー側: SRVCTLコマンドを使用して、Oracle Restartに登録されているOracle Notification Serviceデーモンが使用するポートを変更します。
srvctl modify ons [-l ons_local_port] [-r ons_remote_port] [-t host[:port][,host[:port]][...]] [-v]
ONSが実行されているかどうかを監視する方法を教えてください。
ONSが実行されているかどうかを監視するには、次のコマンドを使用します。
$srvctl status nodeapps |grep ONS
ONS is enabled
ONS daemon is running on node:
ONS daemon is running on node:
ONS daemon is not running on node:
$srvctl config nodeapps | grep ONS
ONS exists: Local port 6100, remote port 6200, EM port 0, Uses SSL false
ONS is enabled
ONS is explicitly enabled on nodes:
ONS is explicitly disabled on nodes:
$onsctl debug or onsctl ping
ワークロード・バランシングとは何ですか?
ワークロード・バランシングとは、ワークロードを分散させて、ユーザーとアプリケーションに最適なパフォーマンスを提供することです。RAC対応アプリケーションでは、サービスに新しいノード/インスタンスが追加されたり、サービスからノード/インスタンスが削除されたりした場合に、手動操作なしでワークロードのバランスを取る必要があります。データベース接続の数は、常に、利用可能なインスタンスに分散させる必要があります。
ロード・バランシング・アドバイザとは何ですか?
RAC、GDSはロード・バランシング・アドバイザを発行し、アクティブなインスタンスについてそれぞれのCPU使用率を示します。