我可以通过JDBC很好地连接到我的MSSQL 2017数据库,但是当数据库服务器负载很重时,运行查询时会出现此连接错误。
我是否简单地使服务器可以做什么? 也许这是与NIC有关的问题? 要进行任何性能设置调整吗?
com.microsoft.sqlserver.jdbc.SQLServerException:
The TCP/IP connection to the host 192.168.1.150, port 1433 has failed.
Error: "Connection timed out: no further information.
Verify the connection properties. Make sure that an instance of
SQL Server is running on the host and accepting TCP/IP connections
at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
答案 0 :(得分:1)
当来自客户端的连接和工作线程过多时,MS SQL Server会出现问题。
您可以检查当前的连接数。
Select Count(*) FROM MASTER.DBO.SYSPROCESSES
CPU内核与工作线程之间存在依赖关系。 https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-worker-threads-server-configuration-option?view=sql-server-2017
主机上的最大工作线程数。
Select max_workers_count from sys.dm_os_sys_info
您还可以在TOP中看到等待类型THREADPOOL。
SELECT TOP 100
[Wait type] = wait_type,
[Wait time (s)] = wait_time_ms / 1000,
[% waiting] = CONVERT(DECIMAL(12,2), wait_time_ms * 100.0
/ SUM(wait_time_ms) OVER())
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
ORDER BY wait_time_ms DESC;
关于等待线程池: https://www.sqlskills.com/help/waits/threadpool/
检查此版本。
或者我不了解情况,并且在连接和工作查询后X秒钟后出现问题。 通过连接字符串(例如“ queryTimeout = ...”)检查应用程序中的查询超时