Oracle 注册订户未从队列中获取消息
我们有一个在Oracle 11.2上使用Oracle AQ的流程。它工作得很好,昨天购买,队列中的消息停止发送到订阅者。下面是我们必须创建队列并注册处理程序的设置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
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-相同的版本,只是不同的实例。