Sql-server – How to identify the source of the 17886 errors (“server will drop the connection”) in the SQL errorlog

errorssql serversql-server-2012

I have a SQL 2012 server that is throwing the following error every 5 minutes or so:

Error: 17886, Severity: 20, State: 1.

The server will drop the connection, because the client driver has sent multiple requests while the session is in single-user mode. This error occurs when a client sends a request to reset the connection while there are batches still running in the session, or when the client sends a request while the session is resetting a connection. Please contact the client driver vendor.

I alert on all Sev 20 errors, so I can't just ignore this.

The good news is that I have some leads on how to fix it (seems like a connection string issue):

The bad news is that I have no idea which application is causing the errors!

The server has over 50 databases, from a wide variety of commercial vendors, contractors, or in-house developers. The error contains no details about which spid or login or hostname or database caused the problem.

I've tried looking at active spids (using sp_WhoIsActive) when the error is occurring, but there is too much activity on the server for anything to stand out (nor do I know what I'm looking for). Same thing with running SQL profiler – without knowing how to filter, I'm just seeing the firehose of data the server handles on an ongoing basis.

I am trying to narrow it down by figuring out which application teams have made recent changes, but that hasn't panned out so far.

Any ideas?

Best Answer

Try to use

select * from sys.dm_os_ring_buffers

to get more details about source clients.

Try filter type RING_BUFFER_CONNECTIVITY.