キャッシュエントリの無効化

Cache スコープでキャッシュエントリの値を再計算するには、キャッシュエントリを無効化します。

Invalidate Key コンポーネントと Invalidate Cache コンポーネントを使用することで、それぞれキャッシュキーとキャッシュ全体を無効化できます。また、時間に基づいてエントリを無効化するようにキャッシュ戦略を設定することもできます。

キャッシュキーの無効化

参照先のキャッシュ戦略でキャッシュキーを無効化するように、アプリケーションフローで Invalidate Key コンポーネントを設定します。

Invalidate Key と Invalidate Cache コンポーネントで同じキャッシュ戦略を参照している場合、そのキャッシュ戦略で同期アクセスを無効化していない限り、Invalidate Key または Invalidate Cache コンポーネントを Cache スコープ内で指定しないでください。指定すると、ロックされたキャッシュをアプリケーションで無効化しようとしたときに、アプリケーションが応答しなくなります。

Invalidate Key コンポーネントの設定

Invalidate Key コンポーネントを設定する手順は次のとおりです。

  1. Anypoint Studio​ で ​Invalidate Key​ コンポーネントをドラッグしてフローに追加します。

  2. フロー内で ​Invalidate Key​ コンポーネントをクリックしてプロパティを開きます。

  3. 無効化するキャッシュキーが保存されている​キャッシュ戦略​を指定します。

  4. 必要に応じて、キャッシュキーを計算するための方法を選択します。

キャッシュキーの無効化の設定例

<!-- Caching strategy configuration -->
<ee:object-store-caching-strategy name="myCachingStrategy" keyGenerationExpression="#[payload.key]" />

<flow name="cacheFlow">
  <ee:cache cachingStrategy-ref="myCachingStrategy">
      <!-- Processing logic inside the Cache Scope -->
  </ee:cache>
</flow>

<flow name="invalidateItemFlow">
  <!-- Invalidate Key component configuration -->
  <ee:invalidate-key cachingStrategy-ref="myCachingStrategy" keyGenerationExpression="#[payload.key]" />
</flow>

キャッシュ全体の無効化

参照先のキャッシュ戦略でキャッシュ全体を無効化するように、アプリケーションフローで Invalidate Cache コンポーネントを設定します。

Invalidate Cache コンポーネントの設定

Invalidate Cache コンポーネントを設定する手順は次のとおりです。

  1. Anypoint Studio​ で ​Invalidate Cache​ コンポーネントをドラッグしてフローに追加します。

  2. フロー内で ​Invalidate Cache​ コンポーネントをクリックしてプロパティを開きます。

  3. 無効化する​キャッシュ戦略​を指定します。

キャッシュ全体の無効化の設定例

<!-- Caching strategy configuration -->
<ee:object-store-caching-strategy name="myCachingStrategy" />

<flow name="cacheFlow">
  <ee:cache cachingStrategy-ref="myCachingStrategy">
      <!-- Processing logic inside the Cache Scope -->
  </ee:cache>
</flow>

<flow name="invalidateCompleteCacheFlow">
  <!-- Invalidate Cache component configuration -->
  <ee:invalidate-cache cachingStrategy-ref="myCachingStrategy" />
</flow>

自動無効化

キャッシュ戦略を設定するときに、カスタムオブジェクトストアの設定で存続期間 (​entryTtl​) 値を指定することで、保存されているキャッシュキーが一定期間後に期限切れになるように設定できます。

キャッシュ戦略でのオブジェクトストアの設定

キャッシュキーが設定時間後に自動的に無効化されるようにオブジェクトストアをキャッシュ戦略で設定する手順は次のとおりです。

  1. 「キャッシュ戦略のセットアップ」​の手順を実行します。

  2. キャッシュ戦略でオブジェクトストアを設定する際に、​[Entry TTL (エントリ TTL)]​ の値を指定します。

    この値は、キャッシュエントリが期限切れになる時間を表します。

  3. オブジェクトストアの設定を完了します。

自動無効化の設定例

<!-- Object Store configuration-->
<os:config name="ObjectStore_Config"/>
<!-- Caching Strategy configuration-->
<ee:object-store-caching-strategy name="Caching_Strategy">
  <!-- Object Store defined for the caching strategy -->
  <os:private-object-store
    alias="CachingStrategy_ObjectStore"
    maxEntries="100"
    entryTtl="10"
    expirationInterval="5"
    config-ref="ObjectStore_Config"/>
</ee:object-store-caching-strategy>