Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAMQP 用 Anypoint Connector は、さまざまな肯定応答設定を提供します。
AUTO
ackMode
を amqp:listener
コンポーネントで使用し、フロー実行が正常に完了した場合のみ受信されたメッセージの自動肯定応答を実行できます。
フロー実行中にエラーが発生して途中で終了した場合、メッセージは肯定応答されず、再配信が実行されます。
amqp:listener
操作または amqp:consume
操作で ackMode
を IMMEDIATE
に設定すると、メッセージがコンシュームされた場合に自動的に、メッセージがアプリケーションによって処理される前に肯定応答されます。
メッセージが受信された場合に自動的に肯定応答されるということは、メッセージの処理中にエラーが発生しても再配信されないため、メッセージを失わずにエラーを処理するにはデッドレターキューなどのアプリケーションロジックを作成する必要があります。
予想どおり、MANUAL
ackMode
によってメッセージで肯定応答を実行するすべての責任がアプリケーションロジックに委譲されます。
この設定では、listener
操作または consume
操作によって受信されたすべてのメッセージの MuleMessage attributes
で ackId
が使用でき、これによって指定されたチャネルに対してこのメッセージが一意に識別されます。
続いて、メッセージを識別する ackId
が amqp:ack
操作に渡されます。
<flow name="consumerWithManualAck">
<amqp:consume config-ref="config" queueName="${queueName}" ackMode="MANUAL" />
<!--Do message processing-->
<logger message="#[payload]">
<amqp:ack ackId="#[attributes.ackId]" />
</flow>