Retiring SupportPac MS0P

MS0P Activity

SupportPac MS0P was first released in 2006. It added a plugin to the MQ Explorer to format event messages, including the accounting and statistic information. Since then, there’s been a lot of added function. But also, the MQ product now has a lot of comparable capability. The last functional update to MS0P was in 2018.

I’m not planning on making any further updates to the package, so I’ve been thinking about retiring it. The recent LTS release of MQ 9.4.0 seemed like a good boundary point to do that. The SupportPac will move to “withdrawn” status – still downloadable, but not as prominent.

But I thought it worth listing the various features, and showing how many of them you can now do differently.

Feature Comparison

Many of the alternative mechanisms listed are command-line tools. That makes it possible to integrate them in a variety of workflows, even if they don’t directly link to GUI interfaces.

MS0P FeatureAlternative
Event Formattingamqsevt with JSON output.
This makes it easy to feed to any analysis tool
Statisticsamqsact, amqsevt, amqsrua and tools like the OpenTelemetry collector
Accountingamqsact and amqsevt
Activity Viewer amqsrua and tools like the OpenTelemetry collector
Message ManagerThe MQ Web Console is improving its message processor. Also dmpmqmsg for a command line tool.
CSV Table ExporterNo need for any direct equivalent as this exported elements of the MQ Explorer itself.
Topic ViewerNo direct equivalent
TraceRoutedspmqrte or look at dspmqrtj for a cluster-aware version
QTuneQueue file buffer size editor: No replacement
cmdevent exitCommand/Config events have been part of the queue manager since V7
oamlogMoved to github.
Features

Not all of the features are directly available in other tools, but the majority – the most commonly-used capabilities – can be done in some other way.

Example

Here is a screenshot showing statistics information from MS0P:

MS0P Statistics
Statistics in MS0P

A command-line equivalent using amqsevt:

$ amqsevt -m QM1 -q SYSTEM.ADMIN.STATISTICS.QUEUE
*** Message #1 (800 Bytes) on Queue SYSTEM.ADMIN.STATISTICS.QUEUE ****
Event Type                       : Statistics Queue [165]
Message Type                     : Statistics [21]
Reason                           : None [0]
Event created                    : 2024/06/24 08:46:44.55 GMT
  Queue Mgr Name                 : QM1
  Start Date                     : 2024-06-24
  Start Time                     : 09.46.43
  End Date                       : 2024-06-24
  End Time                       : 09.46.44
  Command Level                  : 940
  Object Count                   : 1
  QUEUE STATISTICS DATA
    Queue Name                   : SYSTEM.ADMIN.CONFIG.EVENT
    Creation Date                : 2022-02-22
    Creation Time                : 12.15.01
    Queue Type                   : Local
    Definition Type              : Predefined
    Queue Min Depth              : 500
    Queue Max Depth              : 500
    Avg Queue Time               : 0
    ...

and the same thing in JSON style, to make it easy to send elsewhere for analysis:

$ amqsevt -m QM1 -q SYSTEM.ADMIN.STATISTICS.QUEUE -o json
{
"eventSource" : { "objectName": "SYSTEM.ADMIN.STATISTICS.QUEUE",
                  "objectType" : "Queue",
                  "queueMgr" : "QM1"},
"eventType" : { "name" : "Statistics Queue", "value" : 165 },
"msgType" : { "name" : "Statistics", "value" : 21 },
"eventReason" : { "name" : "None", "value" : 0 },
"eventCreation" : { "timeStamp"  : "2024-06-24T08:46:44Z", "epoch"      : 1719218804 },
"eventData" : {
  "queueMgrName" : "QM1",
  "startDate" : "2024-06-24",
  "startTime" : "09.46.43",
  "endDate" : "2024-06-24",
  "endTime" : "09.46.44",
  "commandLevel" : 940,
  "objectCount" : 1,
"queueStatisticsData" : [ {
  "queueName" : "SYSTEM.ADMIN.CONFIG.EVENT",
  "creationDate" : "2022-02-22",
  "creationTime" : "12.15.01",
  "queueType" : "Local",
  "definitionType" : "Predefined",
  "queueMinDepth" : 500,
  "queueMaxDepth" : 500,
  "avgQueueTime" : [
0,
0
...

Open source?

I did consider releasing the package to an open source repository, but unfortunately that’s not practical. Apart from embarrassing code quality (the first iteration of MS0P was my first-ever piece of Java programming), there are a few too many places which require some level of internal knowledge or a non-documented interface. And even without that, it would require a lot of work to clean up and make into a suitable shape for anyone else to deal with. There’s not even a particularly useful subset of features that would work for an open source repo.

Can you still use MS0P?

If you have a copy of MS0P, you can continue to use it if you want. I don’t know of any reason why Ms0P would not continue to work in the 9.4 MQ Explorer, and I have heard of at least one person doing so. There just won’t be any enhancements or testing at newer MQ levels. And newer Eclipse versions seem to make it harder to install plug-ins. (On Windows, the “run as Administrator” option usually helps with that.)

The package is moving to a listing on the “withdrawn” SupportPac page, which states: “If you need a SupportPac from this list, contact askmessaging@uk.ibm.com.” so you will still be able to get access to it if you’ve not already kept a copy.

This post was last updated on June 24th, 2024 at 01:00 pm

3 thoughts on “Retiring SupportPac MS0P”

  1. Terrible news.

    We have large numbers of queue managers. The MQ web console is years away from maturity.

    We use the message manager feature of MS0P to support production incidents. Using DMPMQMSG via the command line is very much a backward step. A decent GUI is essential.

    I hope MS0P will continue with work with MQ releases until the web console has the necessary features and offers comparable ease of use in a few years time.

    1. It ought to continue to work. There’s nothing I know of that would actually break it in future versions of Explorer or the underlying Eclipse. But this at least makes it clearer that there will nothing new here.

Leave a Reply

Your email address will not be published. Required fields are marked *