Troubleshooting: Connection Forcibly Closed
This error may occur when connecting to SQL Server using TCP/IP.
Error Text
The error can occur in the following formats:
TCP_PROV: An existing connection was forcibly closed by the remote host.
"ProviderNum: 7, Error: 10054, ErrorMessage: "TCP Provider: An existing connection was forcibly closed by the remote host ..."
Unhandled Exception: A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
Typical Causes of This Error
The following table lists typical causes and resolutions for this error.
Cause |
Resolution |
---|---|
Client is connecting with an unsupported version of the SQL Server Native Client. |
Update the client computer to the server version of the SQL Server Native Client. |
Faulty network hardware is dropping portions of the TCP traffic. |
Use network monitoring programs to analyze TCP SYN, ACK, and FIN messages. |
The SynAttackProtect setting may be dropping connections. |
See the section "Connections May Be Forcibly Closed When Running on Windows Server 2003 SP1" that follows. |
Connections May Be Forcibly Closed When Running on Windows Server 2003 SP1
When testing scalability with a large number of client connection attempts to an instance of the SQL Server Database Engine running on Windows Server 2003 Service Pack 1, Windows may drop connections if the requests arrive faster than SQL Server can service them. This is a security feature of Windows Server 2003 Service Pack 1, which implements a finite queue for incoming TCP connection requests.
To resolve this issue, use the regedit.exe utility to add the following registry key:
Key |
Type |
Name |
Value |
---|---|---|---|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ |
DWORD |
SynAttackProtect |
00000000 |
Security Note |
---|
Setting this registry key may expose the server to a SYN flood, denial-of-service attack. Add this registry value only if necessary and with an understanding of the security risks. Remove this registry value when testing is complete. |