I have a SolrJ app that talks to four Solr servers. For each server, it creates 14 HttpSolrServer objects, each for a different core.

Once it's running, the app knows how to deal with errors, especially those caused when the server goes down.

The problem is at program startup -- when 'new HttpSolrServer(url)' is called, it goes and makes sure that the server is up and responsive. If any of those 56 object creation calls fails, then my app won't even start.

Due to the design of my app, a server being down at startup is not really a problem. When the program tries to update an index that's down, that fact will be noticed. If the situation continues for long enough, an alarm email is generated, but the program will continue to operate correctly on the servers that are still up.

As far as I can tell, there is no built-in way to bypass the health check at object creation. Is there an alternate way of initializing these objects that would bypass this?

Someone on the IRC channel brought up the possibility of initializing the HttpClient myself instead of letting the Solr object do it. If the health check is actually in HttpClient, this might work, if there's a way to initialize the HttpClient without a health check. I've actually been wondering if it makes any sense to re-use a single HttpClient object across all 56 server objects.

Should I file a Jira for an alternate SolrServer constructor that doesn't perform a healthcheck?

Thanks,
Shawn

Reply via email to