Вы здесь

Скрипт создания и удаления очередей в оракле.

Дано:
Схема AQ - содержит очереди.
Схема A - оперирует очередями и содержит процедуру-подписчик, которая будет вызываться во время извлечения задания из очереди


begin
-- создаем таблицу для очереди, multiple_consumers - параметр для мультиподписчиков, queue_payload_type - тип данных, который будет хранится в очереди
dbms_aqadm.create_queue_table(queue_table => 'AQ.DIRECTADMIN_Q_TBL',
queue_payload_type => 'sys.xmltype',
multiple_consumers => true);

-- создаем саму очередь, привязанную к таблице
dbms_aqadm.create_queue(queue_name => 'AQ.DIRECTADMIN_Q',
queue_table => 'AQ.DIRECTADMIN_Q_TBL');

-- выдаем привилегии для нужной схемы
dbms_aqadm.grant_queue_privilege(privilege => 'ALL',
queue_name => 'AQ.DIRECTADMIN_Q',
grantee => 'A',
grant_option => false);
-- выдаем привилегии на таблицу очереди, если нужно
--exec grant select , update, delete on AQ.DIRECTADMIN_Q_TBL to A;

-- запускаем очередь
dbms_aqadm.start_queue(queue_name => 'AQ.DIRECTADMIN_Q');

-- добавляем подписчика к очереди
dbms_aqadm.add_subscriber(queue_name => 'AQ.DIRECTADMIN_Q',
subscriber => sys.aq$_agent('DIRECTADMIN_Q_SUBSCRIBER',
NULL,
NULL));

-- регистрируем подписчика и делаем привязку к процедуре, которая вызовется при извлечении задания
dbms_aq.register(sys.aq$_reg_info_list(sys.aq$_reg_info('AQ.DIRECTADMIN_Q:DIRECTADMIN_Q_SUBSCRIBER',
dbms_aq.namespace_aq,
'PLSQL://A.PKG_QUEUE_CALLBACK.DIRECTADMIN',
HEXTORAW('FF'))),
1);

-- удаление очереди
/* dbms_aqadm.stop_queue(queue_name => 'AQ.DIRECTADMIN_Q');
dbms_aqadm.drop_queue(queue_name => 'AQ.DIRECTADMIN_Q');
dbms_aqadm.drop_queue_table(queue_table => 'AQ.DIRECTADMIN_Q_TBL');*/

end;

-- Ручной запуск обработчика очередей begin dbms_aqadm_sys.register_driver(); end;

Post new comment

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
2 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.