主コンテンツへ
Oracle® TimesTen Application-Tier Database Cacheユーザーズ・ガイド
リリース18.1
E98634-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 キャッシュ・インフラストラクチャの設定

TimesTenデータベースへのOracle Databaseデータのキャッシュを開始するには、TimesTen ClassicシステムおよびOracle Databaseシステムを設定するための次のタスクを実行します。

TimesTen ClassicにOracle Databaseデータをキャッシュするためのシステムの構成


ノート:

TimesTen In-Memory DatabaseでサポートされているOracle Database Serverのリリースについては、インストール・ディレクトリのOracle TimesTen In-Memory Databaseリリース・ノート (README.htm)のプラットフォームに関する項を参照してください。

TimesTen Cacheの環境変数(UNIXまたはLinux)またはTimesTen Cacheの環境変数(Microsoft Windows)の説明に従って、特定のオペレーティング・システム用に環境変数を設定します。

次に、TimesTenをインストールします。TimesTenのインストール手順は、Oracle TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイドを参照してください。


ノート:

製品の観点からは、TimesTen Cache製品オプションがTimesTen Classicに含まれるため、"TimesTen Cache"は"TimesTen Classic"と同じ意味で使用されます。

TimesTen Classicでは、WindowsクライアントのOracle Name Serverはサポートされていません。

TimesTen Cacheの環境変数(UNIXまたはLinux)

LD_LIBRARY_PATHSHLIB_PATHなどの共有ライブラリ検索パスの環境変数に、timesten_home/install/libディレクトリが含まれている必要があります。詳細は、Oracle TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイドの共有ライブラリ・パス環境変数を参照してください。

PATH環境変数に、timesten_home/binディレクトリが含まれている必要があります。

次の例では、timesten_homeディレクトリは/timesten/myinstanceディレクトリであり、TimesTen Classicは/timesten/myinstance/installディレクトリにインストールされています。

LD_LIBRARY_PATH=/timesten/myinstance/install/lib
PATH=/timesten/myinstance/bin

TimesTen Cacheの環境変数(Microsoft Windows)

PATHシステム環境変数に、次のディレクトリが含まれている必要があります。

  • Oracle_install_dir\bin

  • timesten_home\install\lib

  • timesten_home\bin

次の例では、Oracle DatabaseはC:\oracle\ora112ディレクトリに、TimesTen ClassicはC:\timesten\myinstanceディレクトリにインストールされています。

PATH=C:\oracle\ora112\bin;C:\timesten\myinstance\install\lib;C:\timesten\myinstance\bin

TimesTen ClassicにデータをキャッシュするためのOracle Databaseの構成

次の各項では、sysユーザーがOracle Databaseに対して実行する必要があるタスクについて説明します。

Oracle Databaseユーザーの作成

デフォルトの表領域およびキャッシュ操作に関する情報を格納するOracle Database表の所有者となるユーザーtimestenを作成する必要があります。この表領域は、他のアプリケーションと共有しないTimesTen Cache管理オブジェクトの格納に使用されます。TimesTenデータベースでキャッシュしたOracle実表も格納できますが、キャッシュ管理のために、この表領域をTimesTenデータベースのみで使用することをお薦めします。

timestenユーザーが所有するOracle Database表のリストについては、「Oracle Databaseオブジェクトによるキャッシュ環境の管理」を参照してください。

例3-1 timestenユーザーおよびその表の作成

次のSQL*Plusの例では、timestenユーザー用に作成されるデフォルトの表領域はcachetblspです。

% cd timesten_home/install/oraclescripts
% sqlplus sys as sysdba
Enter password: password
SQL> CREATE TABLESPACE cachetblsp;

TimesTenデータベースにキャッシュされるOracle Database表の所有者となる、1人以上のユーザーを作成または指定します。これらのユーザーはスキーマ・ユーザーです。既存ユーザーまたは新規ユーザーをスキーマ・ユーザーにすることができます。キャッシュされる表は、新規でも既存でもかまいません。

例3-2 スキーマ・ユーザーの作成

sysユーザーとして、次のSQL*Plusの例では、スキーマ・ユーザーorattを作成します。

SQL> CREATE USER oratt IDENTIFIED BY oracle;

