locked
Merge Replication Error: "No key matching the described characteristics could be found within the current range" RRS feed

  • Question

  • I am synchronising a SQL Compact Edition 3.5 Database against a SQL Server 2005 Server wirh Merge-Replication.
    That worked fine for some time. Now I'm getting the following error message on the client machine after replicating some tables successfully:

    No key matching the described characteristics could be found within the current range.|
       at System.Data.SqlServerCe.SqlCeReplication.EndSynchronize(IAsyncResult ar)
       at ITM.Base3.DB.SqlCe.SqlCeReplicationManager.SyncCompletedCallBack(IAsyncResult ar) in S:\...\DB\SqlCe\SqlCeReplicationManager.cs:line 272

    On the webserver in "SQLCESALOG.TXT" I get:

    2009/04/02 17:53:32 Thread=1578 RSCB=22 Command=FTCH Hr=00000000 ERR:Existing RSCB with same ExchangeID but different dwCommand 1
    2009/04/02 17:53:32 Hr=80004005 ERR:REQUEST NOT QUEUED for ulRSCBId =  0
    2009/04/02 17:53:33 Hr=80004005 ERR:No preceding Open command for command =  3
    2009/04/02 17:53:33 Hr=80004005 ERR:REQUEST NOT QUEUED for ulRSCBId =  0
    2009/04/02 17:53:34 Hr=80004005 ACK:Error for DistributorSessionID =  361
    2009/04/02 17:53:34 Hr=80004005  0

    The SQL Server tells me, that the synchronisation was OK.
    I tried to reinitialize the subscriptions with no luck.
    Sadly, this error messages are telling me nothing at all.

    Any advises?
    Thank you!
    Friday, April 3, 2009 12:27 PM

Answers

  • Hi, 

        The error message says that merge replication tried to do some operation on a client row (of a replicated table), but, could not find the row. I think, merge replication has inserted a row that has been getting deleted at client side in a transaction parallel to sync. The situation could be as below:

    1. SQL Server sent a row to client.
    2. Compact client deleted the row, while sync is going on.
        a. This could be the same sync as when the row is sent, or another sync.
        b. But, main point is that, server thinks that the row is present in the sync. (Mostly since client does not delete it yet).
    3. While sync is going on, the row is deleted at client.
    4. Server sends some update to the row in this sync.
    5. Since, client could not find the row, it fails.

    Thanks
    Udaya
    • Proposed as answer by UdayaBG Monday, April 6, 2009 8:21 AM
    • Marked as answer by Remoray Tuesday, April 7, 2009 9:25 AM
    Sunday, April 5, 2009 8:41 AM

All replies

  • Hi, 

        The error message says that merge replication tried to do some operation on a client row (of a replicated table), but, could not find the row. I think, merge replication has inserted a row that has been getting deleted at client side in a transaction parallel to sync. The situation could be as below:

    1. SQL Server sent a row to client.
    2. Compact client deleted the row, while sync is going on.
        a. This could be the same sync as when the row is sent, or another sync.
        b. But, main point is that, server thinks that the row is present in the sync. (Mostly since client does not delete it yet).
    3. While sync is going on, the row is deleted at client.
    4. Server sends some update to the row in this sync.
    5. Since, client could not find the row, it fails.

    Thanks
    Udaya
    • Proposed as answer by UdayaBG Monday, April 6, 2009 8:21 AM
    • Marked as answer by Remoray Tuesday, April 7, 2009 9:25 AM
    Sunday, April 5, 2009 8:41 AM
  • Thanks for your answer! I didn't quite get that from the error message itself...
    Tuesday, April 7, 2009 9:27 AM
  • Hi Remoray, UdayaBG

    I'm facing the same problem.

    Is your problem resolved ?

    I found an hotfix from Microsoft and another blog post, here : http://social.microsoft.com/Forums/en/uklaunch2007ado.net/thread/cb25d14a-efcc-469c-b88c-e4aa3700b985

    But the hotfix that is published do not solved my issue...

    Thanks a lot for answer that you can give me.

    Julien

    Tuesday, November 9, 2010 3:20 PM