I have two Windows Server 2012 R2 servers HOST1 and HOST2. HOST1 has a web application that talks to a SQL Server 2014 instance on HOST2.
When pulling larger amounts of data, notably during scheduled integrations, HOST1 encounters errors that cause processes to fail. There problem is always one of three error messages:
System.Data.SqlClient.SqlException (0x80131904): A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.) ---> System.ComponentModel.Win32Exception (0x80004005): The semaphore timeout period has expired
System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: Session Provider, error: 19 - Physical connection is not usable)
System.Data.SqlClient.SqlException (0x80131904): 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.) ---> System.ComponentModel.Win32Exception (0x80004005): An existing connection was forcibly closed by the remote host
I made a small test application that does nothing but push and pull data to/from HOST2 using ADO, in order to eliminate my product from the equation. The tool reliably reproduces the errors.
There is a third server, HOST3 (also 2012 R2), which is on the same network. When I run the tool from HOST3, I can't reproduce the errors. I also have no problem running the tool from my workstation via VPN. This would indicate that something is fishy with HOST1, or at least with the communication between HOST1 and HOST2.
How would you move forward with this issue in terms of diagnosing the problem?
User contributions licensed under CC BY-SA 3.0