次に、TimesTenデータベース用のキャッシュ環境の管理および特定のキャッシュ・グループ・タイプの定義済動作の実行に使用される情報を格納するOracle Databaseオブジェクトを作成、所有および保持するユーザーを作成する必要があります。このようなユーザーは、キャッシュ管理ユーザーと呼ばれます。


ノート:

各TimesTenデータベースは、Oracle Databaseの1人のキャッシュ管理ユーザーによってのみ管理が可能です。ただし、1人のキャッシュ管理ユーザーは、複数のTimesTenデータベースを管理できます。1人以上のキャッシュ管理ユーザーを指定できますが、その場合は、それぞれが1つ以上のTimesTenデータベースを管理します。

詳細は、「2つ以上のTimesTenデータベースにおける同じOracle表のキャッシュ」を参照してください。


キャッシュ管理ユーザー用のデフォルトの表領域として、timestenユーザー用に作成した表領域を指定します。このユーザーは、この表領域にキャッシュ環境およびそのキャッシュ・グループの情報を格納するために使用される表を作成します。自動リフレッシュ・キャッシュ・グループおよびAWTキャッシュ・グループの定義済動作の実行に使用されるその他のOracle Databaseオブジェクト(変更ログ表、レプリケーション・メタデータ表、トリガーなど)は、同じ表領域に作成されます。これらのオブジェクトを作成および管理するには、キャッシュ管理ユーザーが高レベルの権限を持っている必要があります。


ノート:

複数のキャッシュ管理ユーザーを作成する場合は、各キャッシュ管理ユーザーは、デフォルトの表領域として同じまたは別の表領域を使用できます。

キャッシュ管理ユーザーが所有するOracle Database表およびトリガーのリストについては、「Oracle Databaseオブジェクトによるキャッシュ環境の管理」を参照してください。


ノート:

自動リフレッシュ・キャッシュ・グループとは、AUTOREFRESH MODE INCREMENTALキャッシュ・グループ属性を使用する読取り専用キャッシュ・グループまたはユーザー管理キャッシュ・グループのことです。

例3-3 キャッシュ管理ユーザーの作成

sysユーザーとして、キャッシュ管理ユーザーcacheuserを作成します。次の例では、cacheuserユーザーのデフォルトの表領域はcachetblspです。

SQL*Plusを使用してキャッシュ管理ユーザーを作成します。

SQL> CREATE USER cacheuser IDENTIFIED BY oracle
    DEFAULT TABLESPACE cachetblsp QUOTA UNLIMITED ON cachetblsp;

Oracle Databaseユーザーへの権限の付与

キャッシュ管理ユーザーには、作成したキャッシュ・グループ・タイプおよびそのキャッシュ・グループで実行する操作に応じて、高レベルの権限を付与する必要があります。sysユーザーとしてSQL*Plusスクリプトtimesten_home/install/oraclescripts/grantCacheAdminPrivileges.sqlを実行して、キャッシュ操作の実行に必要な最小限の権限セットをキャッシュ管理ユーザーに付与できます。このSQLスクリプトの詳細は、「Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの自動作成」を参照してください。

このユーザーの各キャッシュ操作に必要な権限のリスト全体は、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。

Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの自動作成

TimesTen Classicでは、特定のキャッシュ環境操作およびキャッシュ・グループ操作が実行されるときに、キャッシュ管理ユーザーによって所有されるOracle Databaseオブジェクト(キャッシュ表、レプリケーション・メタデータ表、変更ログ表、トリガーなど)を自動的に作成できます。これらのオブジェクトの一部は、自動リフレッシュ・キャッシュ・グループおよびAWTキャッシュ・グループの定義済動作を実行するために使用されます。

sysユーザーとしてSQL*Plusスクリプトtimesten_home/install/oraclescripts/grantCacheAdminPrivileges.sqlを実行することによって、必要な権限がキャッシュ管理ユーザーに付与されている場合、これらのOracle Databaseオブジェクトは自動的に作成されます。必要な権限セットには、CREATE SESSIONRESOURCECREATE ANY TRIGGERおよびTT_CACHE_ADMIN_ROLEロールが含まれます。キャッシュ管理ユーザー名は、引数としてgrantCacheAdminPrivileges.sqlスクリプトに渡されます。


ノート:

