Hello Lorenz,

In my opinion, it depends on the context and there is no general rule for this.

For example, if your queue has some sensitive data and your producers considers 
the messages available. So they will never send them back.

If you delete the messages which overflow the queue, you will lose this 
important information (which could be Bank accounts for example).


If on the other hand, your system is capable of overcoming message loss by 
resending the messages then you have no problem in silently deleting them.


So instead of forcing a behavior, I think the choice should be left to the 
operator when defining the policy (per queue would be even better):

A) He would explicitly choose to silently delete all overflowing messages 
immediately

B) He would explicitly choose to ignore current overflowing messages

C) He would explicitly define a period after which current overflowing messages 
would be deleted (A would be a specific implementation of C)


Regards,

Adel

________________________________
From: Lorenz Quack <quack.lor...@gmail.com>
Sent: Tuesday, June 13, 2017 11:22:31 AM
To: Qpid Users
Subject: Re: [DISCUSSION] Queue Reject Policy Behaviour

Hello,

I personally would expect behaviour B).

As an application I would expect a REJECT policy I either accept or
reject a message I send.  Silently "rejecting" it retrospectively
seems counter-intuitive to me.

On the other hand, behaviour A) would bring it more in line with some of
the other overflow policies that immediately react to a change in the
limits.
That being said I would still vote for behaviour A).

Kind regards,
Lorenz


On Tue, 2017-06-13 at 10:21 +0100, Lorenz Quack wrote:
> Hello all,
>
> QPID-7815 [1] proposes the addition of a Queue Overflow Reject Policy
> to the Qpid broker-j (aka Qpid Broker for Java) component.
>
> Queue's allow to define overflow limits (in term of number of messages
> and/or cumulative size of the messages).  If the limit is breached the
> overflow policy determines the behaviour.  There are three ways the
> limits can be breached.
>
>   1) A new message arrives at the queue pushing it over the limit.
>
>   2) An operator lowers the limit so that existing messages are in
>      breach of the limit.
>
>   3) An operator changes the policy.  For example from a No-op policy
>      to the reject policy under discussion.
>
> The behaviour of the proposed policy in case 1) is fairly straight
> forward and I think uncontroversial.  This discussion thread is to
> hash out the expected behaviour in case of operator intervention,
> i.e. case 2) and 3).
>
> I see two possible behaviours:
>
>   A) The policy silently deletes messages that are in breach of the
>      policy.
>
>   B) The policy ignores messages that are already on the queue and
>      only applies to messages that newly arrive.
>
>
> What would people expect the behaviour to be?
> Please discuss.
>
>
> Kind regards,
> Lorenz
>
>
> [1] https://issues.apache.org/jira/browse/QPID-7815
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to