dbms_scheduler job raise_events dequeue
来源:互联网 发布:专心做事 知乎 编辑:程序博客网 时间:2024/04/26 00:51
首先需要 DBMS_SCHEDULER.add_event_queue_subscriber ,否则无法使用
设置前面的job,使它执行时抛出事件,为了便于测试,改为手动执行:
建立一个proc,用来提取抛出的队列信息
手动执行job
查看队列信息,会有两个信息,第一个是启动(job_started)
第二个是成功:job_succeeded
测试结束,
信息参考:http://www.oracle-base.com/articles/10g/scheduler-enhancements-10gr2.php
SQL> EXEC DBMS_SCHEDULER.remove_event_queue_subscriber;PL/SQL procedure successfully completed
设置前面的job,使它执行时抛出事件,为了便于测试,改为手动执行:
BEGIN dbms_scheduler.disable('SCHEDULER_JOB_TEST'); dbms_scheduler.set_attribute('SCHEDULER_JOB_TEST', 'raise_events', dbms_scheduler.job_all_events); dbms_lock.sleep(2);END;/
建立一个proc,用来提取抛出的队列信息
CREATE OR REPLACE PROCEDURE p_dequeue AS l_dequeue_options dbms_aq.dequeue_options_t; l_message_properties dbms_aq.message_properties_t; l_message_handle RAW(16); l_queue_msg sys.scheduler$_event_info;BEGIN l_dequeue_options.consumer_name := USER; dbms_aq.dequeue(queue_name => 'SYS.SCHEDULER$_EVENT_QUEUE', dequeue_options => l_dequeue_options, message_properties => l_message_properties, payload => l_queue_msg, msgid => l_message_handle); COMMIT; dbms_output.put_line('event_type : ' || l_queue_msg.event_type); dbms_output.put_line('object_owner : ' || l_queue_msg.object_owner); dbms_output.put_line('object_name : ' || l_queue_msg.object_name); dbms_output.put_line('event_timestamp: ' || l_queue_msg.event_timestamp); dbms_output.put_line('error_code : ' || l_queue_msg.error_code); dbms_output.put_line('event_status : ' || l_queue_msg.event_status); dbms_output.put_line('log_id : ' || l_queue_msg.log_id); dbms_output.put_line('run_count : ' || l_queue_msg.run_count); dbms_output.put_line('failure_count : ' || l_queue_msg.failure_count); dbms_output.put_line('retry_count : ' || l_queue_msg.retry_count);END;/
手动执行job
SQL> EXEC dbms_scheduler.run_job('SCHEDULER_JOB_TEST');PL/SQL procedure successfully completed
查看队列信息,会有两个信息,第一个是启动(job_started)
SQL> SET serveroutput ONSQL> EXEC p_dequeue;event_type : JOB_STARTEDobject_owner : TESTobject_name : SCHEDULER_JOB_TESTevent_timestamp: 15-8月 -14 04.48.40.316000 下午 +08:00error_code : 0event_status : 1log_id : 2266run_count : 5failure_count : 0retry_count : 0PL/SQL procedure successfully completed
第二个是成功:job_succeeded
SQL> EXEC p_dequeue;event_type : JOB_SUCCEEDEDobject_owner : TESTobject_name : SCHEDULER_JOB_TESTevent_timestamp: 15-8月 -14 04.48.40.675000 下午 +08:00error_code : 0event_status : 0log_id : 2266run_count : 5failure_count : 0retry_count : 0PL/SQL procedure successfully completed
测试结束,
REMOVE_EVENT_QUEUE_SUBSCRIBER
SQL> EXEC DBMS_SCHEDULER.remove_event_queue_subscriber;PL/SQL procedure successfully completed
信息参考:http://www.oracle-base.com/articles/10g/scheduler-enhancements-10gr2.php
0 0
- dbms_scheduler job raise_events dequeue
- DBMS_SCHEDULER 带参数JOB
- 用dbms_scheduler创建job
- dbms_scheduler job 的简单管理
- dbms_scheduler job 之外部命令
- 使用DBMS_SCHEDULER创建job参考
- oracle10g dbms_scheduler.create_job 创建job简单实例
- 关于DBMS_SCHEDULER job日志级别LOGGING_LEVEL
- 关于DBMS_SCHEDULER job日志级别LOGGING_LEVEL
- dbms_scheduler包中job(作业)学习
- dbms_scheduler
- dbms_scheduler
- oracle job,通过DBMS_SCHEDULER.CREATE_JOB来创建,管理也通过DBMS_SCHEDULER这个包来管理
- 通过DBMS_scheduler定义job,实现DB多线程并行处理
- 122 The user SYS creates a job by using the following command: BEGIN DBMS_SCHEDULER.CREATE_JOB ( job
- Oracle DBMS_SCHEDULER
- DBMS_SCHEDULER使用
- 测试DBMS_SCHEDULER
- 史上最全的CSS hack方式一览
- Java:对象的强、软、弱和虚引用
- POJ 【1611】The Suspects
- 二叉树的创建,及遍历 操作
- POJ 1325-Machine Schedule(二分图_最大匹配最小点覆盖)
- dbms_scheduler job raise_events dequeue
- 最近想咨询关于计算机的软件编程,知道的请回答一下,急求!!!!
- hdu-1573(中国剩余定理)
- python——进制转换
- ZooKeeper客户端开发 C语言
- 进程中dll模块的隐藏
- hdu-1576-A/B【扩展欧几里得算法】
- 递归及递推问题系列之 Number Sequence hdoj 1005
- 笨小熊