我有一個BizTalk 2013 R2輪詢WCF-SQL接收位置,它使用READPAST鎖提示執行輪詢數據可用語句。該聲明在過去的幾個月裏工作得非常完美,但在將SQL 2014服務器輪詢升級到CU6後,該聲明停止工作。現在,事件日誌中充斥着以下警告消息每次輪詢間隔:SQL Server 2014可能的BizTalk WCF-SQL輪詢問題CU6
只能指定在讀的READPAST鎖犯或重複讀隔離級別
我嘗試添加一個WCF服務行爲到接收位置以在DTC事務上強制執行READ COMMITTED隔離級別,但似乎輪詢語句正在DTC範圍之外執行。
我對SQL 2014 CU5服務器上的單獨數據庫副本測試了相同的應用程序,並且輪詢無任何警告地工作。
任何想法?
更新: 它看起來像設置隔離級別爲輪詢數據可用聲明的一部分允許READPAST提示工作:
SET事務隔離級別READ COMMITTED; SELECT COUNT(*)FROM dbo.Table用(READPAST)凡[狀態] = 'READY'
不過,我還是擔心,SQL可能不再履行的隔離級別由服務行爲設置在DTC交易中。
爲什麼你需要的READPAST鎖提示呢? – Dijkgraaf
真相被告知,我不必使用READPAST,但輪詢語句執行一個相當昂貴的鎖識別存儲過程。如果沒有可用於輪詢的記錄,我寧願不執行該程序。 可用的數據語句如下所示: 'select count(*)from dbo.Table r with(readpast)Where Status ='READY'' –