---
schema_version: "1"
id: 07e4c2a08263fa7d4dd14a49e577f4e80617ae17fe71fe26537e4c634315a212
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-topic-subscription.md
canonical_url: https://docs.mulesoft.com/jp/ibm-mq-connector/1.7/ibm-mq-topic-subscription
source_site: docs.mulesoft.com
content_type: documentation
content_hash: ccfdb77f372e4fe5fa808b3b358237e36a0aff114187a6b2077db30735e8b1d7
description: MuleSoft Documentation Site
release: "1.7"
latest: true
---
# トピックサブスクリプションの使用

IBM MQ のトピックを使用すると、コンシューマーの接続に関するサブスクリプションの動作と、コンシューマー間の相互動作を設定できます。

IBM MQ Connector では、​`consumer`​ 操作と ​`listener`​ 操作の両方で ​`topic-consumer`​ 設定を使用して、トピックサブスクリプションのいろいろな側面を処理できます。

## [](#永続的サブスクリプションの登録)永続的サブスクリプションの登録

永続的サブスクリプションでは、コンシューマーがオフラインのときにトピックにパブリッシュされたメッセージも受信できます。 永続的サブスクリプションが登録されると、コンシューマーがオンラインになるたびに、接続の確立前にパブリッシュされていたすべてのメッセージを受信します。

```xml
<ibm-mq:consume config-ref="JMS_config" destination="#[vars.destination]">
    <ibm-mq:consumer-type>
        <ibm-mq:topic-consumer durable="true" subscriptionName="SampleSub"/>
    </ibm-mq:consumer-type>
</ibm-mq:consume>
```

IBM MQ は、キューに送信されたメッセージと同じように、トピックに対してパブリッシュされたメッセージを格納します。このアプリケーションまたは別のアプリケーションによって同じ接続およびそのクライアント ID、同じトピック、同じサブスクリプション名を使用して ​`topic-consumer`​ が作成された場合、そのサブスクリプションは再アクティブ化され、IBM MQ はサブスクライバーが非アクティブだった期間中にパブリッシュされたメッセージを配信します。

## [](#同じサブスクリプションでの複数のコンシューマーの許可)同じサブスクリプションでの複数のコンシューマーの許可

JMS 1.1 では、トピックのサブスクリプションで同時に複数のコンシューマーを有効にすることができなかったため、トピックサブスクリプションのメッセージ処理を共有できず、アプリケーションの拡張性を制限する要因となっていました。 JMS 2.0 では、​**共有サブスクリプション**​の導入によって、この制限を撤廃しています。

IBM MQ Connector を ​**JMS 2.0 接続で設定**​すると、任意の ​`topic-consumer`​ を ​`shared`​ サブスクリプションの一部として宣言できます。

```xml
<ibm-mq:listener config-ref="config" destination="InvoiceEventsTopic">
    <ibm-mq:consumer-type>
        <ibm-mq:topic-consumer shared="true" subscriptionName="ClusterSubscription"/>
    </ibm-mq:consumer-type>
</ibm-mq:listener>
```

この 2 つの異なる ​`listener`​ インスタンスに対する設定により、メッセージがインボイス宛先にパブリッシュされると、2 つのリスナーのどちらかにのみ配信され、他方には配信されません。

## [](#自己パブリッシュメッセージの無視方法)自己パブリッシュメッセージの無視方法

アプリケーションがトピックにパブリッシュしたメッセージを、同じアプリケーションが受信しないようにしたいケースがあります。この場合は、​`topic-consumer`​ で ​`noLocal`​ パラメーターを使用することにより、コンシューマーが​**同じ接続経由で**​トピックにパブリッシュされたメッセージを受信しなくなります。

```xml
<ibm-mq:listener config-ref="config" destination="${notificationsChannel}">
    <ibm-mq:consumer-type>
        <ibm-mq:topic-consumer noLocal="true"/>
    </ibm-mq:consumer-type>
</ibm-mq:listener>
```

`noLocal`​ として設定されているコンシューマーを ​`shared`​ サブスクリプションの一部に加えることは​**できません**​。

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

- [新規メッセージのリスン方法](https://docs.mulesoft.com/jp/ibm-mq-connector/1.7/ibm-mq-listener)
- [メッセージのコンシューム方法](https://docs.mulesoft.com/jp/ibm-mq-connector/1.7/ibm-mq-consume)