---
schema_version: "1"
id: b7b09ea069904e5560d09af177c25e12e3408726eaecc88826c76eb374a7c9fa
title: JMS Connector を使用したメッセージのコンシューム
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/jms-connector/1.7/jms-consume.md
canonical_url: https://docs.mulesoft.com/jp/jms-connector/1.7/jms-consume
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3c3f9169b58b9c4fd287d547048ef165d9e5ce69b7b789a00d3666b03dc004f4
description: MuleSoft Documentation Site
release: "1.7"
latest: false
---
# JMS Connector を使用したメッセージのコンシューム

JMS 用 Anypoint Connector (JMS Connector) の ​**Consume**​ 操作を使用すると、フローの任意の時点で任意の指定宛先からのメッセージをコンシュームできます。

## [](#キューからのメッセージのコンシューム)キューからのメッセージのコンシューム

次の例では、​**\[Destination (宛先)\]**​ 項目で指定したキュー内の新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。この操作では、キューで JMS メッセージが使用可能になるたびに Mule メッセージが返されます。Mule メッセージは次の要素で構成されます。

- ペイロードとしてのメッセージの内容
- メッセージ属性に含まれるメッセージのメタデータ

このメタデータは、3 つの部分から構成され、JMS メッセージで使用できるすべての情報にマップされます。

- AckId
- ヘッダー
- プロパティ

デフォルトでは、コンシュームされたメッセージは、メッセージを受信するフローの実行が正常に完了した場合にのみ肯定応答されます (「ACKed」)。何らかの処理を行った後でメッセージの肯定応答を制御する場合は、​`ackMode`​ を ​`MANUAL`​ に設定します。 メッセージ肯定応答についての詳細は、​[「メッセージ肯定応答の管理」](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-ack)​を参照してください。

Studio でソースを設定する手順は、次のとおりです。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。
2. **\[Consume\]**​ を Studio キャンバスにドラッグします。
3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。
4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。

![Consume 操作の画面で \[Destination (宛先)\] 項目を、メッセージのコンシューム元である宛先の名前に設定する](_images/jms-consume-queue.png)

Figure 1. JMS Connector の Consume の設定

XML エディターでは、​`<jms:consume>`​ 設定は次のように記述されます。

```xml
<jms:consume config-ref="JMS_config" destination="#[vars.destination]"/>
```

## [](#トピックサブスクリプションからのメッセージのコンシューム)トピックサブスクリプションからのメッセージのコンシューム

次の例では、​**\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定し、トピックサブスクリプションから新規メッセージをコンシュームするように ​**Consume**​ 操作を設定します。

