オブジェクトストアを使用したアプリケーションデータの保存

オブジェクトストアは、Mule アプリケーション内または複数の Mule アプリケーションにわたってオブジェクトを保存する機能です。Mule Runtime Engine (Mule) はオブジェクトストアを使用して、最終的に取得するデータを保持します。Mule の内部では、さまざまな検索条件、ルーター、およびメッセージ間で状態を保存する必要があるその他のメッセージプロセッサーでオブジェクトストアを使用します。

オブジェクトストアは、すべてのデプロイメント対象で使用できます。アプリケーションを CloudHub にデプロイする場合は、Object Store V2 も使用できます。

ユースケース

次のシナリオで使用するようにカスタムオブジェクトストアを設定できます。

  • 冪等性のあるメッセージ検証機能を設定するときに、指定したオブジェクトストアに一意の ID を保存する。

  • リスナー (HTTP、ファイル、JMS、VM、ソケット) で再配信ポリシーを設定するときに、指定したオブジェクトストアに再配信数を保存する。

  • カスタムキャッシュ戦略を使用する Cache スコープを設定するときに、指定されたオブジェクトストアにキャッシュデータを保存する。

  • カスタムコンポーネントでオブジェクトストアを使用して情報を保持する。

  • オブジェクトストア用 Anypoint Connector (Object Store Connector) を使用して、Mule フローから情報を保存または取得する。

オブジェクトストア設定

各 Mule アプリケーションには、デフォルトで、常にアプリケーションが使用できる永続的なオブジェクトストアがあります。また、永続的かメモリ内のカスタムオブジェクトストアを作成することもできます。

オブジェクトストアをグローバル要素として設定して、アプリケーションの任意のコンポーネントからアクセスできるようにするか、その使用をサポートする特定のコンポーネント用のカスタムオブジェクトストアを設定できます。

オブジェクトストアを設定する

アプリケーション内の他のコンポーネントから参照できるグローバルオブジェクトストアを設定するには、Anypoint Studio で以下の手順を実行します。

  1. [Global Elements (グローバル要素)]​ タブを開きます。

  2. [Create (作成)]​ をクリックします。

  3. [Component configurations (コンポーネント設定)]​ > ​[Object Store (オブジェクトストア)]​ を選択します。

  4. 必要な設定属性を入力して、​[OK]​ をクリックします。
    グローバルオブジェクトストア

または、次のコードをアプリケーション XML の最上位要素として含めることで、グローバルオブジェクトストアを作成できます。

<os:object-store name="myObjectStore"
   entryTtl="1"
   entryTtlUnit="HOURS"
   maxEntries="100"
   persistent="true"
   expirationInterval="30"
   expirationIntervalUnit="MINUTES" />

目的の値で各属性を設定します。
各 XML 属性の定義の ​[Object Store Reference (オブジェクトストア参照)]​ を参照してください。

特定のコンポーネントのオブジェクトストアを設定する

特定のコンポーネントのみで使用可能なオブジェクトストアを設定できます。たとえば、冪等性のあるメッセージ検証機能用のオブジェクトストアを設定するには、Anypoint Studio で以下の手順を実行します。

  1. [Idempotent Message Validator (冪等性のあるメッセージ検証機能)]​ プロパティを開きます。

  2. [Object Store (オブジェクトストア)]​ で、​[Edit Inline (インライン編集)]​ を選択します。

  3. 必要な設定属性を入力して、​[OK]​ をクリックします。
    インラインオブジェクトストア

または、オブジェクトストア設定を XML 設定ファイルのコンポーネント要素内に含めることで、オブジェクトストアを作成できます。

<idempotent-message-validator doc:name="Idempotent Message Validator" >
  <os:private-object-store
    maxEntries="20"
    entryTtl="20"
    entryTtlUnit="MILLISECONDS"
    expirationInterval="20"
    expirationIntervalUnit="MILLISECONDS"
    config-ref="ObjectStore_Config" />
</idempotent-message-validator>

Object Store Connector を使用したデータの管理

Object Store Connector を使用すると、Mule アプリケーションでオブジェクトストアとやり取りするためのさまざまな操作を実行できます。操作の例として、保存、取得、削除などがあります。

使用可能な操作と設定例についての詳細は、​「Object Store Connector」​ドキュメントを参照してください。