我遇到了一个有趣的挑战,即必须在一个环境中向主题发布消息,并且必须将消息发送到另一个环境中的队列。这两种环境都需要具有相同的代码库。有没有办法在运行时确定目标是队列还是主题,并调用代码来相应地发送到主题或队列?
答案 0 :(得分:2)
队列和主题扩展目标。因此,如果您有一个目标实例,则可以使用instanceof
来确定它是否为“队列”或“主题”
答案 1 :(得分:2)
在回答这个问题之前,有必要先问一下,您认为代码对于队列与主题的不同之处是什么?如果WMQ类不到十年,它们使用自JMS 1.1以来可用的统一模型。不是在queueConnectionFactory
与topicConnectionFactory
之间进行选择,而是让代码实例化通用connectionFactory
。而不是实例化queue
或topic
对象,让代码实例化destination
对象。那时你真的不在乎目的地下的东西是队列还是主题。
请参阅IBM WebSphere Developer Technical Journal: Running a standalone Java application on WebSphere MQ V6.0以获取完整说明,包括展示其完成方式的示例代码来源。