MO71 and referenced objects

There are lots of places in IBM MQ objects where other objects are named. As few examples include:-

  • A local queue name in the transmission queue field of a channel
  • An authentication information object named in the Connection Authentication field of the queue manager
  • A topic object in a subscription
  • A connection ID in when viewing subscription status

When you view such objects with MO71, you can interact with these fields by double-clicking on them.

Viewing already existing objects

If you are viewing an individual object dialog that refers to another object, double clicking on that field will open up another individual object dialog to show the referenced object. It’s just a simple action, but very handy, and will save you time when looking at inter-connected objects or status.

Double click on the Connection Authentication field to view the referenced object

Double-click setting for Queues

This double-click action pays attention to the preference “Double click should browse on queue lists”. If you have this preference checked, then you should hold down the Alt key to get the alternate action which is to display the object definition.

Creating new objects

Another time when this feature of MO71 really comes in handy is when you are defining new objects and their referenced objects. For example, when defining a sender channel and its transmission queue.

Imagine you are part-way through defining the sender channel, and you get to the field where you need to put the transmission queue name. You realise that you haven’t yet defined the transmission queue. Rather than going and starting up a queue dialog and defining it, you can instead type in the name you want the transmission queue to have, and then double click on that field. Again, this is just a simple action, but it saves you time.

MO71 will open up an individual dialog for that queue name, but it doesn’t exist yet.

Double clicking on the transmission queue name brings up queue dialog even if it doesn’t exist

The dialog will have the name filled in, and you can now go ahead and populate the rest of the fields for the transmission queue. Once done, you can press Create on the queue dialog and then go back to the channel dialog, and when you’re finished press Create on that one too.

Press Create on each dialog to create the objects

In the Web Interface

The same inter-connections can also be seen when using the MO71 Web Interface. Referenced objects named inside objects or status, become hyperlinks, so you can click on them to view the details about the referenced object in a web page. In the screenshot below, I’ve open the hyperlink in a new tab to make it clear what happens, but if you just click on it, it will open in place.

In the web interface, referenced objects become hyperlinks

If you don’t have a licence and would like to try out MO71 then send an email to and a 1-month trial licence will be sent to you.

MO71 version 9.2.1 is released

Hot on the heels of MO71 V9.2.0, MQGem Software is pleased to announce that a new mini release of MO71, our GUI Administrative tool for IBM MQ, is now available.

This release was created to deliver three features requested by customers, which are as follows:-

Change the value of a field for many locations at once

If you have lots of queue managers, and you need to change something in the location definition for a number of them, this new dialog can make your life much easier. You can now change values in multiple location definitions at once. For example, if you want to organise your queue managers into various “groupings”, you can make use of network names. Read this post for more about that. To set up network names by editing individual location definitions one by one would take some time, so now you can easily do it with the “Change Multiple Locations” feature of MO71.

Open the dialog from the MO71 File menu; select the queue managers to be changed in the left hand list; choose the field to be updated in the right hand list; type in the new value in the entry box and press Set New Value.

MO71 – Change Multiple Locations dialog, showing Network names

Network names is actually a comma-separated list of names, so not only can you set the entire field, you can add or remove individual items from the comma-separated list using the Add and Remove buttons.

There are quite a number of fields in the location dialog that you might find it helpful to update many at once. Take a look to see if any of those provided would be helpful to you.

Set locations to be members of the same security group

Do you have queue managers using user IDs and passwords? Are a number of them in the same security domain, for example, you have AD set up; or multiple z/OS queue managers in the same RACF; or you are using LDAP for your authentication? To save you having to make lots of changes each time you set up a new password on one of these domains, MO71 now has the concept of a security group. You can indicate queue managers are members of the same security group in their location and then when you change the password of one member of the security group, all other members get that update too. This saves you having to provide the new password on every queue manager on password change day.

This security group is just a name for MO71, it doesn’t have to match the domain, or group name or anything defined in a security repository. It is simply a grouping to tell MO71 that these queue managers all use the same user id and password at connection time.

MO71 Location Dialog – Security Group settings

The description is optional, but if provided will be used in the password prompt box that is displayed when you connect to a queue manager, or press the Set Password button, as shown in the screenshot above.

