|
|
|
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
|
|||
|---|---|---|---|
|
#18+
Есть некоторая интеграционная связка между БД при помощи 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))) Если ставлю как условие, то сообщение не вычитывается, подскажите в чём нюанс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 18:31 |
|
||
|
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
|
|||
|---|---|---|---|
|
#18+
Sandro74и если рано закидывает сообщение обратно в очеред Код: plsql 1. и пусть лежит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 21:31 |
|
||
|
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ. Рассматривал такой вариант на крайний случай, но не хотелось бы. Вкратце, решение интеграции коробочное и данный функционал наша локальная "нашлёпка" и делать возврат сообщения в очередь из прикладного интерфейса, то не придётся ломать текущую архитектуру и плодить локальные решения. Да и интересно понять, почему так странно селектор себя ведёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2017, 09:43 |
|
||
|
Непонятка с вычиткой AQ по условию c tab.ENQ_TIME
|
|||
|---|---|---|---|
|
#18+
Sandro74, а что мешает при постановке сообщения назад в очередь выставить ему delay = 300 (5 минут) в message_properties? Тогда никакие костыли в dequeue не потребуются, сообщение просидит в очереди указанное количество секунд с состоянии ожидания, после чего перейдёт в состоянии готовности и будет доступно для выборки - как раз то, что Вам нужно, как я понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2017, 01:34 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=134&tid=1884798]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 288ms |

| 0 / 0 |
