locked
Sync between a custom sync provider to SqlSyncProvider RRS feed

  • Question

  • Hi, i am trying to syncronize between two applications.

    the first application, is the CRM which has an API for all the changes which needs to be done in it.

    and the second is a simple application i built which uses the SQL express as it's data base.

    my provider for the simple sql expressis the SqlSyncProvider and for the first application i'm writing a custom sync provider which will connect (read, write and update) the CRM data base using the CRM SDK.

    I have to say that building the custom sync provider is not an easy task at all... so if you have a code example for a custom sync provider which uses an SDK to connect the Database i will be happy to hear about it.

    my problem, as for now is that i'm getting this error:
       {Microsoft.Synchronization.FrameworkVersionMismatchException: The metadata store cannot be opened because it has been updated by synchronization components that are newer than those installed on this computer.
     ---> System.Runtime.InteropServices.COMException (0x80041511): The metadata store cannot be opened because it has been updated by synchronization components that are newer than those installed on this computer.

       at Microsoft.Synchronization.CoreInterop.ISyncSession.Start(CONFLICT_RESOLUTION_POLICY resolutionPolicy, _SYNC_SESSION_STATISTICS& pSyncSessionStatistics)
       at Microsoft.Synchronization.KnowledgeSyncOrchestrator.DoOneWaySyncHelper(SyncIdFormatGroup sourceIdFormats, SyncIdFormatGroup destinationIdFormats, KnowledgeSyncProviderConfiguration destinationConfiguration, SyncCallbacks DestinationCallbacks, ISyncProvider sourceProxy, ISyncProvider destinationProxy, ChangeDataAdapter callbackChangeDataAdapter, SyncDataConverter conflictDataConverter, Int32& changesApplied, Int32& changesFailed)
       --- End of inner exception stack trace ---
       at Microsoft.Synchronization.KnowledgeSyncOrchestrator.DoOneWaySyncHelper(SyncIdFormatGroup sourceIdFormats, SyncIdFormatGroup destinationIdFormats, KnowledgeSyncProviderConfiguration destinationConfiguration, SyncCallbacks DestinationCallbacks, ISyncProvider sourceProxy, ISyncProvider destinationProxy, ChangeDataAdapter callbackChangeDataAdapter, SyncDataConverter conflictDataConverter, Int32& changesApplied, Int32& changesFailed)
       at Microsoft.Synchronization.KnowledgeSyncOrchestrator.DoOneWayKnowledgeSync(SyncDataConverter sourceConverter, SyncDataConverter destinationConverter, SyncProvider sourceProvider, SyncProvider destinationProvider, Int32& changesApplied, Int32& changesFailed)
       at Microsoft.Synchronization.KnowledgeSyncOrchestrator.Synchronize()
       at Microsoft.Synchronization.SyncOrchestrator.Synchronize()
       at SynTest.Orchester..ctor() in C:\projects\SyncFrameworkTesting\SynTest\SynTest\Orchester.cs:line 41}

     

    does somebody has an idea regarding that issue ?

    thanks.

    Sunday, September 12, 2010 8:41 AM

All replies

  • Nedd more details

    1) Is you CRM Source a black box to the Custom CRM Sync Provider you are writing? Meaning the provider will have only API access to the CRM, but won't have access the DB.

    2) What's the base provider you are usign for your custom provider.

    Tuesday, September 14, 2010 12:31 AM
  • hi liranmoto,

    is the exception coming from your custom provider or the SqlSyncProvider? are you running them on different machines, it may that the version of Sync Fx you used to provision may be different from where you're running it?

    Tuesday, September 14, 2010 3:35 AM
  • Hi,

    1. yes, exactly that.

    2. AnchorEnumerationSimpleSyncProvider and implementing ISimpleSyncProviderIdGenerator.

     

    thank you !

    Wednesday, September 15, 2010 7:44 AM
  • Hi June,

    The exception comes from my custom provider (meaning the CRM provider). i'm using a virtual PC as my CRM database. i don't think however that this is the problem as i still get the same exception when the virtual PC is down. meaning it throws the exception even befor it connects the virtual PC

    Wednesday, September 15, 2010 8:48 AM
  • This"could be" because of version mismatch in the sync runtime. The reason, the DB is upgraded to the latest version schema, but the runtime used is an older version.

    Please verfiy the version (of the sync components) that gets loaded when you try to sync.

     

    Thanks,

    Kumar.

    Tuesday, November 23, 2010 11:05 PM
  • Hi liranmoto,

    Did you manage to find a solution for the problem. I am facing the same situation as you. I need to sync a database with a web service and I am implementing a simple custom provider using AnchorEnumerationSimpleSyncProvider and when this custom provider is queried for the ProviderVersion i get the : {Microsoft.Synchronization.FrameworkVersionMismatchException: The metadata store cannot be opened because it has been updated by synchronization components that are newer than those installed on this computer}.

    Thanks

     

    Monday, May 16, 2011 3:21 PM
  • as asked before, what are the syncFx versoin(s) are you using ?

     

    thanks

    Yunwen


    This posting is provided "AS IS" with no warranties, and confers no rights.
    Monday, May 23, 2011 8:01 PM