有没有办法配置JMS消息队列以自动丢弃所有收到的消息? (换句话说:对于发送者来说,它必须看起来像消息一样正常,但队列应该静默地丢弃它。也就是说,队列应该像“/ dev / null”)如果重要,我最感兴趣但是,在IBM MQ中,如果JMS规范提供了这种可能性,那就更好了。
由于我已经尝试过搜索,并且没有找到这种可能性,我怀疑答案是“不”。所以答案证实了这种情况(我没有遗漏任何东西)也对我有用。
用例:测试一个系统,该系统将消息发送到真正的JMS队列,其中(在测试设置中)不会被任何其他程序读出。 (我不想模拟JMS队列,以使测试环境尽可能接近生产。出于同样的原因,它也不是一个有效的解决方案,例如为客户端的消息设置“生存时间” 。)
答案 0 :(得分:2)
如果要将一个队列放在一个没有人收听的主题的别名上怎么样?
e.g:
def qalias(MYQUEUE) target(DUMMYTOPIC) targtype(TOPIC)
def topic(DUMMYTOPIC) topicstr(DUMMYTOPIC)
然后你可以把它放到队列中,它变成了一个发布,如果没有人正在侦听队列,它就会消失。例如,amqsput MYQUEUE QM
可以正常工作。
如果您希望使用消息,请将QALIAS更改为指向实际队列,或者将QALIAS定义替换为QLOCAL。
唯一的缺点是,如果有人订阅了每个主题,但出于测试目的,您可以
答案 1 :(得分:0)
如果您想要一种不同的方法来控制(关闭/打开)被删除/删除的消息流,那么MQ服务和我的'emtyq'程序是另一种选择。
以下是我刚才就这个主题所做的一篇文章:http://www.capitalware.com/rl_blog/?p=3680