用Apache.NMS从C#(.net Core)读取ActiveMQ虚拟主题的 "旧 "消息。

问题描述 投票:0回答:1

如何用Apache.NMS读取虚拟主题上的消息?

在创建了连接和session以及consumer之后,我做到了。"consumer.Receive();"。

在该代码运行时发送的消息被接收,但在此之前已经在主题上的任何消息都没有被接收。

我试着在主题中添加"?consumer.retroactive=true",但似乎没有任何作用。

我见过使用持久订阅者的例子,但当使用虚拟主题时,我不应该这样做。

.net-core activemq apache-nms virtual-topic
1个回答
1
投票

解决了。

问题是我读错了地方。我从一个主题中读取,而我应该从一个队列中读取。

虚拟主题是主题,但你必须从消费者那里消耗它们。队列.

所以,消息被推送到 "VirtualTopic.YourTopicName",你应该从一个名为 "Consumer.YourConsumerName.VirtualTopic.YourTopicName "的QUEUE中读取。显然这个队列应该在任何消息发布之前就存在了)。

'旧'消息没有被读取的原因,是因为它们根本不存在。

© www.soinside.com 2019 - 2024. All rights reserved.