Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Oracle. Advanced queueing. Интересует литература и проч. источники подробностей.  (Прочитано 7001 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« : 07-07-2010 18:23 » new

Впервые столкнулся с этими очередями. Сразу скажу, что streams и capturing сейчас не интересуют - только очереди (AQ) изучаю.

Литература у меня сейчас - официальная дока B14257-01 "Advanced Queuing User's Guide and Reference 10g R2" и B14258-01 "PL-SQL Packages and Types Reference 10g R2". Объем док приличный, но на некоторые, вполне естественные вопросы разработчика, ответов не нахожу. Например, поведение AQ Notification (особенно в плане сбоев оповещения по HTTP) и насколько успешно конфигурация этого дела переносится с дампом схемы (expdp). Думаю, что со временем вопросов только прибавится.
Пока приходится ставить массу экспериментов, чтобы понять поведение. Только такой подход не есть гуд, т.к. коли не описано в доке, то при апгрейде на 11 это может поменяться.

Пробовал рыть инет, но информации не густо. В основном - основы и дублирование оф.доки. Известный сайт sql.ru тоже не блещет в этом плане. Из того, что там нашел - ссылаются на некий student book (я так и не понял, где искать его), но также говорят, что оф.дока полнее.

В общем, если кто знает хорошие доки  по этому делу (предпочтительнее - русскоязычные, т.к. большие объемы легче на родном читать), напишите, пожалуйста, названия книг, урлы сайтов или, даже может быть, названия разделов оф.доки, если я проглядел эти подробности.

P.S.: пока я знаю только две справочные документации, где с любого места можно разобраться в задаче: старый MSDN (которого уже давно нет) и дока по АТС Nortel Meridian1. Жаль, что ораклисты не практикуют справочники типа "фичи". Да и вообще у них опечаток в доках столько... Жаль

P.P.S: интерес в AQ у меня пока на почве реализации асинхронной обработки заданий: забил данные в табличку, триггер тут же их подхватил и внес в очередь, а далее через оповещение (и что главное - с минимальными задержками!) запускается обработчик задания. Это все пока для web.
« Последнее редактирование: 07-07-2010 18:29 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 08-07-2010 04:04 » 

RXL, AQ у нас активно используются, но как и у тебя основной источник информации это доки
Известные фичи:
1. не работают в сериализованной транзакции - т.е. выдают данные появившиеся после начала транзакции
2. если какой-то гад не нажал коммит после постановки в очередь сообщения, то создание подписчика приводит к зависанию, поэтому мы не удаляем подписчиков
Записан

Странно всё это....
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 08-07-2010 05:39 » 

Антон, а не искали корреляцию этих трабл с DBMS_AQ.ENQUEUE_OPTIONS_T.visibility? Может все дело в используемом уровне изоляции транзакций?
Какая версия Oracle используется?

Я столкнулся с еще одной траблой: регистрирую notification с опцией DBMS_AQ.NTFN_QOS_RELIABLE (This value specifies that reliable notification is required. Reliable notifications persist across instance and database restarts.) и callback через HTTP, проверяю работоспособность, а после переименовываю файл скрипта на http-сервере, заношу сообщение в очередь, вижу снифером запрос и ответ 404, после чего регистрация notification автоматом снимается. Т.е. надежность решения крайне низкая. Думаю, что надо сделать callback через plsql:// и дальнейшим ручным посылом HTTP-запроса с обработкой ошибок, а возможно и созданием job для повторения запроса.
« Последнее редактирование: 08-07-2010 05:55 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines