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

Reply via email to