Oracle 注册订户未从队列中获取消息

Oracle 注册订户未从队列中获取消息,oracle,oracle-aq,Oracle,Oracle Aq,我们有一个在Oracle 11.2上使用Oracle AQ的流程。它工作得很好,昨天购买,队列中的消息停止发送到订阅者。下面是我们必须创建队列并注册处理程序的设置 DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table => 'mdms_queue_table', queue_payload_type => 'U$_MDM_QUEUE_OBJECT', multiple_con

我们有一个在Oracle 11.2上使用Oracle AQ的流程。它工作得很好,昨天购买,队列中的消息停止发送到订阅者。下面是我们必须创建队列并注册处理程序的设置

 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%'

所有消息都处于就绪状态。当我查询v$process时,我看到程序“QMNC”正按照以下方式运行。我可以通过调用DBMS_AQ.dequeue()手动取消消息队列。任何关于如何排除故障的建议都将不胜感激

有关oracle aq中需要考虑的一些方面,请参见。数据库的某些版本似乎在metalink中报告了问题。如果您以前有工作版本,也可以尝试重新创建对象。

好吧,我已经使用oracle支持打开了一个SR,他们甚至不知道发生了什么……您修复了吗?我也有同样的问题:不,它只会发生在某些数据库上,但在其他数据库上运行良好。我在oracle打开了一个SR,他们基本上放弃了。你能指定有这个问题的DB版本以及你可以让它工作的版本吗?它是11.2-相同的版本,只是不同的实例。