Contents

  1. Message queueing and asynchronous messaging
  2. The basics of IBM MQ
  3. IBM MQ language support and capabilities
Messages, queues and queue managers

IBM MQ helps you write code that matters.

MQ enables applications to communicate and share data between themselves in a reliable and scalable way, that decouples one application from another. In this way, it assists the integration of applications running in different frameworks, languages, platforms, clouds and locations. You can write applications how you want, in the knowledge that you can rely on MQ to smooth out the problems and join them together.

The basics of MQ

With us so far? Great.

A stack of messages

Messages: packages of data produced and consumed by applications.

A stack of messages in a queue

Queues: addressable locations to deliver messages to and store them reliably until they need to be consumed.

A queue manager with two queues full of messages

Queue managers: actual MQ engines, the servers that host the queues.

A channel connecting a queue manager and an application

Channels: the way queue managers communicate with each other and with the applications.

Many queue managers connected to each other in a net-like structure

MQ networks: loose collections of interconnected queue managers, all working together to deliver messages between applications and locations

A group of queue managers all connected to each other

MQ clusters: tight couplings of queue managers, enabling higher levels of scaling and availability.

IBM MQ language support and capabilities

Let’s talk languages (and APIs)

Whatever language or runtime you wish to develop with, MQ probably supports it.

Java

Node.js

COBOL

C/C++

Go

.NET

Python

Ruby

C#

MQ also supports numerous APIs…

JMS

WCF

MQI

MQ Light

…and protocols.

MQ

AMQP

MQTT

HTTP

MQ also covers numerous environments such as:

Linux

Docker

AIX

Windows

IBM i

HP‑UX

HPE NonStop

Cloud

z/OS

Solaris

What else?

MQ provides assured delivery of data

Loss or duplication of information may result in critical issues. Think about a bank transfer or a transaction: for those you want exactly once delivery of messages. MQ is the world leader in making sure data isn’t lost or duplicated when you don’t want it to be. This is assured through the proven reliability of MQ systems and the ability to integrate those critical messages into transactional exchanges.

MQ is horizontally scalable

As the workload for a single queue manager increases, it is easy to add more queue managers to share tasks and distribute the messages across them. MQ Clusters will even intelligently route messages to where they’re needed. The world is full of horizontally scaled MQ systems that handle billions of messages a day.

MQ is highly available

The message data is the important thing and MQ ensures it is always highly available by giving you ways to replicate that data between systems and to automatically restart the queue managers that host those messages elsewhere. Couple that with a closely clustered group of queue managers that provide the same queues and topics, and you have a continuously available system.