在Windows Docker环境下运行IBM MQ客户端

9
我正在寻找一种方法,在Windows的Docker容器中运行IBM MQ客户端。我知道Docker Hub只提供MQ的Linux实现,但是我不需要完整的MQ服务功能。相反,我希望有一种方法安装MQ客户端并简单地连接到在另一个(非Docker)系统上定义的通道和队列。为了解决这个问题,我已经完成了以下步骤:
  1. 启动一个在命令提示符下运行的Windows Docker容器(作为概念验证)
  2. 拷贝并展开MQ客户端9.0.0.8-IBM-MQC-Win64.zip
  3. 静默安装MQ客户端(例如msiexec /i "c:\temp\Windows\MSI\IBM MQ.msi" /l*v c:\temp\install.log /q TRANSFORMS="1033.mst" AGREETOLICENSE="yes" ADDLOCAL="Client")。 注意:安装成功且无错误
  4. 设置所需的环境变量(MQServer等)并更新路径(classpath,lib,include等)。
  5. 检查与MQ服务器系统的连接是否正常。
我尝试使用 amqsputc.exe MYDOCKER.DS.Q 将消息放入一个工作的,经过验证的队列。返回代码是 MQCONNX ended with reason code 2195。不幸的是,2195 是相当通用的,并且没有其他日志可用于查看。
我理解在虚拟机与容器中运行MQ之间的差异,但由于我只需要客户端访问权限,所以我希望MQ客户端足够轻量级并且可以使用。
如果MQ客户端不可行,是否有一种通过云连接可实现的MQ解决方案?我的旧应用程序是基于Windows的,并依赖于MQ进行作业消息传递。

1
我建议您查看MQ Redist客户端以实现此目的,您只需要解压缩文件,无需安装。您的应用程序使用哪种语言编写?如果是.NET,您可以切换到托管模式,只需要一个单独的dll即可。如果是Java,您可以获取一个jar文件等。请提供更多细节以帮助找到解决方案。 - JoshMc
应该有一个AMQERR01.LOG文件,可能还有一个FDC文件,以进一步详细说明2195(MQRC_UNEXPECTED_ERROR)中报告的问题。 - Morag Hughson
1
你最终解决了这个问题吗? - JoshMc
@DaBozUK 2195是否生成FDC文件。如果您能提供FDC顶部摘要的概述,那么理解失败原因会更有帮助。 - JoshMc
1
@DaBozUK,我在上面的评论中发布了一个带有Redist客户端链接的答案,以及Microsoft C/C++运行时库的要求。 - JoshMc
显示剩余16条评论
2个回答

3

建议您使用IBM MQ可重定向客户端安装程序来替代使用msiexec进行全客户端安装。这个客户端被打包成一个简单的Windows ZIP文件,您可以将它解压到任何您选择的位置。


您可以在知识中心页面Redistributable IBM MQ clients了解更多有关可重定向客户端的信息。

以下链接可以下载IBM MQ可重定向客户端:


IBM 知识中心页面可重定向客户端的限制和其他考虑因素给出了以下要求:

Windows C 运行库
您的计算机上可能已经安装了这些库,但如果没有,请下载并安装以下 Microsoft C/C++ 运行库:

  • Microsoft Visual C++ Redistributable 2008
  • Microsoft Visual C++ Redistributable 2012

可在 The latest supported Visual C++ downloads 中找到每个这些库所支持的可重定向下载链接。


感谢Josh,非常欣赏我们在这里经历的思维过程。安装 MQ redist 非常容易。解压到文件夹中,将该文件夹添加到系统路径中,安装 VC redists(在我的情况下我需要 vcredist 2012 x64)。 - DaBozUK
感谢您授予的奖励,我非常感激。 - JoshMc

1

1
Go仍然需要MQ客户端(redist)。 - JoshMc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接