OTel Context Propagation for MQ Applications

OpenTelemetry (OTel) tracing relies on context being propagated from one component in an application stack to another. While IBM MQ does have some ability to carry that context with messages, the OTel SDK design does not make that flow automatic. This post shows how we can extract the context for some applications, and then use OTel context propagation techniques to improve the observability of applications using MQ.

In particular in this post, I’ll talk about applications using MQ with the Node.js and Go interfaces.

Continue reading “OTel Context Propagation for MQ Applications”

Tracing MQ JMS apps in Spring

The MQ JMS packages have options to permit configuration of internal tracing and related logging features. While debugging a recent project, I wanted to look at traces of both the MQ library, and some of the surrounding Spring behaviour. While possible, it was not as convenient as I would have liked. So I’ve added some new options that simplify tracing MQ JMS apps in Spring.

Continue reading “Tracing MQ JMS apps in Spring”

This post was last updated on September 12th, 2024 at 06:45 am

Retiring SupportPac MS0P

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.

Continue reading “Retiring SupportPac MS0P”

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

MQ Spring Boot: Advanced Configuration and Transactions

I was talking recently with an MQ customer who said they were considering a solution that used Spring Boot for an MQ application that would move messages reliably from one queue manager to another, doing some processing on the way. “Can we do that?” they asked. “Of course” was my reply. But naturally I had to then try it out myself.

To implement the idea, I had to dig into two aspects. I’d consider these as reasonably advanced features of Spring Boot. One part was being able to configure more than one queue manager’s connection in the resource properties file. The other was working with global JTA/XA transactions.

Continue reading “MQ Spring Boot: Advanced Configuration and Transactions”

MQ Metrics with OpenTelemetry

As I promised in a recent article, I am coming back to the OpenTelemetry topic. This time, it’s going to be about another pillar of the observability requirements – integrating MQ’s metrics with OpenTelemetry.

Continue reading “MQ Metrics with OpenTelemetry”

This post was last updated on March 12th, 2024 at 07:27 am

Handling MQ logs and events with OpenTelemetry

One recent addition to the plethora of observability tools is OpenTelemetry. It attempts to provide a vendor-agnostic set of common APIs, components, interfaces and protocols that enable interoperability between a range of other tools. It deals with three major pillars of telemetry data, the things you often need to look at when monitoring systems: traces (by which it means application-level data flows), metrics, and logs.

There are already ways of tracking messages through an MQ network and beyond, reporting via OpenTelemetry. And I will soon be talking a lot more about MQ metrics and OpenTelemetry. But as an appetiser, this post shows the third piece of the story: logs.

Continue reading “Handling MQ logs and events with OpenTelemetry”

This post was last updated on March 14th, 2024 at 06:47 pm

MQ JMS and Spring: Spring Boot 2 now at end of regular support

Spring Boot 2 has now reached its “end of non-commercial support“. The lifecycle for that project is set by Spring’s owners; a major release typically has 2 years of open support before moving into a longer-term paid-for regime.

Continue reading “MQ JMS and Spring: Spring Boot 2 now at end of regular support”

This post was last updated on January 15th, 2024 at 02:15 pm

MQI Node.js library: an experimental reimplementation

The MQI library for Node.js applications first appeared in 2017. One of the first articles about it is here. Regular maintenance and updates to the library ensured it kept up with newer MQ and NodeJS features. But it seemed time to do a more extensive rewrite of the package, and that’s why I’m writing this article. I’ve put an experimental reimplementation on GitHub of the library for you to try out, before it goes into the mainstream release. Originally in the “napi” branch, it’s been promoted to the master branch.

Update: This new version is now on npm as the ibmmq 2.0.0 release and has been merged into the main GitHub branch.

Continue reading “MQI Node.js library: an experimental reimplementation”

This post was last updated on June 22nd, 2023 at 08:46 am

Another SHARE done

Last week was another MQ event with SHARE. This time in Atlanta. Though I managed to combine it with seeing a customer in Dallas the previous week. SHARE was a slightly abbreviated event compared to usual, because the venue had to be booked before it was clear that face-to-face meetings would recover. So we didn’t have quite as many MQ sessions as usual. In fact, all the MQ talks were done by myself, Lyn and Dorothy either as individuals or in various double-act combinations. But it was a really valuable week, with lots of useful discussions. And the brewpub near the hotel was as good as I remembered from a previous trip.

The planning now starts for the next, fuller, event in New Orleans in August.

Just really annoying that I picked up a bug on the flight home …