git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with temp-queues


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 <marcin.giedz@xxxxxxxx> 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
>