Sql-Server

查詢通知和連接選項

  • July 11, 2017

我正在調查查詢通知的問題。平台為 SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 標準版。

.NET 錯誤顯示從 SqlNotificationInfo 列舉 ( http://msdn.microsoft.com/en-gb/library/system.data.sqlclient.sqlnotificationinfo(v=vs.80).aspx ) 報告的問題為:事件原因:隔離.

在跟踪期間,我注意到 Broker 對話之前的審核登錄事件顯示:

-- network protocol: TCP/IP
   set quoted_identifier on
   set arithabort off
   set numeric_roundabort off
   set ansi_warnings on
   set ansi_padding on
   set ansi_nulls on
   set concat_null_yields_null on
   set cursor_close_on_commit off
   set implicit_transactions off
   set language us_english
   set dateformat mdy
   set datefirst 7
   set transaction isolation level read uncommitted

因此,我的工作理論是不支持用於對話的事務隔離級別。但是這個集合在哪裡,我該如何改變它?

我在這裡讀到過類似的問題:

http://www.roelvanlisdonk.nl/?p=3144

http://www.sqlskills.com/blogs/bobb/watch-the-sqlnotificationinfo-for-query-notifications/

對這個問題的解釋原來是應用程序的另一部分顯式打開讀取未送出連接的問題。這些讀取未送出的連接然後留在連接池中並由服務代理重用,無法使用此隔離級別進行操作。

解決方案很簡單:確保服務代理使用不同的連接字元串進行連接,從而使用不同的連接池。

引用自:https://dba.stackexchange.com/questions/35029