activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mclaudio76 <>
Subject Re: Messages are kept in Pending queue for durable topic subscribers.
Date Fri, 30 Jan 2015 07:19:41 GMT
artnaseef wrote
> OK, so first off, be cautious of the meaning of the broker statistics. 
> Negative consumer counts is definitely a concern and worthy of a bug
> report (hopefully with a unit test that replicates the problem - or at
> least simple instructions to reproduce it).  But some of the other
> statistics can be misleading - especially enqueue and dequeue counts on
> Topics. 

Ok, but I'm thinking more about my configuration issue than a bug in

artnaseef wrote
> That temporary advisory is an attempt to optimize the case of a client
> producing messages to a temporary destination after that destination has
> been removed.  Every connection consumes from that advisory by default
> unless the "jms.watchTopicAdvisories" flag is set on the connection URI;
> like this:
>     tcp://localhost:61616?jms.watchTopicAdvisories=false
> However, that subscription should never be durable.

Ok, now I've added watchTopicAdivsories=false, let's see what happen after
that. I would expect no more AdvisoryTopic being created, and no more
durable subscriptions associated both with the "real" topic and to the

artnaseef wrote
> Back to the answer of how missing messages are detected.  Increasing
> "Pending Queue" counts shows messages being stored - not lost.  How is the
> loss detected?

The loss isn't detected, it's presumed:a message stored in the Pending Queue
and never removed from there makes me think that such message will never be
delivered to the client. 

artnaseef wrote
> On the topic of disk space use: keep in mind that a single message can
> hold an entire KahaDB data file (typically 32mb), leading to large amounts
> of unused KahaDB space.  Durable subscribers are a risk for causing a
> problem of this type because they are designed to allow consumers to go
> offline - which creates a "slow consumer" scenario (really a no-consumer
> scenario).  And when they are offline, their messages sit unconsumed in
> the data files while other messages continue to flow through the system.

Ok, but messages have an expiration time. I thought that when a message
expires, it is not delivered, while it is put in DLQ queue. Is it right to
presume that KahaDB is freed  when a message is expired or not ? About
durable subscribers: as mentioned before, I'm using JMS to notify a Java
based client application that an event occurred on a remote server. Those
clients are used by human users - no application to application scenario.
It's quite normal that an user launches a long-lasting processing job, goes
home, and next day when he or she arrives should be notified that his or her
work has been completed. Without durable subscriptions, this is not possible

Hope this helps.

I really thank you for your time and precious explanation. I'm sorry to ask
questions that maybe are silly, but I'm really a newbe on ActiveMQ.

View this message in context:
Sent from the ActiveMQ - User mailing list archive at

View raw message