Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 2 Subscribers Advanced Queues  [new]
ank
Member

Откуда:
Сообщений: 30
Привет всем!

При обработке сообщений из queue наблюдается
следующая ситуация - подписчики находятся на разных хостах и осуществляют сбор сообщений из одной очереди поочередно.
Каким образом можно добиться одновременного получения сообщений подписчиками из одной очереди?


Спасибо
1 апр 09, 18:20    [7007953]     Ответить | Цитировать Сообщить модератору
 Re: 2 Subscribers Advanced Queues  [new]
-=APS=-
Member

Откуда: Киев
Сообщений: 737
Не совсем понятно, каким все-таки образом подписчики забирают сообщения? Через callback или периодически, по своим правилам? И что подразумевается под "одновременным получением" - может, достаточно всего лишь попасть в промежуток N секунд?
2 апр 09, 10:55    [7009872]     Ответить | Цитировать Сообщить модератору
 Re: 2 Subscribers Advanced Queues  [new]
ank
Member

Откуда:
Сообщений: 30
для первого подписчика используется скрипт

DECLARE
  l_dequeue_options     DBMS_AQ.dequeue_options_t;
  l_message_properties  DBMS_AQ.message_properties_t;
  l_message_handle      RAW(16);
  l_event_msg           y;
   deqopt dbms_aq.dequeue_options_t;
BEGIN
  deqopt.consumer_name := 'SUBSCR';
  DBMS_AQ.dequeue(queue_name          => 'y',
                  dequeue_options     => deqopt,
                  message_properties  => l_message_properties,
                  payload             => l_event_msg,
                  msgid               => l_message_handle);
  COMMIT;
END;

для второго

DECLARE
  l_dequeue_options     DBMS_AQ.dequeue_options_t;
  l_message_properties  DBMS_AQ.message_properties_t;
  l_message_handle      RAW(16);
  l_event_msg           y;
   deqopt dbms_aq.dequeue_options_t;
BEGIN
  deqopt.consumer_name := 'SUBSCR2';
  DBMS_AQ.dequeue(queue_name          => 'y',
                  dequeue_options     => deqopt,
                  message_properties  => l_message_properties,
                  payload             => l_event_msg,
                  msgid               => l_message_handle);
  COMMIT;
END;

необходимо организовать независимую работу подписчиков. На деле один обрабатывает сообщение, другой ждет
2 апр 09, 13:46    [7011590]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить