Answered by:
error http status code 500

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 Cevery 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.comFriday, 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.comFriday, 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.comHi 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.comFriday, March 25, 2011 5:53 PM