自動リフレッシュOracle Databaseオブジェクトをリカバリしてリセットする

自動リフレッシュで使用するOracle Databaseオブジェクトが問題の原因と特定できる、または可能性がある場合、次の手順を実行してOracle Databaseオブジェクトを再作成します。

  1. 問題のキャッシュ表があるすべてのデータベース上のすべてのキャッシュ・グループについて、ALTER CACHE GROUPを使用して自動リフレッシュの状態をOFFにリセットします。
    ALTER CACHE GROUP cache_group_name SET AUTOREFRESH STATE OFF;
    
  2. 対象となるすべてのデータベース上のすべてのキャッシュ・エージェントを停止します。
  3. キャッシュ・グループ内の各表について、ユーザー・カウントが0(ゼロ)かどうかを確認します。

    Oracle Databaseで、次の文を実行します。

    SELECT usercount FROM autorefresh_id.tt_version_user_count
        WHERE tablename ='owner.tablename';
    

    カウントが0(ゼロ)でない場合は、次の文を実行して0(ゼロ)に設定します。

    UPDATE autorefresh_id.tt_version_user_count SET usercount = 0
        WHERE tablename ='owner.tablename';
    
  4. いずれかのキャッシュ・エージェントを起動します。そのキャッシュ・エージェントによって、クリーンアップ操作が実行されます。クリーンアップが終了すると、次のメッセージがサポート・ログに表示されます。
    Cleanup of the Oracle objects completed
    
  5. キャッシュ・エージェントによるクリーンアップが終了したら、ALTER CACHE GROUPを使用して自動リフレッシュの状態をONに戻します。
    ALTER CACHE GROUP cache_group_name SET AUTOREFRESH STATE ON;
    
  6. 他のすべてのキャッシュ・エージェントを起動します。
  7. すべてのデータベース上の問題のキャッシュ・グループすべてについて、ALTER CACHE GROUPを使用して自動リフレッシュの状態をONにリセットします。