On 17/12/2007, Nathan Mittler <[EMAIL PROTECTED]> wrote:
> Hey James,
> I've captured the details here 
> http://issues.apache.org/activemq/browse/AMQCPP-157

Ah great, thanks. Sorry - I was being lazy not reading through all the
previous mails...


> Looks like the C++ producer's response correlator timed out when
> waiting for a response for a sent bytes message (this timeout defaults
> to 3 seconds).
>
> It may simply be that the app was bogging down the machine (win32) and
> the default timeout wasn't sufficient.

Ah ok - so just increasing the timeout might be a good workaround?

Robert - do you fancy trying that out, setting a big timeout value?


> Is there a flow control that gets imposed on producers that are
> flooding the broker with messages?  If so, could you point me to where
> this is done in the Java client?  It may be that we already have this
> flow control implemented - I know Tim has been working on
> compatibility with the 5.0.0 broker.

He could have sorted it already maybe; it could just be the timeout
issue really.

Here's the command for producer flow control...
http://activemq.apache.org/maven/activemq-core/apidocs/org/apache/activemq/command/ProducerAck.html

which the broker sends producers to inform them that the previous
sending window has been processed, so that they can now send another
window. Its kinda like consumer acks but in reverse. So a nice
producer might wait for a producer ack before sending more data, to
avoid flooding the broker.

You could look at the ActiveMQMessageProducer Java source code to see
how its done.

Though a client can ignore the producer ACKs altogether and the broker
should just stall the transport if it has to for slow consumer
handling.

I guess if you know the broker can't accept any more messages, there's
no point trying to send & block; you could maybe give a better
error/log/exception back to the caller?

-- 
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://open.iona.com

Reply via email to