powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
5 сообщений из 5, страница 1 из 1
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
    #39562803
Sandro74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть некоторая интеграционная связка между БД при помощи AQ, разбор сообщений из очереди многопоточный, а нужно обеспечить FIFO обработку сообщений отправляемых бизнес процессом, для этого сделал прикладной функционал, который разбирает сообщения и по системным тегам определяет, нужно его обрабатывать или ещё рано , т.к. не обработались другие и если рано закидывает сообщение обратно в очередь. Соответственно тут же вычитывать сообщение не надо и надо , что бы оно вылежалось.

Для этого добавляю в correlation метку о том, что это повтор и ставлю условие (с костылём на таймзону +3 часа)
tab.enq_time < sysdate - ((3/24) + (5/(24*60*60)) )

Выборка на прямую прекрасно работает:
select * from ibs.aq_quo_in_tbl tab where tab.enq_time < sysdate - ((3/24) + (5/(24*60*60)))

Если ставлю как условие, то сообщение не вычитывается, подскажите в чём нюанс.
...
Рейтинг: 0 / 0
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
    #39562860
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro74и если рано закидывает сообщение обратно в очеред
Код: plsql
1.
dequeue_options.dequeue_mode := dbms_aq.browse;

и пусть лежит...
...
Рейтинг: 0 / 0
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
    #39563462
Sandro74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. Рассматривал такой вариант на крайний случай, но не хотелось бы. Вкратце, решение интеграции коробочное и данный функционал наша локальная "нашлёпка" и делать возврат сообщения в очередь из прикладного интерфейса, то не придётся ломать текущую архитектуру и плодить локальные решения.

Да и интересно понять, почему так странно селектор себя ведёт.
...
Рейтинг: 0 / 0
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
    #39564102
Bobby Z.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro74,

а что мешает при постановке сообщения назад в очередь выставить ему delay = 300 (5 минут) в message_properties? Тогда никакие костыли в dequeue не потребуются, сообщение просидит в очереди указанное количество секунд с состоянии ожидания, после чего перейдёт в состоянии готовности и будет доступно для выборки - как раз то, что Вам нужно, как я понимаю.
...
Рейтинг: 0 / 0
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
    #39564121
Sandro74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, это то что нужно. Спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]