In order to initially set up the security group each queue manager is in, you can also use the “Change Multiple Locations” dialog described above.

Set CCDT imported location as MVS

You can import locations into MO71 from a number of sources (see these posts for more details). In the case of importing from CCDTs (either binary or JSON format) there is no information in the source file to indicate if a queue manager is MVS or not. However, you can now manually indicate, at import time, that the queue managers being added should be marked as MVS.

Import CCDT Dialog – choose your queue managers

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 and a 1-month trial licence will be sent to you.

MO71 version 9.2.0 is released

MQGem Software is pleased to announce that a new version of MO71, our GUI Administrative tool for IBM MQ, is now available.

The main features of the release are as follows:-


MO71 has had the ability to graph numeric data from your queue manager for many releases. You could graph the depths of queues, for example. This graphing feature of MO71 has been improved with many new features, and additionally you can now also graph MQEV data in the same way.

New graphing features include:

  • Column Stacks
  • Long and Short Average lines
  • Saving of graphing defaults
  • Saving of line defaults
  • Drag resize
  • Improved time labels added to graphs
  • Auto-range of axes
  • Column relative sizing and overlap
  • Pie chart labels

This slideshow requires JavaScript.

Improvements to MO71 Web Access

Several improvements have been made to the web access feature in MO71.

  • MQEV objects
    MQEV objects and status can now be shown on the web access interface.
    View MQEV events through the MO71 web interface
  • HTML5 templates
    The template HTML files that are provided with MO71 now use HTML5, and the “twisties” generated by MO71 in the navigation area, now use HTML5 <details> and <summary> tags, so now there is no need for JavaScript for them.
  • New dialog list combinations in qmlist[]
    When you build your navigation section, you can choose which commands you want to see shown there. There are some new options now, including “all”, “allmq” and “allev”.

    <h2>Queue Managers</h2>
    %[qmlist : grp : allmq : linkhtml=(target="dataframe")]

Import from JSON CCDT file

You can seed your MO71 location definitions by importing data from a CCDT, an MQ Explorer exported config, locally defined queue managers, another MO71 config file, and now a JSON CCDT file.

More information on a Queue Manager list dialog

Information from the location definition can now be displayed on the queue manager list dialog. This includes fields that are part of connecting to the queue manager, such as channel name, connection name and user id; and also fields that help you sort and group your queue managers, group and network names.

Set Default Lists – now grouped

The menu for all the Set Default Lists dialogs was getting pretty long, so it has now been grouped up. If you’ve never used Default Lists, read this post to learn more about them and what they are for.

Service Objects can be compared

MO71 can compare the definitions of many objects types. Service objects are now one of the types that can be compared.

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 and a 1-month trial licence will be sent to you.

Running Cluster Channel Commands in MO71

Our graphical administration tool for IBM MQ, MO71, allows you to issue all sorts of IBM MQ administrative commands. This blog post is going to specifically take a look at cluster channel commands.

As an MQ administrator, you are probably aware that not all channels that might be running on your queue manager, have channel objects. This is true for those automatically installed cluster sender channels that get created based on the cluster-receiver template from another queue manager.

Even though they don’t have the traditional channel object, you might still want to run commands against them. Some of those commands you might want to run require that the channel is not currently running, for example a START CHANNEL command! Yes, it is perfectly reasonable to want to manually start a cluster-sender channel, even though you know that they get automatically started when messages need to flow.

How then, can you issue a command against a cluster channel when it doesn’t show up in the channel object list, or even the channel status list?

In MO71, this is handled from the “Cluster Queue Manager List” dialog, an example of which is shown below. The “Cluster Queue Manager List” dialog uses the data from the DISPLAY CLUSQMGR or Inquire Cluster Queue Manager MQ administrative commands.

View and manage your MQ Cluster channels from this list dialog

This is a very useful display to use when managing an MQ cluster, showing a combination of cluster information, such as the name of the cluster, and the role the queue manager plays in the cluster, for example is it a full repository; all the channel definition attributes, such a heartbeat interval; and the channel status. If you’re not familiar with all the information available through this command, and this list dialog, I encourage you to get to know it.

You may also find the MO71 Network view useful when getting to know a cluster. It gives a very good at-a-glance view of the cluster, and who does what, and allows you to drill down into the objects. In addition, all queue manager icons, as elsewhere in MO71, have a right-mouse-click context menu for commands just like the main window.

View your MQ cluster using the MO71 Network view

The Network view allows you to create a diagram of your clustered queue manager (as seen above), and it pictorially shows you the status of your channels. In addition, in the verify view on the left, you can drill down to see all object types (including cluster objects) and any problems detected in the objects in your queue manager. See the “Mini-Health Check for your Queue Manager” blog post for more details about MO71 problem checking.

See the resolution of objects, and detected problems

If you don’t have a licence and would like to try out MO71 then send an email to and a 1-month trial licence will be sent to you.

I was prompted to write this blog post as a result of a discussion about a recently raised MQ RFE.

Does MO71 log the commands it issues?

This is a question that we get asked quite regularly, so we thought it worth writing up the answer as a blog post.

If you’re asking this question, there are two reasons that immediately come to mind that might be behind your question:-

  • You just want some sort of documentary log, a history of what you have done to look back on.
  • You need a log of commands issued for audit reasons.

However, applications logging their own activity have a number of disadvantages. For example, if the log file were on your own machine, then you have to manage those files, house-keep them as they get old enough to delete, etc. Flat log files are not very easy to search through, say to find out what happened last weekend, or all the activity associated with a particular object.

If you want something for audit reasons, using a log file on the user machine has a number of additional problems:-

  • Firstly, it is not audit proof because
    • It is easy to circumvent
    • It is incomplete since other tools might be used to issue commands to the queue manager
    • The user could switch off the logging feature in their tool, or install a new version of it to avoid the logging configuration
  • Secondly, it is hard to collect the logs from all the different users’ machines to have the complete picture.
  • Thirdly, if individual applications are creating the log file, e.g MO71, runmqsc, MQ Explorer and so on, then you get a myriad of different log file formats.

To solve all of the above, IBM MQ Queue Managers have a feature called Command Events. When enabled these result in an event message being emitted by the queue manager for any command issued (with a tweak to avoid DISPLAY commands if you wish – see EVENT Switches). This is a far better solution than logging in the user-facing tool (e.g. MO71), for reasons such as:-

  • Central collection is better because it is easier to obtain a complete record, since the records are not segregated across many user machines
  • It cannot be subverted by non-privileged users
  • The format is consistent regardless of the tool used by the user
  • No updates are required to any tool, the logging capability is available immediately for all applications

If all you want is something to pass an audit, command and configuration events might be enough. But if you want a record for diagnostic purposes there are other things you might wish to add to the record of what happened, such as:-

We have been recommending using Command (and Configuration) events rather than logging at the user-side MQ administration tool, for many years. Previously the problem with this recommendation was the collection and searching of the event data. However, we have recently released a new product, MQEV, which will help you in this regard. MQEV will collect, process and store your event data, and make searching and report building very simple. You can now easily get the information from the event messages that your IBM MQ queue manager is designed to emit. If required you can process the events real-time, and make changes immediately, or even raise alerts to your MQ administrators for follow-up.

Lumberjack image courtesy of vectorolie at

Lots of viewers of MQ status data

Lyn Elkins recently published a post about the costs of object creation/deletion, and specifically the cost of using temporary dynamic queues with monitoring tools looking at a queue manager on z/OS. Read her blog post here:-

MQ SMF – Data Manager Object totals

She mentions lots of people watching a problem and constantly refreshing their MQ screens to see if the problem goes away, causing more work on the queue manager, and thus not helping the poor CPU constrained queue manager in the process.

This sort of scenario is where MO71’s web interface becomes very useful. A single instance of MO71, and therefore a single connection to the queue manager, with a single reply queue, can serve up the web pages showing MQ status pages, which then lots of people can be refreshing to their hearts content. Regardless of how many people are refreshing the webpage, or how often, MO71 will only request new data from the command server at a sensible request interval (which you can configure in MO71’s preferences).

Here’s a video showing the Web Access capabilities of MO71, with the start time set to show an automatically refreshing department display example on a smart TV – which of course could also be shown on a department monitor, or everybody’s own machine. Earlier in the video it also demonstrates how the data contents can be incorporated into any webpage of your own choosing so the queue list data can be amongst your own department style webpages with links to other content or MQ displays.

P.S. All our monitoring tools have the choice of whether to use a temporary reply queue or a pre-defined one.

Considerations for running MO71 in a shared environment

MO71 Shared EnvironmentMO71 is run by a number of our customers in a shared environment, that is any setup where multiple users in a department want to ensure they are using the same version of the executable, similar queue manager configuration, and share any resources that would make their lives easier. Over the years we have added a number of features to make this kind of collaboration easier.

  • MO71 executable size

    It is probably worth saying right up front, that the MO71 executable is small enough that loading it from a network drive is not onerous. We have many of our customers successfully doing this without any problems. It is only around 3MB in size, and thus small enough to easily run from a USB key if you wanted to.

  • Location of the MQMON.CFG file

    The MQMON.CFG contains all your hardened configuration from the details of where your queue managers are, to the colour scheme you want to see on all your dialogs. By default the MQMON.CFG file will be written in the same directory as your executable. If the executable is stored in a shared directory, you may not want your MQMON.CFG file to be stored there too. You can choose a different location by starting the mqmonntp.exe with the -f parameter to give a different directory name for your configuration to be stored in.

    While it is possible to have numerous users all running from one MQMON.CFG file, you would have to put up with a consensus on colour schemes, column arrangements, dialog screen positions, fonts, histories and more, and of course everyone’s changes would be applied to the same file. Instead we recommend having your own version of the MQMON.CFG file. There is some data that is useful to have centralised, and for that we suggest using a Master Config file – more in a moment.

  • MQGem Licence File
    • Location

      All the MQGem Software products are licensed by means of an mqgem.lic file, which by default is located in the same directory as the executable (even if you have used the -f parameter to change where your configuration is stored). If your department has purchased a Diamond or Enterprise licence, then it makes sense for that licence file to also be stored centrally with the executable. However, if you have an individual Emerald licence, then you have a choice; you could either store it locally, and you can change the location MO71 will search by setting the MQGEML environment variable to point to a different directory, or you could combine all the Emerald licences together into one mqgem.lic file, and store that centrally. This would have the advantage that updating the licences could be done centrally without the individual users being aware.

    • Renewal and reminders

      When using central licence management (see above) it may not be appropriate for every single user to be notified when the licence is running out. By default MO71 will start reminding you when there are 30 days left on your licence. One model might be to have most users tune down these notifications by setting the MQGEMLR environment variable to a small number of days, say 7. Then one or two system administrators, perhaps the ones with control over the shared drives where the executable and licence files are kept, are responsible for renewing the licences and they keep the notifications on, and perhaps even set it to a longer time frame such as 90 days. Remember, you don’t have to wait until there is only 30 days left before renewing your licence. You can renew at any time, and you don’t lose any time, your new licence file will simply extend the current licence by whatever period has been purchased. In fact we would recommend that you renew your licences well before the expiry period to avoid any unexpected outage as a result of a sluggish Purchasing Department 😉

    • Licence Command

      When using licences that are renewed on your behalf, you may prefer to have a local copy, and MO71 provides a licence command, configured on the General tab of the Preferences dialog, where you can add a command to copy a new version of your licence file from a central location once MO71 detects you have MQGEMLR days left. This means that you don’t have to personally remember to go a take a new copy, since MO71 does this automatically for you.

  • Master Configuration File

    One of the reasons some MO71 users previously chose to have a centralised (and thus shared) MQMON.CFG file, was because they wanted the details of the queue managers to be centralised. This led us to add a feature to MO71 where you can provide a master configuration file which contains the common queue manager details, but you still have your own configuration for all the personalised things we mentioned earlier. Each time MO71 starts up, it compares the queue managers configured in your setup against those in the master configuration file, and adds, or changes, any locations in the master file to bring your configuration up-to-date. Note that you can still have your own queue manager definitions in addition to those in the master file. To specify a master configuration file to use, you point to the file with the -j parameter.

  • Shared Filters

    MO71 has a very powerful filtering language, and many of our users have written very useful, and often complex filters. Using the Filter Manager makes it easier to create filters when they start to be complex, and beyond what can be seen on a single line. Each filter is given a name in the Filter Manager. You can share these filters with all your colleagues with a Shared Filter file which they can import in a similar manner to the Master Config file above. At startup of MO71 the filters in the file are merged into the local configuration to ensure you have the latest set of definitions.

I hope these points help you when thinking about using MO71 in a shared environment. If you have any questions, or extra points to consider, please don’t hesitate to get in touch, either with a comment below, or through any of the usual channels.

If you don’t have a licence and would like to try out MO71 then send an email to and a 1-month trial licence will be sent to you.

MO71 User Columns enhanced in V9.1.2

The status output from IBM MQ contains a number of fields which steadily increase as things happen. The table below contains a few examples of these. I’m sure you have used a number of these to determine whether, for example, “is this channel actually doing anything?”, by hitting refresh on a GUI screen or repeatedly issuing an MQSC command to see if the numbers are changing.

Status Field Name MQSC Keyword
Channel No. of messages MSGS
Bytes sent BYTSSENT
Bytes received BYTSRCVD
Buffers sent BUFSSENT
Buffers received BUFSRCVD

In the latest version of MO71, the user columns feature has been enhanced to allow you to turn these fields into a rate field. Here’s how…

I’m going to use the Bytes Sent and No. of Messages status fields on a channel, to determine the transfer rate (bytes/second) and the message rate (messages/second) of my channel. I’ll start with the No. of Messages field. My filter on a Channel Status List will look like this:-

usrcol("Message rate", MSGS, text+diff+rate);TRUE

Filters, as you may already know, are a boolean expression, so just in case my user column has a value of zero (which would result in the row not being displayed), I finish off my filter with “TRUE” just to ensure each row is always displayed, even if there is a zero value.

I have used two new options on my user column – the ‘diff’ option and the ‘rate’ option. These will often go hand-in-hand. The ‘diff’ option instructs MO71 to calculate the difference between this value and the previous value – handy when using these numbers that just steadily increase. If you combined the use of ‘diff’ with the auto-refresh option on list dialogs, you would have some semblance of a rate. However, also adding the ‘rate’ option instructs MO71 to calculate the rate for you using the time period since the last refresh of the dialog (so you don’t have to use auto-refresh).

Note: While most of the time you will likely use ‘diff’ and ‘rate’ together, there are some instances where you might only need one. For example, the output from RESET QSTATS is already showing you the difference from last time, so in that case all you would need is the ‘rate’ option.

I also want the transfer rate, so I’ll add another very similar user column to my filter. Here’s the addition:-

usrcol("Transfer rate", BYTSSENT, text+diff+rate+bytes)

This looks almost identical to my first user column. The one difference is the ‘bytes’ option. This marks the new user column to have a unit of Bytes, and the new Units feature of MO71 kicks in and labels it according to your preferences for units.

Here’s a screenshot of both user columns in action.

MO71 User Column Rates

Channel Status List Dialog with rates in user columns

Another set of status fields output by IBM MQ includes counts of things that, rather than steadily increase, tend to waver around. Some examples of these types of fields are shown in the table below.

Status Field Name MQSC Keyword
Queue Queue Depth CURDEPTH
Open Input Count IPPROCS
Open Output Count OPPROCS
Oldest Message Age MSGAGE

Fields like these, and of course also your rate fields from the first half of this post, can be averaged using new user column features in the latest version of MO71.

To demonstrate, here’s a filter to create a user column showing the average queue depth.

usrcol("Average Depth", CURDEPTH, text+avgl);TRUE

In the same way that IBM MQ indicator fields have a short term and a long term rolling average, MO71 user column averages use a similar concept. You can choose a short term average, ‘avgs’, or a long term average, ‘avgl’, depending on how you want spikes in the numbers to be shown – do you want anomalies to be “forgotten” by the average number fairly quickly, or to affect the average number shown for a longer period.

I’m also going to add another filter to calculate the average message age.

