【发布时间】:2021-01-23 10:01:24
【问题描述】:
我们有旧的 SOAP ASP.NET 网络服务,它连接到 SQL Server 数据库以检索结果集。下面是我们的连接字符串:
connectionString="server=ServerName;database=UserDBName;user id=UserNameRef;Password=myPassword;
我们将命令超时设置为 5 分钟。我们看到的是,使用连接池的 SQL Server 2012 数据库经常发生超时问题错误。服务器中没有发生重大活动或阻止问题发生。
来自sp_whoisactive 跟踪的PFB 快照。如果我们看到,会话 52 将在 5 分钟后超时。我们在此会话中没有运行任何命令。不知道为什么会突然超时。
如何解决这些超时错误?
+---------+------------+-----------+----------+---------------------------+-------------+---------------------+-------------+------------+------------+-----------------+
| status | session_id | wait_info | sql_text | sql_command | login_name | blocking_session_id | host_name | start_time | login_time | collection_time |
+---------+------------+-----------+----------+---------------------------+-------------+---------------------+-------------+------------+------------+-----------------+
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:00 AM | 2:39:00 AM | 2:39:00 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:06 AM | 2:39:00 AM | 2:39:16 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:39:31 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:39:46 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:40:01 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:40:16 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:40:31 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:40:46 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:41:01 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:41:16 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:41:31 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:41:46 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:42:01 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:42:16 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:42:31 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:42:46 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:43:01 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:43:16 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:43:30 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:43:46 AM |
| dormant | 52 | NULL | | sys.sp_reset_connection;1 | UserNameRef | NULL | HostNameRef | 2:39:21 AM | 2:39:00 AM | 2:44:01 AM | <== Post this timeout occurs
+---------+------------+-----------+----------+---------------------------+-------------+---------------------+-------------+------------+------------+-----------------+
【问题讨论】:
标签: c# asp.net sql-server-2012 ado.net connection-pooling