ユーザーガイド > TDVキャッシング > キャッシュ更新動作の定義 > 完全更新モードキャッシュの事前アクションと事後アクションの定義
 
完全更新モードキャッシュの事前アクションと事後アクションの定義
データをキャッシュする際には、キャッシュデータが更新される前または後にアクションを実行できます。このような事前アクションと事後アクションは、自動、単一テーブル、または複数テーブルキャッシュモードで使用できます。
たとえば、キャッシュが更新される前に、データが更新されることを知らせる電子メール通知を送信したい場合があります。また、キャッシュが更新された後、データに関連付けられているインデックスを定義または更新したい場合もあります。
Studio内で、事前アクションおよび事後アクションとして機能する、入力パラメーターまたは出力パラメーターを持たないプロシージャまたはスクリプトを定義できます。ただし、このようなプロシージャまたはスクリプトは、他のプロシージャを呼び出し、更新前または更新後の操作内でサブタスクを実行することはできます。
事前プロシージャと事後プロシージャは、SQLスクリプトプロシージャまたはカスタムJavaプロシージャにすることができます。XSLT変換またはXQueryプロシージャにすることはできません。
更新前または更新後のアクションを定義するには
1.Javaプロシージャ」または「カスタムJavaプロシージャの追加」の手順を使用して、新しいSQLスクリプトまたはJavaプロシージャを作成します。
既存のSQLスクリプトまたはプロシージャを使用するには、Studioリソースツリー内で目的のスクリプトまたはプロシージャを見つけます。
2.スクリプトまたはプロシージャに入力パラメーターまたは出力パラメーターがないことを確認します。
3.Studioで使用する次のTDV API呼び出しを評価します。これらのAPI呼び出しは<localhost>/lib/utilにあります。
GetEnvironment — プルベースのインクリメンタルキャッシングSQLスクリプトに1つ以上のシステムプロパティを返すために使用できます。
GetProperty — プルベースのインクリメンタルキャッシングカスタムJavaプロシージャに1つ以上のシステムプロパティを返すために使用できます。
4.libディレクトリーの下にある他の関数を確認し、それらの関数が事前アクションまたは事後アクションに必要なアクションを実行するのに役立つかどうかを判断します。次のような関数も役立つ可能性があります。
CreateResourceCacheKeyは、特定のリソースのキャッシュキーを作成する場合に使用します。
TestDataSourceConnectionは、データソースの接続が機能しているかどうかをテストする場合に使用します。
ClearResourceCache(path, type)は、リソースのキャッシュをクリアする場合に使用します。
UpdateResourceCacheKeyStatus(path, type, cacheKey, status, startTime, message)は、指定したリソースのキャッシュキーを更新する場合に使用します。
GetResourceCacheStatusProcedureは、外部キャッシュのロードをサポートする場合にCreateResourceCacheKeyおよびUpdateResourceCacheKeyStatusとともに使用します。指定されたキャッシュキーのキャッシュステータス情報を返します。
5.スクリプトまたはプロシージャを保存します。
6.Studioで、事前アクションまたは事後アクションを割り当てる、キャッシングが有効になっているビューまたはプロシージャを開きます。
7.[Caching(キャッシュ作成)]タブを選択します。
8.[Advanced(詳細)]で、[Full Refresh Mode(完全更新モード)]を選択します。
9.[Pre-Refresh Action(更新前のアクション)]、[Post-Refresh Action(更新後のアクション)]フィールド、またはその両方で、Studioリソースツリーに存在し、パラメーターがないプロシージャを指定します。
10.キャッシュの設定を保存します。キャッシュ設定を保存すると、Studioリソースツリーにキャッシュされた各リソースが稲妻アイコンとともに表示されます。これはリソースがキャッシュされていることを示しています。
11.ビューとデータストレージタイプの間にデータ型の非互換性がある場合は、『TDV Reference Guide(TDVリファレンスガイド)』の「Cache Data Type Mapping(キャッシュデータ型のマッピング)」を参照してください。