ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース7.0
E05172-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

キャッシュ・エージェントの起動および停止

キャッシュ・エージェントと呼ばれるTimesTenプロセスは、キャッシュ・グループのロードやリフレッシュなどの非同期のキャッシュ処理を実行します(『Oracle TimesTen In-Memory Database概要』のCache Connect to Oracleに関する説明を参照)。Cache Connect to Oracle処理の多くは、キャッシュ・エージェントを使用せずに、TimesTenで直接実行できます。

次の1つ以上の条件に該当する場合は、キャッシュ・グループが含まれているデータ・ストアごとに、個別のキャッシュ・エージェントを起動する必要があります。

次の項で説明するように、DSNのキャッシュ・エージェントは、コマンドラインまたはプログラムから起動できます。

また、Cache Administratorを使用すると、ブラウザからもキャッシュ・エージェントを起動できます。詳細は、「Cache Administrator」を参照してください。


注意: アクセス制御を有効にしてTimesTenをインストールした場合、キャッシュ・エージェントを起動または停止するには、データ・ストアに対してADMIN権限が必要です。また、TimesTenユーザー名はOracleユーザー名と一致している必要があります(これは、内部ユーザーおよび外部ユーザーの両方に適用されます)。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御に関する説明を参照してください。

コマンドラインからのキャッシュ・エージェントの制御

コマンドラインからキャッシュ・エージェントを制御するには、ttAdminユーティリティを使用します。ttAdminユーティリティを使用して、次のタスクを実行できます。

ttAdminユーティリティの使用方法の詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。

コマンドラインからのキャッシュ管理ユーザーIDおよびパスワードの設定

次のいずれかのキャッシュ・グループ・タイプを使用している場合は、「Oracleユーザーの作成および権限の設定」で示されているOracle権限を持つキャッシュ管理ユーザー・アカウントが必要です。

キャッシュ管理ユーザーIDは、次のルールに従っている必要があります。

キャッシュ管理パスワードは、次のルールに従っている必要があります。

キャッシュ・エージェントを起動する前にキャッシュ管理ユーザーIDおよびパスワードを設定します。次の構文を使用します。

ttAdmin -cacheUidPwdSet -cacheUid cacheUid -cachePwd cachePwd DSN


注意: データ・ストア内に自動リフレッシュ・キャッシュ・グループまたはAWTキャッシュ・グループが存在している場合、キャッシュ管理ユーザーIDおよびパスワードを再設定することはできません。これらのキャッシュ・グループを削除してから、キャッシュ管理ユーザーIDおよびパスワードを再設定する必要があります。

例3.10

ttAdmin -cacheUidPwdSet -cacheUid testuser -cachePwd mypass myOraCache

キャッシュ管理ユーザーIDおよびパスワードを変更する場合は、キャッシュ・エージェントを再起動する必要があります。


注意: データ・ストアにキャッシュ・グループが存在しない場合は、キャッシュ管理ユーザーIDおよびパスワードを設定しないでください。キャッシュ・グループが存在しない場合にキャッシュ管理ユーザーIDおよびパスワードを設定すると、それらのキャッシュ管理ユーザーIDおよびパスワードがOracleデータベースに対して不必要に使用され、検証されます。

コマンドラインからのキャッシュ・エージェントの起動

コマンドラインからキャッシュ・エージェントを起動するには、次の構文を使用します。

ttAdmin -cacheStart DSN

例3.11

ttAdmin -cacheStart myOraCache

相対パスのDSNで識別されるデータ・ストアのキャッシュ・エージェントを起動しようとすると、TimesTenはその実行位置から相対的にデータ・ストアを検索し、失敗します。たとえば、Windowsで、DSNのデータ・ストアにパスをDataStore=.\dsn1と指定し、次のコマンドでキャッシュ・エージェントを起動しようとしたとします。

ttAdmin -cacheStart dsn1

キャッシュ・エージェントは、install_dir\srv\dsn1でデータ・ストアを検索します。その位置ではデータ・ストアを検出できないため、エージェントは起動されません。UNIXでは、キャッシュ・エージェントは次の位置を検索します。

/var/TimesTen/ttversion/bits

コマンドラインからのキャッシュ・エージェントの停止

キャッシュ・エージェントを停止するには、次の構文を使用します。

ttAdmin -cacheStop DSN

例3.12

ttAdmin -cacheStop myOraCache


注意: AUTOREFRESH機能を使用している場合は、キャッシュ・グループの削除または変更後すぐにキャッシュ・エージェントを停止しないでください。2分以上待機してください。キャッシュ・エージェントでは、AUTOREFRESHによって使用されたOracleオブジェクトをクリーンアップするためにこの時間が必要です。

コマンドラインからのキャッシュ・エージェント起動ポリシーの設定

ttCachePolicySetプロシージャをコールすることによって、キャッシュ・エージェント起動ポリシーを設定できます。現在のポリシーに戻るには、ttCachePolicyGetプロシージャを使用します。

デフォルトのキャッシュ・エージェント起動ポリシーはmanualです。TimesTenデーモンが再起動するとキャッシュ・エージェントが自動的に再起動するようにする場合は、キャッシュ・エージェント起動ポリシーをalwaysに設定します。このポリシーをalwaysに設定すると、すぐにキャッシュ・エージェントが起動します。

