Running MQGem GUIs under WINE

MQGem with WINEWe spent the festive season partaking of a little wine which resulted in our recent announcement of the capability to run both the MQGem Software GUI applications, MO71 and MQEdit, on Intel Linux. This is achieved by running them under WINE. WINE is a fabulous piece of free software that comes from the WINE project. This software allows a huge range of Windows applications to run, virtually unchanged, on an Intel Linux machine. The software is not an emulator but rather translates Windows API calls to POSIX calls on the fly which means that it is fast and efficient. For most users, wine may even be already installed on your Linux system, for others, it will be as simple as issuing the command:-

yum install wine.i686

N.B. The MQGem GUIs are 32-bit Windows applications which is why you must install the wine.i686 package rather than letting the system decide which wine package you need based on the bitness of your O/S.

However, everybody’s Linux is just that little bit different. If you find when using the above command that it responds with:-

No package wine available.

then this means that the yum source repositories you currently use do not contain the WINE packages. The WINE packages are in the EPEL (Extra Packages for Enterprise Linux) repository which can be added to your yum as described in How can I install the packages from the EPEL software repository?

If the EPEL repository still refuses to play ball, there are a plethora of StackOverflow questions (with answers) to solve Cannot retrieve metalink for repository: epel.
Once you get WINE installed, there is one other piece of the puzzle. If you tried to run the mqmonntp.exe under WINE as-is, the GUI would run, but when you try to connect to MQ using it the following error would be shown.

Error connecting to 'MQG1' RC(2012) Environment error.

So before you do, you should download a new package from MQGem Software, an MQ WINE mapping layer. This is a shared object that maps from the MQI calls made that the Windows application expects to find in mqm.dll or mqic32.dll, and instead calls the locally installed entry points in the libmqm_r.so and libmqic_r.so libraries. These mapping packages are called mqm.dll.so and mqic32.dll.so.

So download the zipped tar file mq_wine.tgz, and untar the file using a command such as

tar -xvzf mq_wine.tgz

You need to put these libraries where WINE will find them. Your two choices are:

  • Put them in /usr/lib/wine
  • Put them where ever you like but ensure that the path is added to WINEDLLPATH environment variable.

Now download the latest version of MO71 or MQEdit and unzip it on your Linux system. We have made one or two minor changes to the programs to fix things we have discovered in our testing of them under WINE, so it is best if you start off with all the fixes to things we’ve found. If you already run MO71 with a Diamond or Enterprise licence then you can also copy your licence file across onto your Linux machine (assuming you’re on the same site for your Diamond licence). If you use an Emerald licence, then you’ll need one for this machine. If you’d like to try it out on Linux before you make your mind up to buy another Emerald, then please email support@mqgem.com to request a trial licence.

To run the program, use this command:-

wine mqmonntp [ MO71 parameters ]

Once you are comfortable that MO71 starts and runs correctly you may want to set up an icon on your desktop to issue this command and possibly run it in the background.

Cheers!

1 thought on “Running MQGem GUIs under WINE

  1. Thanks for this blog post. Using it, I got rfhutil.exe to work under Linux. I found it was necessary to set the environment variable (WINEDLLPATH) otherwise rfhutil.exe could not locate MQ (v9, with a second install of v9.0.1) rfhutil.exe was compiled Jul 3 2014, Build 220.
    Thanks for all your tweets!

    Liked by 2 people

The team at MQGem would love to hear what you think. Leave your comments here.

This site uses Akismet to reduce spam. Learn how your comment data is processed.