Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerJMS のトピックサブスクリプションにより、コンシューマーの接続に関するサブスクリプションの動作と、コンシューマーがやり取りする方法を設定できます。
JMS 用 Anypoint Connector (JMS Connector) の Consumer および On New Message 操作では、[Consumer type (コンシューマー種別)] 項目で [Topic consumer (トピックコンシューマー)] 設定を選択することで、トピックサブスクリプションを管理します。
永続的なサブスクリプションにより、コンシューマーのオフライン中にトピックにパブリッシュされたメッセージを受信できます。 JMS プロバイダーでは、キューに送信されたメッセージを保存する場合と同様にトピックに送信またはパブリッシュされたメッセージを保存します。別のアプリケーションの [Topic consumer (トピックコンシューマー)] 設定で同じ接続、クライアント ID、トピック、およびサブスクリプション名が使用されている場合、サブスクリプションは再アクティブ化され、サブスクライバーが非アクティブになっていた間にパブリッシュされたメッセージが JMS プロバイダーにより配信されます。
次の例では、[Topic consumer (トピックコンシューマー)] を [Durable (永続的)] に設定します。
Studio で、フローから [Consume] 操作を選択します。
[Destination (宛先)] 項目を #[vars.destination]
に設定します。
[Consumer type (コンシューマー種別)] 項目を [Topic consumer (トピックコンシューマー)] に設定します。
[Durable (永続的)] オプションを選択します。
[Subscription name (サブスクリプション名)] を SampleSub
に設定します。
XML エディターでは、<jms:topic-consumer>
および durable
の設定は次のように記述されます。
<jms:consume config-ref="JMS_config" destination="#[vars.destination]">
<jms:consumer-type>
<jms:topic-consumer durable="true" subscriptionName="SampleSub"/>
</jms:consumer-type>
</jms:consume>
JMS 仕様 1.1 の接続では、一度に複数のコンシューマーをトピックのサブスクリプションに含めることはできません。つまり、トピックサブスクリプションのメッセージ処理作業を共有できないため、アプリケーションの拡張性が制限されます。 JMS 仕様 2.0 の接続では、この制限がなくなり、同じサブスクリプションで共有コンシューマーを設定できます。
次の例では、[Topic consumer (トピックコンシューマー)] を [Shared (共有)] に設定します。
Studio で、フローから [Consume] 操作を選択します。
[Destination (宛先)] 項目を InvoiceEventsTopic
に設定します。
[Consumer type (コンシューマー種別)] 項目を [Topic consumer (トピックコンシューマー)] に設定します。
[Shared (共有)] オプションを選択します。
[Subscription name (サブスクリプション名)] を ClusterSubscription
に設定します。
XML エディターでは、<jms:topic-consumer>
および shared
の設定は次のように記述されます。
<jms:listener config-ref="config" destination="InvoiceEventsTopic">
<jms:consumer-type>
<jms:topic-consumer shared="true" subscriptionName="ClusterSubscription"/>
</jms:consumer-type>
</jms:listener>
同じアプリケーションによってトピックにパブリッシュされたメッセージを、受信しないようにしたいといった場合があります。同じ接続によってトピックにパブリッシュされたメッセージをコンシューマーが受信しないようにするには、[Topic consumer (トピックコンシューマー)] 項目を [No local (非ローカル)] に設定します。非ローカルとして設定されているコンシューマーを共有サブスクリプションの一部に加えることはできません。
次の例では、[Topic consumer (トピックコンシューマー)] を [No local (非ローカル)] に設定します。
Studio で、フローから [Consume] 操作を選択します。
[Destination (宛先)] 項目を {notificationsChannel}
に設定します。
[Consumer type (コンシューマー種別)] 項目を [Topic consumer (トピックコンシューマー)] に設定します。
[No local (非ローカル)] オプションを選択します。
XML エディターでは、<jms:topic-consumer>
および noLocal
の設定は次のように記述されます。
<jms:listener config-ref="config" destination="${notificationsChannel}">
<jms:consumer-type>
<jms:topic-consumer noLocal="true"/>
</jms:consumer-type>
</jms:listener>