activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dejan Bosanac <>
Subject Re: How can a broker stop a STOMP producer?
Date Fri, 26 Aug 2011 09:57:01 GMT
Hi Lionel,

Stomp protocol define "synchronous send" semantics by using receipts. So
when producer sends a message to a broker (with a receipt header in it), it
should wait from the broker for the RECEIPT frame back. And the broker
should return RECEIPT only it successfully stored a message. So if broker is
out of resources (memory, disk, etc.), the producer will be blocked until
broker process the message.

Dejan Bosanac -
The experts in open source integration and messaging -
ActiveMQ in Action -
Blog -

On Fri, Aug 26, 2011 at 11:34 AM, Lionel Cons <> wrote:

> In Apollo, one can set slow_consumer_policy=block for a topic. This is
> described as:
>  the producers block on slow consumers which makes producers only as
>  fast as the slowest consumer on the topic
> I guess one can achieve something similar in ActiveMQ too.
> But how can a broker block a producer over STOMP where it doesn't know
> what the next client frame will be?
> Does this translate into returning an ERROR frame for a SEND frame to
> the "blocked topic"?
> Does it mean stop reading from the producer after the first SEND frame
> is received? If yes, what happens for new clients? Are they all
> allowed to send one message before being blocked?
> FWIW, we have a typical use case with many distributed clients
> connecting over STOMP just to send one message and then disconnect.
> Cheers,
> Lionel

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message