BizTalk WCF_SQL轮询

时间:2014-09-30 04:02:56

标签: biztalk

我的WCF_SQL接收位置轮询存在一个奇怪的问题。 BizTalk服务器是BizTalk 2010.轮询每1分钟执行一次,涉及执行Stored_Proc从表中选择记录并将选定的记录状态更新为“Processing”

Select top 10 * from ProcessingTable where Status = 'New'

Update ProcessingTable Set Status = 'Processing' where Status = 'New'

接收管道是XMLReceive,它将分发记录并路由到另一个业务流程进行处理。在业务流程结束时,将有一个发送端口,用于将状态更新为“已处理”。

问题出现了,在我们进行维护并且BizTalk DB / Application服务器关闭的期间,主机实例将关闭,这些记录将停留在“新”状态。初始化维护和主机实例后,这些记录将立即被提取并将其状态更新为“正在处理”。奇怪的是,它处于这种状态,并且永远不会更新为“已处理”。这只发生在前10名记录中(第一次拉/拾取)。随后,所有其他剩余的“新”记录将被选中并成功处理。目前,解决方法是始终监视“处理”中记录的那些记录,并再次将这些记录更新为“新建”以重新触发处理。任何人都有这个问题的答案吗?

1 个答案:

答案 0 :(得分:-2)

您是否为此使用过单身模式编排?如果没有,那么尝试一次,看看你是否遇到了同样的问题,因为我怀疑它正面临竞争状态