Oracle Database 12cでは、OCIセッション・プールによって、動的に管理される事前作成済のデータベース・セッションのセットをアプリケーションの複数スレッドで使用できます。接続プーリングではプール要素は接続ですが、セッション・プーリングではプール要素はセッションとなります。Oracle Databaseでは、セッション・プール内のセッションを継続的に再利用して、インスタンスへのほぼ永続的なチャネルを形成することによって、アプリケーションでセッションが必要になるたびにセッションを作成してクローズするオーバーヘッドを削減できます。
ランタイム接続ロード・バランシングは、デフォルトでOracle Database 11gリリース11.1以上、Oracle Database 10gリリース10.2以上のサーバーとのクライアント通信で有効になっています。Oracle RAC環境の場合、アプリケーションのセッション要求を均等に分散させるために、セッション・プールは、高速アプリケーション通知(FAN)イベントを介してOracle RACロード・バランシング・アドバイザ脚注1から受信されるサービス・メトリックを使用します。セッション・プールに入ってくる作業要求は、現在のサービス・パフォーマンスを使用して、サービスを提供しているOracle RACのインスタンス全体で分散できます。
OCIクライアントを構成してロード・バランシング・アドバイザのFANイベントを受信する方法
Oracle RAC環境の場合、アプリケーションのセッション要求を均等に分散させるために、セッション・プールは、高速アプリケーション通知(FAN)イベントを介してOracle RACロード・バランシング・アドバイザから受信されるサービス・メトリックを使用します。次の例に示すとおり、アプリケーションがサービス時間に基づいてサービス・メトリックを受信できるようにするには、FAN、ロード・バランシング・アドバイザの目標(-rlbgoal
パラメータ)および接続ロード・バランシングの目標(-clbgoal
パラメータ)を、セッション・プールで使用されるサービスに構成していることを確認します。
$ srvctl modify service -db crm -service ociapp.example.com -rlbgoal SERVICE_TIME -clbgoal SHORT -notification TRUE
関連項目:
OCIの詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。
脚注の説明
脚注1:実行時接続ロード・バランシングは、基本的には作業リクエストをセッション・プール内で作業の処理に最も適切なセッションにルーティングする操作です。既存のセッション・プールからセッションを選択すると、有効になります。このため、ランタイム接続ロード・バランシングは、きわめて頻度の高いアクティビティです。