Studio でソースを設定する手順は、次のとおりです。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[JMS\] > \[Consume\]**​ を選択します。
2. **\[Consume\]**​ を Studio キャンバスにドラッグします。
3. **\[Consume\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。
4. **\[Consume\]**​ 設定画面の ​**\[Destination (宛先)\]**​ で、メッセージのコンシューム元である宛先の名前 (​`#[vars.destination]`​ など) を指定します。
5. **\[Consumer type (コンシューマー種別)\]**​ 項目を ​**\[Topic consumer (トピックコンシューマー)\]**​ に設定します。

![Consume 操作の画面で \[Destination (宛先)\] 項目を設定し、\[Consumer Type (コンシューマー種別)\] 項目を \[Topic consumer (トピックコンシューマー)\] に設定する](_images/jms-consume-topic.png)

Figure 2. JMS Connector の Consume のトピックサブスクリプションの設定

XML エディターでは、​`<jms:consume>`​ および ​`<jms:topic-consumer/>`​ 設定は次のように記述されます。

```xml
<jms:consume config-ref="JMS_config" destination="#[vars.destination]">
    <jms:consumer-type>
        <jms:topic-consumer/>
    </jms:consumer-type>
</jms:consume>
```

## [](#メッセージの待機)メッセージの待機

デフォルトでは、​**Consume**​ 操作では、メッセージを最大 10,000 ミリ秒待機した後、エラー ​`JMS:TIMEOUT`​ を送信します。 ユーザーのユースケースに合わせて、​**\[Maximum wait (最大待機)\]**​ および ​**\[Maximum wait unit (最大待機単位)\]**​ 項目を設定します。 メッセージの到着を無制限に待つ場合は、​**\[Maximum wait (最大待機)\]**​ 項目を ​`-1`​ に設定します。これで、​`JMS:TIMEOUT`​ エラーが回避されます。

## [](#メッセージのポーリング)メッセージのポーリング

特定の頻度でメッセージをポーリングする場合、メッセージの待機でコンシューマーをブロックすることは望まれませんが、代わりに、メッセージが存在する場合にメッセージのコンシュームを試みることはできます。 この場合、​**\[Maximum wait (最大待機)\]**​ 項目を ​`0`​ に設定します。これにより、待機は発生せず、指定した宛先に使用できるメッセージがなくてもエラーはスローされません。 コンシュームできるメッセージが存在しない場合、​**Consume**​ 操作の出力は ​`null`​ になり、エラーはスローされません。

## [](#受信メッセージの絞り込み)受信メッセージの絞り込み

JMS Connector では、​**Consume**​ 操作の ​**\[Selector (セレクター)\]**​ 項目で指定した標準の JMS セレクター言語に基づいて、コンシュームするメッセージを絞り込むことができます。これにより、セレクター言語に一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。

次の例では、他のキューよりも先にメッセージを処理する優先キューを設定します。

1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。
2. **\[Destination (宛先)\]**​ 項目を ​`openTickets`​ に設定します。
3. **\[Selector (セレクター)\]**​ 項目を ​`JMSPriority=8`​ に設定します。

JMS Connector の On New Message のメッセージの絞り込み image::jms-consume-selector.png\[Consume 操作の画面で、受信メッセージを絞り込むように \[Selector (セレクター)\] 項目を設定する\]

XML エディターでは、​`selector`​ 設定は次のように記述されます。

```xml
<jms:consume config-ref="JMS_config" destination="openTickets" selector="JMSPriority=8"/>
```

## [](#mime-タイプとエンコードの設定)MIME タイプとエンコードの設定

JMS Connector では、​`MM_MESSAGE_CONTENT_TYPE`​ プロパティに基づいてメッセージの MIME タイプ (​`contentType`​) を判別します。ただし、メッセージの内容を管理する必要がある場合は、​**\[Content-Type (コンテンツの種類)\]**​ 項目を、必要な特定のコンテンツの種類値に設定します。  

デフォルトでは、他の情報が提供されていない場合、JMS Connector は Mule Runtime Engine のデフォルトエンコードがメッセージのエンコードと一致するものと想定します。別の種別のエンコードを設定するには、​**\[Encoding (エンコード)\]**​ 項目を使用します。

次の例では、コンテンツの種類とエンコードを設定します。

1. Studio で、フローから ​**\[Consume\]**​ 操作を選択します。
2. **\[Content-Type (コンテンツの種類)\]**​ 項目を ​`application/JSON`​ に設定します。
3. **\[Encoding (エンコード)\]**​ 項目を ​`UTF-8`​ に設定します。

![Consume 操作の画面で、\[Content-Type (コンテンツの種類)\] 項目と \[Encoding (エンコード)\] 項目を設定する](_images/jms-consume-types-encoding.png)

Figure 3. JMS Connector の Consume のコンテンツの種類とエンコード

XML エディターでは、​`contentType`​ および ​`encoding`​ 設定は次のように記述されます。

```xml
	<jms:consume  destination="#[vars.destination]" contentType="application/JSON" encoding="UTF-8"/>
```

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

- [トピックサブスクリプションの設定](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-topic-subscription)
- [新規メッセージのリスン](https://docs.mulesoft.com/jp/jms-connector/1.7/jms-listener)