locked
"Batch mode" synchronization - possible? RRS feed

  • Question

  • I'm investigating whether I can use Synchronization Services over a transport infrastructure where client and server never communicate directly. Essentially, I have an existing infrastructure that allows files to be passed to and from server and client, and for method calls to be made, but the same program never "sees" both client and server.

     

    So, for example, if I had a SQL Express client db and a SQL 2005 server db requiring 2-way synchronization, could I get the changes using MSS on the client (as a DiffGram?), serialize them to a file, send them to the server using my existing transport, then apply them using MSS on the server? Or does there have to be direct communication?

    • Moved by Max Wang_1983 Friday, April 22, 2011 10:03 PM forum consolidation (From:SyncFx - Microsoft Sync Framework Database Providers [ReadOnly])
    Monday, April 2, 2007 3:28 PM

Answers

  • Hi,
     
    Yes, this scenario is possible. Check out the agent interface, apart of the Synchronize() method, there are a handful of methods that allows you to get hold of changes on the client database since the last sync time (or last AcceptChanges() call since in your scenario there is no end-to-end sync). Using GetChanges() you can get a dataset of pending changes that needs to be pushed to the server. What you do with the changes is pretty much up to you. Once applied on the other end, you would want to call AcceptChanges() on the agent so that they are no longer considered pending changes and won't show up again next time you call GetChanges().
     
    Thanks
    Monday, April 2, 2007 8:55 PM

All replies

  • Hi,
     
    Yes, this scenario is possible. Check out the agent interface, apart of the Synchronize() method, there are a handful of methods that allows you to get hold of changes on the client database since the last sync time (or last AcceptChanges() call since in your scenario there is no end-to-end sync). Using GetChanges() you can get a dataset of pending changes that needs to be pushed to the server. What you do with the changes is pretty much up to you. Once applied on the other end, you would want to call AcceptChanges() on the agent so that they are no longer considered pending changes and won't show up again next time you call GetChanges().
     
    Thanks
    Monday, April 2, 2007 8:55 PM
  • Hi,

    I am having the same problem

     

    I have a SQL Express client db and a SQL 2005 server db that requires 2-way synchronization.

    Could I get the changes using MSS on the client/Server and send them to the client/server then apply them using MSS on the client/server?

     

    Saturday, September 29, 2007 6:26 AM