---
schema_version: "1"
id: 711fb7ddbc6683dcefae243437a14488b85571b2842e9d0b8f69793195284e3e
title: Idempotent Message Validator (<idempotent-message-validator/>)
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/anypoint-code-builder/acb-component-idempotent-message-validator.md
canonical_url: https://docs.mulesoft.com/jp/anypoint-code-builder/acb-component-idempotent-message-validator
source_site: docs.mulesoft.com
content_type: documentation
content_hash: a3ae35c4d8c87b3236ad8f469944a61e01fb22c62de5a3cf8262808199ae4dae
description: MuleSoft Documentation Site
latest: true
---
# Idempotent Message Validator (<idempotent-message-validator/>)

受信メッセージの一意の ID を確認することによって、一意のメッセージのみがフローの実行を継続するようにします。

Mule メッセージの任意の入力属性を ID として使用するか、または DataWeave 式を設定することで ID を計算できます。また、DataWeave ​`Crypto`​ 関数を使用してデータからハッシュ (SHA、MD5) を計算することもできます。

## [](#component-xml)コンポーネント XML

このコンポーネントは、次の XML 構造をサポートします。

```xml
<idempotent-message-validator
  doc:name="Idempotent message validator"
  doc:id="cyuupj"
  idExpression="#[]">
  <!-- Object Store to use for storing the processed message IDs -->
  <os:private-object-store />

</idempotent-message-validator>
```

Idempotent Message Validator (​`<idempotent-message-validator/>`​) 属性は UI および XML で設定できます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">属性名</th>
<th class="tableblock halign-left valign-top">属性 XML</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Idempotent message validator (冪等性のあるメッセージバリデーター)</strong>​ (デフォルト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>doc:name</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>キャンバスに表示されるコンポーネントの編集可能な名前。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>doc:id</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>コンポーネントの自動生成された識別子。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Value expression (値の式)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>valueExpression</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Id expression (ID 式)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>idExpression</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mule が ID を生成するために使用する式。DataWeave 関数を使用して ID を計算するか、または Mule メッセージの任意の既存の値から ID を抽出することができます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Store prefix (ストアプレフィックス)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>storePrefix</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Object store (オブジェクトストア)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>objectStore</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#例)例

この例では、一意の識別子として使用するために HTTP 要求から ID を抽出するように Idempotent Message Validator を設定する方法と、DataWeave 式を使用してペイロードをハッシュし、メッセージ ID を一意の識別子として使用する方法を示します。

### [](#example1)例: HTTP 要求から ID を生成

次の例では、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>
```

### [](#example2)例: DataWeave でペイロードをハッシュして ID を生成

次の例では、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>
```

## [](#see-also)関連情報

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