In this post we look back on the year that was 2017 and what happened in both IBM MQ, and MQGem Software.

New Versions

Both IBM MQ and MQGem Software products had a number of new releases in 2017.

MQGem Software products

Three new versions of our premier product, MO71 – a graphical administrative product for IBM MQ. Version 9.0.3 was released in March with various new features including the very popular hostname display for your IP addresses, and User Commands. Version 9.0.4 was released in July with the Activity Trace viewer being its main feature, and then version 9.0.5 was released in August to supply the new column filters feature.

In January of 2017 we also made available the ability to run Microsoft Windows graphical programs such as MO71 and MQEdit which use IBM MQ libraries, on Intel Linux under Wine.

Two new versions of QLOAD – our unload/load IBM MQ queues product, were released this year. Version V9.0.1 was released in June with the capability to unload and reload all your queues at once. Then version V9.0.2 was released in July with a customer requested feature providing rated throughput.

Our newest product MQEdit – a live-parsing IBM MQ message editor – also had a new version this year. Version V9.0.2 was released in August providing several more natively understood formats, as request by customers.

Conference Events

There have been quite a number of events throughout 2017 that have had IBM MQ content delivered at them. A separate post contains all the material that is available on-line from these various events.

Online articles

There have been some really great blog posts written throughout 2017. Lots of the guys in IBM Hursley have been blogging about the new features they have been releasing throughout the year. They have a new blog to host all their posts with the creation of IBM Messaging for admins and developers.

2017 has been a great year for all things MQ. MQGem wishes all its customers, readers, and friends a Happy and Prosperous 2018. HAPPY NEW YEAR!

IBM MQ has a feature called Application Activity Trace, which allows you to trace what an application is doing, see the progression of MQ API calls, the objects utilised, the options used, the time taken for each call and so on.

To get the most out of this feature, which writes its output as PCF messages, you need to be able to, not only read the content of those PCF messages, but display them in a way that allows you to drill down into the data, exclude data from your view to allow you to focus on what’s important, search for particular objects in use, or particular reason codes, and so on.

To this end, MO71 now has an Application Activity Trace viewer. At it’s simplest, it allows you to see the progression of MQ API calls, just like the IBM-supplied sample amqsact. However it can do so much more than that.

MO71 Activity Trace Output

Drilling down

Rather than having to decide to view every MQ API call in high detail, the viewer allows you to drill down into the verb you are interested in, without the confusion of seeing high detail of everything else at the same time.

MO71 Activity Trace – Drill down into MQINQ

MO71 Activity Trace API Selection

Filter the output

With a trace that spans many pages full, even when only showing one line per verb, you may wish to reduce the clutter on your screen further. You can filter the output in many different ways to see what you’re looking for. For example, you could choose to hide all the MQPUTs and MQGETs and focus on the other calls, like the MQOPENs.

MO71 Activity Trace with PUTs and GETs excluded

You can filter the output to focus on a particular object or objects that you are interested in, or a particular process id. In fact there are many different factors that you can used to filter down the data to make is easier to view.

MO71 Activity Trace Settings Tab with filtering

Health-checking your application

There are a number of behaviours that MO71 can check for in your application. These are listed on the Health tab, and if any issues are found you will see them highlighted with a red exclamation mark. You can display the instances in a separate window which then allows you to jump into the main output window at the point where the issue was detected.

MO71 Activity Trace Health Tab

The current list of health issues is not final, and if you have any other issues you would like to see MO71 check for, please comment below or get in touch in the usual ways.

The Application Activity Trace viewer in MO71 will help you make sense of, and get great insight from, your tracing of your applications.

The new version can be downloaded from the MO71 Download Page. Any current licensed users of MO71 can run the new version on their existing licence. If you don’t have a licence and would like to try out MO71 then send an email to support@mqgem.com and a 1-month trial licence will be sent to you.

If you’re planning to migrate a queue manager, from one machine to another, or perhaps you’re consolidating some queue managers onto an MQ Appliance, you are probably aware of, and have even become familiar with, the steps required to export your object definitions and recreate them on the new queue manager. There are a number of tools available that can do this for you – including those from MQGem.

What about your messages though?

While it’s generally a good idea to reduce the load, and drain off as many messages as you can prior to migrating a queue manager. For example if it’s in a cluster, suspend it from the cluster before the move, to reduce the number of messages heading its way. Let all the applications drain the queues of messages and so on. However, it’s not always possible to drain every last message from all your queues.

In the latest version of QLOAD, V9.0.1, there’s a new feature that will help out when migrating a queue manager. It allows you to unload the messages from all your queues, with one command. And then you can load the messages onto the queues on another queue manager, with one command (or piecemeal if you prefer). You would combine this with your favoured object definition export tool, and before loading the messages, you’d first recreate the queues on the new queue manager with the exported commands.

Here’s an example of QLOAD unloading all the queues on my queue manager.

qload -m MQG1 -i* -f*

The command will produce the following output to show what has been unloaded. Using the -i (lower case) flag means that the messages are only browsed on the queues and are not destructively removed.

Listing the directory where I ran the qload command, I can now see I have a file for each queue, with an extension .qld. If you prefer to have a different extension then you can alter the command accordingly. For example, use -f*.txt.

I can copy these files to another machine, or simply use a client connection to the other machine accordingly. Then I can run the following QLOAD command to load the messages onto the new queue manager.

qload -m MQG1 -o* -f*

QLOAD will make some checks when you run a load for multiple queues in this way. It will check that all the queues exist that it has files for in the directory matching the file pattern you specified (which assumes an extension of .qld if you just use ‘*’), and it will check that all those queues are empty. If it finds any problems it will report as follows:-

APP1.RESULT RC(2085) Unknown object name.
APP2.RESULT Not empty.
There are potential problems with these queues.
Are you sure you want to continue?

This lets you know to go and define the missing queues if you need them – there are messages to go onto them so the assumption is that you do need them. It also warns you of non-empty queues. Now if you’ve already started using this queue manager, you might be expecting this situation, but otherwise, you should rectify it, and then re-run QLOAD.

You’ll notice that this output does not mention the SYSTEM queues that were offloaded. A generic upload will not upload most SYSTEM queues.
SYSTEM.CLUSTER.TRANSMIT.QUEUE and SYSTEM.DEAD.LETTER.QUEUE are the exceptions. The messages were unloaded to files though, so if you really need to load them you can do so the traditional way, by specifying the full queue name on the command and not using the generic upload.

The new version can be downloaded from the QLOAD Download Page. Any current licensed users of QLOAD can run the new version on their existing licence. If you don’t have a licence and would like to try out QLOAD then send an email to support@mqgem.com and a 1-month trial licence will be sent to you.