TCP Provider The semaphore timeout period has expired

我们一数据库服务器上有个作业最近几天偶尔会遇到下面错误(敏感信息已做处理),主要是报“TCP Provider: The semaphore timeout period has expired. [SQLSTATE 07008] (Error 121)  OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Communication link failure". [SQLSTATE 01000] (Error 7412).  The step failed.”。 作业执行的存储过程使用了Linked Server。服务器为虚拟机Vmware下的Windows Server 2003。

 1 Date        2016/6/2 9:15:20
 2 Log        Job History (Job_Name)
 3
 4 Step ID        1
 5 Server        SERVERNAME
 6 Job Name        Job_Name
 7 Step Name       Job_Name
 8 Duration        00:00:22
 9 Sql Severity    16
10 Sql Message ID    7412
11 Operator Emailed
12 Operator Net sent
13 Operator Paged
14 Retries Attempted    0
15
16 Message
17 Executed as user: NT AUTHORITY\SYSTEM. TCP Provider: The semaphore timeout period has expired. [SQLSTATE 07008] (Error 121)  OLE DB provider "SQLNCLI" for linked server "(null)" returned message "Communication link failure". [SQLSTATE 01000] (Error 7412).  The step failed.

关于这个错误,在网上查了一些资料。例如这篇文章TCP Provider: The semaphore timeout period has expired里面介绍了好多可能导致这个错误出现的原因,例如TCP Chimney没有禁用,系统内存压力等,一一排除过后,觉得很有可能是网络问题,在这台服务器上,持续ping那台链接过去的服务器,

M:\DB_BACKUP>ping -t 192.168.xxx.xxx> ping.txt

持续ping 了二十多个小时候,期间作业出现了一次上述问题,期间掉包14个,应该可以印证就是虚拟机之间的网络掉包导致了这个作业的错误出现。关于如何诊断网络问题,可以参考一下官方文档如何解决网络连接问题. 问题是基本定位了,但是如何解决是个让系统管理员都头痛的问题。

参考资料:

https://social.technet.microsoft.com/Forums/zh-CN/c3fc9f5d-c073-4a9f-bb3d-b7bb8f893f78/error-0x80070079-the-semaphore-timeout-period-has-expired?forum=itprovistanetworking

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/24df17db-5125-43d7-b504-5d2de132e461/sqlncli-linked-server-error?forum=sqldataaccess

https://support.microsoft.com/zh-cn/kb/325487

时间: 2024-08-28 05:28:25

TCP Provider The semaphore timeout period has expired的相关文章

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.【转】

今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者 如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" 或者 SqlClient Class , 你在执行一个很费时的SQL 操作时候,可能就会碰到下面的超时异常. --------------------------- ---------------------------Timeout expired.  The timeout period elapsed

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者 如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" 或者 SqlClient Class , 你在执行一个很费时的SQL 操作时候,可能就会碰到下面的超时异常. --------------------------- ---------------------------Timeout expired.  The timeout period elapsed

Timeout expired. The timeout period elapsed prior to completion of the operation or the server...

问题: 最近程序总会抛出如下异常: An exception of type'System.Data.SqlClient.SqlException' occurred and was caught. ---------------------------------------------------------------------------------- Type :System.Data.SqlClient.SqlException, System.Data, Version=4.0.

SSRS 2008 R2 错误:Timeout expired. The timeout period

今天遇到了Reporting Services(SQL SERVER 2008 R2)的报表执行异常情况,报表加载数据很长时间都没有响应,最后报"An error occurred within the report server database.  This may be due to a connection failure, timeout or low disk condition within the database.;".检查C:\Program Files\Micro

SqlException:ConnectionTimeout Expired. The timeout period elapsed during the post-login phase

linux系统部署.netcore程序后,访问某台sqlserver 2008 R2数据库 Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have

cargo failed to finish deploying within the timeout period [120000]

cargo插件,报错:failed to finish deploying within the timeout period [120000] 解决方法:配置timeout为0 1 <plugin> 2 <groupId>org.codehaus.cargo</groupId> 3 <artifactId>cargo-maven2-plugin</artifactId> 4 <version>1.4.9</version>

【服务器踩坑】SSMS链接Ubuntu上的SQL Server 2019 报错 TCP Provider: Error code 0x2746

昨天在一台Ubuntu18.04.2 上安装了SQL Server 2019 for Linux 服务正常启动了,但是却无法通过命令行工具或者远程Windows机器上的SSMS链接. SSMS错误是 Sqlcmd的错误是 Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746 关闭了防火墙,还是不行. 无奈访问了一下著名的同性交友网站Stackoverflow,其中有个帖子提到了这是由于SSL版本不一致造

[bug]Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

写在前面 在mysql中这个异常是非常常见的,超时分为连接超时和执行超时,而连接超时,大部分原因是网络问题,或客户端到服务端的端口问题造成. bug场景 有的时候,使用MySqlDataReader在读取数据的时候,datareader的特性是在在线读取,而且是一条一条往下读,也就是只进式读取.如果数据非常多,就会造成超时的问题. 这种超时是执行超时引起的. SqlCommand.CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等待时间. 等待命令执行的时间(以秒为单

SQLSERVER:Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

1.Max Pool Size 默认为100. 2.查看当前数据库连接数量, select * from sysprocesses where dbid= db_id('数据库名称') 结果为190, 3.添加数据库查询的最大连接数量 Data Source=.;Initial Catalog=i_Master;Persist Security Info=True;User ID=NUser;Password=N2;max pool size=500设置最大连接数量 500 原文地址:https