Qpid
  1. Qpid
  2. QPID-2380

define and implement reliability options for senders and receivers

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.6
    • Fix Version/s: 0.7
    • Component/s: C++ Client, Python Client
    • Labels:
      None

      Description

      c++ client currently only recognises 'reliability' option for receivers (unreliable and at-most-once are handled by no-acks and by auto-deleting temp subscription queues on failover)

        Activity

        Hide
        Gordon Sim added a comment -

        From doxygen for c++ client at present:

        reliability - indicates the level of reliability that the receiver expects. Can be one of unreliable, at-most-once, at-least-once or exactly-once (the latter is not yet correctly supported)

        unreliable and at-most-once are currently treated as the same and for a receiver they will mean that accept-mode=none is used (for 0-10) and in the case of receiving from an exchange an auto-deleted subscription queue is used meaning that messages can be missed during failover or otherwise when not connected. For senders these mean that an outgoing message is no longer considered pending when it has been written to the wire (regardless of whether the broker has yet received it) [Note: in the current c++ client impl this is not possible and a temporary workaround will be put in place]

        at-least-once uses accept-mode=explicit (0-10) for receivers and a queue that is not deleted when the session is lost for topic receivers; for senders it results in a replay buffer being maintained and messages replayed when a disconnected connection is reconnected (e.g. on failover).

        Show
        Gordon Sim added a comment - From doxygen for c++ client at present: reliability - indicates the level of reliability that the receiver expects. Can be one of unreliable, at-most-once, at-least-once or exactly-once (the latter is not yet correctly supported) unreliable and at-most-once are currently treated as the same and for a receiver they will mean that accept-mode=none is used (for 0-10) and in the case of receiving from an exchange an auto-deleted subscription queue is used meaning that messages can be missed during failover or otherwise when not connected. For senders these mean that an outgoing message is no longer considered pending when it has been written to the wire (regardless of whether the broker has yet received it) [Note: in the current c++ client impl this is not possible and a temporary workaround will be put in place] at-least-once uses accept-mode=explicit (0-10) for receivers and a queue that is not deleted when the session is lost for topic receivers; for senders it results in a replay buffer being maintained and messages replayed when a disconnected connection is reconnected (e.g. on failover).

          People

          • Assignee:
            Rafael H. Schloming
            Reporter:
            Gordon Sim
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development