1 / 20

Oracle Advanced Queuing ( Oracle Streams AQ )

Oracle Advanced Queuing ( Oracle Streams AQ ). Цветан Петров Главен експерт Анализ и дизайн Направление Платежни системи Банксервиз АД София tzpetrov@bsbg.net. Асинхронна връзка. Приложения-производители нареждат съобщения на опашка Приложения-консуматори вземат съобщения от опашка

zytka
Download Presentation

Oracle Advanced Queuing ( Oracle Streams AQ )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oracle Advanced Queuing(Oracle Streams AQ) Цветан Петров Главен експерт Анализ и дизайн Направление Платежни системи Банксервиз АД София tzpetrov@bsbg.net

  2. Асинхронна връзка • Приложения-производители нареждат съобщения на опашка • Приложения-консуматори вземат съобщения от опашка • Съобщението си седи в опашката, докато консуматорът си го вземе или изтече максималното време за престой в опашката • Производителят може да нареди съобщение, което ще стане видимо за консуматорите след известно време • Консуматорът може да изчака при опита си за вземане на съобщение, докато се появи такова • Едно приложение може да изпълнява едновременно да произвежда и консумира • Консумацията не е задължително да бъде в реда на производството • Произведените съобщения не е задължително да бъдат консумирани • Много производители може да произвеждат за един консуматор • Много производители може да произвеждат, а консуматорите да консумират по дадени критерии

  3. Oracle Streams AQ • DB базирано решение • DB интегрирано • Съобщенията се съхраняват в таблици • Разпространяват се до опашки в други бази данни, други компютри • Връзка с MQ

  4. Приложение А enqueue dequeue dequeue enqueue Опашка за заявки Опашка за отговори Приложение Б Услуга по заявка

  5. xml-базиран транспорт http(s), smtp oci, pl/sql, java клиенти Правила Трансформации Опашки Oracle mgw разпространение MQ Интеграция на приложения

  6. Производител enqueue Абонати Б,В Г dequeue за Г, Д Д dequeue Б В Много консуматори • Списък от абонати за опашка • Списък от получатели на съобщението

  7. Производител Регистър на правила за абонамент priority>1 priority=1 Б Г priority=3 В Абонамент с правила

  8. правила за насочване трансформация разпространение Преформатиране Интеграция на приложения • При нареждане в опашка • При разпространение • При консумиране

  9. Характеристики • Нареждане в опашка • Масив от съобщения с общи опции за нареждането в опашка • Корелация между съобщенията • Списък от абонати • Списък от получатели • Абонамент по правила • Приоритет и подредба • Групиране на съобщения • Разпространение • Идентификация на изпращача • Специфициране на времеви интервал, в който съобщението е достъпно за консумация • Асинхронна нотификация

  10. Характеристики • Вземане от опашка • Масив от съобщения • Множество получатели • Избор на съобщение – първото, следващо след последно взетото, според корелационния идентификатор • Режими – само преглед или вземане • Време за очакване на съобщение • Приоритет и подредба • Повторни опити и пауза между тях • Видимост на всяко съобщение или на всички в рамките на транзакцията • Опашка за изключения • Прослушване на множество опашки • Вземане на заглавната информация без полезния товар

  11. Характеристики • Разпространение • Автоматична координация между опашки за нареждане и получаване – сравняване на вида полезен товар • AQ-AQ – чрез database link • AQ-MQ(TIB/Rendezvous) – Messaging Gateway • Особености при LOB – grant Select, Insert and Update върху таблицата с опашката • Планиране на разпространението – стартово време, времеви прозорец за разпространение, следващ прозорец за периодично разпространение • Следене на пропагандите - DBA_QUEUE_SCHEDULES

  12. Характеристики • И още • Монитор на опашките • До 10.1 – QMNx, AQ_TM_PROCESSES • От 10.1 - Queue Monitor Coordinator (QMNC) и негови роби qXXX • Забавени съобщения • Съобщения с изтекъл срок • Брой повторни опити • Разчистване на таблиците след времето за запаметяване • Интеграция с OEM • Използване на SQL срещу таблиците с опашките • Select • DML – само с API!!! • Статистики – GV$AQ

  13. Характеристики • И още • Структуриран полезен товар • Насочване според съдържанието • Абонамент според съдържанието • SQL справки в съдържанието • XMLtype полезен товар • Всякакъв тип съобщение • Вътрешно представяне в CLOB • Проверка за съответствие със схема (xsd) • Справки в съдържанието

  14. Характеристики • И още • Време за запаметяване след консумация и история • Проследяване на нишката между съобщенията • ENQ_TRAN_ID • DEQ_TRAN_ID • USER_DATA • CORR_ID • MSG_ID • Привилегии на ниво опашка • Има и неустойчиви опашки – губят съдържанието си при падане на базата

  15. Важни детайли • dbms_aqadm • Константи • retention • 0, 1, 2... • INFINITE • message_grouping • TRANSACTIONAL • NONE • queue_type • NORMAL_QUEUE • EXCEPTION_QUEUE • NON_PERSISTENT_QUEUE • Подпрограми за опашкови таблици – create, alter, drop, purge… • За привилегии – grant,revoke system,queue privilege

  16. Важни детайли • dbms_aqadm • За опашки - create, alter, drop, start, stop… • За абонати – add, alter, remove subscriber • За нотификации – get, set watermark • За разпространение – schedule, unschedule, enable, disable • …

  17. Важни детайли • dbms_aq • Константи • Visibility - IMMEDIATE, ON_COMMIT • dequeue mode - BROWSE, LOCKED, REMOVE, REMOVE_NODATA • navigation - FIRST_MESSAGE, NEXT_MESSAGE, NEXT_TRANSACTION • state - WAITING, READY, PROCESSED, EXPIRED • wait - FOREVER, NO_WAIT • delay - NO_DELAY • expiration - NEVER • enque, dequeue, enqueue_array, dequeue_array • listen • register, unregister

  18. Важни детайли • Таблица AQ$MESSAGE_TYPES • При първо разпространение се сверяват типовете от двете страни и се записва TOID на отсрещния тип, verified=T • Таблица REG$ • Регистър за асинхронна нотификация • Опашка AQ_SRVNTFN_TABLE_Q • Съдържа нотифициращи съобщени • Views • Dba_queues • Dba_queue_schedules • dba_dblinks • Jobs • next_date := sys.dbms_aqadm.aq$_propaq(job); • sys.dbms_aqadm_sys.register_driver(); • Параметър • job_queue_processes

  19. Важни детайли • Повторни опити за разпространение се извършват до 16 пъти през интервали • 30 секунди • 1 минута • 2 минути • … • 16384 минути (11-12 дни) • Може да се управлява с промяна на времето на job-а • При 16 неуспешни опита – schedule_disabled става Y • listen връща първия агент със съобщение, но в реда, в който са подредени агентите в списъка

  20. B-Star – Oracle AQ интеграционно решение B-Star Bati

More Related