また、セキュリティを確保するために、これらの表およびトリガーの自動作成に必要なRESOURCEまたはCREATE ANY TRIGGER権限をキャッシュ管理ユーザーに付与しない場合は、キャッシュ・グループ操作を実行する前に、これらのオブジェクトを手動で作成することもできます(Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの手動による作成を参照)。

作成するキャッシュ・グループのタイプおよびキャッシュ・グループやキャッシュ表に対して実行する処理によっては、grantCacheAdminPrivileges.sqlスクリプトの実行によってキャッシュ管理ユーザーに付与される権限の他に、キャッシュされたOracle Database表に対するSELECTINSERTなどの権限も必要になる場合があります。特定のキャッシュ・グループ操作およびキャッシュ表操作を実行するためにキャッシュ管理ユーザーに付与する必要のある権限の詳細リストは、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。

例3-4 Oracle Databaseオブジェクトを自動作成する権限の付与

sysユーザーとしてgrantCacheAdminPrivileges.sqlスクリプトを実行し、キャッシュ管理ユーザーに対して、TimesTenデータベースでOracle Databaseデータのキャッシュを管理するためのOracle Databaseオブジェクトを自動作成する権限を付与します。次の例では、grantCacheAdminPrivileges.sqlスクリプトには、キャッシュ管理ユーザー名(cacheuser)が入力として必要です。

SQL*Plusを使用して、grantCacheAdminPrivileges.sqlスクリプトを実行します。

SQL> @grantCacheAdminPrivileges "cacheuser"
SQL> exit

たとえば、自動リフレッシュ・キャッシュ・グループでは、キャッシュ・グループ・タイプの定義済動作の実行に必要なOracle Databaseオブジェクトがまだ存在しておらず、次のいずれかの状況が発生している場合、これらのオブジェクトが自動的に作成されます。

  • 自動リフレッシュ状態がPAUSEDまたはONに設定されたキャッシュ・グループが作成されている。

  • 自動リフレッシュ状態がOFFに設定されたキャッシュ・グループが作成され、その後、状態はPAUSEDまたはONに変更されている。

Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの手動による作成

次の目的で使用されるOracle Databaseオブジェクトを自動作成するには、キャッシュ管理ユーザーにRESOURCE権限が必要です。

  • 特定のキャッシュ環境に関連付けられたTimesTenデータベースの情報の格納。

  • 自動リフレッシュ・キャッシュ・グループの定義済動作を実行します。この場合、Oracle Databaseオブジェクトを自動作成するには、キャッシュ管理ユーザーにCREATE ANY TRIGGER権限も必要です。

  • AWTキャッシュ・グループの定義済動作の実行。

セキュリティ上の理由から、Oracle Databaseオブジェクトの自動作成に必要なRESOURCE権限およびCREATE ANY TRIGGER権限をキャッシュ管理ユーザーに付与しない場合は、これらのオブジェクトを手動で作成できます。

特定のキャッシュ・グループ・タイプの定義済動作を実行するために使用されるOracle Database表およびトリガーを手動で作成するには、sysユーザーとして、SQL*Plusスクリプトtimesten_home/install/oraclescripts/initCacheAdminSchema.sqlを実行します。これらのオブジェクトは、自動リフレッシュ・キャッシュ・グループおよびAWTキャッシュ・グループを作成する前に作成する必要があります。initCacheAdminSchema.sqlスクリプトには、キャッシュ管理ユーザー名が入力として必要です。

また、initCacheAdminSchema.sqlスクリプトによって、CREATE SESSIONおよびTT_CACHE_ADMIN_ROLEロールを含む必要な最小限の権限セットもキャッシュ管理ユーザーに付与されます。作成するキャッシュ・グループのタイプおよびキャッシュ・グループやキャッシュ表に対して実行する処理によっては、initCacheAdminSchema.sqlスクリプトの実行によってキャッシュ管理ユーザーに付与される権限の他に、キャッシュされたOracle Database表に対するSELECTINSERTなどの権限も必要になる場合があります。特定のキャッシュ・グループ操作およびキャッシュ表操作を実行するためにキャッシュ管理ユーザーに付与する必要のある権限の詳細リストは、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。

例3-5 Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの手動による作成

sysユーザーとしてinitCacheAdminSchema.sqlスクリプトを実行し、自動リフレッシュ・キャッシュ・グループおよびAWTキャッシュ・グループの定義済動作を実行するために使用されるOracle Databaseオブジェクトを手動で作成し、キャッシュ管理ユーザーに対して制限された権限セットを付与します。次の例では、キャッシュ管理ユーザー名はcacheuserです。

