Github user grs commented on a diff in the pull request: https://github.com/apache/qpid/pull/9#discussion_r68299958 --- Diff: qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp --- @@ -142,11 +145,10 @@ void OutgoingFromQueue::handle(pn_delivery_t* delivery) if (preAcquires()) { //TODO: handle message-annotations if (pn_disposition_is_undeliverable(pn_delivery_remote(delivery))) { - //treat undeliverable here as rejection - queue->reject(r.cursor); - } else { - queue->release(r.cursor, pn_disposition_is_failed(pn_delivery_remote(delivery))); + undeliverableMessages.add(r.msg.getSequence()); } + + queue->release(r.cursor, pn_disposition_is_failed(pn_delivery_remote(delivery))); --- End diff -- One issue here is that the message will remain on the queue, even if there are no other consumers. In some cases that may be what you want, in others though it could cause a problem. What would you think of having a queue level setting that dictated whether consumers should reject or track undelivered? Ideally we would then have reject as the default for now for backwards compatibility, but the behaviour you desire could be enabled when creating the queue? Alternatively we could even make the default a broker level option.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org