【问题标题】:How to use Webshere MQ Server via ActiveMQ server and what to bear in mind?如何通过 ActiveMQ 服务器使用 Websphere MQ 服务器以及需要注意什么?
【发布时间】:2014-11-05 12:49:15
【问题描述】:

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

但到目前为止,IBM 无法告诉我此设置可能产生的许可费用。我在 IBM 下载页面上看到论坛帖子和提示说使用客户端是免费的,但我不确定。也许甚至允许 MQ 服务器的所有者向我们提供客户端 jar 以使用它来连接它们,但同样,我不确定。

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

  1. 技术解决方案:具体如何实现?我阅读了一些关于 JMS 提供程序之间的桥接以及有关 Apache Camel 项目的一些内容,但到目前为止还不清楚这将需要多少工作以及需要完成哪些工作。
  2. 影响:实施此类方案时应注意什么?我是否仍然必须包含 MQ 客户端,这样不会比直接连接受益吗?与直接连接相比,我必须考虑哪些负面影响?

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


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

【问题讨论】:

    标签: java jms activemq ibm-mq


    【解决方案1】:

    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 支持包会给您太多。此下载确实有接受许可协议,但它与其他地方突出显示的相同。它确实提到了 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 客户端代码的版本与服务器版本不紧密耦合。客户端或绑定。

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

    编辑:已添加下载链接

    【讨论】:

    • 你是对的,没有提到这一点,我更新了我的答案。尽管如此,这同样适用于 Erik 的回答——我需要一些“官方”声明,以确保关于许可成本事实的提案。
    • 添加了另一个更新:MQ 版本不是最新版本 - 这会影响您的解决方案或您提到的扩展客户端吗?
    • 一点也不;通过我提到的链接下载资源适配器的 7.5 版本。这能够连接到所有服务中的 QueueManager(7.0、7.1、7.5、8.0)。 MQ v6 现在不再受支持(尽管 7.5 RA 仍可以在需要时连接)。不要担心从 7.5 级别开始的扩展客户端,此功能已纳入主代码行 - 即它是标准功能。
    【解决方案2】:

    从此page粘贴​​p>

    类别 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 客户端是免费的。

    【讨论】:

      【解决方案3】:

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

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

      2. 无论您需要什么 MQ 客户端。 MQ 服务器包括 MQ 客户端,因此如果所有这些都在同一台主机上,则无需安装其他任何东西。如果直接连接是指绑定模式与客户端模式,那么是的,绑定模式始终是最有效的。另一方面,如果您在代理中运行路由,则可以利用 VM 传输。

      对于 ActiveMQ 和 WebSphere MQ 之间的消息桥接,您需要考虑的主要考虑因素是非常典型的消息传递问题。例如,您是否需要消息才能在中断中幸存下来?如果是这样,那么请考虑在您的路线中使用本地事务。

      【讨论】:

      • 我听说 MQ 客户端免费提供服务,但您有官方消息来源吗?但是当试图在 IBM 网站上找到它时(例如 here,他们说“对 WebSphere MQ 的所有许可用户免费提供”,我不是。
      • Shashi 在他的回答中发布的内容也是我会发布的内容。 IBM 一直是付费使用被很好锁定的东西。只有组织中的特定成员才有权下载任何“非免费”内容。但我不得不问,谁拥有您将要桥接的 WMQ 服务器?如果没有人为 MQ 服务器付费以连接该客户端,那么拥有 MQ 客户端就没有意义,而这正是 IBM 真正关心的。
      • 服务器归另一家公司所有,并且肯定获得了许可。他们通过 MQ 队列(或者可能是主题)向其他几个人提供信息,所以我们是他们使用它的客户之一。
      【解决方案4】:

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

      您是正确的,您可以使用与 ActiveMQ 捆绑的Apache Camel 轻松设置这样的网桥。

      使用本地代理作为缓冲区的一个可能好处是,您的应用程序可以依赖由您启动和控制的代理。远程/外部控制的 WebSphere MQ 可能会被删除以进行维护。由外部各方或网络可能不稳定。当然,您的应用程序可以使用逻辑和重新安排的传输来处理此类事情,但在 ActiveMQ 中设置 Camel 路由来执行此操作并将您的逻辑集中在应用程序中以执行业务逻辑要容易得多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        • 2013-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-04
        相关资源
        最近更新 更多