locked
Unspecified error [ 2,51937842,1129493902,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ] RRS feed

  • Question

  • I am recently seeing a number of these errors being logged within my application; I believe that they are being written using Debug.Write from somewhere within the sync framework and I am seeing them because I have added a listener.

    Can anybody tell me what these errors mean and what I can do to try and address them? I have a situation where a number of mobile devices are reporting these errors and those devices will no longer synchronise (although I am not as yet convinced that the two are related).

    The clients are all Windows Mobile 6.1, Compact Framework 3.5 and Sync Services running against SQL/CE 3.5 - the server against which the synchronisation takes place is SQL2005 and sync is maintained via stored procedures.

     

    It should be noted that each time the error is logged, the details are slightly different...

    Unspecified error [ 2,51937842,1129493902,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ]
    Unspecified error [ 2,-1536546242,1129493902,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ]
    Unspecified error [ 2,50067474,1686943122,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ]
    Unspecified error [ 2,1686990574,-2057684034,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ]
    Unspecified error [ 2,1148374018,1133692898,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ]
    Unspecified error [ 2,1124424266,626670526,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ]
    Unspecified error [ 2,-483772574,626670526,__sysOCSDeletedRows,x lock (x blocks),PAG (idx): 6128 ]

     

    Thanks in advance for any help.

    Wednesday, April 14, 2010 3:46 PM

All replies

  • Martin-

     

    These errors appear to be related to queries timing out based on locks, for example if a record is trying to be updated while another transaction has it locked.  If there are other operations going on during sync, then other transactions might hit lock timeouts as sync is inserting/updating/deleting items. 

    Could you clarify what you mean when you say that the clients will 'no longer synchronize'?  Do you have to reinitialize them or does only that particular sync stop?

    Thanks

    Phil

    Wednesday, April 14, 2010 5:44 PM
    Answerer
  • Phil,

    As far as I can currently tell, the synchronisations have to be reinitialised as some data is synchronised and other data is not and as well as these messages I am ending up with some inserts being posted to the server twice. I am still working through the issue trying to determine the causes of the errors.

    I was however trying to be a bit clever during the sync as I need to delete data once it is uploaded to the server without actually allowing the deletes to be uploaded - see http://social.msdn.microsoft.com/Forums/en-US/syncdevdiscussions/thread/c42a63a1-ab7e-4b1d-8404-7420040a0e52 for more details of the convoluted mess I was trying to use and the revised idea implemented since (and recommended by JuneT) - do you think this could have been the cause as technically I was deleting rows during the synchronisation process.

    Any further guidance or suggestions are welcome as I fear I may be trying to make sync services do stuff it might not have been specifically designed for!

    Thanks.

    Martin.

    Wednesday, April 14, 2010 9:38 PM
  • you were just removing the deleted rows from the dataset right? not from the physical table. am not sure that would cause a lock on the physical row.
    Wednesday, April 14, 2010 10:00 PM
  • JuneT

    In my original code (as shown in the other thread), I was actually removing rows from the physical tables on the device once they had been uploaded to the server - but before allowing the TableSentAnchor to be set.

    The new code does not do this, instead removing from the dataset during the ChangesSelected event as you suggested.

    Martin.

    Thursday, April 15, 2010 9:15 AM
  • hi martin,

    just to clarify if this is what you're doing now:

    1. Run Sync, intercept dataset and remove rows that has been deleted.

    2. Proceed with sync, rows are uploaded

    3. Delete the uploaded rows from the local table, this then creates an entry in the tombstone table.

    4. Add new rows to client

    5. Go back to step 1.

    is this what you're doing?

    cheers,

    junet

    Thursday, April 15, 2010 9:27 AM
  • JuneT

    Yes, this is the sequence that I am following in my revised code. I do not know if it is worth mentioning that I complete step 3 during the StateChanged event of the SyncAgent when e.SessionState is SyncSessionState.Ready which as far as I can tell indicates that the synchronisation itself has completed.

    Martin.

    Thursday, April 15, 2010 9:37 AM
  • that must be causing it, do the deletion after you have done the sync instead and not within one of the events while synching.
    Thursday, April 15, 2010 10:08 AM