I'm looking for a solution to run IBM MQ Client under a Windows Docker container. I know that Docker Hub only provides Linux implementations of MQ, however, I do not need full MQ Server capability. Instead, I'm hoping there's a means to install the MQ Client and simply connect to a Channel and Queues defined on another (non-Docker) system. To approach this, I've done the following:
Spun up a Windows Docker container running under a command prompt (For proof of concept)
Copied in and expanded MQ Client 9.0.0.8-IBM-MQC-Win64.zip
Silently installed MQ Client (e.g. msiexec /i "c:\temp\Windows\MSI\IBM MQ.msi" /l*v c:\temp\install.log /q TRANSFORMS="1033.mst" AGREETOLICENSE="yes" ADDLOCAL="Client"
).
Note: The installation was successful and without error
Established required environment variables(MQServer, etc.) and updated paths (classpath, lib, include, etc).
Pinged the MQ server system to verify connectivity.
I attempted to put a message on a working, verified queue using, amqsputc.exe MYDOCKER.DS.Q
. The immediate return code is MQCONNX ended with reason code 2195
. Unfortunately, 2195
is pretty generic and there are no other logs available to review.
I understand the differences between running MQ under a VM versus a container, however since I only need Client access, I was hoping MQ Client was lightweight enough to be usable.
If MQ Client is not a viable direction, is there an MQ solution which might be doable via a Cloud connection? My legacy application is Windows-based and relies on MQ for job messaging.
The difference between an IBM MQ server and an ordinary queue manager is that a server has a dedicated communications link with each client. For more information about creating channels for clients and servers, see Configuring distributed queuing.
Instead of installing the Full client install using msiexec
, I would recommend that you use the IBM MQ Redistributable client install. This is packaged as a simple zip file for windows which you can extract into any location you choose.
You can find more information about the Redistributable client on the Knowledge Center page Redistributable IBM MQ clients.
You can download the IBM MQ Redistributable clients using the links below:
IBM MQ 9.1 Redistributable client.
IBM MQ 9.2 Redistributable client.
Note: IBM MQ 8.0 is out of support as of April 30th 2020 and IBM MQ 9.0 is going out of support on September 30th 2021.
The IBM Knowledge center page Limitations and other considerations for redistributable clients gives these requirements:
Windows C runtime libraries
You might have these libraries on your machine already, but if you do not, you need to download and install the following Microsoft C/C++ runtime libraries:
- Microsoft Visual C++ Redistributable 2008
- Microsoft Visual C++ Redistributable 2012
The download links for the redistributable downloads for each of these libraries can be found at The latest supported Visual C++ downloads.
A possible alternative (and lighter) approach: Write a Go app using the IBM mq-golang package and deploy that in your Windows docker container.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With