Guide to Queuing

Ultra Messaging (Version 6.17.1)

Guide to Queuing
[ Single-page HTML ] | [ PDF ]

# Introduction

This document describes the queuing functionality of the Ultra Messaging UMQ product.

For policies and procedures related to Ultra Messaging Technical Support, see UM Support.

(C) Copyright 2004,2025 Informatica Inc. All Rights Reserved.

This software and documentation are provided only under a separate license agreement containing restrictions on use and disclosure. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise) without prior consent of Informatica LLC.

A current list of Informatica trademarks is available on the web at https://www.informatica.com/trademarks.html.

Portions of this software and/or documentation are subject to copyright held by third parties. Required third party notices are included with the product.

This software is protected by patents as detailed at https://www.informatica.com/legal/patents.html.

The information in this documentation is subject to change without notice. If you find any problems in this documentation, please report them to us in writing at Informatica LLC 2100 Seaport Blvd. Redwood City, CA 94063.

Informatica products are warranted according to the terms and conditions of the agreements under which they are provided.
INFORMATICA LLC PROVIDES THE INFORMATION IN THIS DOCUMENT "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ANY WARRANTY OR CONDITION OF NON-INFRINGEMENT.

# UMQ Overview <-

Ultra Messaging Queuing Edition (UMQ) is an extension of the functionality of UMS and UMP that provides message queuing functionality. Applications access UMQ features through the Ultra Messaging Application Programming Interface (API).

UMQ sources can send messages to a queue and receivers can retrieve messages from a queue asynchronously. UMQ includes the following functionality:

- Apache ActiveMQ™ broker
- High availability redundant broker configuration
- Queuing with persistence
- Once and only once delivery
- JMS (Java Message Service) support

UMQ also includes Ultra Load Balancing (ULB), for low-latency peer-to-peer load balancing without a broker.

# UMQ Architecture <-

An Ultra Messaging queuing system on a single node consists of client applications and a broker. An Ultra Messaging queuing system configured for high availability consists of client applications and three brokers.

## Single Node <-

A single-node queuing system consists of client applications and a broker.

The following image shows the components of a single-node queuing system:

A single-node queuing system contains the following components:

Source Applications
  Applications that you write, which contain a brokered context and one or more sources that send messages to broker queues. A source application can also be a JMS application.

BROKER Transport
  The type of transport Ultra Messaging uses to connect client applications to UMQ brokers.

Broker
  An Apache ActiveMQ broker. A broker contains one or many queues.

Queue
  The message destination that holds messages until the messages are delivered to a client receiver application.

Long-Term Storage
  The broker uses a message database for message persistence.

Receiver Applications
  Applications that you write, which contain a brokered context and one or more receivers that receive messages from broker queues. A receiver application can also be a JMS application.

## Introduction to High Availability <-

A high availability queuing system consists of client applications, three nodes, each with a broker, and three UMP stores. The UMP stores enable broker replication and failover functionality.

Client source and receiver applications connect to the active node only. The standby nodes receive a stream of replication updates from the active node, but the standby nodes do not generate any traffic except heartbeats and acknowledgments to the UMP stores.

The following image shows the components of a high-availability queuing system:

A high availability queuing system contains the following components:

Source Applications
  Applications that you write, which contain a brokered context and one or more sources that send messages to broker queues. A source application can also be a JMS application.

BROKER Transport
  The type of transport Ultra Messaging uses to connect client applications to UMQ brokers.

Node
  A node consists of a broker and a UMP store.

Broker
  An Apache ActiveMQ broker. A broker contains one or more queues. In a high-availability system, one broker functions as the active broker, and the other two brokers function as standby brokers.

Queue
  The message destination that holds messages until the messages are delivered to a client receiver application.

Long-Term Storage
  Each broker uses a message database for message persistence.

UMP Store
  The UMP store holds state and message data for the broker. All UMP stores In a high-availability system hold the same data. If the active broker fails and a standby broker becomes the active broker, the UMP store of the new active broker contains the data necessary for it to continue storing and delivering messages.

  UMP stores in a high-availability system hold the same data. As a group, the UMP stores ensure delivery of state-change and message-data events to all standby brokers. The active broker waits to process events and messages until a quorum of the UMP stores have acknowledged them to the active broker. The standby brokers rely on the stores for recovery of any missed events due to packet loss or a failure.

Receiver Applications
  Applications that you write, which contain a brokered context and one or more receivers that receive messages from broker queues. A receiver application can also be a JMS application.

## Client Applications <-

Client applications for queuing systems contain at least one brokered context. Client applications can contain Ultra Messaging sources or receivers, or both. Client applications can also include both standard contexts and brokered contexts.

# Security and Authentication <-

Ultra Messaging message security depends on enterprise network security. Informatica does not support security and authentication features for ActiveMQ.

# JMS <-

You can use a UMQ broker as a JMS provider for your JMS applications. You can write JMS message producer and message consumer applications that connect to and use a UMQ broker as a JMS provider.

You can write Ultra Messaging and JMS applications that interoperate in the following ways:

- Use an Ultra Messaging source application to send messages to queues in a UMQ broker, and use a JMS message consumer application to receive messages from the broker.
- Use a JMS message producer application to send messages to queues in a UMQ broker, and use an Ultra Messaging receiver application to receive messages from the broker.
- Use a JMS message producer application to send messages to topics or queues in a UMQ broker, and use a JMS message consumer application to receive messages from the broker.

You cannot use XA transactions, J2EE containers, or JCA resource adapters with Ultra Messaging.