Oracle UCP FAQ (よくある質問)

更新日 2017年3月1日

このドキュメントには、Oracle Universal Connection Pool(Oracle UCP)に関するよくある質問とその回答が含まれています。このFAQは特定の技術的な質問に対してのみ回答しており、お客様のよくある質問と既知のすべての問題に対する解決策を文書化するのに使用されます。サーバーのドキュメント(JDBCのドキュメントを含む)は、オンラインでも利用できます。


最新情報

Oracle UCP FAQページは、UCPに関するすべての質問に答える新しいページです。このページは、UCPを使いやすくし、UCPの持つ優れた機能を説明することを目的としています。


UCPの概要


UCPとは何ですか。

UCPとは、Universal Connection Poolの略です。UCPは単一の接続プールで、JDBC、JCA、LDAPなど、あらゆる種類の接続を扱います。UCPは、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 Download Pageから必要なバージョンをダウンロードしてください。


UCPの詳細はどこから入手できますか。

詳細については、UCP リファレンス・ガイドを参照してください。


UCPとともに使用する必要のあるアプリケーション・コンテナはどれですか。

UCPは、Apache Tomcat、IBM Websphere、JBOSS、Weblogicなど、任意のアプリケーション・コンテナとともに使用できます。


UCPはWeblogicで動作しますか。

UCPはWebLogicで動作しますが、オラクルが提供し、同じ機能をすべて備える"Active Grid Link"を使用してください。


リリース固有の質問


サポートされるUCPのバージョンは何ですか。

ucp.jarファイルの現在サポートされているバージョンは、12.2、12.1、11.1、11.2です。


ucp.jarバージョンとJDBCドライバ・バージョンは異なっても差し支えありませんか。

UCPが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は、ojdbc8.jarの12.2.0.1以降が必要です。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)接続プールのデフォルトの動作を無効にするため、プールのプロパティを設定します。


Oracle Notification Service(ONS)

ONSとは何ですか。

Oracle Notification Server(ONS)は、シンプルなパブリッシュ/サブスクライブのメソッドを使用し、ローカルとリモートの両方で利用されるイベント・メッセージを生成し、配送します。ONSデーモンはローカルで実行され、他のONSデーモンがアクティブである構成されたノード・リストとの間でメッセージを送受信します。Oracle Real Application Clusters(Oracle 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がバインドするポート。

remoteport:他のリモートのONSデーモンと通信するすべてのインタフェース上でONSがバインドするポート。

nodes:ホスト名、またはIPアドレスとポートのいずれかを指定してやりとりする、他のONSデーモンのリスト。

# 最初の3つの値は必須<br>
  localport=4100<br>
  remoteport=4200<br>
  nodes=racnode1:4200, racnode2:4200, racnode3:4200

ONSがリスニングする標準ポートは何ですか。

ONSは"ローカル"ポートと"リモート"ポートの区別のみ行います。すなわち、ONS configの"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


UCP - ワーク・ロードバランシング

ワーク・ロードバランシングとは何ですか。

ワーク・ロードバランシングとは、ワーク・ロードを分散させ、最適なパフォーマンスをユーザーとアプリケーションに提供することです。RAC対応アプリケーションにおいて、新しいノード/インスタンスがサービスとの間で追加/削除される場合、追加と削除の両方の状況において手動操作なしでワーク・ロードのバランスをとる必要があります。データベース接続の数は、利用可能なインスタンス間で常に分散させる必要があります。


ロードバランシング・アドバイザとは何ですか。

RAC、GDSはロードバランシング・アドバイザを発行し、アクティブなインスタンスそれぞれのCPU利用率を示します。