This blog post will demonstrate some challenges I experienced while trying to set up Search Service Application (SA) in my SharePoint 2013 On Premises environment. My environment was build on the premise of Infrastructure As A Service (IAAS) using Windows Azure as my Hosting Environment. The trouble I faced was this: After provisioning my SharePoint Search SA, it would work i.e. index, crawl, return search results etc. up until I Rebooted and/or Shutdown/Restarted the server that Search Service was started on. What would happen is the SharePoint Search Host Controller in the Services Applet will not start although set to Automatic Start up.
For simplicity sake we will just focus on the SharePoint On Premises part of my environment. I have a WFE that just serves up Web Applications all but for Central Admin and a Application Server that does everything else. These servers live in Windows Azure. I created the following items in furtherance of that environment
- Create an Azure Affinity Group
- Create a Azure Storage Account
- Register a DNS Server in Azure
- Create an Azure Virtual Network
- Build out my VMs
I have the following VMs created
- ADDS Server
- SQL Server
- SharePoint Application Server
- SharePoint Web Front End Server
- DirSync Server
- Reverse Proxy Server
- ADFS server
So, as I a get ready my Hybrid Session at TechEd Na in Houston in a few weeks, I am squaring away Hybrid Search. I am specifically configuring a Two-Way (Bi-Directional) Search experience. As this suggests, basically a federated user will have the ability to:
- Log on On-Premises and — Search for and return result sets from both On Premises and from SharePoint Online
- Log on SharePoint Online — Search for and return result sets from both SharePoint Online and SharePoint 2013 On Premises
Although this is essentially saying the same thing, YOUR MUST REMEMBER THIS, when you talk about Hybrid you are speaking in the “Context” of SharePoint On Premises Environment
- One Way Outbound Hybrid Search: Display Hybrid search results “IN” SharePoint 2013 On Premises “FROM” SharePoint Online
- One Way Inbound Hybrid Search: Display Hybrid search results “IN” SharePoint Online “FROM” SharePoint 2013 On Premises
- Two-Way (Bidirectional) : Both One Way Outbound & One Way Inbound
SharePoint Online by default will do Continuous Crawl in an already provisioned SharePoint Search for your Tennant. So what I needed to do i create a Search SA in my On Premises environment to equally Crawl and serve up content based on Search Queries.
The Observed Problem
Whenever the server where my Search Service Instance was started and provisioned on restarted for any reason, and I go back into Central Admin and clicked on the Search SA, I would not see my topology anymore. Previously it would look like
but after reboot you you loose the Search Application Topology and you get a text reading — “Unable to retrieve topology component health states. This may be because the admin component is not up and running”
If you go to the Services Applet you will see —
Without this service, you are dead in the water.
The Problem Explained
So you will see many, many explanation that seems plausible when other folks get this error, in fact, this could have very well been my error too with the exception that even AFTER looking over or implementing the task outlined in many blog posts, i still had the same problem. Here is a list of some of the things i tried:
- I’ve tried throwing more CPU, more RAM
- added Search Account to Local admin
- added Search Account to sysAdmin role in SQL
- I given Full Permission to the WSS_WPG group to the folder SP Applications folder
After tweeting out my problem, I got hits back from Todd Klidnt, Wictor Wilen & Wes MacDonald and in tweeting this out with these guys it seems that it had to do with me how Azure De Allocates IP Addresses in Azure and what happens when the Servers are coming back online looking for things they assume to be there.
The Link that Wes MacDonald sent to me is here http://msdn.microsoft.com/en-us/library/azure/dn630228.aspx
So, I went ahead and set all my IP addresses to Static IPs and of course had to re provision my Search App one more time. but so far, after reboots “only” not a complete shutdown, it seems to be working.
Some Helpful Links
In doing all this I found some great resources for Powershell which you will need when working with Azure