在 MQ 中,如果您有一个现有队列管理器的实例,请说您的应用程序有权访问的 queuemanager1。您可以通过 queuemanager1 创建一个指向另一个队列管理器 queuemanager2 的队列的队列来发送消息。这样做是因为应用程序可能无法直接访问 queuemanager2,但托管 queumanager1 的 MQ 服务器可以。
代码看起来像这样:
MQQueue destQueue = queuemanager1.accessQueue("queFromAnotherMngr",CMQC.MQOO_OUTPUT | CMQC.MQOO_FAIL_IF_QUIESCING,"queuemanager2", null, null);
我正在重构代码以将 IBM MQ JCA 适配器用于 JBoss AS 6。所以我相信我必须坚持使用 vanilla JMS api(使用 InitialContext JNDI 查找、生产者等)才能让我的连接由 JBoss 管理。
但是,我不知道如何在常规 JMS 中允许接收 MQ 服务器将我的消息转发到另一个队列管理器 (queuemanager2) 的另一个队列。
从我到目前为止的研究来看,有一个对象发送到 MQ,称为消息队列消息描述符 (MQMD),它有一个名为“ReplyToQMgr”和“ReplyToQ”的字段。我想如果我找到一种方法来使用带有 JCA 适配器的 JMS API 更新这些字段,我就有了我的解决方案。有什么想法吗?想法?建议?解决方案?谢谢!