-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/51638/
-----------------------------------------------------------
(Updated Sept. 6, 2016, 4:43 p.m.)
Review request for qpid and Alan Conway.
Changes
-------
I agree, the abort is ugly and unnecessary. This new diff just resends
'released' messages over the existing link/connection.
The problem with informing the user of the release is that the current API
doesn't allow that to be done in a way that is helpful to the application,
should the application wish to resend. For released messages, resending is
(probably) the most sensible option.
For rejected messages on the other hand, the application should *not* resend.
So while we are still limited in being able to communicate the result of
asynchronous sends, it is slightly less of an issue, since they would not want
to resend anyway.
Repository: qpid-cpp
Description
-------
Rejected messages cause an exception to be thrown. However this does not
invalidate the session in anyway. More messages can be sent after
catching the exception. The original behaviour - i.e. simply ignoring
the rejected messages - can be obtained by setting the connection option
'ignore_delivery_refused' to true.
Released messages cause the transport to be aborted, triggering the usual
resending logic (whether defined by the application or using that defined
in the library itself). Again, released messages can be simply ignored as
they were prior to this change by setting 'ignore_undelivered' to true.
For modified messages, if undeliverable-here is set to true, the message is
treated as if it had been rejected, otheriwse if delivery-failed is set to
true it is treated as a released message. If neither is set it is simply
ignored with a warning (i.e. treated as accepted).
Diffs (updated)
-----
src/qpid/messaging/ConnectionOptions.h c8c8798
src/qpid/messaging/ConnectionOptions.cpp d956e9a
src/qpid/messaging/amqp/ConnectionContext.cpp 25dd68d
src/qpid/messaging/amqp/EncodedMessage.cpp cf60046
src/qpid/messaging/amqp/SenderContext.h 467a8e0
src/qpid/messaging/amqp/SenderContext.cpp fe8b4d3
src/qpid/messaging/amqp/SessionContext.h 67b3c1e
src/qpid/messaging/amqp/SessionContext.cpp 92bdea7
src/qpid/messaging/amqp/Transaction.cpp 754b00d
Diff: https://reviews.apache.org/r/51638/diff/
Testing
-------
Thanks,
Gordon Sim