IBM MQ

Last updated

IBM MQ is a family of message-oriented middleware products that IBM launched in December 1993. It was originally called MQSeries, and was renamed WebSphere MQ in 2002 to join the suite of WebSphere products. In April 2014, it was renamed IBM MQ. The products that are included in the MQ family are IBM MQ, IBM MQ Advanced, IBM MQ Appliance, IBM MQ for z/OS, and IBM MQ on IBM Cloud. IBM MQ also has containerised deployment options.

Contents

MQ allows independent and potentially non-concurrent applications on a distributed system to securely communicate with each other, using messages. MQ is available on a large number of platforms (both IBM and non-IBM), including z/OS (mainframe), IBM i, Transaction Processing Facility, UNIX (AIX, HP-UX, Solaris), HP NonStop, OpenVMS, Linux, and Microsoft Windows.

MQ Components

The core components of MQ are:

Programs integrated with IBM MQ use a consistent application program interface (API) across all platforms.

Messaging types

MQ supports point-to-point and Publish-Subscribe messaging.

APIs

APIs directly supported by IBM include:

Additional APIs (not officially supported) are also available via third parties, including:

Features

One-time delivery: MQ uses once and once only delivery. This quality of service typically prevents message loss or duplication.

Asynchronous messaging: MQ provides application designers with a mechanism to achieve non-time-dependent architecture. Messages can be sent from one application to another, regardless of whether the applications are running at the same time. If a message receiver application is not running when a sender sends it a message, the queue manager will hold the message until the receiver asks for it. Ordering of all messages is preserved, by default this is in FIFO order of receipt at the local queue within priority of the message.

Data transformation: e.g. Big Endian to Little Endian, or EBCDIC to ASCII. This is accomplished through the use of message data exits. Exits are compiled applications that run on the queue manager host, and are executed by the IBM MQ software at the time data transformation is needed.

Message-driven architecture framework: IBM MQ allows receipt of messages to "trigger" other applications to run.

Range of APIs: It implements the Java Message Service (JMS) standard API, and also has its own proprietary API, known as the Message Queuing Interface (MQI), which preceded the JMS several years in existence. As of version 8.0.0.4, MQ also supports the MQ Light API.

Clustering: Multiple MQ implementations share the processing of messages, providing load balancing.

Communication

Queue managers communicate with the outside world either through:

Communication between queue managers

This relies on a channel. Each queue manager uses one or more channels to send and receive data to other queue managers. A channel is uni-directional; a second channel is required to return data. In a TCP/IP based network, a channel sends or receives data on a specific port.

Channel types:

When a receiving channel receives a message, it is examined to see which queue manager and queue it is destined for. In the event of a communications failure, MQ can automatically re-establish a connection when the problem is resolved.

The listener is the application's network interface to the queue manager. The listener detects connections from incoming channels, and manages the connection of the sending channels to the receiving channels. In a TCP/IP network, the listener will "listen" for connections on a specific port.

Transmitting data to a queue on another queue manager

Queue types:

A message is placed on a remote queue. The messages goes to a temporary storage transmission queue associated with a channel. On placing a message on a remote queue, the message is transmitted across the remote channel. If the transmission is successful, the message is removed from the transmit queue. On receiving a message, the receiving queue manager examines the message to determine whether the message is for itself or if must go to another queue manager. If the receiving queue manager, the required queue will be checked, and if it exists, the message is placed on this queue. If not, the message is placed on the dead letter queue. MQ has features to manage efficient transmission of data across a variety of communication media. For example, messages can be batched together until a queue reaches a particular depth.

Ordering

Although the queue is FIFO, it is ordered based on the receipt in the local queue, not the committing of the message from the sender. Messages can be prioritized, and by default, the queue is prioritized in order of arrival. Queues will only be in sequence of addition if the message is added locally. Message grouping can be used to ensure a set of messages are in a specific order, aside from that, if sequence is critical, it is the application's responsibility to place sequence data in the message or implement a handshaking mechanism via a return queue. In reality, ordering will be maintained in straightforward configurations.

The log

