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”

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”

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”

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”

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”