文档解释
ORA-24042: no propagation schedule exists for QUEUE string and DESTINATION string
Cause: AN UNSCHEDULE_PROPAGATION was issued for a queue and destination pair which has no existing propagation schedule.
Action: Verify the spelling of the specified QUEUE and DESTINATION and then reissue the call with the correct spelling.
ORA-24042表明,在指定队列和目标之间没有启动消息传播的调度实例。
官方解释
ORA-24042: no propagation schedule exists for QUEUE string and DESTINATION string
Cause: Attempt to start propagation on a queue and destination pair which has no propagation schedule.
Action: Create the propagation schedule, or inform the user that this has not been done.
常见案例
在使用 Oracle Messages队列时,为了完成消息传播,在源队列和目标队列之间需要建立propagation调度实例。
正常处理方法及步骤
一般处理方法及步骤
1)登陆数据库,激活DBMS_AQADM包:
SQL>exec dbms_aqadm.admin_activate_db_queue();
2)用以下语句创建propagation调度实例:
exec DBMS_AQADM.CREATE_SCHEDULE( queue_name=>’SOURCE QUEUE NAME’, destination_name=> ‘DESTINATION QUEUE NAME’, schedule_name=> ‘SCHEDULE NAME’, start_date=>SYSDATE,repeat_interval => ‘SYSDATE+1/24’);
3)用以下语句启动消息传播:
exec dbms_aqadm.start_propagation(SCHEDULE => ‘SCHEDULE NAME’, DESTINATIONS => ‘DESTINATION QUEUE NAME’);
4)再次运行以下语句以及检查调度实例是否处于启动状态:
exec dbms_aqadm.start_propagation(SCHEDULE => ‘SCHEDULE NAME’, DESTINATIONS => ‘DESTINATION QUEUE NAME’);
SELECT * FROM DBA_QUEUES_PROPAGATION_SCHEDULES;
这样,ORA-24042错误就会被解决,消息队列中的消息也可以顺利传送到目的队列了。