---
schema_version: "1"
id: 53b4a6693fe25c4cfc00f854f3c957891762f03a37b25ab3a94c41786035b91d
title: Idempotent Message Validator
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-runtime/4.4/idempotent-message-validator.md
canonical_url: https://docs.mulesoft.com/jp/mule-runtime/4.4/idempotent-message-validator
source_site: docs.mulesoft.com
content_type: documentation
content_hash: d9648e55874370dd4acc4d28c13401e8da3013db2dae52b2a1b85e1b8c494ca6
description: MuleSoft Documentation Site
release: "4.4"
latest: false
---
# Idempotent Message Validator

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 要求からクエリパラメーター ​`id`​ を抽出して、その値を一意の ID として使用してメッセージを絞り込むように Idempotent Message Validator を設定しています。
    
    ```xml
    <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 を設定しています。
    
    ```xml
    <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>
    ```

## [](#パラメーターリファレンス)パラメーターリファレンス

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 12.5%;">
<col style="width: 12.5%;">
<col style="width: 37.5%;">
<col style="width: 25%;">
<col style="width: 12.5%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">名前</th>
<th class="tableblock halign-left valign-top">型</th>
<th class="tableblock halign-left valign-top">説明</th>
<th class="tableblock halign-left valign-top">デフォルト値</th>
<th class="tableblock halign-left valign-top">必須</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">ID Expression (ID の式)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">式</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule が ID を生成するために使用する式。DataWeave 関数を使用して ID を計算するか、または Mule メッセージの任意の既存の値から ID を抽出することができます。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>#[correlationId]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value Expression (値の式)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">式</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">このパラメーターは使用しません。値を設定しても効果はありません。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>#[correlationId]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Object Store (オブジェクトストア)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Object Store (オブジェクトストア)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">コンポーネントが処理されたメッセージ ID を格納するためのグローバルオブジェクトストアを参照する名前または非公開オブジェクトストアの定義。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">オブジェクトストアマネージャーによって作成されたオブジェクトストア。永続的ではなく、エントリ TTL は 5 分、有効期限間隔は 6 秒です。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Store Prefix (ストアプレフィックス)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">String (文字列)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">オブジェクトストア名のプレフィックスを定義します。この値は内部で作成されたオブジェクトストアにのみ使用します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>configFileName</em>​.<em>flowName</em>.IdempotentMessageValidator</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
</tr>
</tbody>
</table>

### [](#スロー)スロー

- `MULE:DUPLICATE_MESSAGE`

## [](#関連情報)関連情報

- [Crypto (dw::Crypto)](https://docs.mulesoft.com/dataweave/latest/dw-crypto)