Зарегистрированный подписчик не получает сообщения из очереди

У нас есть процесс с использованием Oracle AQ на Oracle 11.2. Все работало нормально, купил вчера, сообщения в очереди перестали отправляться подписчику. Вот настройка, которую мы должны создать для создания очереди и регистрации обработчика.

 DBMS_AQADM.CREATE_QUEUE_TABLE (
          queue_table        => 'mdms_queue_table',
          queue_payload_type => 'U$_MDM_QUEUE_OBJECT',
          multiple_consumers => TRUE
          );

         DBMS_AQADM.CREATE_QUEUE (
          queue_name  => 'mdms_queue',
          queue_table => 'mdms_queue_table'
          );

       DBMS_AQADM.START_QUEUE (
          queue_name => 'mdms_queue'
          );

       DBMS_AQADM.ADD_SUBSCRIBER (
          queue_name => 'mdms_queue',
          subscriber => SYS.AQ$_AGENT(
                           'mdms_queue_subscriber',
                           NULL,
                           NULL )
          );

       DBMS_AQ.REGISTER (
          SYS.AQ$_REG_INFO_LIST(
             SYS.AQ$_REG_INFO(
                'mdms_queue:mdms_queue_subscriber',
                DBMS_AQ.NAMESPACE_AQ,
               'plsql://P_MDMS_QUEUE_CB_PROCEDURE?PR=0',
                HEXTORAW('FF')
                )
             ),
          1
          );          

DBMS_AQADM.GRANT_QUEUE_PRIVILEGE (
    'ALL','UIMSMGR.MDMS_QUEUE',  'BAN_DEFAULT_M');

Итак, теперь, когда сообщения помещаются в очередь, я запускаю этот запрос:

select DBA_QUEUES.NAME  , aq.*
from gv$aq aq,
dba_queues
where aq.qid  = dba_queues.qid
and
name like '%MDMS_QUEUE%'

И все сообщения сидят в состоянии READY. Когда я запрашиваю v$process, я вижу, что программа «QMNC» работает в соответствии с этим устранением неполадок Oracle. Док. Я могу вручную убрать сообщения из очереди, вызвав DBMS_AQ.dequeue(). Буду признателен за любые предложения по устранению неполадок!


person OldProgrammer    schedule 20.08.2014    source источник
comment
Ну, я открыл SR с поддержкой оракула, и они даже не уверены, что происходит...   -  person OldProgrammer    schedule 25.08.2014
comment
Вы исправили это? У меня та же проблема: stackoverflow. ком/вопросы/30502535/   -  person SaintLike    schedule 01.06.2015
comment
Нет, это происходило только в определенных базах данных, но отлично работало в других. Я открыл SR с оракулом, и они в основном сдались.   -  person OldProgrammer    schedule 01.06.2015
comment
Не могли бы вы указать версии БД, у которых была эта проблема, и те, которые вы могли бы заставить ее работать?   -  person SaintLike    schedule 01.06.2015
comment
Была 11.2 - та же версия, только экземпляры разные.   -  person OldProgrammer    schedule 01.06.2015


Ответы (1)


см. эту ссылку для некоторых аспектов, которые необходимо учитывать в oracle aq. Похоже, что в некоторых версиях базы данных есть проблемы, о которых сообщает металинк. Также попробуйте пересоздать объекты, если у вас раньше была рабочая версия.

person andhdo    schedule 24.09.2014