CftClub.ru
Клуб специалистов ЦФТ-Банк

Сообщений RTL.SEND_EVENTS неактивному пользователю

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
maestro
Профи


Вступление в Клуб: 12.10.2010
СообщениеПт Июл 17, 2015 10:28   Сообщений RTL.SEND_EVENTS неактивному пользователю Ответить с цитатой
Полезность: Нет оценки
Приветствую, уважаемые мастера!

Есть банальная задача - рассылать уведомления пользователям через RTL.SEND_EVENTS, но с условием, что если у пользователя в момент "события" не запущен навигатор, то он должен получить его при следующем входе в систему.

Стандартный запуск RTL.SEND_EVENTS просто теряет сообщение, если у получателя не запущен Навигатор.
Сразу приходят идеи на тему навернуть очередь, назапускать джобов и триггеров, но хочется изящества.

Есть таблица RTL_EVENTS, которая судя по всему как раз решает задачу очереди сообщений.
Но пока что все мои попытки заставить её работать не увенчались успехом. Sad

Возможно кто-то уже решал подобную задачу?
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПт Июл 17, 2015 12:00   Re: Сообщений RTL.SEND_EVENTS неактивному пользователю Ответить с цитатой
Полезность: 1
maestro пишет:
Приветствую, уважаемые мастера!

Есть банальная задача - рассылать уведомления пользователям через RTL.SEND_EVENTS, но с условием, что если у пользователя в момент "события" не запущен навигатор, то он должен получить его при следующем входе в систему.

Стандартный запуск RTL.SEND_EVENTS просто теряет сообщение, если у получателя не запущен Навигатор.
Сразу приходят идеи на тему навернуть очередь, назапускать джобов и триггеров, но хочется изящества.

Есть таблица RTL_EVENTS, которая судя по всему как раз решает задачу очереди сообщений.
Но пока что все мои попытки заставить её работать не увенчались успехом. Sad

Возможно кто-то уже решал подобную задачу?


В 15.3 появилась ОП Очередь задач.
С её помощью задача решается достаточно просто.
Ну, то есть как просто... ОП Очередь задач сама по себе является справочником, который обрабатывается джобом. В каждой записи есть функция и процедура. джоб проверяет функцию, если та возвращает null, запускает процедуру.
Ну, функция вполне может проверить gv$session в поисках пользователя из-под навигатора.

Сам механизм немножко сложнее, но для этой задачи приведённых пояснений вполне хватит.

Событийный механизм работает на платформе приложения "Фоновые процессы", оно немножко платное. Однако, насколько я помню, покупаются исполняющие процессы, а эта задача вполне решается управляющими.

А зачем именно сообщения, чем электропочта плоха?
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПн Июл 20, 2015 03:02    Ответить с цитатой
Полезность: Нет оценки
ОП Очередь задач
только в ЦФТ_Банк, в Ретаил нет подобного механизма ?
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПн Июл 20, 2015 07:05    Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:
ОП Очередь задач
только в ЦФТ_Банк, в Ретаил нет подобного механизма ?

Есть, входит как часть в продукт "Экспорта данных для систем на платформе развития".

"DW. Задачи" (DWTASK).

Но в Ритейл она сделана не на фоновых процессах (пока), а тупо на текстовых заданиях по расписанию. Впрочем, принципы те же.
maestro
Профи


Вступление в Клуб: 12.10.2010
СообщениеПн Июл 20, 2015 11:06    Ответить с цитатой
Полезность: Нет оценки
Конвеер-то есть у нас свой, вопрос не в этом.

Интересует возможность запустить ядерную таблицу RTL_EVENTS.
Пакет RTL зачем-то ведь туда пишет! Зачем? Возможно ли использовать именно эту очередь?

Существует ли некий гарантированный способ отправлять сообщений без их потери?

Может кто разбирался с ядром?
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПн Июл 20, 2015 12:59    Ответить с цитатой
Полезность: 1
Может быть есть смысл реализовать на уровне оракла - при логине юзера , если приложение Навигатор, выдавать сообщение из таблички, устанавливать в табличке признак "получено", как то так
svn
Профи


Вступление в Клуб: 04.02.2008
СообщениеПн Июл 20, 2015 13:19    Ответить с цитатой
Полезность: 1
в чем проблема отправлять почту на адрес сотрудника?
Igorka
Профи


Вступление в Клуб: 28.09.2007
СообщениеВт Июл 21, 2015 10:20    Ответить с цитатой
Полезность: 1
Цитата:
получить его при следующем входе в систему

можно настроить операцию, которая будет запускаться при регистрации пользователя в системе, выведет сообщение
maestro
Профи


Вступление в Клуб: 12.10.2010
СообщениеВт Июл 21, 2015 20:27    Ответить с цитатой
Полезность: Нет оценки
Igorka пишет:
Цитата:
получить его при следующем входе в систему

можно настроить операцию, которая будет запускаться при регистрации пользователя в системе, выведет сообщение


Вы имеете ввиду триггер на логон? Или же можно как-то к событию регистрации сессии в lock-info привязаться?
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Июл 22, 2015 17:38    Ответить с цитатой
Полезность: 1
Сообщение у получателя отображается с некоторой задержкой, по крайней мере у нас. Вот сегодня я отправлял сообщение всем пользователям в 08:41:33, а пользователи получили сообщение в интервале от 08:41:37 до 22/07/2015 08:42:31 (время согласно журналу системных событий VW_CRIT_DIARY_EVENTS).
Использование события регистрации сессии не гарантирует доставку сообщения, т.к. сразу после отправки сообщения пользователь мог закрыть АРМ. По этой же причине отправка сообщения пользователю, имеющему в текущий момент открытую сессию, не гарантирует получения им отправленного сообщения.
ИМХО, если желать "гарантированную" доставку, то надо отслеживать факт получения согласно системным журналам.
Кроме того, у нас зафиксированы инциденты, когда пользователь утверждает, что сообщения не получал, хотя в журнале отмечен факт получения. Или пользователь врет, или ТЯ глючит...
lexus
Профи


Вступление в Клуб: 28.09.2007
СообщениеСр Июл 22, 2015 20:29    Ответить с цитатой
Полезность: 2
maestro пишет:
Igorka пишет:
Цитата:
получить его при следующем входе в систему

можно настроить операцию, которая будет запускаться при регистрации пользователя в системе, выведет сообщение


Вы имеете ввиду триггер на логон? Или же можно как-то к событию регистрации сессии в lock-info привязаться?

В Навигаторе есть возможность запускать операцию сразу при входе. Параметр NOVO.START_METHOD в профиле
http://cftclub.ru/viewtopic.php?t=776&postdays=0&postorder=asc&highlight=NOVO.START_METHOD&start=15
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru