Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerIBM MQ Connector の Consume 操作では、フローにおける特定の時間に、特定の宛先からのメッセージをコンシュームできます。
キューからメッセージをコンシュームするための構文は次のとおりです。
<ibm-mq:consume config-ref="IBM_MQ_config" destination="#[vars.destination]"/>
上の操作では、宛先によって識別されるキューにある最初のメッセージをコンシュームしてから、次の構造の Mule メッセージに変換します。
ペイロードとしてのメッセージのコンテンツ。
メッセージ属性に含まれるメッセージのメタデータ。
メッセージは、デフォルトでは受信されるとすぐに肯定応答されます。何らかの処理を行った後でメッセージの肯定応答を制御する場合は、ackMode
を MANUAL
に設定します。
メッセージの肯定応答については、「メッセージ肯定応答の処理」を参照してください。
デフォルトの最大待機時間は 10 秒に設定されており、その間にメッセージが受信できなければ IBM-MQ:TIMEOUT
エラーが発生します。
実際の状況に合わせてタイムアウトを適切に設定するには、maximumWait
パラメーターと maximumWaitUnit
パラメーターをカスタマイズします。
メッセージの到着を無期限に待機するには、maximumWait
値を -1
に設定する必要があります。この場合は TIMEOUT エラーは発生しません。
IBM MQ Connector は、標準の JMS セレクター言語に基づいた、コンシュームするメッセージの絞り込みを完全にサポートします。
たとえば、他のメッセージよりも先に処理する必要のあるメッセージが登録される優先キューがある場合は、次のように絞り込みを行うことができます。
<ibm-mq:consume config-ref="IBM_MQ_config"
destination="openTickets"
selector="JMSPriority=8"/>
セレクターを設定すると、一致するメッセージのみが受信され、宛先にある他のメッセージはすべて無視されます。
IBM MQ Connector は、MM_MESSAGE_CONTENT_TYPE プロパティに基づいて、できる限り正確にメッセージの MIME タイプ (contentType
) を自動的に判断します。しかしながら、最良の判断が間違っていることもあり、その場合は、メッセージのコンテンツに関する情報を提供する必要があります。
このような場合には、contentType
パラメーターを使用して、コンテンツタイプを特定の値に設定します。
同じプロセスが文字コードでも機能します。デフォルトでは、他の情報が提供されていない場合、コレクターは Mule ランタイムのデフォルトエンコードがメッセージのエンコードと一致するものと想定します。これは encoding
パラメーターで設定できます。
この MIME タイプの伝播は、IBM MQ 対象クライアントが JMS_COMPLIANT として選択されている場合にのみ機能します。
|
トピックの宛先からのメッセージのコンシュームは、キューからのコンシュームと非常によく似ていますが、トピックサブスクリプションを使用してコンシューマー間で状態を共有できるという追加の機能があります。
トピックからメッセージをコンシュームするための構文は次の通りです。
<ibm-mq:consume config-ref="IBM_MQ_config" destination="#[vars.destination]">
<ibm-mq:consumer-type>
<ibm-mq:topic-consumer/>
</ibm-mq:consumer-type>
</ibm-mq:consume>
コンシューム操作のパラメーターは同じですが、topic-consumer
パラメーターでサブスクリプション設定を定義できます。
トピックサブスクリプションの設定方法についての詳細は、「トピックサブスクリプションの使用」を参照してください。
受信する各メッセージは 2 つの部分から構成されます。
ペイロード: メッセージのコンテンツ。
属性: メッセージに関するメタデータ。
このメタデータは、3 つの部分から構成され、すべて JMS メッセージで使用できる情報にマップされます。
AckId
ヘッダー
プロパティ
属性の構造については、「JMS リファレンス」を参照してください。