Сижу, изучаю Advanced Queueing по примерам.
Самый примитивный пример:
CREATE OR REPLACE TYPE event_itr_type AS OBJECT (
xpId Number,
tncpi3Id Number,
startTime Date,
endTime Date,
type VARCHAR2(32)
);
/
BEGIN
DBMS_AQADM.create_queue_table (
queue_table => 'vht_tmp.event_queue_tab', queue_payload_type => 'vht_tmp.event_itr_type');
DBMS_AQADM.create_queue (
queue_name => 'vht_tmp.event_queue',
queue_table => 'vht_tmp.event_queue_tab');
DBMS_AQADM.start_queue (
queue_name => 'vht_tmp.event_queue',
enqueue => TRUE);
END;
/
DECLARE
l_enqueue_options DBMS_AQ.enqueue_options_t;
l_message_properties DBMS_AQ.message_properties_t;
l_message_handle RAW(16);
l_event_msg event_itr_type;
BEGIN
l_event_msg := event_itr_type(123, 456789, SYSDATE, SYSDATE+1/24, 'PLAAN');
DBMS_AQ.enqueue(queue_name => 'vht_tmp.event_queue',
enqueue_options => l_enqueue_options,
message_properties => l_message_properties,
payload => l_event_msg,
msgid => l_message_handle);
COMMIT;
END;
/
А чем все закончилось?
ОтветитьУдалитьДа всё получилось. Система, использующая эти механизмы, уже несколько лет успешно стоит на Продакшн. Не жалуемся.
ОтветитьУдалить