SQL*Plusを使用して、initCacheAdminSchema.sqlスクリプトを実行します。

SQL> @initCacheAdminSchema "cacheuser"
SQL> exit

自動リフレッシュ・キャッシュ・グループにキャッシュされるOracle Database表に関連付けられたその他のOracle Databaseオブジェクトは、これらのキャッシュ・グループ・タイプの定義済動作を実行するために必要になります。キャッシュ・グループを作成した後にこれらの追加オブジェクトを作成する方法の詳細は、「自動リフレッシュ・キャッシュ・グループ用のOracle Databaseオブジェクトの手動による作成」を参照してください。

Oracle Databaseデータのキャッシュを管理するためにTimesTen Classicが作成して使用するOracle Databaseオブジェクトのリストを表示するには、sysユーザーとしてSQL*Plusで次の問合せを実行します。

SQL> SELECT owner, object_name, object_type FROM all_objects WHERE object_name 
  2  LIKE 'TT\___%' ESCAPE '\';

この問合せによって、timestenユーザーまたはキャッシュ管理ユーザーが所有している表、索引およびトリガーのリストが返されます。

Oracle DatabaseデータをキャッシュするためのTimesTenデータベースの構成

次の各項では、インスタンス管理者またはキャッシュ・マネージャ・ユーザーがTimesTenデータベースで実行する必要がある処理について説明します。

TimesTenデータベースのDSNの定義

Oracle DatabaseのデータをキャッシュするTimesTenデータベースは、システムDSNまたはユーザーDSNのいずれかによって参照できます。TimesTen DSNの作成の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTenデータベースの管理に関する説明を参照してください。

Oracle DatabaseのデータをキャッシュするTimesTenデータベースのDSNを作成する場合は、次の接続属性の設定に特に注意します。これらの接続属性は、他に示されていないかぎり、すべてダイレクトDSNまたは接続文字列で設定できます。

  • PermSizeには、データベースの永続領域の割当てサイズをMBで指定します。この値は32MB以上に設定します。

  • OracleNetServiceNameは、Oracle Databaseインスタンスのネット・サービス名に設定する必要があります。

    Microsoft Windowsシステムの場合、Oracle Databaseインスタンスのネット・サービス名は、「TimesTen ODBC Setup」ダイアログ・ボックスにある「TimesTen Cache」タブの「Oracle Net Service Name」フィールドで指定する必要があります。

  • DatabaseCharacterSetは、Oracleデータベースのキャラクタ・セットと一致する必要があります。

    任意のユーザーとしてSQL*Plusで次の問合せを実行すると、Oracle Databaseキャラクタ・セットを確認できます。

    SQL> SELECT value FROM nls_database_parameters 
           WHERE parameter='NLS_CHARACTERSET';
    
  • UIDには、キャッシュされたOracle Database表にアクセスできるコンパニオンOracle Databaseユーザーと同じ名前のキャッシュ・ユーザー(キャッシュ・マネージャ・ユーザーなど)の名前を指定します。UID接続属性は、ダイレクトDSN、クライアントDSNまたは接続文字列で指定できます。

  • PWDには、UID接続属性で指定したTimesTenユーザーのパスワードを指定します。PWD接続属性は、ダイレクトDSN、クライアントDSNまたは接続文字列で指定できます。

  • OraclePWDには、UID接続属性で指定したTimesTenユーザーと同じ名前で、キャッシュされたOracle Database表にアクセスできる、コンパニオンOracle Databaseユーザーのパスワードを指定します。


    ノート:

    キャッシュ・マネージャ・ユーザーおよびコンパニオンOracle Databaseユーザーの詳細は、「TimesTenユーザーの作成」を参照してください。

  • PassThroughには、文をTimesTenデータベースで実行するかOracle Databaseにパススルーして実行するかの制御を設定できます。「パススルー・レベルの設定」を参照してください。

  • LockLevelは、TimesTen Cacheではデータベース・レベル・ロックがサポートされていないため、デフォルトの0 (行レベル・ロック)に設定する必要があります。

  • ReplicationApplyOrderingおよびCacheAWTParallelismでは、AWTキャッシュ・グループのTimesTenキャッシュ表に対して行われた変更を対応するOracle Database表へ伝播するパラレル伝播を制御します。「Oracle Database表へのパラレル伝播の構成」を参照してください。

