You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by "Smith, Brian 1" <br...@lmco.com> on 2016/01/21 16:22:42 UTC
Asynchronous messaging and acknowledgements
Hello,
I have a few questions related to asynchronous messaging and acknowledgements.
I'm using the Qpid JMS client with a C++ broker (v0.24).
The behavior I'm observing is that the map of unacknowledged commands within the org.apache.qpid.transport.Session objects is growing until either the command limit or the byte limit is reached.
At that point, the session is flushed and the map is cleared.
My test has a producer and a consumer.
Each are on separate sessions (non-transactional and auto_acknowledge) on the same connection to the broker.
The producer is producing byte messages to a topic exchange.
The consumer is consuming these messages through a message listener.
The queue has a ring policy on it as well.
I've confirmed that the consumer is sending acknowledgments to the broker once messages are received and processed (based on Qpid debug logging).
My question is would you expect the producer to receive acknowledgements from the broker for messages sent asynchronously?
Is the map cleared only when the limits are reached if messages are sent asynchronously?
Producer flow control is disabled as well.
Thanks,
Brian P. Smith
Re: Asynchronous messaging and acknowledgements
Posted by Brian Smith <br...@lmco.com>.
Ok that makes sense. Thanks!
--
View this message in context: http://qpid.2158936.n2.nabble.com/Asynchronous-messaging-and-acknowledgements-tp7636965p7636977.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Asynchronous messaging and acknowledgements
Posted by Gordon Sim <gs...@redhat.com>.
On 01/21/2016 07:10 PM, Brian Smith wrote:
> Log.txt <http://qpid.2158936.n2.nabble.com/file/n7636975/Log.txt>
In that trace, you can see that there is no ExecutionSync sent after any
MessageTransfer is sent. That is why the broker is not sending back
completed state (until it hits a certain limit).
I'm not very familiar with the 0-10 JMS client, but I vaguelly recall
there may be some setting to control the frequency of syncing (or
flushing) for async send... I think it may be the
'qpid.session.command_limit' property from
https://qpid.apache.org/releases/qpid-0.30/programming/book/ch03s06.html
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Asynchronous messaging and acknowledgements
Posted by Brian Smith <br...@lmco.com>.
Log.txt <http://qpid.2158936.n2.nabble.com/file/n7636975/Log.txt>
Thanks for the quick response.
Yes the issue is with the memory growth in the client and whether or not
this is expected behavior (based on my configuration).
Thanks,
Brian P. Smith
--
View this message in context: http://qpid.2158936.n2.nabble.com/Asynchronous-messaging-and-acknowledgements-tp7636965p7636975.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Asynchronous messaging and acknowledgements
Posted by Gordon Sim <gs...@redhat.com>.
On 01/21/2016 03:22 PM, Smith, Brian 1 wrote:
> My question is would you expect the producer to receive acknowledgements from the broker for messages sent asynchronously?
Yes, but it would be under the clients control as to when they are sent.
If the command has a sync flag, then the broker will sent a completion
for that command (as well as any other completed commands) as soon as it
is complete. If a Sync command is issued, the broker will send
completion once all outstanding commands are complete.
Do you have a protocol trace for all or part of the exchange? That
should let us see whether the client is requesting completions and if so
whether the broker is properly responding.
(Is the issue memory growth in the client?)
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org