Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerIdempotent Message Validator (冪等性のあるメッセージ検証機能) は、受信メッセージの一意の ID を確認することによって、一意のメッセージのみがフローの実行を継続するようにします。Mule メッセージの任意の入力属性を ID として使用するか、または DataWeave 式を設定することで ID を計算できます。また、DataWeave Crypto
関数を使用してデータからハッシュ (SHA、MD5) を計算することもできます。
DataWeave では、ハッシュ関数を実行するための Crypto
ライブラリをインポートできます。ハッシュの計算は、Mule メッセージの一意の ID を計算する場合に便利です。たとえば、ペイロードから MD5 ハッシュを取得してそれを ID として使用する場合は、Anypoint Studio で Idempotent Message Validator のプロパティを開いて、[ID Expression (ID の式)] (XML では idExpression
) を次の DataWeave 式に設定します。
#[ %dw 2.0 output text/plain import dw::Crypto --- Crypto::hashWith(payload,'MD5') ]
次の例では、HTTP 要求からクエリパラメーター id
を抽出して、その値を一意の ID として使用してメッセージを絞り込むように Idempotent Message Validator を設定しています。
<flow name="myFlow">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/"/>
...
<idempotent-message-validator doc:name="Idempotent Message Validator" idExpression="#[attributes.queryParams.id]"/>
...
</flow>
次の例では、DataWeave 式を使用してペイロードをハッシュし、その結果を永続的なオブジェクトストアに保存して、処理後のメッセージ ID を一意の ID として使用してメッセージを絞り込むように Idempotent Message Validator を設定しています。
<flow name="myFlow">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/"/>
...
<idempotent-message-validator doc:name="Idempotent Message Validator" idExpression="
#[%dw 2.0
import dw::Crypto
output application/octet-stream
---
Crypto::hashWith(payload,'MD5')]">
<os:private-object-store alias="privateObjectStore"
entryTtl="1"
entryTtlUnit="MINUTES"
maxEntries="10" />
</idempotent-message-validator>
...
</flow>
名前 | 型 | 説明 | デフォルト値 | 必須 |
---|---|---|---|---|
ID Expression (ID の式) |
式 |
Mule が ID を生成するために使用する式。DataWeave 関数を使用して ID を計算するか、または Mule メッセージの任意の既存の値から ID を抽出することができます。 |
|
いいえ |
Value Expression (値の式) |
式 |
このパラメーターは使用しません。値を設定しても効果はありません。 |
|
いいえ |
Object Store (オブジェクトストア) |
Object Store (オブジェクトストア) |
コンポーネントが処理されたメッセージ ID を格納するためのグローバルオブジェクトストアを参照する名前または非公開オブジェクトストアの定義。 |
オブジェクトストアマネージャーによって作成されたオブジェクトストア。永続的ではなく、エントリ TTL は 5 分、有効期限間隔は 6 秒です。 |
いいえ |
Store Prefix (ストアプレフィックス) |
String (文字列) |
オブジェクトストア名のプレフィックスを定義します。この値は内部で作成されたオブジェクトストアにのみ使用します。 |
configFileName.flowName.IdempotentMessageValidator |
いいえ |