WebSphere MQ
Encyclopedia
IBM WebSphere MQ' is a family of network
software products launched by IBM
in March 1992. It was previously known as MQSeries, a trademark
that IBM rebranded in 2002 to join the suite of WebSphere
products. WebSphere MQ, which is often referred to simply as "MQ" by users, is IBM's Message Oriented Middleware
offering. It allows independent and potentially non-concurrent applications on a distributed system
to communicate with each other. MQ is available on a large number of platforms (both IBM and non-IBM), including z/OS
(mainframe
), OS/400
(IBM System i or AS/400
), Transaction Processing Facility
, UNIX
(AIX, HP-UX
, Solaris), HP NonStop
, OpenVMS
, Linux
, OS 2200
, and Microsoft Windows
.
family from IBM
, was the most popular system for messaging across multiple platforms in 2000, including Windows, Linux, OS/2, IBM mainframe and midrange, and Unix. WebSphere MQ is often referred to as "MQ" or "MQ Series".
There are two parts to message queue (hence "MQ"):
A queue Manager, although not strictly required for message-oriented middleware, is a Websphere MQ prerequisite and system service that provides a logical container for the message queue and is responsible for transferring data to other queue managers via message channels.
There are several advantages to this technology:
strategy providing the universal messaging backbone across 80 different platforms. The growing importance of SOA and the growth of Web Services and other connectivity mechanisms are clearly important developments. Because of the loosely coupled nature of the message queueing model, a large number of existing MQ customers feel that they are already adopting SOA principles. The MQ Service definition support pack MA93 allows MQ applications to be catalogued as software assets which can then be reused and composed as Web Services.
MQ also supports Enterprise Service Bus
implementations, both proprietary and open source. For example, the Mule WMQ transport
is available with Mule Enterprise Edition
version 1.6 or later and, as of 2.2, contains many critical performance and reliability improvements as well as native support for WebSphere MQ-specific features.
Some of the APIs directly supported by IBM are:
Additional APIs (not officially supported) are also available via third-parties, for example:
It needs to be remembered that a message in the context of MQ has no implication other than a gathering of data. MQ is very generalized and can be used as a robust substitute for many forms of intercommunication. For example, it can be used to implement reliable delivery of large files as a substitute for FTP.
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.
It provides a means for transforming data between different architectures and protocols, such as Big Endian to Little Endian, or EBCDIC
to ASCII
. This is accomplished through the use of message data "exits". Exits are compiled applications which run on the queue manager host, and are executed by the WebSphere MQ software at the time data transformation is needed.
WebSphere MQ allows receipt of messages to "trigger" other applications to run, and thus provides the framework for a message driven architecture.
It implements the Java Message Service
standard API, and also has its own proprietary API, known as the Message Queuing Interface.
Unlike email, MQ itself is responsible for determining the destination of messages by the definition of queues, so processing of sent messages can be moved to a different application at a different destination. MQ provides a robust routing architecture, allowing messages to be routed via alternative paths around a network of MQ managers. MQ can be implemented as a cluster, where multiple MQ implementations share the processing of messages to allow higher performance and load balancing.
Queue managers communicate with the outside world either via a direct software connection, referred to by IBM as a "bindings" connection, or via a network or "client" connection. The bindings connection is limited to programs running on the same physical host as the queue manager, whereas applications using a client connection can connect to a queue manager on any other host in the network.
Bindings connections are generally faster, but client connections allow for a more robust, easily-changeable application design. For instance, with a client connection, the physical location of the queue manager is irrelevant, as long as it is reachable over the network.
Communication between queue managers 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 will send or receive data on a specific port. A sending channel has a defined destination and is associated with a specific transmission queue, the mechanism by which messages are queued awaiting transmission on the channel; a receiving channel will receive data from any other queue manager with a sending channel of the same name. 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" has the function of detecting connections from incoming channels and manage the connection of the sending to the receiving channels. It is the application's network interface to the queue manager. In a TCP/IP network, the listener will "listen" for connections on a specific port.
Local queues represent the location in which data is stored awaiting processing.
Remote queues represent a queue on another queue manager. They define the destination queue, which is one element of the routing mechanism for messages.
To transmit data to a queue on another queue manager, a message is placed on a remote queue. A remote queue is sent via the temporary storage transmission queue associated with a channel. On placing a message on a remote queue, the message will be 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 will examine the message to determine whether the message is for itself or is required to forward on to another queue manager. If it is the destination, the required queue will be checked, and if it exists, the message will be placed on this queue, if not, placed on the dead letter queue. MQ has features to manage efficient transmission of data across a variety of communication mediums, so for example messages can be batched together until a queue reaches a particular depth.
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 other element of a queue manager is the log, the mechanism used to create the robustness. 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 will be 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 is designed to support a wide variety of approaches to application development. 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.
ezBridge Transact for MQSeries - March, Sept, Nov, Dec 1993
(different platforms)
MQM/400 V2.3 - Feb/April 1994
MQSeries for MVS 1.1.2 - June 1994
ezBridge Transact for MQSeries 3.0 - July 1994
MQM/400 V3 - 4Q 1994
MQSeries 2.0 (OS/2, AIX) - Feb 1995 (the beginning of the end of
ezBridge)
MQSeries for MVS 1.1.3 - May 1995
MQSeries 2.2 (HP, SCO) - 4Q 1995
MQSeries 2.0 Windows NT - 2Q 1996
MQSeries 2.2 (Sun OS/Solaris, DC/OSx) - June, July 1996
MQSeries for MVS 1.1.4, - June 1996
MQSeries for MVS/ESA 1.2 - August 1997
MQSeries 5.0 - October 1997
MQSeries for AS/400 V4.2 - Feb 1998
MQSeries 5.1 - April (NT), June 1999
MQSeries for OS/390 V2.1 - Feb 1999
MQSeries for AS/400 V5.1 - July/Aug 2000
MQSeries for OS/390 V5.2 - Nov 2000
MQSeries 5.2 (Distributed) - Dec 2000
WebSphere MQ 5.3 (Distributed, iSeries) - June, July, Oct, Nov 2002
WebSphere MQ 5.3 z/OS - June 2002
WebSphere MQ 6.0 (Distributed, iSeries) - May 2005
WebSphere MQ 6.0 z/OS - June 2005
WebSphere MQ 7.0 (Distributed, iSeries) - May 2008
WebSphere MQ 7.0 z/OS - June 2008
, Telecommunications Access Method
(TCAM) came along in 1971 with the birth of TSO. It supported asynchronous messaging, as with 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. 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 computer-like devices, such as the 7740 and 7750 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 the late 1960s, 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.
In the late 1960s, 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??]
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??]
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. MQ was to be the extension of TCAM functionality from IBM-only systems to all other platforms. MQ has an architecture which 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.
WebSphere MQ now supports 80 different environments and has become the leading message switching/routing product in the industry.
. Several additional product options exist to help convert legacy programs into functioning Web service
s 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. WebSphere MQ provides the means by which communication exists between lines-of-business or otherwise separate business domains.
A related product in the WebSphere MQ product family called WebSphere Message Broker
enables a diverse and robust set of extensions to queue-based architectures. Using Message Broker
, one can implement a WebServices front-end, complete with WSDL
file support which can interact with any queue-based application.
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....
software products launched by IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
in March 1992. It was previously known as MQSeries, a trademark
Trademark
A trademark, trade mark, or trade-mark is a distinctive sign or indicator used by an individual, business organization, or other legal entity to identify that the products or services to consumers with which the trademark appears originate from a unique source, and to distinguish its products or...
that IBM rebranded in 2002 to join the suite of WebSphere
IBM WebSphere
IBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as "application and integration middleware". These software products are used by end-users to create applications and integrate applications with other applications...
products. WebSphere MQ, which is often referred to simply as "MQ" by users, is IBM's Message Oriented Middleware
Message-oriented middleware
Message-oriented middleware is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple...
offering. It allows independent and potentially non-concurrent applications on a distributed system
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...
to communicate with each other. MQ is available on a large number of platforms (both IBM and non-IBM), including z/OS
Z/OS
z/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...
(mainframe
Mainframe computer
Mainframes are powerful computers used primarily by corporate and governmental organizations for critical applications, bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing.The term originally referred to the...
), OS/400
OS/400
IBM i is an EBCDIC based operating system that runs on IBM Power Systems. It is the current evolution of the operating system named i5/OS which was originally named OS/400 when it was introduced with the AS/400 computer system in 1988....
(IBM System i or AS/400
IBM System i
The IBM System i is IBM's previous generation of midrange computer systems for IBM i users, and was subsequently replaced by the IBM Power Systems in April 2008....
), Transaction Processing Facility
Transaction Processing Facility
TPF is an IBM real-time operating system for mainframes descended from the IBM System/360 family, including zSeries and System z9. The name is an initialism for Transaction Processing Facility....
, UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
(AIX, HP-UX
HP-UX
HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...
, Solaris), HP NonStop
NonStop
NonStop can refer to the line of HP Integrity NonStop computers, the line of Tandem NonStop computers that preceded them, or the NonStop OS operating system that is designed for them. NonStop systems are based on an integrated hardware/software stack...
, OpenVMS
OpenVMS
OpenVMS , previously known as VAX-11/VMS, VAX/VMS or VMS, is a computer server operating system that runs on VAX, Alpha and Itanium-based families of computers. Contrary to what its name suggests, OpenVMS is not open source software; however, the source listings are available for purchase...
, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, OS 2200
Unisys OS 2200 operating system
OS 2200 is the operating system currently used for the Unisys ClearPath Dorado family of mainframe systems. OS 2200 is a lineal descendant of Exec 8 for the UNIVAC 1108. The name Exec 8 was shorthand for “Executive System for the UNIVAC 1108.” The UNIVAC 1108 computer was announced in 1964 and...
, and Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
.
Message-oriented middleware
WebSphere MQ, a member of the WebSphereIBM WebSphere
IBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as "application and integration middleware". These software products are used by end-users to create applications and integrate applications with other applications...
family from IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
, was the most popular system for messaging across multiple platforms in 2000, including Windows, Linux, OS/2, IBM mainframe and midrange, and Unix. WebSphere MQ is often referred to as "MQ" or "MQ Series".
There are two parts to message queue (hence "MQ"):
- Messages are collections of binaryBinary fileA binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes; for example, computer document files containing formatted text...
or character (for instance ASCIIASCIIThe American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
or EBCDICEBCDICExtended Binary Coded Decimal Interchange Code is an 8-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems....
) data that have some meaning to a participating program. As in other communications protocolCommunications protocolA communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...
s, storage, routing, and delivery information is added to the message before transmission and stripped from the message prior to delivery to the receiving application. - Message queues are objects that store messages in an application.
A queue Manager, although not strictly required for message-oriented middleware, is a Websphere MQ prerequisite and system service that provides a logical container for the message queue and is responsible for transferring data to other queue managers via message channels.
There are several advantages to this technology:
- Messages do not depend on pure packet-based transmissions, such as TCP/IP. This allows the sending and receiving ends to be decoupled and potentially operate asynchronously.
- Messages will be delivered once and once only, irrespective of errors and network problems.
Support of Service Oriented Architecture
WebSphere MQ is a key component in IBM's service-oriented architecture (SOA)Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
strategy providing the universal messaging backbone across 80 different platforms. The growing importance of SOA and the growth of Web Services and other connectivity mechanisms are clearly important developments. Because of the loosely coupled nature of the message queueing model, a large number of existing MQ customers feel that they are already adopting SOA principles. The MQ Service definition support pack MA93 allows MQ applications to be catalogued as software assets which can then be reused and composed as Web Services.
MQ also supports Enterprise Service Bus
Enterprise service bus
An enterprise service bus is a software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in Service Oriented Architecture...
implementations, both proprietary and open source. For example, the Mule WMQ transport
Mule (software)
Mule is a lightweight enterprise service bus and integration framework. It can handle services and applications using disparate transport and messaging technologies...
is available with Mule Enterprise Edition
Mule (software)
Mule is a lightweight enterprise service bus and integration framework. It can handle services and applications using disparate transport and messaging technologies...
version 1.6 or later and, as of 2.2, contains many critical performance and reliability improvements as well as native support for WebSphere MQ-specific features.
APIs
There are many ways to access WebSphere MQ facilities.Some of the APIs directly supported by IBM are:
- IBM Message Queue Interface (MQI) for CC (programming language)C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, COBOLCOBOLCOBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
, PL/IPL/IPL/I is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications...
, JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, RPG, and C++C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... - Java Message ServiceJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
- XMS for C/C++ and .NET
- .NET
- Representational State TransferRestRest may refer to:* Leisure* Human relaxation* SleepRest may also refer to:* Rest , a pause in a piece of music* Rest , the relation between two observers* Rest , a 2008 album by Gregor Samsa...
- SOAP
Additional APIs (not officially supported) are also available via third-parties, for example:
- PerlPerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
interface (developed and contributed by Hildo Biersma), available from CPANCPANCPAN, the Comprehensive Perl Archive Network, is an archive of nearly 100,000 modules of software written in Perl, as well as documentation for it. It has a presence on the World Wide Web at and is mirrored worldwide at more than 200 locations...
. - Python (programming language)Python (programming language)Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
interface PyMQI (originally developed by Les Smithson), available from PyPI - Windows PowerShellWindows PowerShellWindows PowerShell is Microsoft's task automation framework, consisting of a command-line shell and associated scripting language built on top of, and integrated with the .NET Framework...
Features
WebSphere MQ provides assured one-time delivery of messages across a wide variety of platforms. The product emphasizes reliability and robustness of message traffic, and ensures that a message should never be lost if MQ is appropriately configured.It needs to be remembered that a message in the context of MQ has no implication other than a gathering of data. MQ is very generalized and can be used as a robust substitute for many forms of intercommunication. For example, it can be used to implement reliable delivery of large files as a substitute for FTP.
MQ provides application designers
Middleware analyst
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...
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
FIFO
FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...
order of receipt at the local queue within priority of the message.
It provides a means for transforming data between different architectures and protocols, such as Big Endian to Little Endian, or EBCDIC
EBCDIC
Extended Binary Coded Decimal Interchange Code is an 8-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems....
to ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
. This is accomplished through the use of message data "exits". Exits are compiled applications which run on the queue manager host, and are executed by the WebSphere MQ software at the time data transformation is needed.
WebSphere MQ allows receipt of messages to "trigger" other applications to run, and thus provides the framework for a message driven architecture.
It implements the Java Message Service
Java Message Service
The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
standard API, and also has its own proprietary API, known as the Message Queuing Interface.
Unlike email, MQ itself is responsible for determining the destination of messages by the definition of queues, so processing of sent messages can be moved to a different application at a different destination. MQ provides a robust routing architecture, allowing messages to be routed via alternative paths around a network of MQ managers. MQ can be implemented as a cluster, where multiple MQ implementations share the processing of messages to allow higher performance and load balancing.
Communication
The primary component of a WebSphere MQ installation is the Queue Manager. The queue manager handles storage, timing issues, triggering, and all other functions not directly related to actual movement of data.Queue managers communicate with the outside world either via a direct software connection, referred to by IBM as a "bindings" connection, or via a network or "client" connection. The bindings connection is limited to programs running on the same physical host as the queue manager, whereas applications using a client connection can connect to a queue manager on any other host in the network.
Bindings connections are generally faster, but client connections allow for a more robust, easily-changeable application design. For instance, with a client connection, the physical location of the queue manager is irrelevant, as long as it is reachable over the network.
Communication between queue managers 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 will send or receive data on a specific port. A sending channel has a defined destination and is associated with a specific transmission queue, the mechanism by which messages are queued awaiting transmission on the channel; a receiving channel will receive data from any other queue manager with a sending channel of the same name. 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" has the function of detecting connections from incoming channels and manage the connection of the sending to the receiving channels. It is the application's network interface to the queue manager. In a TCP/IP network, the listener will "listen" for connections on a specific port.
Local queues represent the location in which data is stored awaiting processing.
Remote queues represent a queue on another queue manager. They define the destination queue, which is one element of the routing mechanism for messages.
To transmit data to a queue on another queue manager, a message is placed on a remote queue. A remote queue is sent via the temporary storage transmission queue associated with a channel. On placing a message on a remote queue, the message will be 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 will examine the message to determine whether the message is for itself or is required to forward on to another queue manager. If it is the destination, the required queue will be checked, and if it exists, the message will be placed on this queue, if not, placed on the dead letter queue. MQ has features to manage efficient transmission of data across a variety of communication mediums, so for example messages can be batched together until a queue reaches a particular depth.
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 other element of a queue manager is the log, the mechanism used to create the robustness. 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 will be 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 is designed to support a wide variety of approaches to application development. 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.
Version Release Dates
MQM MVS/ESA V1.1 GA (MVS)- December 31, 1993ezBridge Transact for MQSeries - March, Sept, Nov, Dec 1993
(different platforms)
MQM/400 V2.3 - Feb/April 1994
MQSeries for MVS 1.1.2 - June 1994
ezBridge Transact for MQSeries 3.0 - July 1994
MQM/400 V3 - 4Q 1994
MQSeries 2.0 (OS/2, AIX) - Feb 1995 (the beginning of the end of
ezBridge)
MQSeries for MVS 1.1.3 - May 1995
MQSeries 2.2 (HP, SCO) - 4Q 1995
MQSeries 2.0 Windows NT - 2Q 1996
MQSeries 2.2 (Sun OS/Solaris, DC/OSx) - June, July 1996
MQSeries for MVS 1.1.4, - June 1996
MQSeries for MVS/ESA 1.2 - August 1997
MQSeries 5.0 - October 1997
MQSeries for AS/400 V4.2 - Feb 1998
MQSeries 5.1 - April (NT), June 1999
MQSeries for OS/390 V2.1 - Feb 1999
MQSeries for AS/400 V5.1 - July/Aug 2000
MQSeries for OS/390 V5.2 - Nov 2000
MQSeries 5.2 (Distributed) - Dec 2000
WebSphere MQ 5.3 (Distributed, iSeries) - June, July, Oct, Nov 2002
WebSphere MQ 5.3 z/OS - June 2002
WebSphere MQ 6.0 (Distributed, iSeries) - May 2005
WebSphere MQ 6.0 z/OS - June 2005
WebSphere MQ 7.0 (Distributed, iSeries) - May 2008
WebSphere MQ 7.0 z/OS - June 2008
Background Architectural Reference
Developed in ScotlandScotland
Scotland is a country that is part of the United Kingdom. Occupying the northern third of the island of Great Britain, it shares a border with England to the south and is bounded by the North Sea to the east, the Atlantic Ocean to the north and west, and the North Channel and Irish Sea to the...
, Telecommunications Access Method
Telecommunications Access Method
Telecommunications Access Method 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....
(TCAM) came along in 1971 with the birth of TSO. It supported asynchronous messaging, as with MQ. TCAM
Telecommunications Access Method
Telecommunications Access Method 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....
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. 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 computer-like devices, such as the 7740 and 7750 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 the late 1960s, 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.
In the late 1960s, transaction management systems came into being, each trying to achieve a leadership position in the industry. Within IBM, CICS
CICS
Customer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...
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??]
CICS
CICS
Customer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...
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??]
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. MQ was to be the extension of TCAM functionality from IBM-only systems to all other platforms. MQ has an architecture which 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.
WebSphere MQ now supports 80 different environments and has become the leading message switching/routing product in the industry.
MQ and Web services
WebSphere MQ can be used as a foundation for creating Service Oriented ArchitecturesService-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
. Several additional product options exist to help convert legacy programs into functioning Web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...
s 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. WebSphere MQ provides the means by which communication exists between lines-of-business or otherwise separate business domains.
A related product in the WebSphere MQ product family called WebSphere Message Broker
IBM WebSphere Message Broker
WebSphere Message Broker is IBM's integration broker from the WebSphere product family that allows business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through the message broker to route and transform...
enables a diverse and robust set of extensions to queue-based architectures. Using Message Broker
IBM WebSphere Message Broker
WebSphere Message Broker is IBM's integration broker from the WebSphere product family that allows business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through the message broker to route and transform...
, one can implement a WebServices front-end, complete with WSDL
Web Services Description Language
The Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...
file support which can interact with any queue-based application.
See also
- Advanced Message Queuing ProtocolAdvanced Message Queuing ProtocolThe Advanced Message Queuing Protocol is an open standard application layer protocol for message-oriented middleware. The defining features of AMQP are message orientation, queuing, routing , reliability and security.AMQP mandates the behaviour of the messaging provider and client to the extent...
- Amazon Simple Queue ServiceAmazon Simple Queue ServiceAmazon Simple Queue Service is a distributed queue messaging service introduced by Amazon.com in April of 2006. It supports programmatic sending of messages via web service applications as a way to communicate over the internet...
- IBM WebSphere Message BrokerIBM WebSphere Message BrokerWebSphere Message Broker is IBM's integration broker from the WebSphere product family that allows business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through the message broker to route and transform...
- Java Message ServiceJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
- Message queueMessage queueIn computer science, message queues and mailboxes are software-engineering components used for interprocess communication, or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content...
- Microsoft Message QueuingMicrosoft Message QueuingMicrosoft Message Queuing or MSMQ is a Message Queue implementation developed by Microsoft and deployed in its Windows Server operating systems since Windows NT 4 and Windows 95. The latest Windows 7 also includes this component...
External links
- IBM's Product Overview
- Product page
- WebSphere MQ Official Twitter page
- [ftp://ftp.software.ibm.com/software/integration/wmq/WS_MQ_Messaging_Backbone_for_SOA.pdf Introductory Whitepaper]
- Trial code
- IBM Redbook: WebSphere MQ V6 Fundamentals
- WebSphere MQ newsgroups
- MQSeries Installation, Configuring inetd, xinet, Using JMSAdmin (In French)
- MQConnect for Unisys MCP
- MQ commands
- IBM Developerworks starting point