The other element of a queue manager is the log. As a message is placed on a queue or a configuration change is made, the data is also logged. In the event of a failure, the log is used to recreate damaged objects and recreate messages. Only persistent messages are recreated when a failure occurs—"non-persistent" messages are lost. Non-persistent messages can be sent across a channel set to a fast mode, in which delivery is not assured in the event of a channel failure.

MQ supports both circular and linear logging.

Retrieving messages from queues

Information can be retrieved from queues either by polling the queue to check for available data at suitable intervals, or alternatively MQ can trigger an event, allowing a client application to respond to the delivery of a message.

Availability

IBM MQ offers a variety of solutions to cater for availability:

Replicated Data Queue Manager (RDQM / 'Easy HA'- MQ Advanced on distributed only): Synchronous replication between three servers that all share a floating IP address.

Queue Manager Clusters: Groups of two or more queue managers on one or more computers are defined to a cluster, providing automatic interconnection, and allow queues to be shared among them for load balancing and redundancy.

Queue Sharing Groups (z/OS only): In a Shared Queue environment, an application can connect to any of the queue managers within the queue-sharing group. Because all the queue managers in the queue-sharing group can access the same set of shared queues, the application does not depend on the availability of a particular queue manager. This gives greater availability if a queue manager stops because all the other queue managers in the queue-sharing group can continue processing the queue.

Multi-Instance Queue Managers (available from v7.0.1): Instances of the same queue manager are configured on two or more computers with their queues and meta data residing on shared storage. By starting multiple instances, one instance becomes the active instance and the other instances become standbys. If the active instance fails, a standby instance running on a different computer automatically takes over.

History

Version release dates

Version nameRelease date
IBM MQ 9.3 LTS23 June 2022
IBM MQ 9.2 LTS23 July 2020 [6]
IBM MQ 9.1 LTS23 July 2018 [7]
IBM MQ on IBM Cloud13 March 2018 [8]
IBM MQ for HPE Nonstop 8.023 June 2017
IBM MQ 9.0 LTS2 June 2016 [9]
IBM MQ 8.023 May 2014
WebSphere MQ 7.515 June 2012
WebSphere MQ 7.1November 2011
WebSphere MQ 7.0 z/OSJune 2008
WebSphere MQ 7.0 (Distributed, iSeries)May 2008
WebSphere MQ 6.0 z/OSJune 2005
WebSphere MQ 6.0 (Distributed, iSeries)May 2005
WebSphere MQ 5.3 z/OSJune 2002
WebSphere MQ 5.3 (Distributed, iSeries)June, July, Oct, Nov 2002
MQSeries 5.2 (Distributed)Dec 2000
MQSeries for OS/390 V5.2Nov 2000
MQSeries for AS/400 V5.1July-Aug 2000
MQSeries for OS/390 V2.1Feb 1999
MQSeries 5.1April (NT), June 1999
MQSeries for AS/400 V4.2Feb 1998
MQSeries 5.0October 1997
MQSeries for MVS/ESA 1.229 August 1997 [10]
MQSeries for MVS 1.1.4,June 1996
MQSeries 2.2 (Sun OS/Solaris, DC/OSx)June, July 1996
MQSeries 2.0 Windows NT2Q 1996
MQSeries 2.2 (HP, SCO)4Q 1995
MQSeries for MVS 1.1.3May 1995
MQSeries 2.0 (OS/2, AIX)Feb 1995 (the beginning of the end of ezBridge)
MQM/400 V34Q 1994
ezBridge Transact for MQSeries 3.0July 1994
MQSeries for MVS 1.1.2June 1994
MQM/400 V2.3Feb/April 1994
ezBridge Transact for MQSeriesMarch, Sept, Nov, Dec 1993 (different platforms)
MQSeries for MVS V1.1.1December 31, 1993

Version end of support dates

The following table applies to MQ software. The MQ Appliance has different lifecycle dates for both firmware and hardware than those in the table. [11]

