本文介绍了ApplyChangeFailed事件不被触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从Sql Server 2005到Sql Server 2005的同步(单向上传)是正常的,当目标数据库为Oracle时,(单向上传)不会触发ApplyChangeFailed事件。


SQL同步时的信息:


VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:343,    RowId:orders-1 UV:1,78012 CV:1,78011 IsTomb:False

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:343,    ;使用PK更新行:order_id =" 1"  on peer2

INFO   ,WcfSvcHost,8,06 / 16/2010 13:40:41:359,乐观变化应用程序失败

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:359,  ;  执行命令:orders_SelectRow

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:359,      参数:order_id值:1

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:359,      参数:@sync_scope_local_id价值:12

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:359,

VERBOSE,WcfSvcHost,8 ,06/16/2010 13:40:41:359,    RowId:orders-1 UV:1,78011 CV:1,78011 IsTomb:False

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:359,    ;         检查冲突。

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:359,           ;  远程对等体包含本地更改。返回RemoteSupersedes。

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,   执行命令:orders_Update


VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:order_id值:1

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:order_date价值:2009-10-9 0:00:00

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,       参数:@sync_min_timestamp价值:86021

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_row_count值:跳过,因为未输入/输入输出

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,       ;参数:@sync_force_write值:0

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,   受影响的行:1

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,   执行命令:orders_UpdateMetadata

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:order_id值:1

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_scope_local_id值:12

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_row_timestamp价值:86021

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_create_peer_key值:1

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_create_peer_timestamp价值:78011

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_update_peer_key值:1

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_update_peer_timestamp价值:78012

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_row_is_tombstone值:0

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_check_concurrency值:0

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,      参数:@sync_row_count值:自未输入/输入输出后跳过

VERBOSE,WcfSvcHost,8,06 / 16/2010 13:40:41:375,   受影响的行:1


Oracle同步时的信息:


VERBOSE,WcfSvcHost,8,06 / 17/2010 07:50:46:703 ,    RowId:orders-9 UV:1,82028 CV:1,82027 IsTomb:False

VERBOSE,WcfSvcHost,8,06 / 17/2010 07:50:46:703,    ;使用PK更新行:ORDER_ID =" 9"  on


INFO   ,WcfSvcHost,8,06 / 17/2010 07:50:46:703,乐观变更申请失败

错误  ,WcfSvcHost,8,06 / 17/2010 07:50:46:703,枚举更改时捕获异常

Microsoft.Synchronization.Data.DbSyncException:找不到要为命令参数“ selectedRow”设置的值。请确保要同步的表的架构是一致的,并且确认此作用域的配置正确。

  在Microsoft.Synchronization.Data.DbChangeHandler.SetColumnParameters(IDbCommand命令,SyncRowMetadata rowMetadata)

  在Microsoft.Synchronization.Data.DbChangeHandler.ExecuteSelectRowCommand(SyncRowMetadata rowMetadata,DataTable& dataTable)


ERROR  ,WcfSvcHost,8,06 / 17/2010 07:50:46:718,SelectRowCommand期间捕获异常

Microsoft.Synchronization.Data.DbSyncException:找不到要为命令参数“ selectedRow”设置的确。要确保要同步的表的架构是一致的,并且确认此作用域的配置正确。

  在Microsoft.Synchronization.Data.DbChangeHandler.SetColumnParameters(IDbCommand命令,SyncRowMetadata rowMetadata)

  在Microsoft.Synchronization.Data.DbChangeHandler.ExecuteSelectRowCommand(SyncRowMetadata rowMetadata,DataTable& dataTable)

  在Microsoft.Synchronization.Data.DbChangeHandler.ApplyUpdate()


VERBOSE,WcfSvcHost,8,06 / 17/2010 07:50:46:718,       提高应用元数据失败的事件


 


Oracle数据库时,ApplyChangeFailed不会被触发,而是直接触发ApplyMetadataFailed。


不知道是什么原因?


 