例3-6 Oracle DatabaseのデータをキャッシュするTimesTenデータベースのDSN

次に、cache1 DSNの定義例を示します。

[cache1]
DataStore=/users/OracleCache/ttcache
PermSize=64
OracleNetServiceName=orcl
DatabaseCharacterSet=WE8ISO8859P1

TimesTenユーザーの作成

最初に、キャッシュ・グループ操作を実行するユーザーを作成する必要があります。このようなユーザーは、キャッシュ・マネージャ・ユーザーと呼ばれます。TimesTenキャッシュ管理ユーザーは、キャッシュされたOracle Database表にアクセスできるコンパニオンOracle Databaseユーザーと同じ名前である必要があります。たとえば、コンパニオンOracle Databaseユーザーは、キャッシュされたOracle Database表から選択して更新する権限を持っている必要があります。コンパニオンOracle Databaseユーザーは、キャッシュ管理ユーザー、スキーマ・ユーザーまたはその他の既存ユーザーにすることができます。使いやすくするために、キャッシュ管理ユーザーをキャッシュ・マネージャ・ユーザーのコンパニオンOracle Databaseユーザーにすることをお薦めしますが、キャッシュ管理ユーザーに割り当てられる高レベルの権限が心配な場合は、コンパニオンOracleユーザーには別のOracle Databaseユーザーを選択してください。キャッシュ・マネージャ・ユーザーのパスワードは、同じ名前を持つコンパニオンOracle Databaseユーザーとは別のパスワードにすることができます。


ノート:

TimesTenデータベースには複数のキャッシュ・マネージャ・ユーザー(各TimesTen DBAごとに1人など)を作成できます。ただし、この特定のTimesTenデータベースのOracle Databaseには1人のキャッシュ管理ユーザーのみを定義できます。(Oracle Databaseに接続するすべてのTimesTenデータベースに同じキャッシュ管理ユーザーを使用するか、TimesTenデータベースごとに別のキャッシュ管理ユーザーを定義できます。)複数のキャッシュ・マネージャ・ユーザーを作成する場合、このうちの1人以上のユーザーは、キャッシュ管理ユーザーをコンパニオンOracleユーザーとして使用できます。

キャッシュ・マネージャ・ユーザーは、キャッシュ・グループを作成します。キャッシュ・マネージャ・ユーザーは、キャッシュ・グループのロードやリフレッシュなどの処理を実行できますが、これらの処理は十分な権限を持つTimesTenユーザーも実行できます。また、キャッシュ・マネージャ・ユーザーは、キャッシュ・グループに対して実行される非同期操作(例: 自動リフレッシュ)など、キャッシュ環境の様々な側面を監視することもできます。

次に、TimesTenデータベースにキャッシュされるOracle Database表を現在所有しているか、または今後所有することになるスキーマ・ユーザーごとに、Oracle Databaseスキーマ・ユーザーと同じ名前のユーザーを作成する必要があります。これらのユーザーは、TimesTenキャッシュ表を所有するユーザーとなるため、キャッシュ表ユーザーと呼ばれます。つまり、TimesTenキャッシュ表の所有者および名前は、対応するキャッシュされたOracle Database表の所有者および名前と同じになります。キャッシュ表ユーザーのパスワードは、同じ名前を持つOracle Databaseスキーマ・ユーザーとは別のパスワードにすることができます。

キャッシュ・グループまたはキャッシュ表に対する処理(キャッシュ・グループのロードやキャッシュ表の更新など)は、十分な権限を持ついずれのTimesTenユーザーでも実行できます。このマニュアルの例では、キャッシュ・マネージャ・ユーザーがこれらのタイプの処理を実行していますが、必要な権限を持つ別のユーザー(キャッシュ表ユーザーなど)でもこれらの処理を実行できます。これらの処理がキャッシュ・マネージャ・ユーザー以外のTimesTenユーザーによって実行される場合、その他のユーザーは、キャッシュされたOracle Database表を選択して更新できるコンパニオンOracle Databaseユーザーと同じ名前にする必要があります。UID接続属性にそのユーザーの名前を指定してTimesTenデータベースに接続し、PWD接続属性およびOraclePWD接続属性に、対応するTimesTenパスワードおよびOracle Databaseパスワードをそれぞれ入力して、キャッシュ・グループまたはキャッシュ表に対する処理を実行します。

