Hi Olivier,

The broker behaviour for reject policy depends on AMQP protocol in use.

With AMQP 1-0 an error "Maximum depth exceeded on 'reject-queue' :
current=[count: 11, size: 5458], max=[count: 10, size: -1] [condition
= amqp:resource-limit-exceeded]" is reported back as part of broker
disposition for both transactional and non-transaction cases.
The JMS client throws javax.jms.ResourceAllocationException on
receiving the disposition with error.

With AMQP 0-10 an execution exception
(ExecutionException(errorCode=RESOURCE_LIMIT_EXCEEDED, description=No
route for message with destination 'amq.direct' and routing key
'reject-queue' : Maximum depth exceeded on 'reject-queue' :
current=[count: 11, size: 9389], max=[count: 10, size: -1]) [error
code: 506(resource error)]) is sent by Broker to the client (followed
by session close) when following conditions are met:
* delivery property flag "discard-unroutable" is not set and transfer
accept-mode is not explicit
* broker amqp port attribute "closeWhenNoRoute" is set to true (default)]
Otherwise,
* when delivery property flag "discard-unroutable" is not set and
transfer accept-mode is explicit, a message reject is sent back.
* when delivery property flag "discard-unroutable" is set or amqp port
attribute "closeWhenNoRoute" is false, the message is discarded with
generating a broker log 'EXH-1003 : Discarded Message : Name: "{0}"
Routing Key: "{1}"'


With AMQP 0-8..0-91 a connection is closed with error "Maximum depth
exceeded on 'reject-queue' : current=[count: 11, size: 10330],
max=[count: 10, size: -1] [error code: 506(resource error)]" when
following conditions are met:
* transactions are used
* message is mandatory
* client supports broker feature "closeWhenNoRoute"
* synchronous publishing is not used
Otherwise,
* when  synchronous publishing is used, the basick.nack is sent back.
* when  message is mandatory or immediate, the broker sends back basic.return
* when  message is not mandatory and not immediate, the message is
discarded with generating a broker log 'EXH-1003 : Discarded Message :
Name: "{0}" Routing Key: "{1}"'

Could you please clarify what protocol and client you are using and
what properties/flags are set on message transfer/publishing on client
side? Do you publish using transacted session? What exchange is used?

Kind Regards,
Alex

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to