I'll answer your questions as best I can, but they're the wrong questions. The important questions are why the broker is purging messages, and why the broker is reaching a state that requires you to restart it, and the answers to the questions you asked won't get you any closer to the answers for those questions.
I unfortunately don't have access to the source code right now to check the code path that results in that message being output, but I wonder if maybe you're running out of heap on the JVM. I notice that you have producer flow control disabled, which means the broker isn't protecting you from filling memory with messages; might that be what's going on? Attaching a JMX viewer such as JConsole would be a fast and easy way to check. If not, please describe the symptoms that force you to restart the broker, since that might shed some light on the root cause, and I'll look at the source code when I can. As far as the answers to your questions: * Task-number is the name of the thread doing the work. * @6fc1988a is the memory address of the thread. * the numbers in the queue name include the timestamp at which the connection was made and the port on which the connection was made. At least, I think that's right. At a couple of points I've tried to research the meaning of the various bits, but I never found an authoritative source. But none of that info matters, because every bit of that information is just internal implementation details for the construction of various identifiers that don't actually have any bearing on the actual problem you're trying to solve. So hopefully your investigation into heap usage and producer flow control, and your description of the behavior of the broker when things go bad, will help us figure out what's actually going on. Tim On Wed, Sep 5, 2018, 8:59 AM Marcin Giedz <[email protected]> wrote: > Hi all, > > can someone pls help me understanding what does this log mean: > > 2018-09-05 16:32:13,658 | INFO | > temp-queue://ID:abcd-44529-1536147286697-0:0:3913 on dispose, purge of 1 > pending messages: > org.apache.activemq.broker.region.cursors.VMPendingMessageCursor@6fc1988a > | org.apache.activemq.broker.region.TempQueue | ActiveMQ > BrokerService[localhost] Task-39379 > > what is Task-number? what is @6fc1988a ? and the most important - > temp-queue ID - what are these numbers for ? > > > for some reasons (still can't find why) such messages appear in log and > soon after we need to restart broker. > > and here is current destinationPolicy setting. Perhaps this has something > to do with wrong policy ? > > > <destinationPolicy> > <policyMap> > <policyEntries> > <policyEntry topic=">" producerFlowControl="false"> > <pendingSubscriberPolicy> > <vmCursor/> > </pendingSubscriberPolicy> > </policyEntry> > <policyEntry queue=">" producerFlowControl="false"> > <pendingQueuePolicy> > <vmQueueCursor/> > </pendingQueuePolicy> > </policyEntry> > > <policyEntry tempTopic="true" producerFlowControl="false" > memoryLimit="10mb"> > <pendingSubscriberPolicy> > <vmCursor/> > </pendingSubscriberPolicy> > </policyEntry> > <policyEntry tempQueue="true" producerFlowControl="false" > memoryLimit="10mb" gcInactiveDestinations="true" > inactiveTimoutBeforeGC="60000"> > <pendingQueuePolicy> > <vmQueueCursor/> > </pendingQueuePolicy> > </policyEntry> > > </policyEntries> > </policyMap> > </destinationPolicy> > > Thx > Marcin >
