The prefetch size was set on the network connector as we were getting
messages about slow consumers across the network bridge.

As far as I can see the network bridge had not failed. The connector
entries in the log are for a client subscription that will also have the
topic prefetch set to 32766. I am trying to get logs from the client.

The broker on the other end of the bridge uses the same configuration.


On 27 November 2012 13:41, Christian Posta <christian.po...@gmail.com>wrote:

> Answers to your questions:
>
> 1) Not sure yet
> 2) Because at the moment, send fail if no space is only triggered when
> producer flow control is on (at least for this case, topics)
> 3) like gtully said, connections could not be shutdown if they are blocked
> somehow
>
> I noticed in your config you explicitly set the prefetch on the network
> connector to 32766. The default for network connectors is 1000 and the
> default for regular topics is Short.MAX_VALUE (which is 32767). Since the
> bridge doesn't have a prefetch buffer like normal clients do, setting the
> prefetch to 32766 could end up flooding it. Any reason why you have it set
> to 32766?
>
> So TopicSubscriptions should always have the broker's main memory usage. If
> it has the destination's memory limit, then something went wrong. Like Gary
> said, the pending message cursor's messages would be spooled to disk when
> the main memory limit reaches its high water mark (70% by default).... but
> that appears to not have happened in this case.
>
> Are there any indications that the TopicSubscription is for the network
> bridge? Or maybe that the network bridge failed somehow? I see that the
> dispatched count is the same as what you've set for you prefertch on the
> bridge, but if anything else can point to that it might be helpful. For
> example, are those port numbers on the transport connector logs for the
> network bridge?
>
> How is the broker on the other end of the bridge configured? Same?
>
>
> On Fri, Nov 23, 2012 at 8:36 AM, Mark Anderson <manderso...@gmail.com
> >wrote:
>
> > I have ActiveMQ 5.6.0 configured as follows:
> >
> > Producer Flow Control = false
> > Send Fail If No Space = true
> > Memory Usage Limit = 128Mb
> > Temp Usage Limit = 1Gb
> >
> > All my messages are non-persistent. The temp usage is configured to
> handle
> > spikes/slow consumers when processing messages.
> >
> > I continually see the following in the logs:
> >
> > WARN  Nov 20 20:55:47 (13748874 [InactivityMonitor Async Task:
> > java.util.concurrent.ThreadPoolExecutor$Worker@7ea0e15b[State = 0, empty
> > queue]] org.apac
> > he.activemq.broker.TransportConnection.Transport) Transport Connection
> to:
> > tcp://192.168.2.103:35186 failed: java.net.SocketException: Broken pipe
> > INFO  Nov 20 20:55:51 (13752162 [ActiveMQ Transport: tcp:///
> > 192.168.2.103:35168] org.apache.activemq.broker.TransportConnection) The
> > connection to 'tcp:
> > //192.168.2.103:35166' is taking a long time to shutdown.
> > INFO  Nov 20 20:55:56 (13757162 [ActiveMQ Transport: tcp:///
> > 192.168.2.103:35168] org.apache.activemq.broker.TransportConnection) The
> > connection to 'tcp:
> > //192.168.2.103:35166' is taking a long time to shutdown.
> > INFO  Nov 20 20:56:01 (13762162 [ActiveMQ Transport: tcp:///
> > 192.168.2.103:35168] org.apache.activemq.broker.TransportConnection) The
> > connection to 'tcp:
> > //192.168.2.103:35166' is taking a long time to shutdown.
> >
> > I'm not sure why the connection will never shutdown.
> >
> > I then see the following message:
> >
> > org.apache.activemq.broker.region.TopicSubscription) TopicSubscription:
> > consumer=ID:linux-5ks2-57958-1353426643811-3:1:378:1, destinations=1,
> > dispatched=32766, delivered=0, matched=0, discarded=0: Pending message
> > cursor
> >
> >
> [org.apache.activemq.broker.region.cursors.FilePendingMessageCursor@4c41cfa2
> > ]
> > is full, temp usage (0%) or memory usage (211%) limit reached, blocking
> > message add() pending the release of resources.
> >
> > This leads me to the following questions:
> >
> > 1) Why would the memory usage be 211% while temp usage is 0%.
> > 2) The thread dump shows that send calls on producers are blocking. Why
> > would they not throw exceptions when send fail if no space = true?
> > 3) Would the issue with connection shutdown contribute to the memory
> usage?
> >
> > Thanks,
> > Mark
> >
>
>
>
> --
> *Christian Posta*
> http://www.christianposta.com/blog
> twitter: @christianposta
>

Reply via email to