TimesTenデータベースへのOracle Databaseデータのキャッシュを開始するには、TimesTen ClassicシステムおよびOracle Databaseシステムを設定するための次のタスクを実行します。
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はサポートされていません。
LD_LIBRARY_PATH
、SHLIB_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
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
次の各項では、sys
ユーザーが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オブジェクトによるキャッシュ環境の管理」を参照してください。
キャッシュ管理ユーザーには、作成したキャッシュ・グループ・タイプおよびそのキャッシュ・グループで実行する操作に応じて、高レベルの権限を付与する必要があります。sys
ユーザーとしてSQL*Plusスクリプトtimesten_home
/install/oraclescripts/grantCacheAdminPrivileges.sql
を実行して、キャッシュ操作の実行に必要な最小限の権限セットをキャッシュ管理ユーザーに付与できます。このSQLスクリプトの詳細は、「Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの自動作成」を参照してください。
このユーザーの各キャッシュ操作に必要な権限のリスト全体は、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。
TimesTen Classicでは、特定のキャッシュ環境操作およびキャッシュ・グループ操作が実行されるときに、キャッシュ管理ユーザーによって所有されるOracle Databaseオブジェクト(キャッシュ表、レプリケーション・メタデータ表、変更ログ表、トリガーなど)を自動的に作成できます。これらのオブジェクトの一部は、自動リフレッシュ・キャッシュ・グループおよびAWTキャッシュ・グループの定義済動作を実行するために使用されます。
sys
ユーザーとしてSQL*Plusスクリプトtimesten_home
/install/oraclescripts/grantCacheAdminPrivileges.sql
を実行することによって、必要な権限がキャッシュ管理ユーザーに付与されている場合、これらのOracle Databaseオブジェクトは自動的に作成されます。必要な権限セットには、CREATE SESSION
、RESOURCE
、CREATE ANY TRIGGER
およびTT_CACHE_ADMIN_ROLE
ロールが含まれます。キャッシュ管理ユーザー名は、引数としてgrantCacheAdminPrivileges.sql
スクリプトに渡されます。
ノート: また、セキュリティを確保するために、これらの表およびトリガーの自動作成に必要なRESOURCE またはCREATE ANY TRIGGER 権限をキャッシュ管理ユーザーに付与しない場合は、キャッシュ・グループ操作を実行する前に、これらのオブジェクトを手動で作成することもできます(Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの手動による作成を参照)。 |
作成するキャッシュ・グループのタイプおよびキャッシュ・グループやキャッシュ表に対して実行する処理によっては、grantCacheAdminPrivileges.sql
スクリプトの実行によってキャッシュ管理ユーザーに付与される権限の他に、キャッシュされたOracle Database表に対するSELECT
やINSERT
などの権限も必要になる場合があります。特定のキャッシュ・グループ操作およびキャッシュ表操作を実行するためにキャッシュ管理ユーザーに付与する必要のある権限の詳細リストは、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。
例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オブジェクトを自動作成するには、キャッシュ管理ユーザーに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表に対するSELECT
やINSERT
などの権限も必要になる場合があります。特定のキャッシュ・グループ操作およびキャッシュ表操作を実行するためにキャッシュ管理ユーザーに付与する必要のある権限の詳細リストは、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。
例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
ユーザーまたはキャッシュ管理ユーザーが所有している表、索引およびトリガーのリストが返されます。
次の各項では、インスタンス管理者またはキャッシュ・マネージャ・ユーザーがTimesTenデータベースで実行する必要がある処理について説明します。
Oracle DatabaseのデータをキャッシュするTimesTenデータベースは、システムDSNまたはユーザーDSNのいずれかによって参照できます。TimesTen DSNの作成の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のTimesTenデータベースの管理に関する説明を参照してください。
Oracle DatabaseのデータをキャッシュするTimesTenデータベースのDSNを作成する場合は、次の接続属性の設定に特に注意します。これらの接続属性は、他に示されていないかぎり、すべてダイレクトDSNまたは接続文字列で設定できます。
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ユーザーのパスワードを指定します。
PassThrough
には、文をTimesTenデータベースで実行するかOracle Databaseにパススルーして実行するかの制御を設定できます。「パススルー・レベルの設定」を参照してください。
LockLevel
は、TimesTen Cacheではデータベース・レベル・ロックがサポートされていないため、デフォルトの0 (行レベル・ロック)に設定する必要があります。
ReplicationApplyOrdering
およびCacheAWTParallelism
では、AWTキャッシュ・グループのTimesTenキャッシュ表に対して行われた変更を対応するOracle Database表へ伝播するパラレル伝播を制御します。「Oracle Database表へのパラレル伝播の構成」を参照してください。
最初に、キャッシュ・グループ操作を実行するユーザーを作成する必要があります。このようなユーザーは、キャッシュ・マネージャ・ユーザーと呼ばれます。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キャッシュ・マネージャ・ユーザーの各キャッシュ操作に必要なすべての権限は、キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限を参照してください。
例3-8 キャッシュ・マネージャ・ユーザーに対する権限の付与
キャッシュ・マネージャ・ユーザーcacheuser
には、次の処理を実行する権限が必要です。
キャッシュ・マネージャ・ユーザーおよびパスワードの設定(CACHE_MANAGER
)。
TimesTenデータベースでのキャッシュ・エージェント・プロセスおよびレプリケーション・エージェント・プロセスの開始または停止(CACHE_MANAGER
)。
キャッシュ・エージェント起動ポリシーの設定(CACHE_MANAGER
)。
レプリケーション・エージェント起動ポリシーの設定(ADMIN
)
キャッシュ・マネージャ・ユーザーによって所有されるキャッシュ・グループの作成(CACHE_MANAGER
権限で継承されるCREATE [ANY] CACHE GROUP
、oratt
キャッシュ表ユーザーが所有する、基本となるキャッシュ表を作成するための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では、ユーザーの現在の資格証明をユーザー名に、 |
キャッシュ管理ユーザーの名前およびパスワードは、変更する必要がないかぎり、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間の接続をテストするには、パススルー・レベルを3に設定して、Oracle Databaseで処理される次の問合せをキャッシュ・マネージャ・ユーザーとして実行します。
Command> passthrough 3; Command> SELECT * FROM V$VERSION; Command> passthrough 0;
接続が正しく確立されている場合は、問合せによってOracle Databaseのバージョンが返されます。バージョンが返されなかった場合は、次の設定が正しいかどうかを確認します。
OracleNetServiceName
接続属性のOracleネット・サービス名の設定およびOracle Databaseサーバーの状態
LD_LIBRARY_PATH
、SHLIB_PATH
などの共有ライブラリ検索パスの環境変数の設定
TimesTenデータベースのキャッシュ管理ユーザー名の設定
キャッシュ・エージェントは、キャッシュ・グループのロードや自動リフレッシュなどのキャッシュ操作を実行したり、特定のキャッシュ・グループ・タイプの定義済動作の実行に使用するOracle Databaseオブジェクトを管理するTimesTen Classicプロセスです。
キャッシュ・エージェントは、キャッシュ・マネージャ・ユーザーとしてttCacheStart
組込みプロシージャをコールすることによって、プログラムから手動で起動できます。
Command> call ttCacheStart;
また、CACHE_MANAGER
権限を持つTimesTen外部ユーザーとしてttAdmin -cacheStart
ユーティリティ・コマンドを実行することによって、コマンドラインから起動することもできます。
% ttAdmin -cacheStart cache1
キャッシュ・エージェントは、キャッシュ・マネージャ・ユーザーとして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を参照してください。 |