SQL Server 2014 CU6可能出现BizTalk WCF-SQL轮询问题

时间:2016-08-05 01:14:12

标签: sql-server biztalk biztalk-2013r2

我有一个BizTalk 2013 R2轮询WCF-SQL接收位置,该位置使用READPAST锁定提示执行Polled Data Available语句。该声明在过去几个月中运行良好,但在轮询的SQL 2014服务器升级到CU6后停止工作。现在,事件日志充满了每个轮询间隔的以下警告消息:

  

您只能在READ COMMITTED或REPEATABLE READ隔离级别中指定READPAST锁

我尝试将WCF服务行为添加到接收位置以强制DTC事务上的READ COMMITTED隔离级别,但看起来轮询语句正在DTC范围之外执行。

我在SQL 2014 CU5服务器上针对数据库的单独副本测试了相同的应用程序,并且轮询工作时没有警告。

有什么想法吗?

更新 看起来将隔离级别设置为Polled Data Available语句的一部分允许READPAST提示工作:

  

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;   选择计数(*)来自dbo.Table with(READPAST)其中[Status] ='READY'

但是,我仍然担心SQL可能不再遵守DTC事务中服务行为设置的隔离级别。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

似乎Microsoft修复了在释放SQL连接时{(3}})无法重置隔离级别的一些问题。这让我相信CU6的行为是有意的,我只是从一个bug中受益。对我来说,轮询数据仍然有点奇怪。声明并不尊重WCF服务行为设置,但也可能是故意的。

我最后只是在PolledDataAvailableStatement中设置隔离级别来强制读取已提交的隔离级别。

示例:

set transaction isolation level read committed;
Select count(*) From dbo.Table with(READPAST) Where [Status] = 'READY'