Ошибки регистрации подписки Oracle AQ? - PullRequest
0 голосов
/ 24 января 2019

У меня есть следующая очередь 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 => '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;

Ошибка регистрируется или отображается где-либо после того, как сообщение ставится в очередь и вызывается процедура? Или процедуры обратного вызова просто молча терпят неудачу?

1 Ответ

0 голосов
/ 24 января 2019

https://docs.oracle.com/cd/B19306_01/server.102/b14257/aq_views.htm USER_QUEUE_SCHEDULES / DBA_QUEUE_SCHEDULES?Есть 3 столбца для ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...