While configuring the SharePoint 2013 Search Service Application using Central Administration. I got the above error:- "
Unable
to retrieve topology component health states"
But If we create the SharePoint 2013 Search Service Application using Powershell script which prompt lots of other related error like:-
- SharePoint 2013 Search Topology Activation
Error: "Unable to retrieve topology component health states. This may be
because of the admin component is not up and running".
- Exception calling "Activate" with
"0" argument(s): "Topology does not contain any components of
type Microsoft.Office.Server.Search.Administration.Topology.AdminComponent.
- Crawling Stuck with Starting or Stopping Mode.
Corrective Action should be considered:-
1. Checked
User have Farm Administrator Permission or not.
2. Checked
User have Managed Account or not.
3. Checked
the User have Local Administrator Privileges or not.
4. Checked
User have owner permission in all Database as created during search topology.
5. Checked
extra space in Environment variable i.e. PSModulePath – No space exists.
6. Checked
the Managed Metadata Service and user permission
7. Checked
the Health and Usage Services and user permission
8. Re-configured
the Health and Usage Services.
9. Re-start
the Application Server.
10. Window
Service in Application Server or WFE is running fine with
same account & Re-started the service in all server also.
Window Services :- SharePoint Search Host Controller & SharePoint Server Search 15
11. Same
user having Farm Administrator level permission and having managed account
also.
12. All
DB are also up and online.
But we need correctly check the Noderunner.exe.config - Might be someone has changed the value which may create issue - This was the exactly the case for one of project:-
Resolution :-
1. noderunner.exe.config file
located at “C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0” had
a wrong value i.e. <nodeRunnerSettings memoryLimitMegabytes="100" /> It should be <nodeRunnerSettings
memoryLimitMegabytes="0" /> .
Location of
noderunner.exe.config
Noderunner.exe.config
file (Should be)
In the nodeRunnerSettings node edit the
attribute “memoryLimitMegabytes”. The initial value is set to “0”, what means
that there is no limit.
Happy Coding..