7.1 True Cacheに接続する方法
アプリケーションでは、いくつかの方法でTrue Cacheを使用できます。
-
2つの物理接続
アプリケーションで、2つの物理接続(1つはプライマリ・データベース、もう1つはTrue Cache)を保持します。各接続にはデータベース・アプリケーション・サービスがあり、アプリケーションは読取りか書込みかに基づいて、使用する接続を選択します。このモデルは、既存のクライアント・ドライバおよび任意のプログラミング言語で使用できます。
アプリケーションは、最新のデータを表示する必要がない問合せをTrue Cacheデータベース・アプリケーション・サービスを介してTrue Cacheに送信します。アプリケーションは、他の問合せおよび更新をプライマリ・データベース・アプリケーション・サービスを介してプライマリ・データベースに送信します。
-
1つの論理接続(JDBC Thinドライバ)
アプリケーションは、プライマリ・データベースのデータベース・アプリケーション・サービスを使用する1つの論理接続を維持します。JDBC Thinドライバ(Oracle AI Database 26ai以降)は、プライマリ・データベースおよびTrue Cacheへの物理接続を維持します。このモデルは、Javaアプリケーションでのみ機能します。
アプリケーションは、インスタンス名を指定せずに、プライマリ・データベースとTrue Cacheを切り替えます。アプリケーションは、特別なコールを使用して、論理接続に読取り専用または読取り/書込みのフラグを付けます。読取り専用の場合、問合せはTrue Cacheに送信されます。それ以外の場合は、プライマリ・データベースに送信されます。
JavaアプリケーションのTrue Cache機能を有効にするには、
oracle.jdbc.useTrueCacheDriverConnectionプロパティの値をtrueに設定します。True Cacheを有効にすると、JDBC Thinドライバによって標準のjava.sql.Connection.setReadOnly(boolean)およびjava.sql.Connection.isReadOnly()メソッドが使用されて接続が読取り専用としてマークされます。デフォルトでは、接続の読取り専用モードはfalseです。 -
単一のOracle Call Interface (OCI)セッション・プール
Oracle AI Database 26ai、リリース更新23.26.0以降では、単一のOCIセッション・プールを使用して、プライマリ・データベースとTrue Cacheの両方への接続を管理できます。
アプリケーションで、プライマリ・データベースからセッションをリクエストするか(デフォルト)、True Cacheから読取り専用セッションを明示的にリクエストできます。True Cacheを優先し(使用可能な場合)、使用可能でない場合はプライマリ・データベースにフォールバックするというオプションもあります。
True Cacheに対してセッション・プーリングを有効にするには、
OCISessionPoolCreate()にモードOCI_SPC_TRUECACHEを指定することで、セッション・プールを複数サービス・プール・モードで初期化します。True Cacheから読取り専用セッションを取得するには、OCISessionGet()を、OCI_SESSGET_READ_ONLYモードを指定して使用します。True Cacheセッションを使用できない場合にプライマリ・データベースにフォールバックするには、OCI_SESSGET_READ_PREFERモードを使用します。このモードが指定されていない場合、セッションでは、デフォルトでプライマリ・データベース・インスタンスから接続が取得されます。詳細は、『Oracle Call Interface開発者ガイド』でTrue Cacheセッション・プーリングを参照してください。
詳細と例は、次の技術アーキテクチャ図を参照してください: