MO71 Export Enhancements

A minor update to MO71 has just been released with a couple of customer requested enhancements to exporting.

Blank Fields

The first enhancement adds an option “Blank Fields” to export dialogs, both on general dialogs, and on the Location Dialog. Now for MQSC you were always given blank fields anyway, after all when reapplying your saved config, setting a field to blank is just as important as setting it to a specific value. This feature allows your Text, JSON, XML and CSV exports to include all the blank fields as well. N.B. List dialogs exported in CSV already had a blank fields option (see here).

You can select to export the blanks fields too

{
  "location": "MQG1",
  "description": "IBM MQ for z/OS - V9.2.0",
  "queueManagerName": "MQG1",
  "platform": "MVS",
       ...
  "deadLetterQueue": "",
       ...
  "repositoryName": "",
       ...

Ancillary Queue Manager Info

For many releases the Queue Manager dialog has also shown the output from a DISPLAY QMSTATUS command on the Distributed platforms. More recently, on z/OS, the DISPLAY ARCHIVE, LOG and SYSTEM commands were added in a similar way.

When you export the queue manager dialog, the data from these additional tabs was exported (because all the data shown is exported) – apart from when using MQSC because these are not fields you can ALTER. When you use the location dialog to export all your queue manager configuration, this additional data was not exported because only the queue manager object was retrieved.

The Export tab of the Location dialog now has an additional item you can select in the list of objects to export to allow you to choose to export this additional data in Text, JSON, XML and CSV. It doesn’t apply when using MQSC, so it is not exported in that case.

Export ancillary queue manager data when you export the whole queue manager


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.

Advertisement

Exporting all Object Definitions

It is often a requirement to be able to obtain a copy of your IBM MQ Queue Manager object definitions. This can be for numerous reasons and in various different formats too.

MQSC Perhaps the most common one is to have a backup of all your object definitions in the form of the MQSC DEFINE (or ALTER) commands required to recreate all those objects should the queue manager need to be re-created (or copied).
JSON Downstream processing of object definitions may occur to ensure compliance with various overall business requirements. Often such processing requires input in JSON format.
XML Documenting or archiving your entire MQ estate, perhaps using something like MQDocument is also a common requirement for people managing a large number of queue managers.
CSV Sometimes you just want to throw the data into a spreadsheet to analyse something.
Text When no other format requirements are present, sometimes text is all you need.

MO71 is able to export all your MQ object definitions in any of the formats above, automatically. You don’t have to manually bring up a list of each object type and export each type manually (although you can do that too). You can configure each location to automatically produce a file containing all the object definitions for each queue manager.

Exporting all MQ object definitions on a single Queue Manager

First let’s look at how you would achieve this for a single queue manager, before I also take you through how to set this up for hundreds of queue managers (Hint: it’s not to configure it individually 100 times!)

In your MO71 location dialog for a queue manager, there is an Export tab. It looks like the screenshot below.

MO71 Location Export Tab

To automatically export all your objects follow these steps:

  1. Select the object types you want to be exported
  2. Provide the file name you want to have the objects exported to. This can use various file name inserts (more details here), like the group name you have arranged the queue manager locations in, or the queue manager name. Using these inserts may not seem useful when looking at an individual queue manager, but you will see in a moment how useful this can be.
    • Since there are inserts in the name, the resultant file name this queue manager will use is shown underneath
  3. Choose the export format type you wish to use – it is one of the five described at the top of this blog post.
  4. Convey the frequency of the exports. There are several different types of format for this field:
    • You can ask for this to be done every day at a particular time
      Everyday 19:00
    • You can select a day of the week and a particular time
      Monday 19:00
    • Or you can suggest that you don’t want your exported data to be more than, say 1 week old, and get a weekly export
      1 Week

    Bear in mind that MO71 will kick off the export once the time since last export passes 1 week old, say, and it may take some time to complete the export, say because there are lots of other exports all kicked off at the same time, or because the connection to a particular queue manager is slow, and so on.

  5. You can also choose whether you want default and system objects, and default differences (more in a moment).
  6. If you are exporting objects from a z/OS queue manager that is a member of a Queue Sharing Group, you can also choose which disposition to export (see more details in this blog post).
  7. Finally, check the “Auto Export” check box at the top and press Apply and the export will take place at the time you requested. Alternatively, you can press Export Now for it to be done immediately.

Default Differences

Depending on the reasons why you are creating a copy of all your object definitions, you may find it very useful to reduce the amount of data exported by selecting this setting.

This setting causes MO71 to compare each object definition against the SYSTEM.DEF* object for that particular type of object and only record the attributes that are different in the output. Recording the objects this way and additionally saving the Default objects still gives you a full set of data but will make a much smaller file. The more objects you have the bigger the saving. Very useful for MQSC definition creation. Doing this and not saving the Default objects means when replayed you will get the default settings for the new queue manager, which may be what you want in other scenarios.

Exporting all MQ object definitions on many Queue Managers

Now that you understand the settings from the perspective of a single queue manager, we are going to take a look at how to set these for many queue managers at once.

From the MO71 File menu you can select “Change Multiple Locations…” to bring up the dialog you need. You can read more about this dialog in another blog post here. There are a lot of fields in this dialog, but helpfully if you type “export” for your “Fields Search Text” at the top of the right-hand side “Locations Fields” list, then all the fields you need to work with today will be shown.

Ensure the queue managers that you want to change are shown and selected (have a green tick beside them) in the left-hand side “Locations” list. Then work through the fields in the right-hand side “Locations Fields” list. I suggest leaving the “Auto-export” field until last as this controls whether the export is done and you want to get all the other fields in place first.

At this point, having done the set up for a single queue manager, it should be clear what each of the fields do. As you select each field, the values for each queue manager will be shown. For example here, all my selected queue managers have the value “No” for “Export Differences from Default”. I can very quickly set them all to “Yes” in this dialog.

MO71 Multi-Location – Export Differences from Default

It is worth making an explicit mention here of the “Export File” field. Earlier we mentioned the use of file inserts, which for the configuration of a single queue manager may not have seemed worth using. But now that you are configuring multiple queue managers it becomes very apparent how useful these inserts are. Having configured one queue manager already, the drop down box showing the values already in use elsewhere, shows the string I already configured which I can now very easily select and use for multiple locations at once. Alternatively, I can type in the string I want if something different is needed.

MO71 Multi-Location – Export File

Export Now

You’ll have noticed that there was an Export Now button on the location dialog. However, if you want to do this for many queue managers without opening every location dialog, and without waiting until the next export frequency passes, there is a new menu option in the Action menu – Export All Shown. As with the Connect/Disconnect All Shown menu items, this will apply to the list you may have filtered using the main window “Search Location” box, but additionally, will only be able to export those locations where you have a file name specified and at least one object type selected. Using this new action menu item will show a message box to confirm your intention before going ahead. The message box will tell you how many locations will be exported.

Much of what is described above has been part of MO71 for many releases, however, to complete the story there were a few additions in a minor update to MO71 recently. Get the latest version and try it out.


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.

MO71 Graphing Improvements

There are various features in MO71 that make use of graphing, some of which are newly introduced in the V9.3.1 release:

  • Attribute Monitor Graphs
  • MQEV Accounting & Statistics Data Graphs
  • Pie Charts for list dialog columns
  • Application Activity Trace
  • Trace Message pie chart

There are various graphing improvements in the latest version of MO71 that apply to the graphing in all of those places.

Preferences Dialog

In MO71 V9.3.1 the preferences dialog gets a new tab “Graph”, which allows you to set your preferences for most of the things you can configure on a specific graph. If you always like to have a certain background colour, or you always like to see labels on your pie charts in a certain way, then you can configure the defaults to be used in the preference dialog and not have to edit them every time you show a graph. This doesn’t preclude you editing any of them in the graph specific settings as well, but it will save you time to set your usual requirements this way.

The new Graph tab in MO71 Preferences

One of the things you can set in the preferences dialog is the colours to use for your graph lines. We provide a couple of default schemes, or you can set them all yourself. Of course, you may have graphs with more than 8 lines/columns/pie segments, so MO71 will base the colours used for lines 9+ on the colours you pick here and we hope they will be to your liking. If not, you can edit them in the graph itself. You can also choose the symbols used by default here, as we’ve added a number of new symbols for you to use. You can also change the colour of the axis, labels and grid lines so they work well with your chosen background colour.

There is also a Sample Graph that can be instantiated from this tab to let you quickly see how your choices look.

In the sections that follow, you can use the feature in question either from the preferences graph or from the graph options dialog which can be opened by right-clicking on any graph (apart from the Trace Message pie chart).

Logarithmic Y-axis

If you are graphing data that contains a wide range of numeric values, such as queue depths which are sometimes single digits, and sometimes much larger depths, you may find using a logarithmic Y-axis is a better way to view the data. The advantage of using a log scale is that it is easier to see percentage fluctuations over such a wide range. So, for example for a queue depths you can see the queue depth changing from 2 to 3 as easily as you can see it changing from 2,000 to 3,000. You have the choice of a base-10 log or a base-16 log scale for your Y-axis, in addition to the linear scale that was available in previous versions.

You can use a logarithmic Y-axis where it helps

Pie Chart – Other

When viewing data as a pie chart, there will be times when some of the segments are not very large. When you have large numbers of these it can make the pie chart look quite messy, and it is hard to decipher what the small slivers represent. In this release of MO71, you can set a threshold (as a percentage) below which these small segments in a pie chart are combined into a single segment labelled “Other”.

The threshold only applies if there are more than ten segments, and the “Other” segment gathers together at least four segments.

An MO71 pie chart with the “Other” segment highlighted

This screenshot also illustrates another new option you can use and that is to force your pie chart to be drawn as a circle. Without this setting, your pie chart will be drawn to fill it’s rectangle. To be completely correct, in segment sizes, pie charts are supposed to be circles, but for many data sets it is not important, it can clearly be seen where the large segments are. When exact segment sizes matter, use the “Circle” option.

New Line Types

When choosing the type of graph you want, there are some new choices. Column Stack graphs are extended to allow three different stacks in a graph instead of just one; and columns (both stacked and plain) have 3D versions. 3D columns add an extra setting allowing you to control the depth of the 3D columns. This setting is such that at 100%, it should look like a square column. Smaller than 100% and it will look wider and greater than 100% it will look deeper. The screenshot below shows 50% and 200%.

MO71 has new line types, with 3D columns with control of the depth

Line Description

The legend that you can show below a graph, contains a description of each line. These descriptions are automatically generated by MO71 based on the data set you have chosen to graph. However, you may edit these descriptions to contain any text you need. If you change your mind and want to go back to the MO71 generated description, there is also a “Reset” button.

You can edit the description of each line in a graph – make your legend how you want it.


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.

Predefined Graphs

MO71 has had the concept of Predefined dialogs for a long time. Using that feature you can set up your most commonly used list dialogs, with all their associated filters, specific columns, highlighted colours etc, and then start one, or a group of them, with a single click. You can even have them started from the context menu of a queue manager, and create predefined dialog definitions that can be used on multiple queue managers by taking the queue manager from the context of the menu, or from a pop-up prompt.

Start groups of graphs and/or dialog lists from your queue manager context menu

In the latest release, this feature has been extended to include graphs. Having created a graph, and edited the legends, colours, line types, symbols and so on, all to your liking, you can now save that graph and re-instantiate it at a future time. With graphs of MQEV data, you can also create one graph definition that can then be used by different queue managers through their context menu or via the pop-up prompt, just as with predefined dialogs.

Saved graphs can be viewed in the Predefined Dialog List, alongside predefined list dialogs, and can be put into groups, along with lists as can be seen in the above screenshot. Now with one action you can have a screen full of your more commonly used dialogs, all positioned exactly where you want them.

To create a graph that is to become a predefined graph, start with the graph dialog from the Monitor menu. Add the data you want to see in the graph. In my example I have chosen a overall count of Puts and Gets from Queue Manager MQI Statistics, on an hourly interval, and shown them as a 3D stacked graph.

MO71 Graph of MQEV data and Graph Options Dialogs


There are a number of enhancements to the appearance of your graph, which are covered in this blog post about general graphing enhancements.

Once you are happy with the colours and content of the graph, switch to the Graph tab of the Options dialog, give your graph a title, and then click on the Save Graph… button. This will pop up a small “Save Graph” dialog where you can choose

  • Whether the graph will show up in your queue manager context menus – I am going to put it into a group on the context menu, so I don’t want the graph on the context menu
  • Whether this is just for a single specific queue manager, or to be reused for several – I want to have several queue managers make use of the same graph, so I select “Prompt”
  • Whether the timeline of the graph is relative or absolute. I intend to use this graph to look at the most recent data, going back 1 week, so I choose “Relative”

The Graph Options dialog and the graph dialog itself, will have the text “(unsaved)” in the title bar of the window to remind you that you have made changes that are not yet saved.

Saving an MO71 graph

Having saved your graph, it will show up in your list of predefined dialogs. If you want to add it to a group, you can edit it from that list.


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.

MO71 Activity Trace Viewer – Enhancements

We’ve made some enhancements to the MO71 Activity Trace viewer (read an introduction here) in the most recent version.

You can find the “Activity Trace…” feature in the “Action” menu. The viewer will be opened using your currently selected queue manager.

  • Change any of the options for filtering on the “Settings” tab.
  • Always remember to press the “Apply Settings” button at the bottom.
  • Switch to the “Output” tab to see the information about what your traced application has been doing.

Navigation between API calls

When viewing the details about one API call, you may find yourself interested in what happened on a related API call. For example, you might be looking at an MQPUT call and wonder exactly how the MQOPEN was made. You can now jump straight to this “linked” API call with a key-press Ctrl + L or from the context menu.

Jump to the Linked MQI call when viewing Activity Trace in MO71

There are a number of linked API calls.

Starting at API call Linked API call
MQOPEN MQCLOSE
MQPUT MQOPEN
MQGET MQOPEN
MQCONN MQDISC

If you have an interleaved set of API calls you can jump to the next F8 or previous F7 matching API call with a key-press or from the context menu. This might be an API from the same application, or just using the same object. You have the choice to decide what exactly you mean by “matching”. For example, you might be looking for API calls from the same Pid and Tid, or all those that came over the same Channel, or those using the same queue. You can select these in the “Match Values” sub-menu.

Jump to the Next (or Previous) matching MQI call when viewing Activity Trace in MO71

You can also set, and then quickly return to, a bookmark. Both options are available with a key-press or from the context menu.

Pub/Sub enhancements

We’ve made some changes to how publish/subscribe verbs are shown in the output tab, specifically to ensure that the summary line shows the resolved topic string rather than just the topic object in use (since sometimes there might not be one).

If the resolved topic string is too long to display (after all it could theoretically be up to 10240 bytes) we truncate what is shown the summary line on the left, because the right-most portion is probably the most interesting. If you open up the twisty for the verb you will see the full length resolved topic string. Additionally, the MQOPEN verb shows you the details of how the topic string was used, whether it was built from the combination of a topic object and string, or just one of those.

17:25:30  27212( 1) [   37us] Prices MQOPEN Latest Published Prices/Fresh Fruit/Pineapple 
17:25:30  27212( 1) [   64us] Prices MQPUT Latest Published Prices/Fresh Fruit/Pineapple 
17:25:30  32388( 1) [   50us] Prices MQOPEN ...lished Prices/Fresh Fruit/Apples/Red/Royal Gala
Mon Jan 30 17:25:30 2023
Context
MQOPEN(
   Connection Id:414D51434D5147312020202020202020EF27D7631E550040
   MQOD
Hobj :2 TOPIC(MQG1/FRUIT.PRICES) Object String:Apples/Red/Royal Gala Res. Obj Str :Latest Published Prices/Fresh Fruit/Apples/Red/Royal Gala
Open Options :00002010 00002000 MQOO_FAIL_IF_QUIESCING (Fail if quiescing) 00000010 MQOO_OUTPUT (Output) Dynamic Queue:AMQ.* CompCode :0 Reason :0 OK ) 17:25:30 32388( 1) [ 58us] Prices MQPUT ...lished Prices/Fresh Fruit/Apples/Red/Royal Gala 17:25:30 27624( 1) [ 36us] Prices MQOPEN Latest Published Prices/Fresh Fruit/Kiwis 17:25:30 27624( 1) [ 69us] Prices MQPUT Latest Published Prices/Fresh Fruit/Kiwis

Some example Publish output from the MO71 Application Activity Trace viewer

Graphing

A new tab is added to the Activity Trace viewer, allowing you to graph the data. You can choose to graph the data summed by one (or more) of a variety of identifying criteria.

MO71 Activity Trace Graph Sum by choices

The choices you make to sum the numbers by will be described in the legend for each line. Also, remember you can filter the data on the Settings tab, and then once applied, these settings also apply to the graph. In this example, I’m only looking at MQGET and MQPUT calls, by filtering on the Settings tab, and then I have graphed them by MQI call, Object name, and application name.

Graph your Application Activity Trace data to help navigate it

Having created a graph, which might help you to find where a particularly busy period was, you can jump from the graph to the API call in the output tab by double-clicking whilst holding down Alt. This will take you to the first API instance represented by that stack in the graph, so for example, if you had a number of MQPUT calls within the same time interval, it would take you to the first one.

Jump straight to the Activity Trace output represented by a point in the graph

Right-mouse click on an Activity Trace graph, just like all the other graphs in MO71, will open up the Graph Options dialog allowing you to change colours, scales, line types and so on. So for example, although the default is to use a 3D column stack graph, you might want to see your data as a pie chart. This makes it easy to see data such as counts of API, or percentage usage of channels.

Pie chart your Application Activity Trace data to help understand it

We hope these enhancements help you to get more from your IBM MQ Application Activity Trace.


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.

Connection Owner

When investigating which application did something, for example had a long running UoW or was holding onto an object stopping it from being deleted, or one of a plethora of other issues, you might well make use of the MQSC command DISPLAY CONN. Among other things, it shows you various fields to help you to identify exactly which application it is that has done whatever it was you were tracking down.

Here’s an example of some of those various fields shown in the MO71 Connections List dialog. I have highlighted the fields I am thinking of, the “Application Name”, the “Description” and sometimes maybe the “Channel Name”.

It’s not ideal having to look at several fields to understand the application in question and it also takes up real estate on the screen which could be put to better use looking at other columns.

So MO71 now provides an additional, constructed column called “Connection Owner” which combines the data from the above three fields (and some others) to form a single field that shows you the useful parts (in our view) of those fields.

  • If the Application Description indicates this is an MCA channel then the channel name is added to the description
  • If the application type is CICS then the Application Name (which contains the CICS APPLID), Task Number, and Transaction ID are combined into this one field
  • If the application type is IMS then the Application Name (which contains the IMS Region), PST Id, and PSB Name are combined into this one field
  • Application Description is used if there is one
  • Otherwise the Application Name is used

To use this field, select “Connection Owner” from Alter List (and deselect the various others).


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.

List Dialog Pie Charts

Even the most occasional of MO71 user is likely to be familiar with one part of the MO71 interface and that is list dialogs. List dialogs are a simple way to look at all your MQ objects, e.g. queues or channels, and the status associated with them. A Queue List Dialog shows you all your queues, and you can reduce the number of objects shown by filtering on the name, or any other criteria, for example queues with messages on them. Each row in a list dialog is a single object, and columns show you various attributes. You can select the attributes you want to see to further personalise these lists.

The very familiar MO71 list dialog

In the latest version of MO71, you can now create Pie Charts from almost any column in a list dialog. Take, for example a Queue List dialog like the one above. You can create a pie chart of all the depths of the queues. Right-click anywhere in the “Queue Depth” column and from the context menu choose ‘Pie Chart Set Field “Queue Depth”‘. This will create and display the pie chart where the list of objects was previously shown. You can switch between the pie chart and the list by pressing F6 or the pie chart icon in the toolbar.

Use F6 or the toolbar to switch between your pie chart and your list

This pie chart shows each queue depth as a percentage of the total number of messages if you added up all the queue depths. In fact in may be useful to include the percentage in the display on a pie chart such as this, as shown, or in the legend (not shown).

Not all integer values are shown in this way though. This is only used for transient fields (something we also use for units displays, which fields are transient is detailed in here).

Integer fields that are not transient are shown in the same way as enumeration fields. A count of how many objects use that value is shown in each segment. In the below two screenshots you see a numeric value, the Channel Heartbeat Interval, and an enumerated value, the SSL Client Authentication field.

Finally, string values are displayed just like the above enumerated values. A count of how many objects use that value is shown in each segment.

Pie-charting the various SSLCIPH values in use on channels

While this gives the obvious, at-a-glance, way to view data such as your Cipher Specs in use, it can also be helpful with other less obvious strings. Take the use of Security Exits for example. How many different ones do you have in use. Are they all configured correctly? Sometimes diagrams make things clearer than textual lists ever could.

Easily spot differences in your security exit settings with a pie chart

Finally, I’ll just mention that you can also set the Pie Chart to come up instead of the list in a pre-defined dialog, by using the new piechart(attr-name) filter function. For example, for the above Cipher Spec Pie Chart, you’d just need the filter set as follows:-

piechart(sslciph)

Some examples of this in use in another post coming soon about pre-defined dialogs.


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.

MO71 version 9.3.1 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:-

List Dialog Pie Charts

The ubiquitous list dialog, available for all objects and status displays, with its fully configurable column displays and row filters, can now also show you any of its columns as a pie chart. Sometimes a picture is a better way of understanding the set of data in front of you, and you now have this option in a list dialog. More details about this can be read here.

IBM MQ Connection identification

DISPLAY CONN is a very useful command, but one of its downsides it that to fully identify the MQ connection, you have to look at a number of fields. MO71 now has a constructed field, Connection Owner, which combines the variety of fields that fully identify the MQ connection to allow you to view only a single field for this purpose. More details can be read about this here.

Pre-Defined Graphs

You have been able to have your favourite MO71 list dialogs, with all their columns, colours, and filters saved away for quick invocation for many years. With this release, you can now also save graphs and have those ready to show with ease, when you need them. In fact you can also combine your pre-defined graphs and pre-defined list dialogs into groups and start them all together with one click from a queue manager context menu. More details about this can be read here.

Start groups of graphs and/or dialog lists from your queue manager context menu

New Pre-defined list dialog types

Missing in previous releases, the following list dialogs can now be created as pre-defined dialogs.

  • Listeners and Listener Status
  • Services and Service Status

Application Activity Trace improvements

Enhancements to help you navigate through your application activity trace have been added to the MO71 viewer, allowing you to easily jump to linked API calls, such as the MQOPEN of the object handle when you are looking at an MQPUT call, or the next API call made by this Pid+Tid, or on this object. You can also set a Bookmark to return to, and, having jumped around following linked API calls, you can undo back to where you were.

The Application Activity Trace viewer also gets a new tab for graphing. You can show a graph of the API calls in your trace, and find, say, the busy point, and then from there jump back into the API viewer at that point in the trace.

We have a blog post focused on this here.

Graph your Application Activity Trace data to help navigate it

General Graphing improvements

MO71 uses graphing in a number of places (including some new ones this release).

  • Monitor→Graph
  • Application Activity Trace (new this release)
  • Trace Message Pie Chart
  • List Dialogs Pie Chart (new this release)

In this release a number of improvements have been made to the graphing used in all those places. You now have more line types, with the addition of 3D columns, and more stacked column options, and more control over the way the graph looks, with colour selection on axis and grid lines. A default set of colours can be set in your preferences, so graphs start off using colours you want saving you from having to set all the colours every time.

Graphs can now have a logarithmic Y axis, rather than just linear, which can make relative changes across a wide range of values much easier to see. Pie charts have a number of extra options on display of both the labels and the legend, and a new concept called “Other” where the small slivers of a pie chart can be combined to keep it from looking messy.

More details about this can be read here.

Config File – Old Version saved

We have always recommended that when you move to a new version of MO71 that you take a back-up of your configuration file, MQMON.CFG, in case you need to revert to the old version. There is no guarantee that an older version of MO71 will be able to correctly read configuration that was invented after it was released. In case you don’t though, MO71 will now take a copy for you just in case. When you move to MO71 V9.3.1 for the first time, you will discover that MO71 has written out a file called MQMON_930.CFG which is the configuration as it was when you were running MO71 V9.3.0.

Master Config File in XML

MO71 can be started with a master configuration file, allowing central administration of queue manager connection details, while allowing individual users the freedom to choose their own colour schemes etc by having their own configuration file. You can read more about this here. By customer request, this has been enhanced to allow the master configuration file to be an XML file with the same format we already allow you to import manually, i.e. that used by MQ Explorer.


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.

Trace Message dialog interactions

MO71 has had a Trace Message interface for many releases. You can use it to produce diagrams that help to illustrate how messages move through your network of queue managers. The diagrams are drawn from the information collected by using the IBM MQ feature trace-route messaging.

This information includes the queues, channels and queue managers that are part of the route your messages take through the network. Trace-route messaging also collects timestamps for each of the operations so this information is used by MO71 to add response times to the diagram as well.

An example Trace Message diagram, with pie-chart showing distribution

Recently, MO71 had a small update made to the trace message dialog to allow some new interactions.

Copy text to Clipboard

Previously the diagram was just that, a picture. You could not interact with any of the text. It was possible to Export the whole image to a bitmap file, but you could not copy the text. In this update, you can right-click on any text label in the diagram and choose “Copy text to Clipboard”, and then you can paste that text wherever you need it.

Object interactions

It is common-place in MO71 to be able to interact with object names in many of the places you find them. Read this post about other places you can do this. In this update, the various labels in the Trace Message diagram that refer to objects can now be right-clicked on and you can choose to open the object dialog.

For example, if you right click on the transmission queue name, you are offered a menu item “Open Queue…” which will open that queue’s definition in a dialog. You can then easily make changes to that object, or click through to browse messages, or view the status of the object.

Each arrow represents a channel, and has a label with the channel name. When you right-click on a channel name, you are offered two possible menu items to allow you to open the sending channel or the receiving channel definition on the appropriate queue manager. If you are using clustering, where often there may not be a sender channel definition, the menu option will be to open the cluster queue manager. If there is a channel definition, double-clicking on the channel name field in the cluster queue manager dialog will take you to the definition.

Trace-route messaging is a neat feature of IBM MQ that can help you understand how your messages travel through your MQ network. Learn more about it in this post on the IBM Community. MO71’s diagrammatic view of the data really aids in your understanding.


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.

Key Database File Passwords

When you use TLS on your client connection from MO71 or MQEdit to your queue manager, there are now (as of IBM MQ V9.3.0) a few different ways you can provide the password for your Key Database (KDB) file, and the latest versions of MO71 and MQEdit take advantage of one of these.

Stash File

The original way of doing so was to create the KDB using the -stashed parameter, and then you would end up with both a KDB file and an STH file with the same name (excluding stem) and you would tell the MQ Client that name. From that name it could create the name of the KDB file (by adding .kdb) and it could create the name of the stash file (by adding .sth). MO71 and MQEdit could either be given the name in the client connection dialog, or it could be set up outside of the application, using the mqclient.ini file (or environment variables). See later section.

Encrypted Password

In IBM MQ V9.3.0, the possibility to provide the KDB password to the MQ client instead of using a stash file was introduced. One way to do this was to store the password in the mqclient.ini file (or in an environment variable) alongside the name of the KDB. Of course, storing the password in the clear in such a location would not be recommended! So, IBM MQ supplies a mechanism to encrypt the password when storing it in such a way.

To encrypt your password, run the runmqicred program and type in the password when prompted:-

5724-H72 (C) Copyright IBM Corp. 1994, 2022.
Credentials are encrypted using the default encryption key. For more secure
protection of stored credentials, use a custom, strong encryption key.
Enter password:
********

This will output to you the encrypted version of your password (using the default encryption key – more in a moment).

<MQI>!2!Zjee9OXAYF5y0aCGHTa9RrgOCvaTZtKHcqqDITh+5i0=!/rj2UVz154AT5J53KIg9Rw==

Add this to your mqclient.ini file along with the name of the KDB (with or with the .kdb extension – also new in V9.3.0).

SSL:
   SSLKeyRepository=c:\MQGem\MQGemClient
   SSLKeyRepositoryPassword=<MQI>!2!Zjee9OXAYF5y0aCGHTa9RrgOCvaTZtKHcqqDITh+5i0=!/rj2UVz154AT5J53KIg9Rw==

mqclient.ini

Make sure the MQCLNTCF environment variable is set to point to your mqclient.ini (or that the MQ client can find it another way) and run MO71 or MQEdit. You can either configure the channel through the client connection dialog (while omitting to specify the KDB) or you can use a CCDT.

Encrypted Password using your own Encryption Key

If you wish to use your own custom, strong encryption key as mentioned in the output of the runmqicred program, you can write that key into a small file (with no new line on the end), e.g.:

moragskey

h:\mykey.txt

To encrypt your password with this key, run the runmqicred program as follows:-

runmqicred -sf h:\mykey.txt

and type in the password when prompted:-

5724-H72 (C) Copyright IBM Corp. 1994, 2022.
Enter password:
********

And then add the location of that file and your newly generated encrypted password into your mqclient.ini as follows:-

SSL:
   SSLKeyRepository=c:\MQGem\MQGemClient.kdb
   SSLKeyRepositoryPassword=!2!Na8OZhRnItl3SAfr6nPOslKFjbQZnpS04zbUEv1VziQ=!bAwI99xisUIqq7nxis2D4A==
Security:
   MQIInitialKeyFile=h:\mykey.txt

mqclient.ini

This may seem like it has exactly the same problem as the stash file, that is, if someone can steal the KDB file, they can also steal the stash file; but in this case, the key file can live in a completely different location to the KDB file, changing the pattern somewhat.

What has been shown here using the mqclient.ini can also be done using environment variables.

mqclient.ini Environment Variable
SSLKeyRepository MQSSLKEYR
SSLKeyRepositoryPassword MQKEYRPWD
MQIInitialKeyFile MQS_MQI_KEYFILE

MO71 and MQEdit Prompt for Password

If your preference is not to store the password to your KDB anywhere (other than in your head or that post-it note stuck to the side of your monitor) then a third option is available where MO71 and MQEdit can prompt you for the password when they need it. To configure this, open your client connection dialog, from the Location dialog, ensure your KDB file name (with or without the KDB extension) is referenced in the “SSL/TLS Key Repository” field, and select “Prompt for Password” in the “SSL/TLS Key Repos Auth Method” field. The other option in this combo-box is “IBM MQ Configured” which you should select if you prefer the MQ Client to get the password from one of the above mentioned places that are configured in MQ (environment variable, mqclient.ini file or Stash File).

Tell MO71/MQEdit that you will supply the password when it is needed

MO71 and MQEdit will only prompt you for the password once per run of the application. The password is remembered in memory and used for all locations specifying the same KDB.

MO71/MQEdit will prompt for the password of the KDB file when it is needed

If you change the password of the KDB and don’t want to cycle the application, you can use the “Forget KDB Password” button found on the Security tab of the Location dialog.

Use the Forget KDB Password to cause MO71/MQEdit to ask again next time it needs the password

Since there are a number of ways to supply the password for the KDB, you’ll be wondering how they interact with one another. What happens if I have two or more of the above in place? What is the precedence? The password will be used from the sources in the following precedence order.

  • MQCONNX MQSCO fields
    this is where the prompted for password in MO71/MQEdit is put.
  • MQKEYRPWD environment variable
  • mqclient.ini file field SSLKeyRepositoryPassword
  • Stash File

So now you have plenty of options to provide the password. Hopefully one of these will meet your needs.


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