西煞魄工厂

posts - 193, comments - 278, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

[BTS]5740, 5743错误如何处理?

Posted on 2008-02-28 18:43 西煞魄工人 阅读(112) 评论(0)  编辑 收藏 所属分类: BizTalk




Event Type: Warning
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5740
Date:  2/28/2008
Time:  6:33:04 PM
User:  N/A
Computer: LABS
Description:
The adapter "SQL" raised an error message. Details "HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required  Transaction aborted "
 <Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"><?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required  Transaction aborted "?></Root>".

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

 


Event Type: Warning
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5743
Date:  2/28/2008
Time:  6:33:04 PM
User:  N/A
Computer: LABS
Description:
The adapter failed to transmit message going to send port "UpdateSMGPLog" with URL "SQL://labs/NotificationSystem/". It will be retransmitted after the retry interval specified for this Send Port. Details:"HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required  Transaction aborted "
 <Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"><?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required  Transaction aborted "?></Root>".

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.


通过在流程中转出关键几个Message的Xml,发现, 于用Update的消息,数据不全。

<ns0:UpdateOCSLogRequest xmlns:ns0="http://EIAC.OA.NotificationSystem.UpdateOCSLog">
<ns0:sync>
<ns0:before><ns0:OCSMessageLog></ns0:OCSMessageLog></ns0:before>
<ns0:after><ns0:OCSMessageLog StateID="1"></ns0:OCSMessageLog></ns0:after>
</ns0:sync>
</ns0:UpdateOCSLogRequest>

没有Before条件,这就相当于你的sql语句少东西!
update table set StateID=1 where <??????> 人家不知道去更新谁!

找到错误原因后,把对应的流程代码再进行了一下整理。确定再测试时,这个before已经有数据了。


 


  问题又被解决了!

西煞魄工人

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-02-28 19:37 编辑过


相关链接: