locked
error http status code 500 RRS feed

  • Question

  • Hi all,

    i have a problem, my scenario looks like this:

    scope1 contains table1 with the columns ID A B D E F
    scope2 contains table1 with columns ID C

    every time i create a new tupel on the client and want to sync with scope1(not used scope2 for upload before) i get the error code 500 (no value set for parameter '@P_8'. check consistent of sync-table schema and the configuration of this scope)

    but it works when i sync with scope2... there r no not null columns, foreign keys or stuff like that.

    when i make changes or delete tupels on the client and sync with scope1 it works too. it fails only when i create new tupels on the client.

    any ideas?

     

    ErrorDescription:

    {"ErrorDescription":"Microsoft.Synchronization.Data.DbSyncException\u000d\u000aFür den Befehlsparameter '@P_8' wurde kein festzulegender Wert gefunden. Stellen Sie sicher, dass die Schemas der synchronisierten Tabellen konsistent sind und die Konfiguration für diesen Bereich richtig ist.\u000d\u000a   bei Microsoft.Synchronization.Data.DbChangeHandler.SetColumnParameters(IDbCommand command, SyncRowMetadata rowMetadata)\u000d\u000a   bei Microsoft.Synchronization.Data.DbChangeHandler.ApplyInsert()\u000d\u000a   bei Microsoft.Synchronization.Data.ChangeHandlerBase.ApplyChange(FailedDeleteDelegate_type failedDeleteDelegate)\u000d\u000a   bei Microsoft.Synchronization.Data.RelationalSyncProvider.ApplyChangesInternal(DbSyncScopeMetadata scopeMetadata, IDbTransaction transaction, FailedDeleteDelegate_type failedDeleteDelegate, DataSet dataSet, ChangeApplicationType applyType)\u000d\u000a   bei Microsoft.Synchronization.Data.RelationalSyncProvider.ApplyChanges(DbSyncScopeMetadata scopeMetadata, IDbTransaction applyTransaction, DataSet dataSet, DbSyncSession DbSyncSession, Boolean commitTransaction, FailedDeleteDelegate_type failedDeleteDelegate, String batchFileName, ChangeApplicationAction& action)\u000d\u000a   bei Microsoft.Synchronization.Data.RelationalSyncProvider.SingleTransactionApplyChangesAdapter.Apply(DataSet dataSet, Boolean commitTransaction, FailedDeleteDelegate_type failedDeleteDelegate, String batchFileName, ChangeApplicationAction& action)\u000d\u000a   bei Microsoft.Synchronization.Data.RelationalSyncProvider.ApplyChanges(DbSyncScopeMetadata scopeMetadata, DataSet dataSet, DbSyncSession dbSyncSession, Boolean commitTransaction)\u000d\u000a   bei Microsoft.Synchronization.Data.RelationalSyncProvider.ProcessChangeBatch(ConflictResolutionPolicy resolutionPolicy, ChangeBatch sourceChanges, Object changeDataRetriever, SyncCallbacks syncCallbacks, SyncSessionStatistics sessionStatistics)\u000d\u000a   bei Microsoft.Synchronization.Services.SqlProvider.SqlSyncProviderService.ApplyChanges(Byte[] clientKnowledgeBlob, List`1 entities)\u000d\u000a   bei Microsoft.Synchronization.Services.UploadChangesRequestProcessor.ProcessRequest(Request incomingRequest)\u000d\u000a   bei Microsoft.Synchronization.Services.SyncService`1.ProcessRequestForMessage(Stream messageBody)\u000d\u000a\u000d\u000a\u000d\u000a"}

     


    • Edited by mrrioes12 Wednesday, April 6, 2011 12:23 PM
    Thursday, March 24, 2011 1:33 PM

Answers

  • Hi mrrioes12,

    This is a known issue with the SyncFx 2.1 provider that we reference in the UI tool to provision the database. The only workaround at this point that I can think of is to use the SyncFx 2.1 SqlSyncScopeProvisioning API's directly to provision the second scope (without using the UI for SyncFx 4 CTP) and also set the SqlSyncScopeProvisioning.ObjectPrefix property to ensure that a different set of stored procedures are created.

    Please try this and let me know if you issue is fixed. You can look at http://msdn.microsoft.com/en-us/library/microsoft.synchronization.data.sqlserver.sqlsyncscopeprovisioning.aspx for information on how to use this class to provision databases.


    SDE, Sync Framework - http://www.giyer.com
    • Proposed as answer by Ganeshan Tuesday, March 29, 2011 9:17 PM
    • Marked as answer by Ganeshan Wednesday, March 30, 2011 11:30 PM
    Friday, March 25, 2011 5:53 PM

All replies

  • Hi mrrioes12

    Did you provision your database using the SyncSvcUtil tool or by using SyncFx 2.1 provisioning API's?

    It would also help if you can paste the _insert stored proc. That would help us determine what @P_8 actually should be.


    SDE, Sync Framework - http://www.giyer.com
    Friday, March 25, 2011 12:03 AM
  • Hi mrrioes12

    Did you provision your database using the SyncSvcUtil tool or by using SyncFx 2.1 provisioning API's?

    It would also help if you can paste the _insert stored proc. That would help us determine what @P_8 actually should be.


    SDE, Sync Framework - http://www.giyer.com

    Hi Ganeshan,

    thanks for your quick response.

    I used the SyncSvcUtil tool to provision my database.

    @P_8 should be an integer(its the Attribute C of Scope2)... and I was wrong. any changes on the client(delete, update, insert) for Scope1 wont work. downloadchanges work. there should be two insert stored procs, right? because it looks like that only the insert stored proc for scope2 exists and scope1 will use this for including new tupels.

    but beside table1, scope1 includes some other tables(all allcolumns) und there is no problem. so maybe its a bug in SyncSvcUtil tool?

    here is a pic of the insert stored proc

    http://s7.directupload.net/images/110325/oejncxfz.jpg

     

    here r the columns for scope2:

    <SyncTable Name="[Machines]" GlobalName="Machines" SchemaName="" IncludeAllColumns="false" FilterClause="">
    <SyncColumns>
    <SyncColumn Name="ID" GlobalName="ID" SqlType="int" IsPrimaryKey="true" IsNullable="false"/>
    <SyncColumn Name="OelStatus" GlobalName="OelStatus" SqlType="int" IsPrimaryKey="false" IsNullable="true"/>
    </SyncColumns>
    </SyncTable>

    Friday, March 25, 2011 11:05 AM
  • Hi mrrioes12,

    This is a known issue with the SyncFx 2.1 provider that we reference in the UI tool to provision the database. The only workaround at this point that I can think of is to use the SyncFx 2.1 SqlSyncScopeProvisioning API's directly to provision the second scope (without using the UI for SyncFx 4 CTP) and also set the SqlSyncScopeProvisioning.ObjectPrefix property to ensure that a different set of stored procedures are created.

    Please try this and let me know if you issue is fixed. You can look at http://msdn.microsoft.com/en-us/library/microsoft.synchronization.data.sqlserver.sqlsyncscopeprovisioning.aspx for information on how to use this class to provision databases.


    SDE, Sync Framework - http://www.giyer.com
    • Proposed as answer by Ganeshan Tuesday, March 29, 2011 9:17 PM
    • Marked as answer by Ganeshan Wednesday, March 30, 2011 11:30 PM
    Friday, March 25, 2011 5:53 PM