【问题标题】:.net using IBM MQ without full MQ client install.net 使用 IBM MQ 没有完整的 MQ 客户端安装
【发布时间】:2011-07-22 03:44:56
【问题描述】:

所有文档和信息都表明,我们必须在要使用它的机器上安装 MQ 系列客户端。

有没有人知道一个 DLL(或其他)允许我们在一个 不需要本地安装的 .net 项目中包含 MQ 系列支持?

【问题讨论】:

  • 我希望有人能找到解决方案! :) 我还没有(还) :-(

标签: .net ibm-mq


【解决方案1】:

更新了官方IBM MQ Redistributable Client的信息。

摘录:

来自 IBM MQ 版本 8.0.0,Fix Pack 4,本机可再发行客户端 为 Linux x86-64 和 Windows 64 位提供运行时库 平台使分发应用程序和 所需的 IBM MQ 运行时库。第三个包,不是 特定于平台的,包含所需的运行时文件 Java™/JMS 应用程序,包括 IBM MQ 资源适配器 在应用服务器下运行的 JMS 应用程序。

随 IBM MQ 提供的可再分发客户端也是 未安装和可重定位的图像。维护一个可再分发的, 非安装镜像,通过替换实现;那是你 下载更新版本的运行时组件 已发货。

可再分发客户端意味着分发所需的运行时间 在您的环境内部和外部使用应用程序。

可重定位客户端意味着将文件放在其他位置 而不是固定的默认位置。例如,而不是安装到 /opt/ 安装到 /usr/local。

未安装的客户端意味着您不需要放下 客户端文件,并且可以根据需要复制这些文件。

IBM IPLA 许可协议针对 IBM MQ 进行了扩展,使您能够 从Fix Central下载一些额外的运行时文件。

从 IBM MQ 版本 9.0.5 开始,XMS .NET 作为 可再发行客户端的一部分。 XMS .NET 需要 IBM MQ .NET 客户端(amqmdnet.dll)。如果要使用非托管模式,那么 IBM 还需要 MQ C 客户端库以及 amqmdnet.dll。

另请参阅 Redistributable clients on Windows 页面,该页面解释了如何生成用于重新分发的包,并指出“IBM 支持人员只能为可重新分发的客户端包中包含的完整、未修改的文件集提供帮助。”本页讨论了在不需要管理员权限即可安装的软件中分发库的方法。

您需要一个 IBM ID 才能从 Fix Central 下载可再分发的 MQ 客户端,但下载是免费的,并且在连接到受支持的 MQ 服务器实例时,完全支持按照 IBM 的说明打包。

之前接受的 Java 库包装器答案仍然有效,但同样需要注意 - 如果需要 IBM 支持,则需要安装 IBM 的 Java 客户端。幸运的是,这现在也包含在一个更友好的单 jar 包中,称为 allclient.jar,它是 documented here。 IBM 现在还记录了哪些 jar 文件可以从 MQ 服务器安装中重新定位,并且仍然有资格获得全面支持。这在What is installed for IBM MQ classes for JMS 页面上进行了讨论。

【讨论】:

  • 谢谢。这不是管理员权限,而是缺乏可移植性和依赖。我不能只是在何时干净地部署我的应用程序。
  • 啊,我明白了。但是如果你这样做了,那么你就会遇到许可问题,因为没有可再分发的 WMQ 客户端。尽管这看起来不方便,但请记住,完整的客户端安装是免费的,并且由 IBM支持。我认为要求用户同意许可条款并安装 IBM 的诊断工具似乎并不过分要求免费产品的支持。但后来我有点偏见,而不是开发商或经销商。 :-)
  • 在 Nuget 中没有可用的库意味着您必须在存储库中包含客户端应用程序的 DLL - 远非理想。或者您不包含它,并且每个开发人员都需要不必要地创建一个帐户然后下载/安装它。这似乎是 IBM 获取您所有个人信息的一种方式,因为他们需要一个帐户才能下载它。有很多组织免费提供软件。使用 .NET Core 的 Msft 只是一个示例 - 还记得您必须创建的许可协议和帐户才能下载它吗?我也没有。
  • 您可以从public.dhe.ibm.com/ibmdl/export/pub/software/websphere/… 下载 9.1.0.0 及更高版本(均为 LTS abd CD)的 linux 和 win64 redist 客户端,无需 IBM ID。 allclient jar 也可以在 maven Central 中使用。
【解决方案2】:

从 WMQ bin 文件夹中获取 2 个 dll:amqmdnet.dll amqmdxcs.dll

我发现对于 WMQ 7.5,您需要在 GAC 中注册 2 个 dll 才能使其正常工作。您需要管理员权限才能注册它们。

引用项目中的库以使用本机 WMQ 对象

【讨论】:

    【解决方案3】:

    我为 IBM MQ 开发了一个非常轻量级组件的客户端,请您检查一下:

    http://sourceforge.net/projects/jackibmmqexplorer/

    问候 杰克

    【讨论】:

      【解决方案4】:

      我使用的是 .NET (C#),我只需要两个 dll,您可以从 IBM 客户端安装目录中获取它们。

      amqmdnet.dll amqmdxcs.dll

      然后在您的 .NET 代码中(如果您使用的是 .NET) 使用 IBM.WMQ;

      【讨论】:

      【解决方案5】:

      好的,我们有结果了。

      在不需要本地安装的 Java JMS 库周围使用 .net 包装器。

      HTH

      【讨论】:

        猜你喜欢
        • 2016-12-14
        • 2016-02-02
        • 1970-01-01
        • 2022-11-08
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多