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_DATE
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;
/***********************************************************************
*****/
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@(protected)
[mailto:oracle-l-bounce@(protected)
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
FROM DBA_PROPAGATION p, V$PROPAGATION_SENDER s
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
"STRMADMIN"."ODS_ARCH_Q"@(protected)
I created the propagation for each table using the following syntax
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@(protected)',
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@(protected)
212.538.1143
========================================================================
======
Please access the attached hyperlink for an important electronic
communications disclaimer:
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
========================================================================
======
--
http://www.freelists.org/webpage/oracle-l
--
http://www.freelists.org/webpage/oracle-l