Sql-Server

每個使用者只有一個同時連接?

  • April 5, 2017

我目前遇到了一些麻煩,似乎是因為如果同一個使用者已經打開了另一個連接(但在單獨的程序中),我的應用程序拒絕連接到數據庫。

根據我的觀察,連接多少其他使用者似乎並不重要,並且@@MAX_CONNECTIONS設置為 0(無限制)。

有沒有辦法在數據庫上定義這樣的每使用者連接數限制,如果是這樣,我該如何關閉它?

這是我的連接字元串:

[db]
sql=MS SQL
provider=SQLOLEDB.1
data source=foo\bar
connection=Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=foobar

您可能從上面可以看出,我們正在使用 Microsoft OLE ADO 連接到數據庫。該應用程序是一個舊的 VB6 遺留程序。

“拒絕連接”是指對像上的方法Open失敗ADODB.Connection​​。

遺憾的是,目前在生產環境中沒有此方法輸出的錯誤日誌。我目前正在等待應用程序的更新檔,看看我是否可以在此處獲得擴展資訊。

有沒有辦法在數據庫上定義這樣的每使用者連接數限制,如果是這樣,我該如何關閉它?

您正在使用 Microsoft SQL-Server。您可以使用資源調控器限制資源。看看微軟文件。在那裡你可以看到可能設置了哪些選項,你應該檢查一下。如果有限制,您可能會在那裡找到它。

文件:https ://docs.microsoft.com/en-us/sql/relational-databases/resource-governor/resource-governor

我認為您可以關閉 MARS 來解決此問題。我在應用程序中遇到了相同的情況,並且關閉 MARS 不允許在完成舊查詢之前啟動新查詢。

嘗試將此添加到您的 ConnString 並重置連接:

MultipleActiveResultSets=false

Data Source=MSSQL; Initial Catalog=AdventureWorks; Integrated Security=SSPI; MultipleActiveResultSets=false

連結到關於火星的文章

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