You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 12c基于事件的调度器作业执行延迟原因咨询

基于事件的Oracle调度器作业存在固定延迟问题咨询

环境与参数

  • 系统:Linux 64位
  • Oracle版本:12.2
  • 关键配置参数:
    job_queue_processes = 4000
    aq_tm_processes = 1
    

问题描述

基于事件的调度器作业在事件处理环节存在15-20秒的固定延迟。测试场景非常简单:向队列放入一条消息后,作业要等待上述时长才开始执行,原本预期这种简单场景下延迟应该是毫秒级。

测试用例

create or replace type t_test_type
as object(id number, msg varchar2(50));
/
create or replace procedure test_q_proc
(
 p_job_name in varchar2,
 p_event_message in t_test_type
)
as
begin 
  dbms_output.put_line('msg= '||p_event_message.msg);
end;
/

begin 
  dbms_aqadm.create_queue_table('test_q_table','t_test_type',multiple_consumers => true);
  dbms_aqadm.create_queue('test_q','test_q_table');
  dbms_aqadm.start_queue('test_q');
  dbms_scheduler.create_program('test_q_prog','stored_procedure','test_q_proc',2, false);
  dbms_scheduler.define_metadata_argument('test_q_prog','job_name',1,'p_job_name');
  dbms_scheduler.define_metadata_argument('test_q_prog','event_message',2,'p_event_message');
  dbms_scheduler.enable('test_q_prog');
  dbms_scheduler.create_job('test_q_job','test_q_prog',
                            event_condition=> 'tab.user_data is not null',
                            queue_spec=>'test_q',enabled=> true);
 end;         
 /
 declare
  opts dbms_aq.enqueue_options_t;
  props dbms_aq.message_properties_t;
  pl t_test_type := t_test_type(1, 'test');
  msg_id raw(16);
 begin 
   dbms_aq.enqueue('test_q',opts, props, pl, msg_id);
   commit;
 end;                  
 / 

内容的提问来源于stack exchange,提问作者Andrew Klimov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:54:22