如何通过ActiveMQ服务器使用Websphere MQ Server以及需要注意什么?

时间:2014-09-11 14:09:32

标签: java jms activemq ibm-mq

我们需要连接到外部控制的IBM Websphere MQ服务器提供的JMS队列。现在,最简单的方法是将Websphere MQ客户端包含到我们的应用程序中,然后只使用队列。

但是,到目前为止,IBM还没有能够告诉我这种设置可能的许可成本。我看到使用客户端的IBM下载页面上的论坛帖子和提示是免费的,但我不确定。甚至可能是这样,MQ服务器的所有者可以向我们提供客户端jar来使用它来连接它们,但是我不确定。

所以我正在评估设置自己的开源JMS服务器的可能性,例如Apache ActiveMQ,然后桥接到Websphere MQ。为此,我提出了两个问题:

  1. 技术解决方案:如何完成?我读了一些关于JMS提供程序之间的桥接以及Apache Camel项目的一些内容,但到目前为止还没有确切地知道这将是多少工作以及需要完成的工作。
  2. 影响:实施这样的情景时,我应该记住什么?我是否仍然必须包含MQ客户端,这样不会直接连接?与我必须考虑的直接连接相比,是否存在任何负面影响?

  3. 更新:我们的应用程序是在JBosss 7.1上运行的Java EE 6应用程序。 关于MQ服务器版本,我还没有任何信息。


    第二次更新:MQ服务器版本为6.5。

4 个答案:

答案 0 :(得分:2)

MQ的客户端可供您使用;有许可协议不接受费用。 这些客户端库几乎可以为您提供多种选择。

您提到正在使用JMS - 在这个容器/环境中? JavaSE / JavaEE / OSGi或其他东西。

  • JavaSE或其他'是JMS客户端JAR。
  • JavaEE需要IBM MQ资源适配器
  • OSGi需要OSGi Bundles

在早期版本的MQ中,有一个扩展的跨国客户端'有与之相关的费用(几乎与完整服务器相同),但现在已经没有了。

这是针对JBOSS 7.1的 - 解决方案是遵循此链接 http://www-01.ibm.com/support/docview.wss?uid=swg21633761

..并直接从那里的说明下载IBM MQ资源适配器... 7.5.0.4也已在上周发布。请考虑这下载MQCxxx支持pac会给你太多。此下载确实有许可协议可以接受,但它与其他地方突出显示的协议相同。它确实提到了Liberty,但它与JBOSS中支持的RA相同。

有关在JBOSS中配置RA的信息,请查看

http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q031820_.htm

RA或JMS客户端代码的版本与服务器版本没有紧密耦合。客户端或绑定。

除了通过网络,你不会得到任何支持;除非你让公司运行外部控制的服务器来提高它。

编辑:添加了下载链接

答案 1 :(得分:2)

从此page

进行粘贴

类别3 WebSphere MQ SupportPacs是根据国际程序许可协议(IPLA)提供的标准条款和条件提供的,因此为WebSphere MQ客户提供程序缺陷服务。请阅读SupportPac随附的IPLA和LI文件,以确保您了解SupportPac的提供条件。

如果您遇到了您认为是SupportPac的缺陷,并且您拥有WebSphere MQ服务器产品的当前许可,您可以通过您为WebSphere使用的相同缺陷报告渠道报告问题来请求程序服务您正在使用SupportPac的MQ服务器产品。 使用此SupportPac无需提供权利证明。

只要服务支持WebSphere MQ V7.5服务器产品,就可以为此SupportPac的v7.5版本提供服务。请参阅WebSphere产品生命周期页面以获取相关服务信息。它仅受支持的MQ平台支持。

我认为粗体文本表明MQ客户端是免费的。

答案 2 :(得分:1)

WebSphere MQ Client没有许可费用。唯一的费用(我认为他们取消了这个)本来是XA客户端。客户端下载应该与Client for JMS一起提供,这与Client for Java(java中的本机IBM API)不同。安装客户端时,只需检查以确保您的/ java /包含用于连接到IBM MQ的所有从属jar。

  1. 我强烈建议您使用Apache Camel作为您自己的桥梁。然后,您可以选择在ActiveMQ JVM或其他受支持的容器内运行camel路由。大部分工作将是第一次学习如何做到这一点。设置完成后,您将意识到Apache Camel的时间节省和功能。

  2. 无论您需要什么MQ客户端。 MQ Server包含MQ Client,因此如果所有这些都在同一主机上,则您无需安装任何其他内容。如果通过直接连接表示绑定模式与客户端模式,则是,绑定模式始终是最有效的。另一方面,如果您在经纪人中运行路线,则可以利用VM传输。

  3. 您需要考虑在ActiveMQ和WebSphere MQ之间桥接消息的主要注意事项是典型的消息传递问题。例如,您是否需要该消息才能在外线中存活?如果是这样,那么考虑使用您的路线的本地交易。

答案 3 :(得分:1)

使用WebSphere MQ队列管理器桥接ActiveMQ代理需要与直接连接相同的客户端库。

你是正确的,你可以很容易地使用Apache Camel设置这样一个桥接器,它与ActiveMQ捆绑在一起。

将本地代理作为缓冲区的一个可能的好处可能是您的应用程序可以依赖于由您启动和控制的代理。可以取消远程/外部控制的WebSphere MQ以进行维护。外部各方或网络可能会摇摇欲坠。当然,您的应用程序可以使用逻辑和重新安排的传输来处理这些事情,但是在ActiveMQ中设置Camel路由要更加容易,并将您的逻辑集中在应用程序中以执行业务逻辑。