リポジトリキャッシュ機能によるレスポンス改善

2024年3月23日テクニカルメモ

リポジトリキャッシュとは

同じレポートを再実行する際に、前回の実行結果を表示することでレスポンスを早くする機能です。

メリット:レスポンスが遅いレポートが瞬時に実行される。
デメリット:リアルタイム性が失われる。

キャッシュが利用される範囲

以下の3種類の範囲があります。

  • 実行したユーザ自身のみ
  • 実行したユーザが所属するグループのみ(キャッシュの共有)
  • 全員(キャッシュの共有)

想定利用シーン

以下のようなシーンで利用すると効果的です。

  • リアルタイム性を求めないもの
  • レスポンスを改善したいもの
  • ダッシュボード等(1アクセスで多数のリクエストが走るもの)
  • 人によって検索条件がそれほど変わらないもの

キャッシュの設定方法

以下のようなシーンで利用すると効果的です。

IBFSパスと呼ばれるWebFOCUSのファイル管理機能を利用してプロシジャを個々に登録します。

初期設定

  1. WebFOCUS管理コンソールに管理者アカウントでアクセスします。
    http://servername/ibi_apps/admin
  2. [構成] – [アプリケーションの設定] – [アプリケーションキャッシュ] をクリックします。
  3. [レポート出力キャッシュ]を 「オン」に設定します。
  4. [保存]ボタンをクリックします。

ブラウザは閉じずにそのまま開いておいてください

キャッシュの設定

初期設定を行ったブウウザ上にて操作を行います。

  1. RESTful API のテストページから putProperty の設定フォームにアクセスします。http://servername/ibi_apps/wfirs/ibfs?IBFS_action=TEST#putPropertyForm
  2. WebFOCUS ibfs Web Servicesの画面にて、[putProperty]のリンクをクリックします。
  1. 以下を設定して「putProperty」ボタンをクリックします。
パラメータ名設定
IBFS_pathIBFS:/WFC/Repository/test/report.fex
(プロシジャのフルパスを指定)
IBFS_propertyValueキャッシュの共有範囲
U_xxx:実行したユーザ自身のみ
G_xxx:実行ユーザの所属グループ
E_xxx:全員
__null:キャッシュの削除

※xxxは任意の文字列
IBFS_propertyName cacheRules
IBFS_args初期値のまま(変更しない)
IBIWF_SES_AUTH_TOKEN初期値のまま(変更しない)

設定イメージ

正常に設定された場合のレスポンス例

以下の画像はputPropertyを設定後、[putProperty]をクリックした際に表示されるレスポンス例です

プロシジャの記述例

設定されたキャッシュルールの確認方法

レガシーホームページから、プロシジャのプロパティを参照することで確認できます。

  1. 以下のURLからレガシーホームページにアクセスします。
    http://servername/ibi_apps/legacyhome
  2. プロシジャを右クリックし、[プロパティ]を選択します。

プロパティにcacheRulesが設定されていれば正常に設定されています。

キャッシュデータの削除(キャッシュ設定自体は残す)

  • すべてのキャッシュの削除
    • WebFOCUS管理コンソールから「キャッシュのクリア」を指定
      http://servername/ibi_apps/admin
  • レポート毎のキャッシュの削除
    • RESTful APIを使用し、IBFSパスを指定してキャッシュデータを削除http://servername/ibi_apps/wfirs/utils?IBFS_action=TEST#clearReportCacheByPathForm
  • ルール毎のキャッシュの削除
    • RESTful APIを使用しcacheRules名を指定して削除
      http://servername/ibi_apps/wfirs/utils?IBFS_action=TEST#clearReportCacheByRuleForm

Tomcat の再起動等では削除されないのでご注意ください

キャッシュ設定の削除

  • RESTful API のテストページから putProperty の設定フォームにアクセスし、「IBFS_propertyValue」を「__null」に設定

キャッシュが無効なルールを設定します。