Usar Enfileiramento Avançado com o Autonomous Database on Dedicated Exadata Infrastructure

O Autonomous Database suporta as Filas de Eventos Transacionais (TEQ) para implementar a funcionalidade de fila de mensagens integradas ao banco de dados.

Oracle Transactional Event Queues (TEQ)

Os sistemas modernos de mensagens oferecem suporte a troca de mensagens ponto a ponto e publicação/inscrição para troca de mensagens e eventos entre aplicativos. Aplicativos criados como microsserviços precisam de mensagens, assim como os sistemas de workflow. As malhas de eventos estão se tornando mais predominantes para transportar e rotear eventos de aplicativos entre aplicativos. Assim como Tópicos/Partições do Apache Kafka, o TEQ (Transactional Event Queues) usa Tabelas de Filas/Streams de Eventos (Filas de Shards de AQ usam Tabelas/Shards de Filas) como a abstração de particionamento.

O TEQ (Transactional Event Queues) é a implementação particionada e na memória do Enfileiramento Avançado, introduzida no Banco de Dados 12.2.0. 1 (2015). As filas TEQ oferecem suporte à especificação JMS e podem ser acessadas em Java, Python, Node.js, PL/SQL, C/C++, .NET e Go.

O TEQ (Transactional Event Queues) armazena mensagens do usuário em unidades de armazenamento abstratas chamadas filas. Quando os microsserviços se comunicam entre si ou os aplicativos fazem parte de um workflow, os aplicativos produtores enfileiram mensagens e os aplicativos do consumidor tiram mensagens da fila.

O Oracle Transactional Event Queues (TEQ) fornece a funcionalidade de fila de mensagens integrada ao banco de dados. Essa funcionalidade utiliza as funções do Oracle Database para que as mensagens possam ser armazenadas de maneira persistente, propagadas entre filas em diferentes computadores e bancos de dados e transmitidas usando o Oracle Net Services e HTTP(S). Para obter mais informações, consulte Oracle Database Advanced Queuing no Oracle Database 19c Advanced Queuing User's Guide ou no Oracle Database 23ai Advanced Queuing User's Guide.

Implementando o Enfileiramento de Mensagens no Autonomous Database

O Oracle Transactional Event Queues (TEQ) fornece as seguintes interfaces para implementar o enfileiramento de mensagens:
  • Interface Administrativa: Um conjunto de pacotes PL/SQL com subprogramas que permite gerenciar filas, tabelas de filas, transformações e outras tarefas administrativas, como conceder e revogar privilégios para usuários do TEQ. Você deve estabelecer conexão como um usuário com privilégios administrativos para acessar esses subprogramas. Para saber como criar um usuário administrativo, consulte List of Examples no Oracle Database 19c ou Oracle Database 23ai.
  • Programmatic Interface: O Oracle Database Advanced Queuing oferece interfaces de programação para várias linguagens de programação, como PL/SQL, C, Java (JMS e AQ XML (servlet) para implementar o ambiente de aplicativos Advanced Queuing (AQ. Para obter uma lista de interfaces programáticas AQ, funções suportadas em cada interface e referências de sintaxe, consulte Programmatic Interfaces for Accessing Oracle Database Advanced Queuing em Oracle Database 19c ou Oracle Database 23ai.

Dica:

Para ter a opção de "testar" que demonstra como usar o Enfileiramento Avançado, você pode seguir as instruções descritas em Building Microservices with Oracle Converged Database Workshop.