解决方案

从Sql Server 2005 到Sql Server 2005的同步(单向上传)是正常的,当目标数据库为Oracle时,(单向上传)不会触发ApplyChangeFailed事件。

SQL同步时的信息:

VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:343,    RowId: orders-1 UV: 1,78012 CV: 1,78011 IsTomb: False
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:343,    Updating row with PK: order_id="1"  on peer2
INFO   , WcfSvcHost, 8, 06/16/2010 13:40:41:359, Optimistic change application failed
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:359,    Executing Command: orders_SelectRow
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:359,       Parameter: order_id Value: 1
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:359,       Parameter: @sync_scope_local_id Value: 12
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:359,
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:359,    RowId: orders-1 UV: 1,78011 CV: 1,78011 IsTomb: False
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:359,             Checking for conflict.
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:359,             Remote peer contains local change. Returning RemoteSupersedes.
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,    Executing Command: orders_Update

VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: order_id Value: 1
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: order_date Value: 2009-10-9 0:00:00
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_min_timestamp Value: 86021
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_row_count Value: Skipped since Not Input/InputOutput
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_force_write Value: 0
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,    Rows affected: 1
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,    Executing Command: orders_UpdateMetadata
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: order_id Value: 1
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_scope_local_id Value: 12
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_row_timestamp Value: 86021
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_create_peer_key Value: 1
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_create_peer_timestamp Value: 78011
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_update_peer_key Value: 1
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_update_peer_timestamp Value: 78012
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_row_is_tombstone Value: 0
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_check_concurrency Value: 0
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,       Parameter: @sync_row_count Value: Skipped since Not Input/InputOutput
VERBOSE, WcfSvcHost, 8, 06/16/2010 13:40:41:375,    Rows affected: 1

Oracle同步时的信息:

VERBOSE, WcfSvcHost, 8, 06/17/2010 07:50:46:703,    RowId: orders-9 UV: 1,82028 CV: 1,82027 IsTomb: False
VERBOSE, WcfSvcHost, 8, 06/17/2010 07:50:46:703,    Updating row with PK: ORDER_ID="9"  on
INFO   , WcfSvcHost, 8, 06/17/2010 07:50:46:703, Optimistic change application failed
ERROR  , WcfSvcHost, 8, 06/17/2010 07:50:46:703, Caught exception while enumerating changes
Microsoft.Synchronization.Data.DbSyncException: 找不到要为命令参数“selectedRow”设置的值。请确保要同步的表的架构是一致的,并且确保此作用域的配置正确。
   在 Microsoft.Synchronization.Data.DbChangeHandler.SetColumnParameters(IDbCommand command, SyncRowMetadata rowMetadata)
   在 Microsoft.Synchronization.Data.DbChangeHandler.ExecuteSelectRowCommand(SyncRowMetadata rowMetadata, DataTable& dataTable)

ERROR  , WcfSvcHost, 8, 06/17/2010 07:50:46:718, Caught Exception during SelectRowCommand
Microsoft.Synchronization.Data.DbSyncException: 找不到要为命令参数“selectedRow”设置的值。请确保要同步的表的架构是一致的,并且确保此作用域的配置正确。
   在 Microsoft.Synchronization.Data.DbChangeHandler.SetColumnParameters(IDbCommand command, SyncRowMetadata rowMetadata)
   在 Microsoft.Synchronization.Data.DbChangeHandler.ExecuteSelectRowCommand(SyncRowMetadata rowMetadata, DataTable& dataTable)
   在 Microsoft.Synchronization.Data.DbChangeHandler.ApplyUpdate()

VERBOSE, WcfSvcHost, 8, 06/17/2010 07:50:46:718,       Raising Apply Metadata Failed Event

Oracle数据库时,ApplyChangeFailed不会被触发,而是直接触发ApplyMetadataFailed。

不知道是什么原因?

解决方案


这篇关于ApplyChangeFailed事件不被触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 20:49