Several difficult questions

Feb 10, 2011 at 11:05 PM

Hi there, thank you for the useful library.

I'm still evaluating what it can and can't. My questions are:

1) What happens, if user clicks Refresh button in the browser? If database has pending changes (like something to Flush), will this action corrupt database or not? If yes, how can we avoid this?

2) What happens, if user opens two tabs or start two copies of the OoB applications?
How do we deal with concurrency and locks? Is there some IPC-notification mechanism between app instances?
Is it possible to lock database for some particular instance of the OoB application?

3) How do you recover after detecting corrupt database? My code fails in PublishTables, after that nothing works - neither Purge nor Register. Should I recreate the whole Engine?

4) Do you have any recipes using Sterling as sync framework for WCF RIA/Data Services?

thank you in advance

Feb 11, 2011 at 12:07 AM

2) You can play with this example:

source code is here:

I did some tests and it doesn't seem to crash with more than one Tab open.

Feb 11, 2011 at 1:45 AM

1. If you follow the patterns recommended in the user's guide at then refresh should fire application exit and flush the database, keeping it in synch.

2. There is no mechanism for concurrency and locks at this time. It may come down the road but it hasn't been a need because that is a very rare use case - most of the time the application will handle multiple windows/etc and not require the user to launch two instances. In many of the OOB applications I've worked on, we placed a mechanism to prevent the second launch from functioning so the user stays in the first instance.

3. Right now there is no recovery mechanism. The interim solution is to backup known "stable" database and restore to earliest known version. This will likely be something in future versions, but the level of recovery will likely be limited to rebuilding of indexes and keys.

4. No, I do not - I don't personally use WCF RIA so I'll be looking to the community to share their experiences with that.

Thanks for your feedback and for asking some great questions!