Using the Redistributable Client for MQ

IBM recently released Fix Pack 8.0.0.4 which has a number of new features. One of those features is the ability to redistribute the client package with your application(s) instead of having to install the MQ Client on each client machine. The administrative applications that MQGem Software creates, i.e. MO71 GUI Administrator, MQSCX command line, and QLOAD utility are just such applications where this might be very useful.

Jon Rumsey from the IBM Hursley Development lab wrote a blog post explaining what the redistributable client is and providing a link to the download of the redistributable package. The package provides a command script genmqpkg to allow you to trim down the redistributable package to only that which your application(s) need. In this blog post we show you what is required to run any of the MQGem Software applications mentioned above and discuss whether it is worth embarking on this trimming exercise at all.

The genmqpkg script asks you a number of questions to which you supply Y/N answers and these answers will then result in things that you don’t need being trimmed from the package it produces. You may find it helpful to view the script to see what is removed as a result of each answer you give. Sometimes it is easier to answer the question by knowing what you don’t get if you say “N”.

Here are the answers we gave along with some reasoning why.

Generate MQ Runtime Package

—————————

This program will help determine a minimal set of runtime files that are

required to be distributed with a client application. The program will

ask a series of questions and then prompt for a filesystem location to

copy the subset of files to.

 

Note that IBM can only provide support assistance for an unmodified set

of redistributable runtime files.

 

 

Does the runtime require 32-bit application support [Y/N]? Y

Does the runtime require OLE support [Y/N]? N

Does the runtime require C++ libraries [Y/N]? N

Does the runtime require .NET assemblies [Y/N]? N

Does the runtime require COBOL libraries [Y/N]? N

All the MQGem applications are 32-bit ‘C’ applications.

Does the runtime require SSL/TLS support [Y/N]? Y

Does the runtime require AMS support [Y/N]? Y

We assume you want to secure your client connections to your queue managers!

Does the runtime require CICS support [Y/N]? N

Does the runtime require MTS support [Y/N]? N

 

Does the runtime require any administration tools [Y/N]? Y

None of our tools directly use these, but they are useful (see below).

Does the runtime require RAS tools [Y/N]? Y

None of our tools directly use these, but RAS is essential (see below).

Does the runtime require sample applications [Y/N]? N

Once you’ve answered all these questions, you provide a target location for the package, confirm that what you typed is correct and you’re done.

Size

So, having trimmed the package, what is the difference in size you get by doing this? The full package as distributed by IBM is 134 MB. Reducing it with the above questions can take you down to 110 MB which isn’t a big difference really. In fact, as the pie chart shows, the only thing to make a real difference in the size of the package is the decision about whether to include SSL/TLS or AMS (both use the same GSKit files and so if you need one but not the other it doesn’t change the size of your package).

Redistributable Client Package Sizes Pie Chart

Redistributable Client Package Sizes (MB)

So if you were adding the three previously mentioned MQGem applications to your client machine along with with necessary MQ Client package you’d end up with:-

Item Size
MQ Client 110 MB
MO71 2.93 MB
MQSCX < 1 MB
QLOAD < 1 MB
Total < 115 MB

What does genmqpkg mean by ‘administrative tools’?

If you inspect the genmqpkg.cmd script contents, you’ll see that the question:-

Does the runtime require any administration tools [Y/N]?

covers the following list of tools (in both 32-bit and 64-bit forms):-

  • amqicdir.exe
  • crtmqcvx.exe
  • crtmqenv.exe
  • dmpmqcfg.exe
  • mqrc.exe
  • runmqsc.exe
  • runmqtmc.exe
  • setmqenv.cmd

None of our MQGem Software tools require any of these, however they are very useful tools to consider including in your package.

What does genmqpkg mean by ‘RAS tools’?

If you inspect the genmqpkg.cmd script contents, you’ll see that the question:-

Does the runtime require any RAS tools [Y/N]?

covers the following list of tools (in both 32-bit and 64-bit forms where applicable):-

  • isa.xml
  • mqaxlev.exe
  • endmqtrc.exe
  • runmqras.exe
  • strmqtrc.exe
  • mqutx.dll
  • amqxdbg.exe
  • amqldbgn
  • java\lib\com.ibm.mq.tools.ras.jar

Again, none of our MQGem Software tools require any of these, however you wouldn’t want to be without these.

Heads up

In working with the genmqpkg script I did find one problem. If the initial redistributable package is stored on your disk with a directory structure containing spaces, the genmqpkg script fails with “Invalid number of parameters” from the xcopy commands. This is due to missing double quotes on the source parameter on the xcopy command. This has been reported to IBM, but in the mean time, just ensure you save the downloaded redistributable client package to a location with no spaces.

Final thoughts

Given that the package size doesn’t start off particularly big, and given that the only thing worth removing for any serious change in size are the GSKit files used for SSL/TLS and AMS which we would not recommend removing, it seems that just using the redistributable package provided by IBM exactly as it stands is the sensible thing to do. Add to this the statement in the IBM Knowledge Centre which says:-

Important: IBM support is only able to provide assistance with the full, unmodified set of files contained within the redistributable client packages.

I think it best just to stick to that package than to try to trim it down to a smaller size. If you are so short of space that adding a extra 24 MB of package size onto your machine is going to cause problems, I suspect there may be other things you can target to free up some space!

4 thoughts on “Using the Redistributable Client for MQ

  1. It might be a good idea to supply MO71 both with, and without, the redistributable MQ client. Certainly it would help remove the need to install MQ client for those that don’t have it already.

    Like

    • That was certainly on our minds when we saw this feature in MQ V8.0.0.4 and what prompted me to look into the size of the package and whether it was worth producing a trimmed down one. We are currently trying to decide whether it is worth actually including the download on MQGem.com or whether just directing users to the IBM link is the most appropriate thing to do.

      To that end, I’ve create a poll on mqseries.net to gather opinions.

      Like

  2. Thanks for this post! I did not know about this and I absolutely need it on my current engagement. THIS is why I follow the blog and the Facebook account. I responded to the poll – single download is the one I need at my current client but having an option to download separately is helpful too.

    Liked by 1 person

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.