Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポートが終了しました。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
Idempotent 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 要求から URL パラメーター 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
output text/plain
import dw::Crypto
---
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 |
いいえ |