I have a process that I've had running since 2008 that runs daily on one of my servers and reaches out to other servers to check that SQL Server Agent is running. I simply do a search for the SQL Agent process in the sysprocesses table on the remote server.
For some reason earlier this week, my remote query stopped returning the full list from sysprocesses, and only returns a single row with program_name = "Microsoft SQL Server"
The first query below is what my job uses. Thinking maybe that a Windows/SQL update got pushed out recently by mistake (though our network team swears nothing was updated recently) and sysprocesses was finally deprecated out of use, I played around with the 2nd two queries with the same results.
SELECT Program_Name, * FROM [ServerName].master.dbo.sysprocesses
SELECT Program_Name, * FROM [ServerName].master.sys.sysprocesses
SELECT Program_Name, * FROM [ServerName].master.sys.dm_exec_sessions
If I run these queries on one server, I get just one row back. But if I run them on the local server OR a different remote server, I get the full results as expected. I've verified that the linked servers are set up identically on the two remote servers, so I can't explain why it would return differently based on where it is being called from.
Any suggestions as to what I should look out to explain the differences?
The Redneck DBA