Recently we had an issue in our production environment after windows patching, suddenly search service application went down.
When I open the search service application from central admin I can see below error in System Status
"SearchService.svc is unavailable. This could be because the service is too busy or because no endpoint was found listening at the specified address"
This seems to be looks strange because search application topology seems to be looks good and it doesn't have any issue in there.
As sharepoint developer first thing we look is either event viewer or sharepoint logs, the error reported there was some what misleading or not much relevant information.
So when I checked the Application pool of Managed metadata Service and Search service application both were down. Doing IISReset didn't helped either after manually starting the application pool of each service then all my search service, metadata service and timer jobs which were dependent on these service were back to normal.
Root Cause:
Our Admin team has done the patching of servers in wrong way, like they patched first app server, WFE and later SQL.
Some time sharepoint doesn't understand even though DB server is up and running it will assume its not available for service application.
The ordering of windows patching should be in proper way else some times sharepoint fails to start the service automatically.
Better way to patching the servers:
1) Take WFE server down
2) All application services hosted server should be taken down
3) Apply the patch in SQL server/s, then if required do restart of servers
4) Apply the patch for APP servers then if required do restart of servers
5) Apply the patch for WFE server/s, then if required do restart of servers.
This is the proper way of doing windows patching, if any follow different approach then these kind of errors will raise.