Over the last week I’ve been working on some questions sent to me, and several have resulted in writing some test programs and scripts. This post shows the results of one of those exercises, building an MQRFH2 structure from scratch.
Continue reading “Snippet 1 – Building an MQRFH2”
This post was last updated on October 6th, 2022 at 08:59 am
Over the last week, I’ve been working at my first real conference in 2.5 years. SHARE was held in Columbus, Ohio. And we had a full agenda of MQ sessions.
Continue reading “Real audiences”
This post was last updated on August 29th, 2022 at 05:29 pm
In this post I’ll talk about a new exit (Installable Service) that can be used with an MQ 9.3 installation for recording queue manager object access requests. It can provide a level of reporting who is using what and when. I’ll show what it does, how it does it, and what the limitations are.
Continue reading “Recording queue manager object access”
Collection of the metrics that the queue manager publishes requires that each monitored queue has at least one associated subscription. This post describes an interesting option where collection programs use durable subscriptions to minimise object handle use when running MQ monitoring. It reduces the requirements for configuring the
Continue reading “Durable subscriptions to minimise object handle use”
MAXHANDS attribute on the queue manager. It’s also a nice demonstration of how subscriptions could be used in any application.
This post was last updated on June 30th, 2022 at 07:23 am
One of the features of the newly-released MQ 9.3 is support for JMS 3, also known as Jakarta Messaging. There will be more information elsewhere about what that means for standalone JMS programs. There continues to be a JMS 2 package, of course, for ongoing compatibility. But JMS 3 introduces incompatibilities that mean that we need updated versions of other components to match if you want to move up to newer standards. This post will talk about supporting MQ Jakarta JMS in Spring Boot.
I’ll also discuss the issues I had when developing the new version – the annoying incompatible tooling upgrades I had to work through.
Continue reading “Supporting MQ Jakarta JMS in Spring Boot”
This post was last updated on June 30th, 2022 at 07:53 am
I was working on something recently where I had to upgrade various components in the tooling. And I was getting more and more annoyed that the upgrades broke my existing programs and scripts. None of that was MQ’s fault and I’ll write more about the project once it’s available alongside the newly-announced MQ 9.3. [That article is now published here.] But it got me thinking about the efforts we’ve made to keep MQ application compatibility across its lifetime. I wanted to show how we’ve achieved that across a quarter century (and more). And how that has preserved the work that developers have put into their MQ programs. In particular, I want to see if old compiled programs can still work with a current queue manager.
Continue reading “MQ application compatibility across a quarter century”
This post was last updated on June 24th, 2022 at 04:51 pm
MQ V6 introduced a tool to help with administration and problem diagnosis in an MQ network. The dspmqrte program shows the route that a message might take, reporting on the transmission queues and channels. It is considered MQ’s equivalent to the TCP/IP traceroute. This post discusses a new variation, dspmqrtj, available on GitHub, that shows MQ message routing in JSON format.
Continue reading “MQ Message Routing in JSON”
This post was last updated on March 8th, 2022 at 10:15 am
A userid or group deleted from the operating system still shows up in a queue manager’s authority lists. Ideally you would have removed those authorisations before deleting the id, but if you have not, then MQ will not usually let you delete the authorisations later. This post explains the procedure that I use to remove MQ authorities for deleted ids or to cold-start the authorisations when testing. I’ll also describe a second procedure that you might prefer.
There are both use-at-own-risk methods, but I’ve given an outline a few times in posts and replies elsewhere. After a bit of encouragement, I finally decided it might be better to give fuller details so you can make a proper evaluation of whether to use the technique.
Continue reading “How to remove MQ authorities for deleted ids”
This post was last updated on June 28th, 2022 at 04:25 pm
MQ V8 introduced a header file, cmqstrc.h, that maps constants in the MQI to string values. I’ve mentioned it a few times recently, both here and in some other forums. One question came in, asking about how well that code worked. So I’ve recreated some tests I wrote back in 2015, to demonstrate what compilers do with that pattern. This shows the efficiency of writing large switch statements in C.
Continue reading “C switch statement efficiency”
This post was last updated on February 25th, 2022 at 10:03 am
I recently wrote an article about new TypeScript bindings for the MQ and Node.js interface. Version
Continue reading “MQ and Node.js: an update to the TypeScript interface”
0.9.21 of the MQ Node.js interface includes an update to the TypeScript definitions that can assist further in writing correct programs by describing how MQI flags or bitfield parameters are set. Showing how this new capability works was a bit too long to simply add to the original article. So I’ve written this piece.
This post was last updated on January 28th, 2022 at 07:43 pm