You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by James Black <be...@yahoo.co.uk> on 2014/02/19 12:37:32 UTC

Client side producer flow control exception never thrown

Hi,

sadly we once again find some problems with ActiveMq.  We are using 5.5.1
but won't be upgrading as we'll probably move to a different message broker.

Anyway the current issue is that with producer flow control enabled and with
sendFailIfNoSpaceAfterTimeout set to 15000 (15s) we see no exceptions
triggered on the client side.

Last night during our load testing we hit the store limit for the messages
on disk, 50GB.  At this point I would of expected the clients to start
throwing exceptions due to the sendFail setting above.  However, this is not
the case.  Upon inspecting the logs for the clients I can see no exceptions
this morning.  I do however see that all threads are blocked in sending
messages to ActiveMq.

Below is an example partial stack trace:

State: BLOCKED on java.lang.Object@49c05090 owned by: ....Service--4
Total blocked: 45,800  Total waited: 188,752

Stack trace: 
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:39)
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1265)
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1259)
org.apache.activemq.TransactionContext.begin(TransactionContext.java:214)
org.apache.activemq.ActiveMQSession.doStartTransaction(ActiveMQSession.java:1774)
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1700)
   - locked java.lang.Object@21d0b66
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:269)
org.springframework.jms.connection.CachedMessageProducer.send(CachedMessageProducer.java:117)
.... (removing our own classes)

The Spring JmsTemplate here is being called to send a message and the entity
doing the sending is the Spring DMLC which is executing in a method from our
service.

Any ideas?

Thanks,

Justin 



--
View this message in context: http://activemq.2283324.n4.nabble.com/Client-side-producer-flow-control-exception-never-thrown-tp4678120.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Client side producer flow control exception never thrown

Posted by Yin Wang <su...@gmail.com>.
NoSpaceException is also a response come from broker.
when asyn send is used,client will not expect response for request.
You can try to use non-transactional session or enforce sync send and that
should work.



2014-02-20 7:04 GMT+08:00 Gary Tully <ga...@gmail.com>:

> It looks like you are using async send so there is nothing to trap any
> exception.
> On 19 Feb 2014 16:07, "James Black" <be...@yahoo.co.uk> wrote:
>
> > After clearing down the queues using the admin console I can see that the
> > store percent used is back to zero.  However, this did not cause the
> > blocking in our application to exit.
> >
> > After restarting our applications but not ActiveMq they were still
> blocked
> > and unable to receive API requests.
> >
> >
> >
> > --
> > View this message in context:
> >
> http://activemq.2283324.n4.nabble.com/Client-side-producer-flow-control-exception-never-thrown-tp4678120p4678153.html
> > Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> >
>

Re: Client side producer flow control exception never thrown

Posted by Gary Tully <ga...@gmail.com>.
It looks like you are using async send so there is nothing to trap any
exception.
On 19 Feb 2014 16:07, "James Black" <be...@yahoo.co.uk> wrote:

> After clearing down the queues using the admin console I can see that the
> store percent used is back to zero.  However, this did not cause the
> blocking in our application to exit.
>
> After restarting our applications but not ActiveMq they were still blocked
> and unable to receive API requests.
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Client-side-producer-flow-control-exception-never-thrown-tp4678120p4678153.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Re: Client side producer flow control exception never thrown

Posted by James Black <be...@yahoo.co.uk>.
After clearing down the queues using the admin console I can see that the
store percent used is back to zero.  However, this did not cause the
blocking in our application to exit.

After restarting our applications but not ActiveMq they were still blocked
and unable to receive API requests.



--
View this message in context: http://activemq.2283324.n4.nabble.com/Client-side-producer-flow-control-exception-never-thrown-tp4678120p4678153.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.