Transactions 为什么要删除我的事务性ActiveMQ消息而不是移动到DLQ?

Transactions 为什么要删除我的事务性ActiveMQ消息而不是移动到DLQ?,transactions,activemq,Transactions,Activemq,我创建我的消费者(在C#中使用NMS库),如下所示: 当我收到一条消息并且没有在会话上调用Commit时,它会返回到原始队列。然后再尝试5次重新交付,然后被丢弃。为什么消息被丢弃而不是发送到DLQ 如果它真的被丢弃了,它实际上可能是一个bug。我并没有试图复制,但在一个应用程序的调试过程中,我实际上遇到了类似的问题(忘记提交事务),并且消息确实发送到了DLQ。重试几次后。。因此,如果您确定它们刚刚被丢弃,这可能是一个bug。我知道这是很久以前的事了,所以它可能对您没有帮助,但一个可能的原因是您没

我创建我的消费者(在C#中使用NMS库),如下所示:


当我收到一条消息并且没有在会话上调用Commit时,它会返回到原始队列。然后再尝试5次重新交付,然后被丢弃。为什么消息被丢弃而不是发送到DLQ

如果它真的被丢弃了,它实际上可能是一个bug。我并没有试图复制,但在一个应用程序的调试过程中,我实际上遇到了类似的问题(忘记提交事务),并且消息确实发送到了DLQ。重试几次后。。因此,如果您确定它们刚刚被丢弃,这可能是一个bug。

我知道这是很久以前的事了,所以它可能对您没有帮助,但一个可能的原因是您没有发送持久消息。如果您的消息没有持久性,.

100%确定它们会被忽略。而且100%确定我没有承诺。但这并不是一直都会发生,我可以重新解释。
        ConnectionFactory factory = new ConnectionFactory(_mqServer);
        _con = factory.CreateConnection();
        _con.Start();
        _session = _con.CreateSession(AcknowledgementMode.Transactional);
        _queue = _session.GetQueue(_mqQueue);
        _consumer = _session.CreateConsumer(_queue, "someproperty = 'someValue'");