Introduction to IBM MQ

An overview of what IBM® MQ can do, how you use it, how it works, and what tools and resources come with it.

What can IBM MQ do for me?

IBM MQ provides a universal messaging backbone with robust connectivity for flexible and reliable messaging for applications and the integration of existing IT assets using a service-oriented architecture (SOA).
  • IBM MQ sends and receives data between your applications, and over networks.
  • Message delivery is assured and decoupled from the application. Assured, because IBM MQ exchanges messages transactionally, and decoupled, because applications do not have to check that messages they sent are delivered safely.
  • You can secure message delivery between queue managers with TLS.
  • With Advanced Message Security (AMS), you can encrypt and sign messages between being put by one application and retrieved by another.
  • Application programmers do not need to have communications programming knowledge.

How do I use IBM MQ?

An IBM MQ messaging system is made up of one or more queue managers. Queue managers are where messaging resources, such as queues, are configured and what applications connect to, either running on the same system as the queue manager or over the network.

A network of connected queue managers supports asynchronous routing of messages between systems, where producing and consuming applications are connected to different queue managers.

IBM MQ can be managed using a variety of tools, from the IBM MQ Explorer GUI, through scripted or interactive command line tools or programmatically.

The applications connecting to IBM MQ can be written in any one of many different programming languages and to many different APIs. From C and Cobol, to Java and .Net to NodeJS and Ruby.

How does IBM MQ work?

Here is a brief overview of how IBM MQ works.
  • First a messaging application must connect to a queue manager. This may require a channel to be created on the queue manager to accept application connections.
  • When your application wants to transfer data to another application, it creates a message and puts the data into it. It puts the message onto a queue, or publishes the message to a topic to be delivered to subscribers to the topic.
  • The queue or subscriptions may be on the same queue manager or on other, connected, queue managers. If the latter the connected queue managers work together to reliably transfer the message from the producer's queue manager to the target queue managers. The applications do not communicate with each other, the queue managers do.
  • Messages can be handled based on a number of different qualities of service, where reliability and persistence is traded for speed. The highest quality of service given to messages are persistent messages that are sent and received under the control of transactions. This will ensure that messages are delivered once and once only even in the event of system, network or application failures.
  • IBM MQ channels are used to connect one queue manager to another over a network. You can create MQ channels yourself, or a queue manager can join a cluster of queue managers where MQ channels are automatically created when they are needed.
  • [z/OS]On z/OS®, you can configure multiple queue managers to share queues on the coupling facility. Applications connected to different queue managers can get and put messages to and from the same queues.
  • You can have many queues and topics on one queue manager.
  • You can have more than one queue manager on one computer.
  • An application can run on the same computer as the queue manager, or on a different one. If it runs on the same computer, it is an IBM MQ server application. If it runs on a different computer, it is an IBM MQ client application. Whether it is IBM MQ client or server makes almost no difference to the application. You can build a client/server application with IBM MQ clients or servers.

[Windows]If you are new to using IBM MQ and want to find out more about getting started with IBM MQ, see LearnMQ on IBM Developer.

What tools and resources come with IBM MQ ?

IBM MQ provides the following tools and resources:
  • Control commands, which are run from the command line. You create, start, and stop queue managers with the control commands. You also run IBM MQ administrative and problem determination programs with the control commands.
  • IBM MQ script commands (MQSC), which are run by an interpreter. Create queues and topics, configure, and administer IBM MQ with the commands. Edit the commands in a file, and pass the file to the runmqsc program to interpret them. You can also run the interpreter on one queue manager, which sends the commands to a different computer to administer a different queue manager.
  • The Programmable Command Format (PCF) commands, which you call in your own applications to administer IBM MQ. The PCF commands have the same capability as the script commands, but they are easier to program.
  • [V9.1.0 Jul 2018]The IBM MQ Console is a web-based user interface that you can use to administer IBM MQ. The IBM MQ Console runs in a browser and provides control over queue managers and IBM MQ objects.
  • [V9.1.0 Jul 2018]The REST API provides an alternative programmable interface to the existing IBM MQ Script Commands (MQSC) and Programmable Command Format (PCF) tools. This RESTful API can help you to embed IBM MQ administration into popular DevOps and automation tooling.
  • Sample programs.
  • On Windows and Linux® x86 and x86-64 platforms, you can use the IBM MQ Explorer to administer and configure the entire network of queue managers, irrespective of the platform that they are running on. IBM MQ Explorer does the same administrative tasks as the script commands, but is much easier to use interactively.