locked
TwoWay Sync with filters only deletes in one direction !?!? RRS feed

  • Question

  • We have 2-3 setups using this configuration, and all of them fail to synchronize bidirectional deletes.

    We are using Microsoft SQL Server 2008 Standard as Master together with SQL2008Express as clients

    - Masterserver i located in Poland, Clientservers are located in multiple countries in Europe

    1. We provision the Master tables with a noname Scope
    2. Then we provision each country-filter with a named scope (which creates separate SP's with GUID names)
    3. Then we provision the clients based on each country scope

    Here is when it goes wrong:

    1. We delete a row on MASTER
    2. This row is NOT DELETED on Clients  (using sync)

    1. We delete a row on CLIENT
    2. This row WILL DELETE on Master (using sync)

    The syncdirection is Master -> Client -> Master (Upload then Download)

    We have checked that the xxx_TrackingTable is updating the row, and the row is then Tombstoned (= to be deleted ?)

    I CAN'T reproduce the error in our Test environment...

    Whats going on ?!?!? How do we fix this ?


    • Edited by Montago Friday, June 15, 2012 8:14 AM
    Friday, June 15, 2012 8:12 AM

Answers

  • sync fx does a join between the tracking table and the base table. in the case of deletes, if you specified the filter against the base table, the filter will fail because the row is already deleted in the base table and the only information about the delete is in the tracking table.
    • Marked as answer by Montago Sunday, June 17, 2012 12:47 PM
    Sunday, June 17, 2012 12:44 PM
  • The problem was that filters was created using [BASE].Prop instead of [Side].Prop

    this fixes the issue...

    The reason why it was hard to detect, was because 

    A: filters is a new thing we are using

    B: in test setup i didn't use filters

    :(

    • Marked as answer by Montago Friday, June 15, 2012 10:54 AM
    Friday, June 15, 2012 10:54 AM

All replies

  • It seems as though the TIMESTAMP used to SelectChanges SP is wrong...  but only on the Master
    • Edited by Montago Friday, June 15, 2012 9:20 AM
    Friday, June 15, 2012 9:20 AM
  • The problem was that filters was created using [BASE].Prop instead of [Side].Prop

    this fixes the issue...

    The reason why it was hard to detect, was because 

    A: filters is a new thing we are using

    B: in test setup i didn't use filters

    :(

    • Marked as answer by Montago Friday, June 15, 2012 10:54 AM
    Friday, June 15, 2012 10:54 AM
  • sync fx does a join between the tracking table and the base table. in the case of deletes, if you specified the filter against the base table, the filter will fail because the row is already deleted in the base table and the only information about the delete is in the tracking table.
    • Marked as answer by Montago Sunday, June 17, 2012 12:47 PM
    Sunday, June 17, 2012 12:44 PM