Re: CDR Conflict Resolution
Posted in 1999
Hello Katja,
My first question is why do you wish to add timestamp conflict resolution? Here
is my (limited) understanding on how the conflict resolution works.
Update conflicts occur when a row is updated on both ends, with timestamp
conflict resolution the rows have addition columns added (CRCOLS) when
a row is updated the timestamp is also updated. Before the replication updates
are processed the timestamps are checked.
The conflict resolution rules are required when tables are updated at both
ends. With true primary target replication the target end is "Read Only",
without updates occuring on one end there should not be any update conflicts.
If you still wish to use conflict resolution then you need to first alter the
tables to add CRCOLS this is where the timestamp is saved. Use the following SQL
ALTER TABLE tablename ADD CRCOLS.
Note: The addition of CRCOLS seems to add 8 Bytes to the row size.
Use the cdr list command to check your current setup the error message
you have supplied seems to suggest that CRCOLS were added and that the replicate
now has timestamp conflict resolution. (See below for an example from my system
r_supplier is set to ignore, r_woheads is set to timestamp).
smanga@kirk: cdr list replicat
REPLICATE STATE CONFLICT FREQUENCY OPTIONS
----------------------------------------------------------------------------
r_supplier ACTIVE ignore immediate row,ris,ats
r_woheads ACTIVE timestamp immediate row,ris,ats
If you are still having probles I will provide you with a sample script.
HTH.
Stephen C Manga
Email: Stephen.Manga@dbgroup.co.nz
Stephen@quanta.co.nz
On Tue, 3 Aug 1999 heikkka4@my-deja.com wrote:
> Hello again!
>
> I have been setting up Enterprise Replication with CDR APIs
> (IDS 7.24) and finally got it work OK (thanks to the kind
> assistance of Mr. Pruet).
>
> Now I would like to change my conflict resolution rule
> to "timestamp" and that's where the problem arises.
> Our system is simple primary-target.
>
> To define replicates I used sample programs "define_repl"
> and "participate_repl" as follows:
>
> 1) define_repl -c myserver1 myrepl -C "ignore" -S row -R
> "P mydb@myserver1:informix.mytable" "select * from informix.mytable"
>
> 2) participate_repl -c myserver1 myrepl -a "R
> mydb@myserver2:informix.mytable" "select * from informix.mytable"
>
> This works perfect as long as the conflict resolution rule is set to
> "ignore". But when I change it to "timestamp" happens following:
> "define_repl" command goes OK, but "participate_repl" causes error
> message "CDRERR 69 Conflict mode for replicate not ignore".
> (CRCOLS have been created.)
>
> Is it OK to use "timestamp" with primary-target configuration?
> Could anybody give a hint where to start debugging?
>
> I would GREATLY appreciate your comment.
>
> Recards
>
> Katja Heikkinen
> Abacus Solutions Inc,
> Finland
>
>
>
>
>
> Sent via Deja.com http://www.deja.com/
> Share what you know. Learn what you don't.
>
>