Criando, Populando e Consumindo Advanced Queue com BPEL – Parte 1/3
Este post irá mostrar como você pode fazer uso das filas do banco de dados Oracle – Oracle Advanced Queue.
No cenário apresentado, é sugerida a integração entre dois sistemas, sendo que o Sistema A irá enfileirar as informações para que o serviço da camada Middleware faça o consumo e dispare os dados para o Sistema B.
A seguir você poderá criar uma nova fila com um tipo de dado definido, em seguida ela será populada com dados fixos utilizando PLSQL e por fim, em um processo BPEL assíncrono fazer o dequeue (consumo).
Construindo
Os passos a seguir são para construção da fila e definição da mensagem que será entregue ao consumidor.
Conecte no banco de dados Oracle e execute os scripts na sequência, no final deste artigo você poderá fazer download dos scripts.
Tipo que define a estrutura da mensagem que será adicionada a fila.
--
CREATE TYPE XXAR_KEY_INVOICE AS OBJECT (
INVOICE_NUM NUMBER(10),
SOURCE_NAME VARCHAR2(200),
TOTAL_AMOUNT NUMBER(15,2),
DESCRIPTION VARCHAR2(500))
/
Criação da Queue Table, associada ao tipo (estrutura da mensagem).
--
Begin
DBMS_AQADM.create_queue_table( queue_table => 'XXAR_INVOICE', -- nome da QTable
queue_payload_type => 'XXAR_KEY_INVOICE' -- tipo mensagem da QTable
);
End;
/
Criação da fila vinculada com a tabela controladora dos registros que serão adicionados a fila.
--
Begin
DBMS_AQADM.create_queue(queue_name => 'XXAR_INVOICE_QTAB', -- nome da Queue
queue_table => 'XXAR_INVOICE' -- Tabela controladora da Queue
);
End;
/
Iniciando a fila.
-- Begin DBMS_AQADM.start_queue( queue_name => 'XXAR_INVOICE_QTAB' ); End; /
CREATE OR REPLACE TYPE XXAR_KEY_INVOICE_T AS TABLE OF XXAR_KEY_INVOICE; /
Pronto, agora conseguimos criar a AQ com um tipo de dado complexo definido.
Como você deve ter percebido toda a criação da fila faz uso da API core DBMS_AQADM. Para o nosso próximo passo que é o envio de mensagens para a fila (enqueue), será necessário a DBMS_AQ.
Downloads
[]‘s