Version nameGeneral availabilityEnd of marketingEnd of support
IBM MQ 9.323 June 2022--
IBM MQ 9.223 July 2020--
IBM MQ 9.123-Jul-201815-Sep-202330-Sep-2023
IBM MQ 9.002-Jun-201617-Sep-202130-Sep-2021
IBM MQ 8.013-Jun-201417-Apr-202030-Apr-2020
WebSphere MQ 7.506-Jul-201216-Dec-201630-Apr-2018
WebSphere MQ 7.125-Nov-201112-Jul-201630-Apr-2017

Background architectural reference

With the advent of computers, IBM saw an opportunity to apply new technology to the need for message switching.

In the early 1960s, IBM marketed the IBM 7740 Communication Control System and the IBM 7750 Programmed Transmission Control, which were programmable message switching systems.

The IBM System/360 was announced in April 1964 and with it came communication access methods such as BTAM and QTAM (Basic and Queued Telecommunications Access Methods). In 1971, TCAM, the Telecommunications Access Method, offered its users a more advanced form of message switching or message routing. TCAM was widely accepted, especially in the financial and brokerage industries. It supported asynchronous messaging, as with the later MQ. TCAM 3.0 added in reusable disk message queues for recovery soon thereafter, as with MQ. A high-level PL/I program could be used to access TRANSIENT datasets (dynamic message queues). Reading a message from a transient dataset resulted in that message being removed from the queue, as with a non-browse READ with MQ.

In the late 1970s, transaction management systems came into being, each trying to achieve a leadership position in the industry. Within IBM, CICS and IMS were chosen as strategic products to address the need for transaction management. Within both CICS and IMS, each had its version of message switching, IMS being a front-end queued system and CICS having its Transient Data facility as the possible basis for message switching.[ citation needed ]

CICS established itself as a popular transaction management system in the 1968-1971 timeframe. Those users who had adopted TCAM for its message handling capabilities now wanted a combined use of TCAM with CICS. In December 1971, IBM announced CICS support of TCAM as part of the CICS/OS-Standard product, to be delivered in December 1972. For interested customers, this enabled them to use TCAM for its message handling strengths and also have TCAM-connected terminals or computers interface with CICS online applications.[ citation needed ]

In January 1973, TCAM continued to be supported by CICS/OS-Standard Version 2.3. However, TCAM support was omitted from the initial release of CICS/VS, announced in February 1973 and delivered in June 1974. Needless to say, many CICS-TCAM customers were not happy with that product direction.

With considerable pressure from CICS-TCAM customers, the CICS support of TCAM was reinstated in the CICS/VS 1.1 product, as of September 1974. In addition to the previous DCB support, with this reinstatement of TCAM support, CICS began to support TCAM access via VTAM, also known as the ACB support. CICS TCAM ACB support was discontinued as of the CICS/ESA Version 3 product in 1990.

In 1992, IBM announced a new product called MQSeries. This brand name was later renamed to WebSphere MQ (sometimes shortened to WMQ) in 2002 to support the WebSphere family name and the product. In 2014, it was renamed IBM MQ. MQ was to be the extension of TCAM functionality from IBM-only systems to all other platforms. MQ has an architecture that enables heterogeneous systems to communicate with each other (e.g. IBM, HP, Sun, Tandem, etc.). MQ can be used with CICS systems to send and receive data to/from any other MQ-eligible system. MQ can be used to initiate work in a CICS system or a CICS transaction can initiate work in another CICS or non-CICS system.

IBM MQ now supports 80 different environments and has become the leading message assured delivery switching/routing product in the industry. [12]

MQ and web services

IBM MQ can be used as a foundation for creating service-oriented architectures. Several additional product options exist to help convert legacy programs into functioning web services through the use of MQ. Larger, heterogeneous enterprises often appear as a federation of somewhat autonomous domains based on lines of business, functional or governance areas. In such environments, some services may be shared or reused only within a single domain, while others may be shared or reused throughout the enterprise. IBM MQ provides the means by which communication exists between lines-of-business or otherwise separate business domains.

A related product in the IBM MQ product family, called IBM App Connect Enterprise (formerly IBM Integration Bus / WebSphere Message Broker) enables a diverse and robust set of extensions to queue-based architectures. Using IBM Integration Bus, users can implement a WebServices front-end, complete with WSDL file support that can interact with any queue-based application.

See also

