On 11 March 2011 08:18, Robbie Gemmell <robbie.gemm...@gmail.com> wrote:

> On 11 March 2011 01:42, Robbie Gemmell <robbie.gemm...@gmail.com> wrote:
> <snip>
>
> > Imposing a performance penalty (there is none in the Java broker
> currently,
> > its performance revolves entirely around the message delivery mode not
> the
> > queue durability) on unsuspecting users seems better to me than imposing
> > less reliable messaging on the users who have actually asked for
> > reliablility.
> >
> <snip>
>
> It occurs to me now that this was actually fixed a while back and I forgot,
> so yes the durability of the queue will also affect the Java brokers
> performance too, which is entirely sensible. Not getting persistence by
> default when you have asked for it is less so.
>

So I think we're talking about a number of different things here.

1) createQueue doesn't create a queue at the broker - but it does create a
Destination object.  There is a question about what properties of the
created object should be implied from the passed in String.
2) By default, on creating a consumer, the Java Client declares (creates)
the queue with the properties in the Destination Object.
3) Sending persistent messages to a queue which has a lifetime limited to
the uptime of the Broker makes little sense

Personally I think it's high time that we fixed 2), and made the default not
to create queues (except of the temporary variety, and as necessary for
Durable Subscriptions).  I believe there is already a System Property for
this, and we would just need to change the default.  Obviously any such
change would need to be well advertised, and perhaps we should also add some
logging where previously a queue would have been created and now it is not.

Issue 3) is something that should be dealt with on the Broker side I think -
I've always thought that we should at least log (once per queue per session)
where clients are sending durable messages to a transient queue.

Issue 1) (what are the default properties of a Destination object created
through the createQueue API call) I actually care very little about as
anyone using this API for the purpose of creating the Queue on the Broker
should really be fully specifying the properties in the passed in String.
Having said that I think we should be careful changing the default behaviour
until such a time ass we fix issue 2 (and we should do this ASAP - it's long
overdue)

Thoughts?

Rob

Reply via email to