| 订阅 | 在线投稿
分享
 
 
 

BizTalk Server 2006 问题处理两例

来源:互联网网民  宽屏版  评论
2006-12-11 21:23:51

作者:郑佐

日期:2006-9-27

1. 使用Sql适配器调用存储过程出现“HRESULT="0x80004005" Description="事务与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。

错误信息:

适配器无法传输要发往发送端口“SendPort_SendHead_Sql”(URL 为“SQL://localhost/testDb/”)的消息。在为该发送端口指定的重试时间间隔过后,将会重新传输该消息。详细信息:“HRESULT="0x80004005" Description="事务(进程 ID 103)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。"”。

解决办法:

可能的解决方式如下,http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B833190

根据以上链接地址提供的处理方式,笔者没有完全解决问题。下面是补充:在应用程序的发送端口属性中,选择“传输高级选项”卡,选中“按序到达”复选框。对于“当前消息失败后停止发送随后的消息”子复选框看具体情况而定。通过以上设置问题解决。笔者认为产生这个的原因会很多,多个应用程序访问同一数据库同一表,如果处理不当,造成死锁,就会出现该问题。笔者认为此类解决问题的关键还是在Sql语句或存储过程对表的访问是否设计的合理,并不是BizTalk Server 单个系统可解决。

2. SQL Server Scheduled Job 'TrackedMessages_Copy_BizTalkMsgBoxDb'失败

错误信息:

SQL Server Scheduled Job 'TrackedMessages_Copy_BizTalkMsgBoxDb' (0xE0586DA84D856C4FB003C5FC5405EDF4) - Status: 失败 - Invoked on: 2006-08-30 15:39:00 - Message: 该作业失败。 计划 7 (Schedule) 调用了该作业。最后运行的是步骤 1 (Purge)。

解决办法:

查看计划任务执行的的语句为“exec bts_CopyTrackedMessagesToDTA '计算机名', 'BizTalkDTADb'”。查看错误记录,提示需要添加指定的SqlServer服务器为链接服务器。由于笔者使用的系统BizTalk应用服务器同Sql Server 2005服务器安装在同一台服务器上,结果提示变成为把本机添加到链接服务器,是不是很奇怪?通过Sql Server 2005的“服务器对象”节点无法添加本地服务器到链接服务器。于是执行添加链接服务器的存储过程(master.dbo.sp_addlinkedserver),结果不行,同事在本地添加一个异地链接服务器,然后通过“编写链接服务器脚本为”菜单导出链接服务器脚本,对生成的脚本修改服务器名,在BizTalk所在的服务器上执行,结果添加成功。问题解决,计划任务运行正常。笔者再次访问“服务器对象”节点时,看到新添加的本机服务器,查看该属性,在选项页中,无法查看“安全性”和“服务器选项”,提示“您不能将本地SQL Server 创建为链接服务器”。 难道是bug?

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
作者:郑佐 日期:2006-9-27 1. 使用Sql适配器调用存储过程出现“HRESULT="0x80004005" Description="事务与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。 错误信息: 适配器无法传输要发往发送端口“SendPort_SendHead_Sql”(URL 为“SQL://localhost/testDb/”)的消息。在为该发送端口指定的重试时间间隔过后,将会重新传输该消息。详细信息:“HRESULT="0x80004005" Description="事务(进程 ID 103)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。"”。 解决办法: 可能的解决方式如下,[url=http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B833190]http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B833190[/url] 根据以上链接地址提供的处理方式,笔者没有完全解决问题。下面是补充:在应用程序的发送端口属性中,选择“传输高级选项”卡,选中“按序到达”复选框。对于“当前消息失败后停止发送随后的消息”子复选框看具体情况而定。通过以上设置问题解决。笔者认为产生这个的原因会很多,多个应用程序访问同一数据库同一表,如果处理不当,造成死锁,就会出现该问题。笔者认为此类解决问题的关键还是在Sql语句或存储过程对表的访问是否设计的合理,并不是BizTalk Server 单个系统可解决。 2. SQL Server Scheduled Job 'TrackedMessages_Copy_BizTalkMsgBoxDb'失败 错误信息: SQL Server Scheduled Job 'TrackedMessages_Copy_BizTalkMsgBoxDb' (0xE0586DA84D856C4FB003C5FC5405EDF4) - Status: 失败 - Invoked on: 2006-08-30 15:39:00 - Message: 该作业失败。 计划 7 (Schedule) 调用了该作业。最后运行的是步骤 1 (Purge)。 解决办法: 查看计划任务执行的的语句为“exec bts_CopyTrackedMessagesToDTA '计算机名', 'BizTalkDTADb'”。查看错误记录,提示需要添加指定的SqlServer服务器为链接服务器。由于笔者使用的系统BizTalk应用服务器同Sql Server 2005服务器安装在同一台服务器上,结果提示变成为把本机添加到链接服务器,是不是很奇怪?通过Sql Server 2005的“服务器对象”节点无法添加本地服务器到链接服务器。于是执行添加链接服务器的存储过程(master.dbo.sp_addlinkedserver),结果不行,同事在本地添加一个异地链接服务器,然后通过“编写链接服务器脚本为”菜单导出链接服务器脚本,对生成的脚本修改服务器名,在BizTalk所在的服务器上执行,结果添加成功。问题解决,计划任务运行正常。笔者再次访问“服务器对象”节点时,看到新添加的本机服务器,查看该属性,在选项页中,无法查看“安全性”和“服务器选项”,提示“您不能将本地SQL Server 创建为链接服务器”。 难道是bug?
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有