In MQ V8, a new header file made it easy for C programs to convert MQI numbers into the corresponding string definition. For example, turning 2035 into MQRC_NOT_AUTHORIZED. For formatting PCF-based messages such as events, you can easily convert the names of fields in those events using functions like MQIA_STR or MQCACH_STR. But what about turning the values in those elements into a string? There is a new tool in the MQ Go library to help with MQ PCF value formatting. And it is easy to adopt or port it for other languages too.
New C sample programs
The mq-dev-patterns repository contains a collection of sample programs for IBM MQ. It has examples in a variety of programming languages and styles, working in a number of environments. There are programs showing use of the MQI (or equivalent), JMS, AMQP and REST interfaces. Towards the end of last year, we added a set of C sample programs. Rich wrote a little about them here, but I thought I’d expand on why they were written, and how they work.
Continue reading “New C sample programs”OTel Context Propagation for MQ Applications: part 3 – JMS
Previous articles in this series have shown OpenTelemetry (OTel) Context propagation for Node.js, Go and C/C++ MQ applications. You should read the first article for an introduction and explanation of the scenarios and problems that need solutions.
This (final?) entry discusses JMS applications.
Continue reading “OTel Context Propagation for MQ Applications: part 3 – JMS”OTel Context Propagation for MQ Applications: part 2 – C/C++
The first article in this series introduced OpenTelemetry (OTel) tracing with IBM MQ. It showed how the trace context can flow when the application is using the MQ Node.JS or Go interfaces. This article carries on the story for OTel context propagation, this time talking about C++ and C applications.
Continue reading “OTel Context Propagation for MQ Applications: part 2 – C/C++”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”Passwords with runmqsc scripts
This is not a new question, but it has come in again several times in the last few weeks: how best to script MQSC operations where the connection requres a password. Rather than repeat the answer, I’ve put it here for convenience.
Continue reading “Passwords with runmqsc scripts”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”