---
schema_version: "1"
id: 0996dfda3147e6229738fb09a3c3c9ce82b85ef55b03df530e0758242f28364e
title: 返信のリスン
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/ibm-mq-connector/1.7/ibm-mq-publish-consume.md
canonical_url: https://docs.mulesoft.com/jp/ibm-mq-connector/1.7/ibm-mq-publish-consume
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3c370e3a45eeb8ed542118cc3cf21c576ea24bfdbca1af5a0eb5ed4284c929f7
description: MuleSoft Documentation Site
release: "1.7"
latest: true
---
# 返信のリスン

要求と応答はアプリケーション間で広く行われているパターンであるため、新しい IBM MQ Connector は ​`publish-consume`​ という操作をそのために提供しています。 publish-consume 操作では、メッセージを任意の宛先にパブリッシュしてから、異なる宛先での応答を待つことができます。

publish-consume 操作を使用する場合、送信メッセージの JMSReplyTo ヘッダーで、アプリケーションが応答を待つ宛先の ID が渡されます。この宛先は、既知の宛先か、または特定の応答メッセージを受け取るためだけに一時的に作成される宛先のどちらかになります。

操作の結果として、コンシューム操作が呼び出された場合と同じ構造を持つ応答メッセージが受信されます。

## [](#一時キューでの応答の待機)一時キューでの応答の待機

一時キューを使用して応答を待機するための設定は非常にシンプルで、送信するメッセージを設定するだけで、操作は自動的に一時キューで応答を待ちます。

```xml
<ibm-mq:publish-consume
     config-ref="config"
     destination="targetDestination"
     maximumWait="20"
     maximumWaitUnit="SECONDS"/>
```

この例では、現在のペイロードを本文とし、JMSReplyTo ヘッダーを一時的な宛先としたメッセージを ​`targetDestination`​ にパブリッシュします。 その後、一時キューから応答メッセージをコンシュームするか、または maximumWait 時間が経過するまで (この場合は IBM-MQ:TIMEOUT エラーで操作が失敗します)、自動的に応答のコンシュームを試みます。

## [](#既知のキューでの応答の受信)既知のキューでの応答の受信

多くの場合、要求ごとに応答キューを作成する必要はなく、既知のキューを応答に使用できます。 この場合、自分で実行するのは、送信メッセージで ​`reply-to`​ パラメーターを設定することだけです。

```xml
<ibm-mq:publish-consume config-ref="config"
     destination="targetDestination">
    <ibm-mq:message>
        <ibm-mq:reply-to destination="replyToDestination"/>
    </ibm-mq:message>
</ibm-mq:publish-consume>
```

この例では、現在のペイロードを本文とし、JMSReplyTo ヘッダーを ​`replyToDestination`​ に設定したメッセージを ​`targetDestination`​ にパブリッシュします。

その後、メッセージがコンシュームされるか、maximumWait 時間が経過するまで (この場合は IBM-MQ:TIMEOUT エラーで操作が失敗します)、replyToDestination キューから自動的に応答のコンシュームを試みます。

## [](#要求応答パターン)要求応答パターン

IBM MQ Connector v1.5.0:

JMS には、要求メッセージと応答メッセージの相関方法を示すよく知られた要求応答パターンが 2 つあります。これは、受信したメッセージが出力メッセージの正しい応答であることを保証する方法を意味します。

### [](#相関-id-パターン)相関 ID パターン

このパターンは、Publish Consume 操作のデフォルトです。このパターンを使用すると、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのパブリッシュに使用する相関 ID と同じ相関 ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。

クライアントおよびリスナーの IBM MQ 相関 ID パターンの実装

```xml
<flow name="publish-consume-correlation-id">
  <ibm-mq:publish-consume config-ref="config"
    destination="targetDestination"
    requestReplyPattern="CORRELATION_ID">
    <ibm-mq:message >
      <ibm-mq:reply-to destination="replyToDestination" />
    </ibm-mq:message>
  </ibm-mq:publish-consume>
  <logger message="Received message from 'replyToDestination' with Correlation ID: #[attributes.headers.correlationId]"/>
</flow>

<flow name="ibm-mq-listener-correlation-id" >
  <ibm-mq:listener config-ref="config" destination="targetDestination">
    <ibm-mq:reply-to-response requestReplyPattern="CORRELATION_ID" />
  </ibm-mq:listener>
  <logger level="INFO" message="About to reply to 'targetDestination' with Correlation ID: #[attributes.headers.correlationId]"/>
</flow>
```

### [](#メッセージ-id-パターン)メッセージ ID パターン

メッセージ ID パターンは、相関 ID パターンとは異なり、宛先キューにメッセージをパブリッシュした後の操作で、要求メッセージのメッセージ ID と同じ値の相関 ID を持つメッセージを期待するセレクターを使用して、メッセージがコンシュームされます。

クライアントおよびリスナーの IBM MQ メッセージ ID パターンの実装

```xml
<flow name="publish-consume-message-id">
  <ibm-mq:publish-consume config-ref="config"
   destination="targetDestination"
   requestReplyPattern="MESSAGE_ID">
    <ibm-mq:message >
      <ibm-mq:reply-to destination="replyToDestination" />
    </ibm-mq:message>
  </ibm-mq:publish-consume>
  <logger message="Received message from 'replyToDestination' with Correlation ID: #[attributes.headers.correlationId]"/>
</flow>

<flow name="ibm-mq-listener-message-id" >
  <ibm-mq:listener config-ref="config" destination="targetDestination">
    <ibm-mq:reply-to-response requestReplyPattern="MESSAGE_ID" />
  </ibm-mq:listener>
  <logger level="INFO" message="About to reply to 'targetDestination' with Correlation ID: #[attributes.headers.messageId]"/>
</flow>
```

### [](#なし)なし

上記のどのパターンも使用しないように操作を設定することもできます。この場合、コンシューマーはセレクターを使用してメッセージを相関するのではなく、応答キューからコンシュームを試みます。

確実に 1 つのメッセージのみが含まれる一時キューを使用して作業する場合は、このオプションが役立ちます。

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

- [メッセージのパブリッシュ](https://docs.mulesoft.com/jp/ibm-mq-connector/1.7/ibm-mq-publish)