首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可能的BizTalk WCF- Server 2014 CU6中的SQL轮询问题

可能的BizTalk WCF- Server 2014 CU6中的SQL轮询问题
EN

Stack Overflow用户
提问于 2016-08-05 01:14:11
回答 2查看 715关注 0票数 0

我有一个BizTalk 2013 R2轮询WCF接收位置,它执行带有READPAST锁提示的轮询数据可用语句。在过去的几个月里,这份声明完美无缺,但在被调查的SQL 2014服务器升级到CU6之后,它就停止了工作。现在,事件日志中充斥着以下警告消息:每一个轮询间隔:

您只能在读取已提交或可重复读取隔离级别中指定READPAST锁。

我尝试将WCF服务行为添加到接收位置,以强制DTC事务上的读提交隔离级别,但似乎轮询语句是在DTC范围之外执行的。

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

有什么想法吗?

更新:看起来像将隔离级别设置为轮询数据可用语句的一部分,从而允许READPAST提示工作:

设置事务隔离级别读提交;从dbo.Table with(READPAST)中选择count(*),其中状态=“就绪”

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-18 13:19:13

微软似乎修复了一些问题,即在释放SQL连接(kb3025845)时,隔离级别无法重置。这使我相信,CU6行为是有意的,我只是从一个bug中受益。在我看来,被调查的数据有用似乎还是很奇怪的。语句不符合WCF服务行为设置,但这也可能是有意的。

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

示例:

代码语言:javascript
复制
set transaction isolation level read committed;
Select count(*) From dbo.Table with(READPAST) Where [Status] = 'READY'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38779690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档