Chapter 1. Overview
AMQ JMS is a Java Message Service (JMS) 2.0 client for use in messaging applications that send and receive AMQP messages.
AMQ JMS is part of AMQ Clients, a suite of messaging libraries supporting multiple languages and platforms. See Introducing Red Hat JBoss AMQ 7 for an overview of the clients and other AMQ components. See AMQ Clients 1.2 Release Notes for information about this release.
AMQ JMS is based on the JMS client from Apache Qpid.
1.1. Key Features
AMQ JMS gives you all of the features of JMS with the power of AMQP.
- JMS 2.0 compatible
- SSL/TLS and SASL for secure communication
- Heartbeating and automatic reconnect for reliable network connections
- Ready for use with OSGi containers
- Pure-Java implementation
1.2. Supported Standards and Protocols
AMQ JMS supports the following industry-recognized standards and network protocols.
- Version 2.0 of the Java Message Service API
- Version 1.0 of the Advanced Message Queueing Protocol (AMQP)
- Version 1.0 of the AMQP JMS Mapping
- Modern TCP with IPv6
The details of distributed transactions (XA) within AMQP are not provided in the 1.0 version of the specification. If your environment requires support for distributed transactions, it is recommended that you use the AMQ Core Protocol JMS.
1.3. Supported Configurations
AMQ JMS supports the following OS and language versions. See Red Hat JBoss AMQ 7 Supported Configurations for more information.
Red Hat Enterprise Linux 6 and 7 with the following JDKs.
- OpenJDK 8
- Oracle JDK 8
- IBM JDK 8
- HP-UX 11i with HP-UX JVM 8
- IBM AIX 7.1 with IBM JDK 8
- Oracle Solaris 10 and 11 with Oracle JDK 8
- Microsoft Windows Server 2012 R2 with Oracle JDK 8
1.4. Terms and Concepts
This section introduces the core API entities and describes how they operate together.
Entity | Description |
---|---|
| An entry point for creating connections |
| A channel for communication between two peers on a network |
| A serialized context for producing and consuming messages |
| A channel for sending messages to a destination |
| A channel for receiving messages from a destination |
| A named location for messages, either a queue or a topic |
| A stored sequence of messages |
| A stored sequence of messages for multicast distribution |
| A mutable holder of application content |
AMQ JMS sends and receives messages. Messages are transferred between connected peers using message producers and consumers. Producers and consumers are established over sessions. Sessions are established over connections. Connections are created by connection factories.
A sending peer creates a producer to send messages. The producer has a destination that identifies a target queue or topic at the remote peer. A receiving peer creates a consumer to receive messages. Like the producer, the consumer has a destination that identifies a source queue or topic at the remote peer.
A destination is either a queue or a topic. In JMS, queues and topics are client-side representations of named broker entities that hold messages.
A queue implements point-to-point semantics. Each message is seen by only one consumer, and the message is removed from the queue after it is read. A topic implements publish-subscribe semantics. Each message is seen by multiple consumers, and the message remains available to other consumers after it is read.
See the JMS tutorial for more information.
1.5. Document Conventions
This document uses the following conventions for the sudo
command and file paths.
The sudo
Command
In this document, sudo
is used for any command that requires root privileges. You should always exercise caution when using sudo
, as any changes can affect the entire system.
For more information about using sudo
, see The sudo
Command.
About the Use of File Paths in this Document
In this document, all file paths are valid for Linux, UNIX, and similar operating systems (for example, /home/...
). If you are using Microsoft Windows, you should use the equivalent Microsoft Windows paths (for example, C:\Users\...
).