传播进程可能遇到的问题:传播进程是否已经指定正确的站点和队列,队列到队列的参数是否已经设置,数据库链是否工作正常,传播进程的状态是不是enabled,JOB_QUEUE_PROCESSES >0?,检查警告日志看是否有有关传播进程的错误信息。
是否存在相关的规则集。
使用下面的查询了解传播进程的设置情况:
SELECT propagation_name,
source_queue_owner||'.'|| source_queue_name SRC,
destination_queue_owner ||'.'|| destination_queue_name DEST, destination_dblink DBLINK, QUEUE_TO_QUEUE
FROM DBA_PROPAGATION;
也可以使用下面的查询来查看关于目标和源队列的传播进程情况
For example, to check the source queue and destination queue for all propagation jobs, you can run the query in the slide or the following query:
COLUMN SOURCE_QUEUE HEADING 'Source Queue' FORMAT A40
COLUMN DESTINATION_QUEUE HEADING 'Destination Queue' FORMAT A30
SELECT p.source_queue_owner||'.'|| p.source_queue_name||'@'||
g.global_name SOURCE_QUEUE,
p.destination_queue_owner||'.'||p.destination_queue_name||'@'||
p.destination_dblink DESTINATION_QUEUE
FROM DBA_PROPAGATION p, GLOBAL_NAME g;
可以检查数据库链设置是否正确。
检查传播进程的时间设置:
SELECT propagation_name, destination, message_delivery_mode, schedule_disabled, process_name, last_run_date, next_run_date, total_number, failures, last_error_time, last_error_msg
FROM DBA_QUEUE_SCHEDULES s, DBA_PROPAGATION p
WHERE s.destination = p.destination_dblink;
其中schedule_disabled列的值不应该为Y。
通过下面的查询查看关于传播进和分发了多少信息。
SELECT queue_schema, queue_name, dblink,
schedule_status, high_water_mark, acknowledgement
FROM V$PROPAGATION_SENDER;
SELECT src_queue_name, src_dbname,
high_water_mark, acknowledgement
FROM V$PROPAGATION_RECEIVER;