diff options
Diffstat (limited to 'qpid/cpp/src/qpid/broker/TxPublish.cpp')
-rw-r--r-- | qpid/cpp/src/qpid/broker/TxPublish.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/broker/TxPublish.cpp b/qpid/cpp/src/qpid/broker/TxPublish.cpp index 9c2cf4a467..36a451e62c 100644 --- a/qpid/cpp/src/qpid/broker/TxPublish.cpp +++ b/qpid/cpp/src/qpid/broker/TxPublish.cpp @@ -90,7 +90,14 @@ void TxPublish::deliverTo(const boost::shared_ptr<Queue>& queue){ void TxPublish::prepare(TransactionContext* ctxt, const boost::shared_ptr<Queue> queue) { - queue->enqueue(ctxt, msg); + if (!queue->enqueue(ctxt, msg)){ + /** + * if not store then mark message for ack and deleivery once + * commit happens, as async IO will never set it when no store + * exists + */ + msg->enqueueComplete(); + } } TxPublish::Commit::Commit(intrusive_ptr<Message>& _msg) : msg(_msg){} |