Star
Star

Reputation: 1503

Difference between MULE_AUTO and MANUAL in AMQP connector Mule ESB

Do any one knows what is the exact difference between MULE_AUTO and MANUAL in ACK mode of AMQP connector ( Mule). Because I have observed that

In MULE_AUTO and MANUAL , both the cases if we supposed to delete the message externally. What would be the exact difference. Do I missing anything.

<amqp:connector name="AMQP_Test" validateConnections="true"
      host="***"  ackMode="MULE_AUTO"
      username="123" password="123!" />

Could any one please help me out on its understanding.

Edited 2nd time:

I'm keeping ACK as MULE_AUTO. Message is not being deleted even after success resppnse from consumed service response. Not sure where I'm wrong Please find the completed config.xml.

<amqp:connector name="AMQP_Test" validateConnections="true" host="****"  username="123" password="123!"  ackMode="MULE_AUTO" doc:name="AMQP Connector"/>

<flow name="testrabbitmqFlow1" doc:name="testrabbitmqFlow1" >
    <amqp:inbound-endpoint queueName="amqp.test.queue" exchangeDurable="true" queueDurable="true" responseTimeout="1000000"  connector-ref="AMQP_Test"  doc:name="AMQP">
    <amqp:transaction recoverStrategy="REQUEUE" action="ALWAYS_BEGIN"/>
    </amqp:inbound-endpoint>
    <byte-array-to-string-transformer doc:name="Byte Array to String"/>
    <http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8085" path="test" method="POST" responseTimeout="1000000" doc:name="HTTP"/>
    <logger message="value in queue .. #[payload]....#[message.inboundProperties['http.status']]" level="INFO" doc:name="Logger"/>
</flow>

Could you please let me know where exactly I'm missing?

Upvotes: 1

Views: 957

Answers (1)

David Dossot
David Dossot

Reputation: 33413

With MANUAL, you have to manually ack (or reject) messages, as discussed here: https://github.com/mulesoft/mule-transport-amqp/blob/master/GUIDE.md#manual-message-acknowledgement-and-rejection

In essence, this is done with:

<amqp:acknowledge-message />

and:

<amqp:reject-message requeue="true" />

With MULE_AUTO, Mule should acknowledge the messages automatically when the flow is done processing. If it doesn't do it, it must be a bug then.

Upvotes: 3

Related Questions