在更改存储过程时是否必须重新启动主机实例?

时间:2013-04-19 18:59:47

标签: biztalk

在BizTalk 2010中,我使用SQL Adapter来轮询表以创建消息并启动编排过程。

我修改了存储过程而不更改架构。但是我在修改它之后开始收到错误并且没有发生SQL轮询。所以我重新启动了Host实例,它开始工作了。

所以我的问题是在更改存储过程后是否强制重启主机实例?

错误是“适配器”WCF-Custom“引发了错误消息。详细信息”Microsoft.ServiceModel.Channels.Common.AdapterException:作为Typed Stored Procedure或Typed Polling调用的一部分返回的ResultSet与可用的元数据不匹配。如果此存储过程或轮询语句可以返回可变数量的结果集,请考虑使用未键入的存储过程或未键入的轮询操作。“

任何人都可以建议可能的根本原因吗?

谢谢, Sasikumar.S

1 个答案:

答案 0 :(得分:6)

是的,您需要重新启动为WCF-SQL处理程序配置的主机的主机实例。

在第一次调用特定存储过程时,WCF-SQL适配器首先使用SET FMTONLY ON执行它;旗。这会导致Sql Server仅返回预期数据的数据类型,但不会执行sproc本身。适配器在主机进程的生命周期内缓存这些数据类型。

如果更改存储过程返回的数据,则下次执行时,它将不同步,并且无法强制转换为期望的类型。因此,需要重新启动主机实例。

TL; DR - 如果更改存储过程,则需要重新启动WCF-SQL主机实例。