Hello Rudyy

Thanks for the detailed answer.
I'm using a JMS client (qpid-jms-client 0.11.1) with a non-transacted session 
and no specific flags.
For this use case I'm publishing directly in a standard queue.

Olivier

-----Original Message-----
From: Oleksandr Rudyy <[email protected]> 
Sent: mercredi 4 juillet 2018 11:08
To: [email protected]
Subject: Re: [Broker-J] Reject overflow policy

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]

*******************************

This e-mail contains information for the intended recipient only. It may 
contain proprietary material or confidential information. If you are not the 
intended recipient you are not authorised to distribute, copy or use this 
e-mail or any attachment to it. Murex cannot guarantee that it is virus free 
and accepts no responsibility for any loss or damage arising from its use. If 
you have received this e-mail in error please notify immediately the sender and 
delete the original email received, any attachments and all copies from your 
system.

Reply via email to