On 01/12/17 21:56, tomt wrote:
I have successfully managed to create a durable queue with a binding to an
exchange through QpidJMS when I connect directly to the broker using the
Session.createDurableConsumer() API.  This is great progress for us.  It
appears that queue is going to live forever, which we do not want.

When I try to connect the same client to the qdrouter (who is linked to the
broker), a queue with a different name is created, but the binding to the
desired exchange/topic is still created.  I noticed that when my client
disconnects, this queue is deleted and the dispatcher logs a message that
the link is aborted because the connection is lost.

In both of these cases, we are targeting the ability for the queue and
binding to stay alive after a client disconnects for a certain period of
time, potentially still accumulating messages.  If the client doesn't
reconnect in a few minutes, the queue should just be automatically deleted
by the broker.

Is this something I can do through the QpidJMS interface?  Would I need to
drop down to the proton-j level?

I don't think the JMS API lets you control the timeout, no. That is probably something to configure on the broker side (in a broker dependent way).

For the c++ broker you can create a 'topic' object (a confusing name for a sort of wrapper around an exchange that can only be used in AMQP 1.0) with a default value for the qpid.auto_delete_timeout (which is then 'inherited' by all subscriptions that don't provide their own value). The auto_delete_timeout is the number of seconds a subscription queue is kept for while the consumer is not attached.

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

Reply via email to