例3.13

キャッシュ・エージェント起動ポリシーをalwaysに設定します。

CALL ttCachePolicySet ('always');

プログラムからのキャッシュ・エージェントの制御

データ・ストアのキャッシュ・エージェントをプログラムから制御するには、まず、データ・ストアに接続します。ttCacheUidPwdSet、ttCacheStartttCacheStopまたはttCachePolicySetプロシージャを使用して、次のタスクを実行します。

ttCacheUidPwdSet、ttCacheStart、ttCacheStopおよびttCachePolicySetプロシージャの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』の組込みプロシージャに関する説明を参照してください。

プログラムからのキャッシュ管理ユーザーIDおよびパスワードの設定

次のいずれかのキャッシュ・グループ・タイプを使用している場合は、「Oracleユーザーの作成および権限の設定」で示されているOracle権限を持つキャッシュ管理ユーザー・アカウントが必要です。

キャッシュ管理ユーザーIDは、次のルールに従っている必要があります。

キャッシュ管理パスワードは、次のルールに従っている必要があります。

キャッシュ・エージェントを起動する前にキャッシュ管理ユーザーIDおよびパスワードを設定します。ttCacheUidPwdSetプロシージャを使用します。


注意: データ・ストアにキャッシュ・グループが存在しない場合は、キャッシュ管理ユーザーIDおよびパスワードを設定しないでください。キャッシュ・グループが存在しない場合にキャッシュ管理ユーザーIDおよびパスワードを設定すると、それらのキャッシュ管理ユーザーIDおよびパスワードがOracleデータベースに対して不必要に使用され、検証されます。

例3.14

この例では、データ・ストアは、接続ハンドルhdbcで識別されます。キャッシュ管理ユーザーIDはtestuser、キャッシュ管理ユーザー・パスワードはmypassです。

sprintf( stmt, "CALL ttCacheUidPwdSet('testuser','mypass')");

       rc = SQLAllocStmt( hdbc, &hstmt );

       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );

sprintf( stmt, "CALL ttCacheStart()" );

       rc = SQLAllocStmt( hdbc, &hstmt2 );

       rc = SQLExecDirect( hstmt2, (SQLCHAR *) stmt, SQL_NTS );

プログラムからのキャッシュ・エージェントの起動

キャッシュ・エージェントを起動するには、ttCacheStartプロシージャを使用します。

例3.15

この例では、データ・ストアは接続ハンドルhdbcで識別されます。

sprintf( stmt, "CALL ttCacheStart()" );

       rc = SQLAllocStmt( hdbc, &hstmt );

       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );


注意: 自動コミットを無効にしている場合は、ttCacheStartをコールする前とコールした後の両方でコミットする必要があります。

プログラムからのキャッシュ・エージェントの停止

キャッシュ・エージェントを停止するには、ttCacheStopプロシージャを使用します。

例3.16

sprintf( stmt, "CALL ttCacheStop()" );

       rc = SQLAllocStmt( hdbc, &hstmt );

       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );

ttCacheStopプロシージャには、オプションのパラメータstopTimeoutがあります。このパラメータで、キャッシュ・エージェントが停止するまでTimesTenデーモンが待機する時間を指定します。キャッシュ・エージェントが指定した時間内に停止しない場合、そのキャッシュ・エージェントはTimesTenデーモンによって停止されます。stopTimeoutのデフォルト値は100秒です。値0(ゼロ)は、永久に待機することを示します。

例3.17

キャッシュ・エージェントを停止し、stopTimeoutを160秒に設定するには、次のように入力します。

sprintf( stmt, "CALL ttCacheStop(160)" );

       rc = SQLAllocStmt( hdbc, &hstmt );

       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );


注意: 自動コミットを無効にしている場合は、ttCacheStopをコールする前とコールした後の両方でコミットする必要があります。


注意: AUTOREFRESH機能を使用している場合は、キャッシュ・グループの削除または変更後すぐにキャッシュ・エージェントを停止しないでください。2分以上待機してください。キャッシュ・エージェントでは、AUTOREFRESHによって使用されたOracleオブジェクトをクリーンアップするためにこの時間を使用します。

プログラムからのキャッシュ・エージェント起動ポリシーの設定

ttCachePolicySetプロシージャをコールすることによって、キャッシュ・エージェント起動ポリシーを設定できます。現在のポリシーに戻るには、ttCachePolicyGetプロシージャを使用します。

デフォルトのキャッシュ・エージェント起動ポリシーはmanualです。TimesTenデーモンが再起動するとキャッシュ・エージェントが自動的に再起動するようにする場合は、キャッシュ・エージェント起動ポリシーをalwaysに設定します。このポリシーをalwaysに設定すると、すぐにキャッシュ・エージェントが起動します。

例3.18

hdbc接続ハンドルで識別されるデータ・ストアのキャッシュ・エージェント起動ポリシーをalwaysに設定します。

sprintf( stmt, "CALL ttCachePolicySet ('always')");

       rc = SQLAllocStmt( hdbc, &hstmt );

       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );