----------------------------------------------------------- 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