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セッション・プーリングを参照してください。

詳細と例は、次の技術アーキテクチャ図を参照してください:

True Cacheアプリケーション