[rabbitmq-discuss] channel.flow_ok{active=false} and java client 1.8.1

Simon MacMullen simon at rabbitmq.com
Wed Jul 28 10:23:38 BST 2010


Hi Chester. Just wanted to let you know that we've managed to replicate 
this at our end with non-persistent messages and we're looking into a 
solution.

If you need a workaround, I'm afraid you'll need to build the server 
from source. If you increase the value of FLOW_OK_TIMEOUT defined near 
the top of rabbit_channel.erl then this should do it.

Cheers, Simon

On 26/07/10 04:40, Chester Shen wrote:
> My program is running in a three nodes cluster, a publisher client on
> one node publish non-persistent messages to non-durable, auto-delete
> queues, two consumer clients on the other two nodes process messages in
> threads that invoked by HandDelivery(). Is it possible that the
> published messages are blocked in the server under this circumstance?
>
> On Thu, 2010-07-22 at 16:01 +0100, Simon MacMullen wrote:
>>
>> Hmm. It shouldn't do.
>>
>> The best idea we can come up with at the moment is that the publish
>> messages are backing up in the channel process inside the server,
>> blocking the flow-ok message (which the client has sent) from getting
>> read. This requires the publishes to be happening comparatively slowly,
>> and for there to be a lot of them. Are you publishing persistent
>> messages to durable queues? If so, are you using transactions?
>>
>> If this theory is correct then there's not a great deal we can do except
>> ask you to try the new persister. This would both relieve the memory
>> pressure and put a lower upper bound on how long it takes to publish a
>> persistent message.
>>
>> Cheers, Simon
>>
>
>


More information about the rabbitmq-discuss mailing list