如何用Apache.NMS读取虚拟主题上的消息?
在创建了连接和session以及consumer之后,我做到了。"consumer.Receive();"。
在该代码运行时发送的消息被接收,但在此之前已经在主题上的任何消息都没有被接收。
我试着在主题中添加"?consumer.retroactive=true",但似乎没有任何作用。
我见过使用持久订阅者的例子,但当使用虚拟主题时,我不应该这样做。
解决了。
问题是我读错了地方。我从一个主题中读取,而我应该从一个队列中读取。
虚拟主题是主题,但你必须从消费者那里消耗它们。队列.
所以,消息被推送到 "VirtualTopic.YourTopicName",你应该从一个名为 "Consumer.YourConsumerName.VirtualTopic.YourTopicName "的QUEUE中读取。显然这个队列应该在任何消息发布之前就存在了)。
'旧'消息没有被读取的原因,是因为它们根本不存在。