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