rabbitmqclientamqpvert.xack

What's the difference among the DeliveryStates for the Vert.x AMQP Client


As a AmqpReceiver, what's the difference among the different DeliveryStates for a received message.

Runing a ReceiverTest for test, see https://github.com/vert-x3/vertx-amqp-client/blob/master/src/test/java/io/vertx/amqp/ReceiverTest.java.

It always got the same result when running testReceptionWithAcceptedMessages, testReceptionWithRejectedMessages: All the messages in the test queue are deleted.

Is it right that the message is still deleted from the MQ server when it is marked as rejected or released? Where can I find more docs about this?

Can Vert.x AMQP Client do the same things as the RabbitMQ client when consuming a queue? For example, positive or negative acknowledgements, multi-acks and requeueing etc. See https://www.rabbitmq.com/confirms.html#basics.

Thanks.


Solution

  • In those tests the client is Accepting and Rejecting the messages from the ActiveMQ Artemis broker. The broker will either discard the message when accepted, or DLQ the message when rejected under the configuration in the tests. You can configure the broker differently in your own case but for the sake of the tests it isn't relevant. What the broker you are talking to does when you Accept, Release, Rejected or Modify a delivery via a set disposition is going to vary depending on the broker you use and its configuration.

    You can refer to section 3.3 and section 3.4 of the AMQP 1.0 specification for a definition of how delivery state affect deliveries being available, acquired or archived.