0

如何使用 Apache.NMS 阅读有关虚拟主题的消息?

在创建连接、会话和消费者之后,我执行:“consumer.Receive();”。

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

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

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

4

1 回答 1

1

解决了:

问题是我从错误的地方阅读:我正在阅读一个主题,而我应该从队列中阅读。

虚拟主题是主题,但您必须从消费者队列中使用它们。

因此,消息被推送到“VirtualTopic.YourTopicName”,您应该从名为“Consumer.YourConsumerName.VirtualTopic.YourTopicName”的队列中读取。(显然,在发布任何消息之前,此队列应该存在。)

未阅读“旧”消息的原因是因为它们不存在。

于 2020-05-05T13:14:27.010 回答