usrcol("Average Age", MSGAGE, text+secs+avgl);

Adding these to my queue status display gives me a way to tell that there had been a spike of messages on my queues, even though everything is all good now, the long term average takes a while to forget about the spike and allows me to see a past problem.

MO71 User Column Averages

Queue Status list dialog with some User Columns displaying averages

Of course, the beauty of these user columns is that you are only limited by your imagination. See what you can come up with.

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 and a 1-month trial licence will be sent to you.

Field Units in MO71

As an MQ administrator you are no doubt painfully aware that not every time based field in MQ is in seconds, and that not every size based field in MQ is in bytes. How many times have you forgotten that expiry is measured in tenths of a second?

The latest version of MO71 has made a number of changes to aid you in your endeavours when reading or entering the many and varied numbers that form part of your queue manager configuration.

Unit Labels on Field and List Titles

The first, and perhaps simplest, aid to your memory is that all fields which have some sort of unit, have this unit appended to the end of the field and list titles. This screenshot shows full length unit names on the labels on the left of the screen, but you also have the choice of short names and abbreviations (more later).

MO71 Unit Field Labels

MO71 dialog showing units on field labels

You can also choose to have these labels on your list dialogs, next to the field titles in the column headings. Again, you can choose between full length unit names, short names or abbreviations. This screenshot shows the short form unit names in the titles.

MO71 Unit List Title Labels

MO71 list dialog with unit labels in the column titles

Unit Labels on Field and List Values

In addition to unit labels on titles, you can also (or instead) have the values annotated with units. There are various different patterns you can choose to display with your values, and you can choose a different pattern for values which represent a size, values which represent a time and percentage values. Each style can be set to “Auto” which allows MO71 to display them the best way. But you can choose other display types – experiment with them and see which suits you best.

The screenshot below shows an example of each:

  • Time fields
    • HB Int: showing the values as minutes which is easier to understand than having to think about 300 seconds
    • Comp Time: showing an indicator which works in microseconds
  • A size field, Bytes sent: showing some values in bytes (B) and some larger values as kilobytes (KB)
  • A percent field, Comp Rate: showing an indicator which works in percentages.
MO71 Unit values

An MO71 list dialog showing a selection of Unit values

Label choices

As noted earlier, you have some choices in the types of labels you can use. The table below shows some examples without providing the full set – the pattern should be clear from this subset.

Unit Type Full Short Abbreviation
Time Seconds Secs s
Size Kilobytes KB KB
The difference between Short and Abbreviation here is the space between the number and the unit
Percent Percent (only on titles) % (used everywhere else)

You can choose exactly which units you wish to be displayed in the various different places in the Units tab of the preferences dialog; including, if you wish, to turn them all off. There is different configuration for normal dialogs, exported reports and HTTP output, as with different uses you may, or may not want units added to these.

MO71 Unit Preferences

The Preferences tab in MO71 to control how units are used

Transient Status fields

When looking at configuration fields, it is probably important to see the full detail. So for example, if you have a queue with a Max Msg Length of 32,762 bytes that will be displayed as 31KB 1018B (that’s 6 bytes short of 32KB). However you could choose to display sizes with the “One Decimal” option, and then it would be shown as 31.99 KB. You’ve lost a little detail here with than choice of display.

However, there are some fields, that we’ve called transient status fields, that are output only, and regularly changing, where such a display would actually be completely appropriate. So, you can choose “Auto” or “Parts” for most of your fields, but set “One Decimal” for your transient fields. The list of fields we consider to be transient are marked in the tables here, which lists all the fields in MO71 that have units.

Entering values

Finally a word on entering values for fields with units. If you have a field that is a time field, like Heartbeat interval, you can type in “300” or “5 mins” and MO71 will interpret it for you and send the appropriate number to the command server. This could be very handy the next time you need to set MaxMsgLength to 100MB – no longer do you need to calculate what that is, just type in “100MB” in the entry field in MO71 and it will do it for you.

You also have a choice whether the entry field shows the formatted version of the value, e.g. “100MB” or the actual number that MQ provides. Select the “Units Entry Field” option in the preferences to choose between the two behaviours.

