ORA-24042: no propagation schedule exists for QUEUE string and DESTINATION string

文档解释

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错误就会被解决,消息队列中的消息也可以顺利传送到目的队列了。

你可能感兴趣的