例3-7 TimesTenユーザーの作成

次のttIsqlユーティリティの例では、cache1 DSNにインスタンス管理者として接続してTimesTenデータベースを作成します。次に、キャッシュ・マネージャ・ユーザーcacheuserを作成しますが、この例では、このユーザーの名前はキャッシュ管理ユーザーと同じであり、このユーザーはキャッシュ・マネージャのコンパニオンOracleユーザーとして機能します。さらに、TimesTenデータベースにキャッシュされるOracle Database表の所有者となる、Oracle Databaseスキーマ・ユーザーと同じ名前でキャッシュ表ユーザーorattを作成します。

% ttIsql cache1
Command> CREATE USER cacheuser IDENTIFIED BY timesten;
Command> CREATE USER oratt IDENTIFIED BY timesten;

TimesTenユーザーへの権限の付与

TimesTenユーザーに必要な権限は、作成するキャッシュ・グループのタイプおよびキャッシュ・グループに対して実行する処理によって異なります。TimesTenキャッシュ・マネージャ・ユーザーの各キャッシュ操作に必要なすべての権限は、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。

例3-8 キャッシュ・マネージャ・ユーザーに対する権限の付与

キャッシュ・マネージャ・ユーザーcacheuserには、次の処理を実行する権限が必要です。

  • キャッシュ・マネージャ・ユーザーおよびパスワードの設定(CACHE_MANAGER)。

  • TimesTenデータベースでのキャッシュ・エージェント・プロセスおよびレプリケーション・エージェント・プロセスの開始または停止(CACHE_MANAGER)。

  • キャッシュ・エージェント起動ポリシーの設定(CACHE_MANAGER)。

  • レプリケーション・エージェント起動ポリシーの設定(ADMIN)

  • キャッシュ・マネージャ・ユーザーによって所有されるキャッシュ・グループの作成(CACHE_MANAGER権限で継承されるCREATE [ANY] CACHE GROUPorattキャッシュ表ユーザーが所有する、基本となるキャッシュ表を作成するためのCREATE [ANY] TABLE)。

  • キャッシュ・グループを変更、ロード、リフレッシュ、フラッシュ、アンロードまたは削除するには、適切な権限が必要です。

    • ALTER ANY CACHE GROUP

    • LOAD {ANY CACHE GROUP | ON cache_group_name

    • REFRESH {ANY CACHE GROUP | ON cache_group_name

    • FLUSH {ANY CACHE GROUP | ON cache_group_name

    • UNLOAD {ANY CACHE GROUP | ON cache_group_name

    • DROP ANY CACHE GROUP and DROP ANY TABLE

  • 動的ロード、完全自動リフレッシュ、非同期ライトスルーなどのその他のキャッシュ操作に必要な権限は、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。

インスタンス管理者として、ttIsqlユーティリティを使用して、キャッシュ・マネージャ・ユーザーcacheuserに必要な権限を付与します。

Command> GRANT CREATE SESSION, CACHE_MANAGER, CREATE ANY TABLE TO cacheuser;
Command> exit

キャッシュ管理ユーザーの名前およびパスワードの設定

ttCacheUidPwdSet組込みプロシージャでキャッシュ・グループ操作を発行するには、TimesTenデータベースにキャッシュ管理ユーザーの名前およびパスワードを設定する必要があります。キャッシュ・エージェントはこのユーザーとしてOracle Databaseに接続して、特定のキャッシュ・グループ・タイプの定義済動作の実行に使用される情報を格納するOracle Databaseオブジェクトを作成および保持します。さらに、キャッシュ・エージェントおよびレプリケーション・エージェントはどちらも、Oracle Database操作を管理するために、ttCacheUidPwdSet組込みプロシージャを使用して設定した資格証明を使用してOracle Databaseに接続します。


ノート:

AWTまたは読取り専用グループと連携するためにTimesTenデータベースに接続する場合、TimesTen Classicでは、これらのキャッシュ・グループにかわってOracle Databaseに接続する際にttCacheUidPwdSet組込みプロシージャで設定した資格証明が使用されます。

SWTまたはユーザー管理のキャッシュ・グループ操作やパススルー操作と連携するためにTimesTenデータベースに接続する場合、TimesTen Classicでは、ユーザーの現在の資格証明をユーザー名に、OraclePwd接続属性をOracleパスワードに使用してOracle Databaseに接続します。そのため、Oracle Databaseへの接続に使用される正しいユーザー名およびOracle Databaseのパスワードは、接続文字列または接続属性を使用して正しく設定する必要があります。


キャッシュ管理ユーザーの名前およびパスワードは、変更する必要がないかぎり、Oracle DatabaseデータをキャッシュするTimesTenデータベースごとに1回のみ設定する必要があります。たとえば、キャッシュ管理ユーザーのパスワードを変更した場合、TimesTenデータベースが破棄されて再作成された場合またはキャッシュ管理ユーザーの名前がOracle Databaseで削除されて再作成された場合は、キャッシュ管理ユーザーの名前およびパスワードをもう一度設定する必要があります。

データベースにキャッシュ・グループが存在する場合は、キャッシュ管理ユーザーの名前は変更できません。キャッシュ管理ユーザーを削除して再作成する前に、キャッシュ・グループを削除する必要があります。詳細は、「キャッシュ・ユーザー名およびパスワードの変更」を参照してください。

例3-9 キャッシュ管理ユーザーの名前およびパスワードの設定

キャッシュ管理ユーザーの名前およびパスワードは、キャッシュ・マネージャ・ユーザーとして接続した後に、ttCacheUidPwdSet組込みプロシージャをコールすることによって、プログラムで設定できます。

% ttIsql "DSN=cache1;UID=cacheuser;PWD=timesten;OraclePWD=oracle"
Command> call ttCacheUidPwdSet('cacheuser','oracle');

また、CACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -cacheUidPwdSetユーティリティ・コマンドを実行することによって、コマンドラインから実行することもできます。

% ttAdmin -cacheUidPwdSet -cacheUid cacheuser -cachePwd oracle cache1

-cachePwdオプションを指定しなかった場合、ttAdminユーティリティによってキャッシュ管理ユーザーのパスワードを入力するように求められます。

このユーティリティの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttAdminに関する説明を参照してください。

TimesTenデータベースとOracle Database間での接続テスト

TimesTenデータベースとOracle Database間の接続をテストするには、パススルー・レベルを3に設定して、Oracle Databaseで処理される次の問合せをキャッシュ・マネージャ・ユーザーとして実行します。

Command> passthrough 3;
Command> SELECT * FROM V$VERSION;
Command> passthrough 0;

接続が正しく確立されている場合は、問合せによってOracle Databaseのバージョンが返されます。バージョンが返されなかった場合は、次の設定が正しいかどうかを確認します。

  • OracleNetServiceName接続属性のOracleネット・サービス名の設定およびOracle Databaseサーバーの状態

  • LD_LIBRARY_PATHSHLIB_PATHなどの共有ライブラリ検索パスの環境変数の設定

  • TimesTenデータベースのキャッシュ管理ユーザー名の設定

例3-10 キャッシュ管理ユーザー名の設定の確認

キャッシュ管理ユーザー名の設定は、キャッシュ・マネージャ・ユーザーとしてttCacheUidGet組込みプロシージャをコールすることによって、プログラムで返すことができます。

Command> call ttCacheUidGet;

また、CACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -cacheUidGetユーティリティ・コマンドを実行することによって、コマンドラインから返すこともできます。

% ttAdmin -cacheUidGet cache1

キャッシュ・エージェントの管理

キャッシュ・エージェントは、キャッシュ・グループのロードや自動リフレッシュなどのキャッシュ操作を実行したり、特定のキャッシュ・グループ・タイプの定義済動作の実行に使用するOracle Databaseオブジェクトを管理するTimesTen Classicプロセスです。

例3-11 キャッシュ・エージェントの起動

キャッシュ・エージェントは、キャッシュ・マネージャ・ユーザーとしてttCacheStart組込みプロシージャをコールすることによって、プログラムから手動で起動できます。

Command> call ttCacheStart;

また、CACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -cacheStartユーティリティ・コマンドを実行することによって、コマンドラインから起動することもできます。

% ttAdmin -cacheStart cache1

例3-12 キャッシュ・エージェントの停止

キャッシュ・エージェントは、キャッシュ・マネージャ・ユーザーとしてttCacheStop組込みプロシージャをコールすることによって、プログラムから手動で停止できます。

Command> call ttCacheStop;

また、CACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -cacheStopユーティリティ・コマンドを実行することによって、コマンドラインから停止することもできます。

% ttAdmin -cacheStop cache1

ttCacheStop組込みプロシージャにはオプションのパラメータが、またttAdmin -cacheStopユーティリティ・コマンドにはオプション-stopTimeoutがあり、これらのオプションによってキャッシュ・エージェントが停止するまでTimesTenメイン・デーモン・プロセスが待機する時間を指定します。指定したタイムアウト時間内にキャッシュ・エージェントが停止しなかった場合、そのキャッシュ・エージェントはTimesTenデーモンによって停止されます。キャッシュ・エージェントのデフォルトの停止タイムアウトは100秒です。値0(ゼロ)は、永久に待機することを示します。

自動リフレッシュ・キャッシュ・グループを削除または変更した直後にキャッシュ・エージェントを停止しないでください。キャッシュ・グループを管理するために作成および使用されたOracle Databaseオブジェクト(変更ログ表やトリガーなど)をキャッシュ・エージェントがクリーンアップできるように、最低でも2分は待機してください。


ノート:

TimesTen X/Open XAおよびJava Transaction API (JTA)の実装は、TimesTen Cacheでは動作しません。キャッシュ・エージェントを実行している場合、XAまたはJTAトランザクションは開始できません。

キャッシュ・エージェント起動ポリシーの設定

キャッシュ・エージェント起動ポリシーは、TimesTenデータベースでキャッシュ・エージェント・プロセスを起動する方法およびタイミングを決定します。キャッシュ・エージェント起動ポリシーは次に設定できます。

  • manual

  • always

  • norestart

デフォルトの起動ポリシーはmanualであり、これはttCacheStart組込みプロシージャをコールするかttAdmin -cacheStartユーティリティ・コマンドを実行することによって、手動でキャッシュ・エージェントを起動する必要があることを意味します。実行しているキャッシュ・エージェント・プロセスを手動で停止するには、ttCacheStop組込みプロシージャをコールするかttAdmin -cacheStopユーティリティ・コマンドを実行します。

起動ポリシーをalwaysに設定すると、TimesTenメイン・デーモン・プロセスの起動時にキャッシュ・エージェントを自動的に起動できます。always起動ポリシーを使用しているときは、メイン・デーモンが実行している間、キャッシュ・エージェントを停止できませんが、停止する必要がある場合は、まず起動ポリシーをmanualまたはnorestartに変更します。次に、ttCacheStop組込みプロシージャをコールするかttAdmin -cacheStopユーティリティ・コマンドを実行して手動停止を発行します。

manualおよびalways起動ポリシーを使用しているときは、データベースの無効化などの障害が発生した後、データベースがリカバリされると、キャッシュ・エージェントは自動的に再起動します。

キャッシュ・エージェントの起動ポリシーをnorestartに設定した場合、キャッシュ・エージェントの起動はttCacheStart組込みプロシージャのコールまたはttAdmin -cacheStartユーティリティ・コマンドの実行により手動で行い、停止はttCacheStop組込みプロシージャのコールまたはttAdmin -cacheStopユーティリティ・コマンドの実行により手動で行う必要があります。

norestart起動ポリシーを使用しているときは、データベースの無効化などの障害が発生した後、データベースがリカバリされても、キャッシュ・エージェントは自動的に再起動されません。ttCacheStart組込みプロシージャをコールするか、ttAdmin -cacheStartユーティリティ・コマンドを実行して、キャッシュ・エージェントを手動で再起動する必要があります。


ノート:

詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttAdmin、ttCachePolicySet、ttCacheStartおよびttCacheStopを参照してください。

例3-13 キャッシュ・エージェント起動ポリシーの設定

キャッシュ・エージェント起動ポリシーは、キャッシュ・マネージャ・ユーザーとしてttCachePolicySet組込みプロシージャをコールすることによって、プログラムで設定できます。

Command> call ttCachePolicySet('always');

また、CACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -cachePolicyユーティリティ・コマンドを実行することによって、コマンドラインから設定することもできます。

% ttAdmin -cachePolicy norestart cache1