Use Advanced Queuing with Autonomous Database on Dedicated Exadata Infrastructure

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.

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 in Oracle Database 19c Advanced Queuing User's Guide or Oracle Database 23ai 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 List of Examples in Oracle Database 19c or Oracle Database 23ai.
  • 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 in Oracle Database 19c or Oracle Database 23ai.

Tip:

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.