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.
Regards -- Dejan Bosanac - http://twitter.com/dejanb ----------------- The experts in open source integration and messaging - http://fusesource.com ActiveMQ in Action - http://www.manning.com/snyder/ Blog - http://www.nighttale.net On Fri, Aug 26, 2011 at 11:34 AM, Lionel Cons <[email protected]> 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 >
