RE: Enterprise Replication pains
Posted in 1998
Mike,
I have a script that does something similar to what you want, it uses
the CDR/API functions.
dbaccess sysmaster <<EOF 2>/dev/null | sed 's/(expression)//'
select 'define_repl '||trim(repl.replname)||' -C"ignore" -S tran -R -A
\\',
'"P
'||trim(part1.dbsname)||'@'||trim(part1.servername)||':'||trim(part1.own
er)||'.'||trim(part1.tabname)||'" \\',
'"'||trim(part1.selectstmnt)||'"'
from syscdrpart part1,
syscdrpart part2,
syscdrrepl repl
where repl.replname = part1.replname
and repl.replname = part2.replname
and part1.partmode = 'P'
and part1.servername = 'wcau0121'
and part2.partmode = 'R'
and part2.servername = 'hpa_pc'
order by 1;
select 'participate_repl '||trim(repl.replname)||' \\',
'"R
'||trim(part2.dbsname)||'@'||trim(part2.servername)||':'||trim(part2.own
er)||'.'||trim(part2.tabname)||'" \\',
'"'||trim(part2.selectstmnt)||'"'
from syscdrpart part2,
syscdrrepl repl
where repl.replname = part2.replname
and part2.partmode = 'R'
and part2.servername = 'hpa_pc'
order by 1;
select 'define_repl '||trim(repl.replname)||' -C"timestamp" -S tran -R
-A \\',
'"P
'||trim(part1.dbsname)||'@'||trim(part1.servername)||':'||trim(part1.own
er)||'.'||trim(part1.tabname)||'" \\',
'"'||trim(part1.selectstmnt)||'" \\',
'"P
'||trim(part2.dbsname)||'@'||trim(part2.servername)||':'||trim(part2.own
er)||'.'||trim(part2.tabname)||'" \\',
'"'||trim(part2.selectstmnt)||'"'
from syscdrpart part1,
syscdrpart part2,
syscdrrepl repl
where repl.replname = part1.replname
and repl.replname = part2.replname
and part1.partmode = 'P'
and part1.servername = 'wcau0121'
and part2.partmode = 'P'
and part2.servername = 'hpa_pc'
order by 1;
Regards
David Ashby
-----Original Message-----
From: Mike Lebrun
[mailto:mike_lebrun@email.domtar.com]
Sent: Saturday, 18 July 1998 1:25
To: informix-list@iiug.org
Subject: Enterprise Replication pains
Hi All,
I have to implement Enterprise Replication with
approximately 500
replicates. I'm trying to write an awk script that will
basically allow me
to just pass down a list of the tables and define the
replicates
dynamically.
I've got 2 servers declared to ER, and now I'm trying to
define replicates
using the following piece of awk code.
{
DBSERVER="repltest1"
REPLICATE=$1
DATABASE="stores7"
INFORMIXSERVER="testrep_dsa" DATABASE2="stores7"
INFORMIXSERVER2="recrep_dsa"
printf("define_repl -c %s %s -C \\"ignore\\" -S tran -A -R
\\"%s@%s:informix.%s\\" \\"select * from %s\\"
\\"%s@%s:informix.%s\\" \\" select
* from %s
\\"\\n",DBSERVER,REPLICATE,DATABASE,INFORMIXSERVER,$1,$1,DATABASE2,INFORMI
XSER
VER2,$1,$1)
}
When I run this script, informix returns the following:
command unsuccessful -- error 37
offending participant
stores7@recrep_dsa:informix.call_type ' select * from
call_type '
command unsuccessful -- error 37
offending participant
stores7@recrep_dsa:informix.catalog ' select * from
catalog '
command unsuccessful -- error 37
offending participant
stores7@recrep_dsa:informix.cust_calls ' select * from
cust_calls '
command unsuccessful -- error 28
command unsuccessful -- error 37
offending participant
stores7@recrep_dsa:informix.custview ' select * from
custview '
command unsuccessful -- error 37
offending participant stores7@recrep_dsa:informix.items
' select * from
items '
command unsuccessful -- error 37
offending participant
stores7@recrep_dsa:informix.log_record ' select * from
log_record '
command unsuccessful -- error 37
offending participant
stores7@recrep_dsa:informix.manufact ' select * from
manufact '
command unsuccessful -- error 37
offending participant stores7@recrep_dsa:informix.orders
' select * from
orders '
command unsuccessful -- error 37
offending participant
stores7@recrep_dsa:informix.someorders ' select * from
someorders '
command unsuccessful -- error 37
offending participant stores7@recrep_dsa:informix.state
' select * from
state '
command unsuccessful -- error 37
offending participant stores7@recrep_dsa:informix.stock
' select * from
stock '
(I'm testing my scripts on the demo7 database)
I'm running Informix 7.23UC5 on HP-UX 10.20, any
pointers would GREATLY be
appreciated!