Last month the application team asked me to take a look on an error raised from their PowerShell script, which calls BCP to import large chunks of data from CSV files into SQL Server. Error messages got by powershell:
SQLState = 08S01, NativeError = 10054
Error = [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: An existing connection was forcibly closed by the remote host.
SQLState = 08S01, NativeError = 10054
Error = [Microsoft][ODBC Driver 17 for SQL Server]Communication link failure
SQLState = 08S01, NativeError = 0
In sql server error log, error messages:
Error: 4014, Severity: 20, State: 3.
A fatal error occurred while reading the input stream from the network. The session will be terminated (input error: 0, output error: 0).
I did some googling, got some suggestions to try disabling TCP Chimney Offload and Receive Side Scaling. Below are the procedures:
1. Open Administrator: Command Prompt, run netsh int tcp show global to check the current settings.
As you see above, Receive-Side Scaling State and Chimney Offload State are enabled.
2. Run below commands to disable TCP Chimney and Receive Side Scaling:
- netsh int tcp set global chimney=disabled
- netsh int tcp set global rss=disabled
3. Run netsh int tcp show global again to check the new settings.
4. Expand Network adapters, right-click the network adapter, and then click Properties.
On the Advanced tab in the network adapter properties, locate the settings for TCP Chimney Offload and Receive-side scaling, set them to disabled. Different network adapter manufacturers may use different terms to describe the network settings on the Advanced properties page of the network adapter.
Reference: Disable TCP offloading and RSS settings