Use Advanced Queuing with Autonomous Database

Autonomous Database supports Transactional Event Queues (TEQ) to implement database-integrated message queuing functionality.

Oracle Transactional Event Queues (TEQ)

Modern messaging systems support point-to-point messaging and publish/subscribe to exchanging messages and events between applications. Applications built as microservices need messaging, as do workflow systems. Event meshes are getting more prevalent to transport and route application events between applications. Like Apache Kafka's Topics/Partitions, Transactional Event Queues use Queue Tables/Event Streams (AQ Sharded Queues use Queue Tables/Shards) as the partitioning abstraction.

Transactional Event Queues (TEQ) is the partitioned and in-memory implementation of Advanced Queuing, introduced in Database 12.2.0. 1 (2015). TEQ queues support the JMS spec and can be accessed in Java, Python, Node.js, PL/SQL, C/C++, .NET, and Go.

Transactional Event Queues (TEQ) store user messages in abstract storage units called queues. When microservices communicate with each other, or applications are part of a workflow, producer applications enqueue messages, and consumer applications dequeue messages. For an overview of queuing, see What is Queuing? in Advanced Queuing User's Guide.

Oracle Transactional Event Queues (TEQ) provides database-integrated message queuing functionality. This functionality leverages the functions of Oracle Database so that messages can be stored persistently, propagated between queues on different computers and databases, and transmitted using Oracle Net Services and HTTP(S). For more information, see Oracle Database Advanced Queuing Leverages Oracle Database in Advanced Queuing User's Guide.

Implementing Message Queuing in Autonomous Database

Oracle Transactional Event Queues (TEQ) provides the following interfaces to implement message queuing:
  • Administrative Interface: A collection of PL/SQL packages with subprograms that lets you manage queues, queue tables, transformations, and other administrative tasks such as granting and revoking privileges to TEQ users. You must connect as a user with administrative privileges to access these subprograms. To learn how to create an administrative user, see see Example 8-1: Setting Up AQ Administrative Users in List of Examples.
  • Programmatic Interface: Oracle Database Advanced Queuing offers programming interfaces for various programming languages such as PL/SQL, C, Java (JMS), and AQ XML (servlet) to implement your Advanced Queuing (AQ) application environment. For a list of AQ programmatic interfaces, functions supported in each interface, and syntax references, see Programmatic Interfaces for Accessing Oracle Database Advanced Queuing.


For a "try it out" alternative that demonstrates how to use Advanced Queuing, you can follow the instructions outlined in Building Microservices with Oracle Converged Database Workshop.