Chapter 1. Overview


AMQ C++ is a library for developing messaging applications. It enables you to write C++ applications that send and receive AMQP messages.

AMQ C++ is part of AMQ Clients, a suite of messaging libraries supporting multiple languages and platforms. For an overview of the clients, see AMQ Clients Overview. For information about this release, see AMQ Clients 2.4 Release Notes.

AMQ C++ is based on the Proton API from Apache Qpid.

1.1. Key features

  • An event-driven API that simplifies integration with existing applications
  • SSL/TLS for secure communication
  • Flexible SASL authentication
  • Automatic reconnect and failover
  • Seamless conversion between AMQP and language-native data types
  • Access to all the features and capabilities of AMQP 1.0

1.2. Supported standards and protocols

AMQ C++ supports the following industry-recognized standards and network protocols:

1.3. Supported configurations

AMQ C++ supports the following OS and language versions:

  • Red Hat Enterprise Linux 6 with GNU C++, compiling as C++03 or C++0x (partial C++11 support)
  • Red Hat Enterprise Linux 7 and 8 with GNU C++, compiling as C++03 or C++11
  • Microsoft Windows 10 Pro with Microsoft Visual Studio 2013
  • Microsoft Windows Server 2012 R2 and 2016 with Microsoft Visual Studio 2013

AMQ C++ is supported in combination with the following AMQ components and versions:

  • All versions of AMQ Broker
  • All versions of AMQ Interconnect
  • All versions of AMQ Online
  • A-MQ 6 versions 6.2.1 and higher

For more information, see Red Hat AMQ Supported Configurations.

1.4. Terms and concepts

This section introduces the core API entities and describes how they operate together.

Table 1.1. API terms
EntityDescription

Container

A top-level container of connections.

Connection

A channel for communication between two peers on a network. It contains sessions.

Session

A context for sending and receiving messages. It contains senders and receivers.

Sender

A channel for sending messages to a target. It has a target.

Receiver

A channel for receiving messages from a source. It has a source.

Source

A named point of origin for messages.

Target

A named destination for messages.

Message

An application-specific piece of information.

Delivery

A message transfer.

AMQ C++ sends and receives messages. Messages are transferred between connected peers over senders and receivers. Senders and receivers are established over sessions. Sessions are established over connections. Connections are established between two uniquely identified containers. Though a connection can have multiple sessions, often this is not needed. The API allows you to ignore sessions unless you require them.

A sending peer creates a sender to send messages. The sender has a target that identifies a queue or topic at the remote peer. A receiving peer creates a receiver to receive messages. The receiver has a source that identifies a queue or topic at the remote peer.

The sending of a message is called a delivery. The message is the content sent, including all metadata such as headers and annotations. The delivery is the protocol exchange associated with the transfer of that content.

To indicate that a delivery is complete, either the sender or the receiver settles it. When the other side learns that it has been settled, it will no longer communicate about that delivery. The receiver can also indicate whether it accepts or rejects the message.

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\...).

Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.