Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Streams propagation
Paul,
Try the following queries to check on Propagation (those are from some Matalink doc):
PROMPT PROPAGATION JOBS IN DATABASE
COLUMN 'Source Queue' FORMAT A39
COLUMN 'Destination Queue' FORMAT A39
COLUMN PROPAGATION_NAME HEADING 'Propagation' FORMAT A35
SELECT p.propagation_name, 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;
/***********************************************************************
PROMPT PROPAGATION RULE SETS IN DATABASE COLUMN PROPAGATION_NAME HEADING 'Propagation' FORMAT A35 COLUMN Positive HEADING 'Positive|Rule Set' FORMAT A35 COLUMN Negative HEADING 'Negative|Rule Set' FORMAT A35
SELECT propagation_name, rule_set_owner||'.'||rule_set_name Positive, negative_rule_set_owner||'.'||negative_rule_set_name Negative FROM dba_propagation;
/***********************************************************************
PROMPT STREAMS PROPAGATION RULES CONFIGURED WITH DBMS_STREAMS_ADM
PACKAGE
col NAME Heading 'Name' format a25 wrap
col PropNAME format a25 Heading 'Propagation Name'
col object format a25 wrap
col source_database format a15 wrap
col RULE format a35 wrap
col TYPE format a15 wrap
col dml_condition format a40 wrap
break on name
SELECT streams_name NAME,schema_name||'.'||object_name OBJECT,
rule_set_type,
source_database,
streams_rule_type ||' '||Rule_type TYPE ,
include_tagged_lcr,
rule_owner||'.'||rule_name RULE
FROM dba_streams_rules
WHERE streams_type = 'PROPAGATION'
ORDER BY name,object, source_database, rule_set_type,rule;
/***********************************************************************
PROMPT PROPAGATION RULES BY RULE SET
col RULE_SET format a25 wrap
col RULE_NAME format a25 wrap
col condition format a60 wrap
set long 1000
break on RULE_SET
set long 1000
SELECT rsr.rule_set_owner||'.'||rsr.rule_set_name RULE_SET , rsr.rule_owner||'.'||rsr.rule_name RULE_NAME, r.rule_condition CONDITION FROM dba_rule_set_rules rsr, dba_rules r WHERE rsr.rule_name = r.rule_name AND rsr.rule_owner = r.rule_owner AND rule_set_name IN (SELECT rule_set_name FROM dba_propagation) ORDER BY rsr.rule_set_owner,rsr.rule_set_name;
/***********************************************************************
PROMPT SCHEDULE FOR EACH PROPAGATION
COLUMN START_DATE HEADING 'Start Date'
COLUMN PROPAGATION_WINDOW HEADING 'Duration|in Seconds' FORMAT 99999
COLUMN NEXT_TIME HEADING 'Next|Time' FORMAT A8
COLUMN LATENCY HEADING 'Latency|in Seconds' FORMAT 99999
COLUMN SCHEDULE_DISABLED HEADING 'Status' FORMAT A8
COLUMN PROCESS_NAME HEADING 'Process' FORMAT A8
COLUMN FAILURES HEADING 'Number of|Failures' FORMAT 99
COLUMN LAST_ERROR_MSG HEADING 'Error Message' FORMAT A50
COLUMN TOTAL_BYTES HEADING 'Total Bytes|Propagated' FORMAT 9999999999999
COLUMN CURRENT_START_DATE HEADING 'Current|Start' FORMAT A17
COLUMN LAST_RUN_DATE HEADING 'Last|Run' FORMAT A17 COLUMN NEXT_RUN_DATE HEADING 'Next|Run' FORMAT A17 COLUMN LAST_ERROR_DATE HEADING 'Last|Error' FORMAT A17
SELECT p.propagation_name,
TO_CHAR(s.START_DATE, 'HH24:MI:SS MM/DD/YY') START_DATE,
s.PROPAGATION_WINDOW, s.NEXT_TIME, s.LATENCY,
DECODE(s.SCHEDULE_DISABLED, 'Y', 'Disabled', 'N', 'Enabled')
SCHEDULE_DISABLED,
s.PROCESS_NAME, s.total_bytes, s.FAILURES, s.LAST_ERROR_MSG
FROM dba_queue_schedules s, dba_propagation p
WHERE p.destination_dblink = s.destination
AND s.schema = p.source_queue_owner
AND s.qname = p.source_queue_name;
SELECT p.propagation_name,
TO_CHAR(s.LAST_RUN_DATE, 'HH24:MI:SS MM/DD/YY') LAST_RUN_DATE, TO_CHAR(s.CURRENT_START_DATE, 'HH24:MI:SS MM/DD/YY') CURRENT_START_DATE, TO_CHAR(s.NEXT_RUN_DATE, 'HH24:MI:SS MM/DD/YY') NEXT_RUN_DATE, TO_CHAR(s.LAST_ERROR_DATE, 'HH24:MI:SS MM/DD/YY') LAST_ERROR_DATEFROM dba_queue_schedules s, dba_propagation p WHERE p.destination_dblink = s.destination AND s.schema = p.source_queue_owner
/***********************************************************************
PROMPT PROPAGATION RECEIVER STATISTICS (on "receiving" end)
column src_queue_name HEADING 'Source|Queue|Name' column src_dbname HEADING 'Source|Database|Name'
column startup_time HEADING 'Startup|Time' column elapsed_unpickle_time HEADING 'Elapsed|Unpickle Time|(Seconds' column elapsed_rule_time HEADING 'Elapsed|Rule Time|(Seconds)' column elapsed_enqueue_time HEADING 'Elapsed|Enqueue Time|(Seconds)'
SELECT
src_dbname,src_queue_name,startup_time,high_water_mark,acknowledgement,
elapsed_unpickle_time, elapsed_rule_time, elapsed_enqueue_time
FROM gv$propagation_receiver;
/***********************************************************************
Igor
-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Baumgartel, Paul
Sent: Tuesday, March 21, 2006 11:01 AM
To: ORACLE-L
Subject: Streams propagation
I'm new to Streams and having a problem with message propagation, which I think I've isolated but am not sure how to fix. This is 10gR2 on Linux.
The doc chapter on "Monitoring Streams Queues and Propagations" shows the following query to get info on propagations from buffered queues:
SELECT p.PROPAGATION_NAME, s.QUEUE_SCHEMA, s.QUEUE_NAME, s.DBLINK, s.SCHEDULE_STATUS
WHERE p.DESTINATION_DBLINK = s.DBLINK AND p.SOURCE_QUEUE_OWNER = s.QUEUE_SCHEMA AND p.SOURCE_QUEUE_NAME = s.QUEUE_NAME;
In my case, no rows are returned. The reason is the discrepancy in values between dba_propagation and v$propagation_sender:
SOURCE_QUEUE_OWNER SOURCE_QUEUE_NAME DESTINATION_DBLIN
------------------- ------------------- ----------------- STRMADMIN ODS_ARCH_Q QNYCSR40.WORLD QUEUE_SCHEMA QUEUE_NAME DBLINK ------------ --------------- ---------- STRMADMIN ODS_ARCH_Q
DBMS_STREAMS_ADM.ADD_TABLE_PROPAGATION_RULES(
table_name => 'ODS.&1', streams_name => 'PROPAGATE_ARCH', source_queue_name => 'STRMADMIN.ODS_ARCH_Q', destination_queue_name => 'STRMADMIN.ODS_ARCH_Q_at_QNYCSR40.WORLD', include_dml => true, include_ddl => true, source_database => 'DNYCSR40.WORLD', inclusion_rule => true, queue_to_queue => true);
which appears correct based on the documentation. So either the documentation for this procedure is wrong, or the query to monitor propagation is wrong, but I suspect the latter because propagation is not working. Any ideas appreciated.
Paul Baumgartel
paul.baumgartel_at_credit-suisse.com
212.538.1143
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
-- http://www.freelists.org/webpage/oracle-l -- http://www.freelists.org/webpage/oracle-lReceived on Tue Mar 21 2006 - 10:41:32 CST
![]() |
![]() |