Related Research Articles

z/OS 64-bit operating system for IBM mainframes

z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions. Like OS/390, z/OS combines a number of formerly separate, related products, some of which are still optional. z/OS has the attributes of modern operating systems, but also retains much of the older functionality originated in the 1960s and still in regular use—z/OS is designed for backward compatibility.

The Jakarta Messaging API is a Java application programming interface (API) for message-oriented middleware. It provides generic messaging models, able to handle the producer–consumer problem, that can be used to facilitate the sending and receiving of messages between software systems. Jakarta Messaging is a part of Jakarta EE and was originally defined by a specification developed at Sun Microsystems before being guided by the Java Community Process.

<span class="mw-page-title-main">IBM Information Management System</span> Joint hierarchical database made by IBM

The IBM Information Management System (IMS) is a joint hierarchical database and information management system that supports transaction processing.

<span class="mw-page-title-main">CICS</span> IBM mainframe transaction monitor

IBM CICS is a family of mixed-language application servers that provide online transaction management and connectivity for applications on IBM mainframe systems under z/OS and z/VSE.

In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.

Tuxedo is a middleware platform used to manage distributed transaction processing in distributed computing environments. Tuxedo is a transaction processing system or transaction-oriented middleware, or enterprise application server for a variety of systems and programming languages. Developed by AT&T in the 1980s, it became a software product of Oracle Corporation in 2008 when they acquired BEA Systems. Tuxedo is now part of the Oracle Fusion Middleware.

WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java-based web applications. It is the flagship product within IBM's WebSphere software suite. It was initially created by Donald F. Ferguson, who later became CTO of Software for Dell. The first version was launched in 1998. This project was an offshoot from IBM HTTP Server team starting with the Domino Go web server.

In computing, Advanced Program to Program Communication or APPC is a protocol which computer programs can use to communicate over a network. APPC is at the application layer in the OSI model, it enables communications between programs on different computers, from portables and workstations to midrange and host computers. APPC is defined as VTAM LU 6.2

IBM App Connect Enterprise is IBM's premier integration software offering, allowing business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through user-authored integrations to route and transform the information. The product can be used as an Enterprise Service Bus supplying a communication channel between applications and services in a service-oriented architecture.

MessagePlus/Open is a communication platform for medium to large organizations designed specifically to handle high volumes of traffic within a high-availability environment. Currently supported communication channels include fax, fax over IP, e-mail and SMS, together withvarious options for integration with business applications. The product has been developed by INTERCOPE GmbH, Germany and is sold by both Intercope and IBM. It was previously known as FaxPlus/Open.

<span class="mw-page-title-main">Amazon Simple Queue Service</span> Cloud-based message queuing service

Amazon Simple Queue Service is a distributed message queuing service introduced by Amazon.com as a beta in late 2004, and generally available in mid 2006. It supports programmatic sending of messages via web service applications as a way to communicate over the Internet. SQS is intended to provide a highly scalable hosted message queue that resolves issues arising from the common producer–consumer problem or connectivity between producer and consumer.

An access method is a function of a mainframe operating system that enables access to data on disk, tape or other external devices. Access methods were present in several mainframe operating systems since the late 1950s, under a variety of names; the name access method was introduced in 1963 in the IBM OS/360 operating system. Access methods provide an application programming interface (API) for programmers to transfer data to or from device, and could be compared to device drivers in non-mainframe operating systems, but typically provide a greater level of functionality.

Telecommunications Access Method (TCAM) is an access method, in IBM's OS/360 and successors computer operating systems on IBM System/360 and later, that provides access to terminals units within a teleprocessing network.

A message queueing service is a message-oriented middleware or MOM deployed in a compute cloud using software as a service model. Service subscribers access queues and or topics to exchange data using point-to-point or publish and subscribe patterns.

Middleware analysts are computer software engineers with a specialization in products that connect two different computer systems together. These products can be open-source or proprietary. As the term implies, the software, tools, and technologies used by Middleware analysts sit "in-the-middle", between two or more systems; the purpose being to enable two systems to communicate and share information.

<span class="mw-page-title-main">Unisys OS 2200 distributed processing</span> Aspect of Unisys OS 2200 operating system

OS 2200 supports all commonly used, and many not so commonly used, distributed processing protocols, APIs, and development technology.

IBM WebSphere Optimized Local Adapters (OLA or WOLA) is a functional component of IBM's WebSphere Application Server for z/OS that provides an efficient cross-memory mechanism for calls both inbound to WAS z/OS and outbound from z/OS. Because it avoids the overhead of other communication mechanisms, it is capable of high volume exchange of messages. WOLA is an extension to the existing cross-memory exchange mechanism of WAS z/OS, with WOLA providing an external interface so z/OS address spaces outside the WAS z/OS server may participate in cross-memory exchanges. WOLA supports connectivity between a WAS z/OS server and one or more of the following: CICS, IMS, Batch, UNIX Systems Services and ALCS. WOLA was first made available in WAS z/OS Version 7, Fixpack 4 (7.0.0.4). Functional enhancements have appeared in subsequent fixpacks as documented in this article.

MQTT is a lightweight, publish-subscribe, machine to machine network protocol for message queue/message queuing service. It is designed for connections with remote locations that have devices with resource constraints or limited network bandwidth, such as in the Internet of Things (IoT). It must run over a transport protocol that provides ordered, lossless, bi-directional connections—typically, TCP/IP. It is an open OASIS standard and an ISO recommendation.

<span class="mw-page-title-main">Distributed Data Management Architecture</span>

Distributed Data Management Architecture (DDM) is IBM's open, published software architecture for creating, managing and accessing data on a remote computer. DDM was initially designed to support record-oriented files; it was extended to support hierarchical directories, stream-oriented files, queues, and system command processing; it was further extended to be the base of IBM's Distributed Relational Database Architecture (DRDA); and finally, it was extended to support data description and conversion. Defined in the period from 1980 to 1993, DDM specifies necessary components, messages, and protocols, all based on the principles of object-orientation. DDM is not, in itself, a piece of software; the implementation of DDM takes the form of client and server products. As an open architecture, products can implement subsets of DDM architecture and products can extend DDM to meet additional requirements. Taken together, DDM products implement a distributed file system.

Enduro/X is an open-source middleware platform for distributed transaction processing. It is built on proven APIs such as X/Open group's XATMI and XA. The platform is designed for building real-time microservices based applications with a clusterization option. Enduro/X functions as an extended drop-in replacement for Oracle Tuxedo. The platform uses in-memory POSIX Kernel queues which insures high interprocess communication throughput.

References

  1. "MA95: A REXX interface to WebSphere MQ" . Retrieved 2014-10-09.
  2. "Introducing XMS -- The IBM Message Service API" . Retrieved 2007-12-06.
  3. MQSeries - Perl extension for MQSeries support - search.cpan.org
  4. "PyMQI Documentation". Archived from the original on 2013-01-17. Retrieved 2010-09-03.
  5. "MO74: WebSphere MQ - Windows Powershell Library" . Retrieved 2007-12-06.
  6. "IBM announcement of IBM MQ 9.2". International Business Machines (IBM). 21 July 2020. Retrieved 22 October 2020.
  7. "IBM announcement of IBM MQ 9.1". International Business Machines (IBM). 3 July 2018. Retrieved 6 August 2018.
  8. "IBM announcement of IBM MQ on IBM Cloud". International Business Machines (IBM). Retrieved 6 August 2018.
  9. "IBM announcement of IBM MQ 9.0". International Business Machines (IBM). 19 April 2016. Retrieved 17 June 2016.
  10. "MQSeries for MVS/ESA Version 1.2". International Business Machines (IBM). 8 July 1997. Retrieved 10 Dec 2018.
  11. "IBM Software Support Lifecycle".
  12. "IBM WebSphere MQ V7.1 is enhanced with lower cost of ownership, improved time to value, and more configurable security". IBM United States Software Announcement 211-395. IBM. October 4, 2011.
Listen to this article (22 minutes)
noicon
Sound-icon.svg
This audio file was created from a revision of this article dated 29 October 2011 (2011-10-29), and does not reflect subsequent edits.