【发布时间】:2014-11-24 08:03:22
【问题描述】:
我们正在创建新的应用程序,它将在短期内使用 IBM 的 MQ 作为 JMS 提供程序,并在一年内切换到 Tibco EMS。 我的问题是,从应用程序代码的角度来看,这些更改将如何涉及。
到目前为止,从 JMS 文档中阅读,我的印象是它应该只需要很少的更改。有没有人有这方面的经验并提供一些关于在 JMS 提供程序之间切换所涉及的工作的意见。
【问题讨论】:
我们正在创建新的应用程序,它将在短期内使用 IBM 的 MQ 作为 JMS 提供程序,并在一年内切换到 Tibco EMS。 我的问题是,从应用程序代码的角度来看,这些更改将如何涉及。
到目前为止,从 JMS 文档中阅读,我的印象是它应该只需要很少的更改。有没有人有这方面的经验并提供一些关于在 JMS 提供程序之间切换所涉及的工作的意见。
【问题讨论】:
我已经完成了 POC,其中我换掉了连接工厂并使用 WMQ JMS 类发送给各种提供者(TIBCO、ActiveMQ 等),以证明可互换性。我还完成了从一个供应商 JMS 到另一个供应商的完全交换。理论上应该很简单。
最大的变化将是连接工厂。 JMS 特定的所有内容在提供者之间都是相同的。代码与连接工厂的耦合越紧密,更改应用程序本身就越复杂。除此之外,您可能需要更改对象的供应商特定实现,例如 MQQueue 与 Queue。
要保留的另一件事取决于 IBM 端点。如果您在任何生产者上使用“目标队列管理器”,这些都需要更改。 WMQ 有一个特定的 URI 来访问集群中特定队列管理器上的队列(“queue://target_qm/queue_name/”)。如果任何应用程序使用此 URI,则需要确保它也在此处进行适当的更改。
【讨论】: