dbTalk Databases Forums  

Merge Replication Problem

microsoft.public.sqlserver.replication microsoft.public.sqlserver.replication


Discuss Merge Replication Problem in the microsoft.public.sqlserver.replication forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Sam
 
Posts: n/a

Default Merge Replication Problem - 02-23-2006 , 01:02 AM






Hello

I have merge Replication MSSQL Server 2000 SP4, One Publisher and 5
subscribers,

a) Subscribers1 has inserted the record at 8 AM and Send it to
subscribers2 & subscribers3

b) Using DTS, but not insert directly subscribers2 DB its Inserted
TempDB to subscribers2 DB using Store procedure.

c) Subscribers2 users update same records at 3 PM. It means now other
Subscribers not update those records.

d) I changed my article
@property='compensate_for_errors',@value='false'.

e) I have facing some conflict Problems

f) After Synchronization those records was deleted at some
Subscriber

g) We are Synchronization at 1 AM. For Schedule bases



Here the Question.

Why the Data going to deleted?

Which data going to Synchronies in above case?



Suppose I update row 1 following time

Subscribers1 at 6 am

Subscribers1 at 7 am

Subscribers1 at 8 am

Subscribers1 at 9 am

Subscribers1 at 11 am

Which data going to Synchronies in above case?



Please Explaning Clearly

Thanks

Sam















Reply With Quote
  #2  
Old   
Hilary Cotter
 
Posts: n/a

Default Re: Merge Replication Problem - 02-23-2006 , 07:08 AM






Sam I am having problems understanding the scenario you present. Before I
start guessing at what happened I want to explain a couple of things.

a) compensate_for_errors - this switch means that if a conflict occurs the
data will not be wiped out on the conflict loser. For example if a row with
the same PK value is simultaneously inserted on the publisher and subscriber
and the compensate_for_errors switch is set to true (true is default for SQL
2000, false is the default for SQL 2005) the row on the subscriber will be
deleted and replaced with the row from the publisher. If the
compensate_for_errors setting is set to false, the row on the subscriber
will not be deleted - in other words - the subscribers row will remain.
With this setting all such compensating actions will not occur.

b) when you use DTS with the defaults the rows dts'd into the table are not
logged and will not be replicated. Consult
http://support.microsoft.com/kb/275680/en-us for more information.

c) exactly what do you mean by "Using DTS, but not insert directly
subscribers2 DB its Inserted TempDB to subscribers2 DB using Store
procedure." If you mean it was DTS'd to tempdb and then from tempdb to the
subscriber2 db, this should have been logged and any inserts or other DML as
a result of this action should be replicated.

d) did you run conflict viewer for a window into what is happening?

It sounds like what happened what that in step b the rows were not logged
and hence never made it to subscriber 1 and subscriber 3. I don't understand
what happened in f). The conflict viewer should have a record of what
happened.

To answer your questions - data should not be deleted with the
compensate_for_errors setting set to false - only true.

From what you describe in the below scenario, if you are updating the same
row the update should flow with each synchronization unless you are doing
column level tracking - this would be logged as a conflict and the conflict
winner should win the conflict - ie its data should make it to all the
subscribers.

If the sync doesn't happen each hour, only the final result will travel. For
example if the sync runs at 11 am, only the final 11 am change will move.

HTH
--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.

This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



"Sam" <shankar (AT) cdscom (DOT) co.th> wrote

Quote:
Hello

I have merge Replication MSSQL Server 2000 SP4, One Publisher and 5
subscribers,

a) Subscribers1 has inserted the record at 8 AM and Send it to
subscribers2 & subscribers3

b) Using DTS, but not insert directly subscribers2 DB its Inserted
TempDB to subscribers2 DB using Store procedure.

c) Subscribers2 users update same records at 3 PM. It means now other
Subscribers not update those records.

d) I changed my article
@property='compensate_for_errors',@value='false'.

e) I have facing some conflict Problems

f) After Synchronization those records was deleted at some
Subscriber

g) We are Synchronization at 1 AM. For Schedule bases



Here the Question.

Why the Data going to deleted?

Which data going to Synchronies in above case?



Suppose I update row 1 following time

Subscribers1 at 6 am

Subscribers1 at 7 am

Subscribers1 at 8 am

Subscribers1 at 9 am

Subscribers1 at 11 am

Which data going to Synchronies in above case?



Please Explaning Clearly

Thanks

Sam

















Reply With Quote
  #3  
Old   
Sam
 
Posts: n/a

Default Re: Merge Replication Problem - 02-26-2006 , 11:07 PM



THANKS Hilary
I need to test , let Contact You.
Sam
"Hilary Cotter" <hilary.cotter (AT) gmail (DOT) com> wrote

Quote:
Sam I am having problems understanding the scenario you present. Before I
start guessing at what happened I want to explain a couple of things.

a) compensate_for_errors - this switch means that if a conflict occurs the
data will not be wiped out on the conflict loser. For example if a row
with the same PK value is simultaneously inserted on the publisher and
subscriber and the compensate_for_errors switch is set to true (true is
default for SQL 2000, false is the default for SQL 2005) the row on the
subscriber will be deleted and replaced with the row from the publisher.
If the compensate_for_errors setting is set to false, the row on the
subscriber will not be deleted - in other words - the subscribers row
will remain. With this setting all such compensating actions will not
occur.

b) when you use DTS with the defaults the rows dts'd into the table are
not logged and will not be replicated. Consult
http://support.microsoft.com/kb/275680/en-us for more information.

c) exactly what do you mean by "Using DTS, but not insert directly
subscribers2 DB its Inserted TempDB to subscribers2 DB using Store
procedure." If you mean it was DTS'd to tempdb and then from tempdb to the
subscriber2 db, this should have been logged and any inserts or other DML
as a result of this action should be replicated.

d) did you run conflict viewer for a window into what is happening?

It sounds like what happened what that in step b the rows were not logged
and hence never made it to subscriber 1 and subscriber 3. I don't
understand what happened in f). The conflict viewer should have a record
of what happened.

To answer your questions - data should not be deleted with the
compensate_for_errors setting set to false - only true.

From what you describe in the below scenario, if you are updating the same
row the update should flow with each synchronization unless you are doing
column level tracking - this would be logged as a conflict and the
conflict winner should win the conflict - ie its data should make it to
all the subscribers.

If the sync doesn't happen each hour, only the final result will travel.
For example if the sync runs at 11 am, only the final 11 am change will
move.

HTH
--
Hilary Cotter
Director of Text Mining and Database Strategy
RelevantNOISE.Com - Dedicated to mining blogs for business intelligence.

This posting is my own and doesn't necessarily represent RelevantNoise's
positions, strategies or opinions.

Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html

Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com



"Sam" <shankar (AT) cdscom (DOT) co.th> wrote in message
news:Os7L2bEOGHA.812 (AT) TK2MSFTNGP10 (DOT) phx.gbl...
Hello

I have merge Replication MSSQL Server 2000 SP4, One Publisher and 5
subscribers,

a) Subscribers1 has inserted the record at 8 AM and Send it to
subscribers2 & subscribers3

b) Using DTS, but not insert directly subscribers2 DB its Inserted
TempDB to subscribers2 DB using Store procedure.

c) Subscribers2 users update same records at 3 PM. It means now
other Subscribers not update those records.

d) I changed my article
@property='compensate_for_errors',@value='false'.

e) I have facing some conflict Problems

f) After Synchronization those records was deleted at some
Subscriber

g) We are Synchronization at 1 AM. For Schedule bases



Here the Question.

Why the Data going to deleted?

Which data going to Synchronies in above case?



Suppose I update row 1 following time

Subscribers1 at 6 am

Subscribers1 at 7 am

Subscribers1 at 8 am

Subscribers1 at 9 am

Subscribers1 at 11 am

Which data going to Synchronies in above case?



Please Explaning Clearly

Thanks

Sam



















Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.