Here at MQGem, we hope these changes will help in those moments where you are unsure of the unit, and save you from interpreting MQ output in a way that is out by a factor of 1000 – “was that microseconds or milliseconds?”

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 and a 1-month trial licence will be sent to you.

Working with MQ Dates and Times in MO71

The administrative commands in IBM MQ contain a number of date and time fields, for example when a channel was started, or when an object was altered. These are returned as a pair of fields, one for the date and one for the time.

Previously, if you wanted to sort a list of items into date order you could use MO71’s secondary sort to help with this. First click on the date column to sort by date first, and then hold down the Alt key and click on the time column to add that as a secondary sort. You’ll see a big arrow and a little arrow in the column headings to show the primary and secondary sorting fields. You can also see the sorting fields and change them through the “Alter List…” dialog.

MO71 Dates Sorted Two Fields

MO71 queue list dialog sorted into time order using the two MQ provided fields

However, this did mean that you couldn’t do any further sorting because you had used up the secondary sort field on getting the list in time order. The new version of MO71 provides a combined date and time field for each of these MQ field pairs, which means you can sort into time order with a single column heading click, and in addition you can sort on another attribute as well if you need to. Just use the “Alter List…” dialog to switch out the original two MQ date and time fields, for the combined one provided by MO71, and click on the column heading to sort by that new column.

MO71 Dates Sorted Single Field

MO71 queue list dialog sorted using a combined date/time field

There are some other advantages to this combined date/time field. One of these is the format. In the example above you can see the date is formatted a little differently to how MQ provides it. As the MO71 user, you can control the format of this field. You can use a format that isn’t even string sortable and MO71 will still ensure that it is sorted in date order for you (as illustrated by the above screenshot). This means that if your preference is to swap round the day and month, the column will still sort correctly into date order. The format of these combined date/time fields is controlled in MO71 Preferences, under the Time tab. You can choose from a number of provided formats from the “Time Sample” drop down, or edit the “Time Format” field to create your own using the various substitutions available. To make recent activities pop-out more from a list, you can have additional formats for things that happened today and yesterday, or in the last 24/48 hours, by adding formats to those fields too. For example, to omit the date or add the string “Today” instead of the date. Whatever catches your eye the best.

MO71 Dates Preferences Formatted Time

MO71 Preferences, Time Tab allows you control of the Formatted Time

Viewing multiple Queue Managers

We are all aware that the times stored in MQ messages are in UTC, but all the other time fields in the MQ administrative interfaces are returned in the local time of the queue manager. Some of you are lucky enough to work in the same time zone where your queue managers reside, but for the rest, you need to be aware of the time zone of the queue manager when you are viewing data that includes dates and times. Looking at the screenshot below which shows three international queue managers in different time zones, you might initially be forgiven for thinking that they had all been started at the same time.

MO71 Dates Queue Manager List Start Times

An MO71 Queue Manager List showing Start Times

However, this assumption does not take into account their timezones. In the new version of MO71, with the combined date/time field, you are able to see any of the date and time fields returned by the queue manager converted from the known timezone of the queue manager into your own local timezone. IBM MQ does not have a way for a remote administrator to know what timezone a queue manager is in, so on the MO71 Location Dialog you can select a timezone for your queue manager if it is different to your own timezone.

MO71 Dates Queue Manager Timezone

MO71 Location dialog – set the Queue Manager Timezone

Once you have set the timezone, you can see these new combined date/time fields taking into account their timezone, and the above display can now look as follows. In addition this screenshot illustrates that the chosen timezone from the location dialog can be added to this display which acts as a handy reminder of where this queue manager is, especially if your queue manager names don’t make it as obvious as my example ones do!

MO71 Dates Queue Manager List Timezone

An MO71 Queue Manager List showing the Timezone of the QMgr and start dates converted to local time.

With this mechanism it is now very simple to sort date/time fields across multiple queue managers so that they are displayed in the order that things happened, rather than just the time that it happened in that location.

The relative times that events happen can be important to notice when looking for cause and effect in problem diagnosis. This new version of MO71 now makes this easy to do, even across multiple time zones.

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 and a 1-month trial licence will be sent to you.