Oracle AQ订阅注册错误?
我已创建以下Oracle队列、订阅服务器和注册:Oracle AQ订阅注册错误?,oracle,plsql,Oracle,Plsql,我已创建以下Oracle队列、订阅服务器和注册: begin dbms_aqadm.create_queue_table( queue_table => 'test_queue', multiple_consumers => true, queue_payload_type => 'sys.aq$_jms_map_message', compatible => '8.1.3', comment =>
begin
dbms_aqadm.create_queue_table(
queue_table => 'test_queue',
multiple_consumers => true,
queue_payload_type => 'sys.aq$_jms_map_message',
compatible => '8.1.3',
comment => 'Creating test queue table'
);
dbms_aqadm.create_queue(
queue_name => 'test_queue',
queue_table => 'test_queue',
comment => 'Test Queue'
);
dbms_aqadm.start_queue(queue_name => 'test_queue');
dbms_aqadm.add_subscriber(
queue_name => 'test_queue',
subscriber => sys.aq$_agent('plsql', null, null)
);
dbms_aq.register(
reg_list => sys.aq$_reg_info_list(
sys.aq$_reg_info(
'test_queue:plsql',
dbms_aq.namespace_aq,
'plsql://p_queue_callback?PR=1',
null
)
),
reg_count => 1
);
end;
给定具有未捕获异常的回调过程:
create or replace procedure p_queue_callback (
context raw,
reginfo sys.aq$_reg_info,
descr sys.aq$_descriptor,
payload varchar2,
payloadl number
)
is
l_foo number;
begin
-- Results in an ORA-01476: divisor is equal to zero runtime exception
l_foo := 1 / 0;
end;
消息进入队列并调用过程后,是否在任何位置记录或显示错误?还是回调过程只是默默地失败?
用户队列调度/DBA队列调度?错误有3列。情况似乎并非如此。据我所知,订阅者通知(DBA_SUBSCR_注册)似乎根本就没有创建队列调度记录。