Sql-Server
查詢通知和連接選項
我正在調查查詢通知的問題。平台為 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/
對這個問題的解釋原來是應用程序的另一部分顯式打開讀取未送出連接的問題。這些讀取未送出的連接然後留在連接池中並由服務代理重用,無法使用此隔離級別進行操作。
解決方案很簡單:確保服務代理使用不同的連接字元串進行連接,從而使用不同的連接池。