6.4 共通構成でのロード・バランシングに関するベスト・プラクティス

複数のTrue Cacheが存在し、同じデータベース・アプリケーション・サービスを提供する場合、リスナーはセッションを自動的に分散し、各キャッシュにロード・バランシングします。共通構成では、リスナーはTrue Cacheをランダムに、またはロードに基づいて選択し、すべてのTrue Cacheが同じデータをキャッシュします。

共通構成では、ランタイム接続ロード・バランシング(CLB)が使用されます。CLBは、最高のパフォーマンスを提供するTrue Cacheにリクエストをルーティングします。これを機能させるには、すべてのTrue CacheのREMOTE_LISTENERパラメータが、プライマリ・データベースのリスナー(単一インスタンスのプライマリ・データベースのローカル・リスナーか、Oracle RACプライマリ・データベースのSCANリスナーか)でもある同じリスナーを指している必要があります。

アプリケーションのJDBC URLは、プライマリ・データベースを指している必要があります。次に、JDBC Thinドライバによって、1つの論理接続と、プライマリ・データベースおよび各True Cacheへの複数の物理接続が作成されます。JavaコードでsetReadOnly(true)フラグを設定すると、True Cacheへの接続が自動的に再ルーティングされます。True Cacheがプライマリ・リスナーに登録されます。また、それらのロード統計がプライマリ・データベース・リスナーに送信されます。True Cache間で均等に分散されます。

構成を簡略化し、接続の問題を回避するには、REMOTE_LISTENERLOCAL_LISTENERを個別に指定するかわりに、LISTENER_NETWORKS初期化パラメータを使用することを検討してください。LISTENER_NETWORKSを指定すると、同じネットワーク名内のすべてのリスナーが相互登録されます。例:

listener_networks='((NAME=net1)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tc1.example.com)(PORT=1521))))(REMOTE_LISTENER=scan_primary:1521))',
     '((NAME=net2)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tc1.example.com)(PORT=1521))))(REMOTE_LISTENER=scan_standby:1521))'

リモート・リスナーおよびリスナー・ネットワークの構成の詳細は、「True CacheのPFILEの準備」を参照してください。