Cannot search anything in xFlow interface, Suggested Experts / solutions give errors like "Server Unavailable Please contact administrator"

Document ID : KB000008904
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

xFlow Analyst users are not able to search anything in xFlow interface. When you click on the Suggested Experts or Solutions, you get an error like like "Server Unavailable Please contact administrator"

2.jpg

3.jpg

 

Environment:
Service Desk xFlow Server
Cause:

CA xFlow Server's Search MicroService is not able to reach the CA Service Management Search Server URL.

 

Check C:\Program Files\CA\xFlow\APPS\logs\SearchMS.log, notice errors like:

INFO - 2017-12-03 22:29:47 [es.SearchHelper] - Error while connecting with ES URL : [http://SearchServerHostName:9012/sdm_index/cr/_search], so will try with another url... 
ERROR - 2017-12-03 22:29:47 [es.SearchHelper] - Exception while getting next URL... 
com.ca.casm.exception.CasmBaseException: None of the provided Elastic Search Servers are reachable! 
at es.SearchHelper.getNextSuccessful(SearchHelper.java:640) 
at es.SearchHelper.lambda$executeESQueryAsync$18(SearchHelper.java:583) 
at java.util.concurrent.CompletableFuture.uniHandle(Unknown Source) 
at java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown Source) 
at java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) 
ERROR - 2017-12-03 22:29:47 [controllers.Search] - Error while getting results from ElasticSearch Server 
java.util.concurrent.CompletionException: java.lang.NullPointerException: scheme 
at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) 
at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) 
at java.util.concurrent.CompletableFuture.uniHandle(Unknown Source) 
at java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown Source) 
at java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) 
Caused by: java.lang.NullPointerException: scheme 
at org.asynchttpclient.util.Assertions.assertNotNull(Assertions.java:23) 
at org.asynchttpclient.uri.Uri.<init>(Uri.java:63) 
at org.asynchttpclient.uri.Uri.create(Uri.java:38) 
at org.asynchttpclient.uri.Uri.create(Uri.java:31) 
at org.asynchttpclient.RequestBuilderBase.setUrl(RequestBuilderBase.java:150) 


Verify if CA Service Management Search Server service is running on SearchServerHostName.  One way to ensure if the default Search Server ports are available is to look for ports 9300 and 9012.

On Windows, you could do:   netstat -ano|findstr /i 9012      or    9300

 

In the above scenario, 9012 showed nothing,  but 9300 was in listen mode.  9300 is Search's internal port, while 9012 is the HTTP port to which xFlow connects to:

Check: C:\Program Files\CA\SC\SearchServer\elasticsearch-2.1.1\logs\ca_es_cluster.log and it had: 
[2017-12-03 00:14:40,362][INFO ][node ] [localhost] starting ... 
[2017-12-03 00:14:40,785][INFO ][transport ] [localhost] publish_address {localhost/127.0.0.1:9300}, bound_addresses {[::]:9300} 
[2017-12-03 00:14:40,797][INFO ][discovery ] [localhost] ca_es_cluster/Bh4ptMFFQYmTjgHpTvKgyA 
[2017-12-03 00:14:43,840][INFO ][cluster.service ] [localhost] new_master {localhost}{Bh4ptMFFQYmTjgHpTvKgyA}{127.0.0.1}{localhost/127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received) 
[2017-12-03 00:14:43,873][INFO ][http ] [localhost] publish_address {localhost/127.0.0.1:7200}, bound_addresses {[::]:7200} 
[2017-12-03 00:14:43,874][INFO ][node ] [localhost] started 


the HTTP port above listed is 7200 as indicated in the above lines. That's different compared to what SDM was trying which was 9012 in the previous SearchMS.log (Error while connecting with ES URL : [http://SearchServerHostName:9012/sdm_index/cr/_search], so will try with another url... )

 

 

Resolution:

We have two options to resolve the issue.  Either change the Service Desk's reference to use 7200 port for Search Server, OR change the Search Server port from 7200 to what SDM was looking for (9012)

Option #1

1) Login to Service Desk Manager UI

2) Administration tab -> xFlow Analyst Interface -> Search Servers

3) Identify the server record in question, edit and change the port number to 7200 (because CA Service Management Search Server was listening on 7200 in this case)

4) Restart CA xFlow Analyst Interface  Service

 

Option #2:

1) Stop Search Server via Control Panel -> CA Service Management Search Server  service

2) Backup C:\Program Files\CA\SC\CASearchServer\elasticsearch-2.1.1\config\elasticsearch.yml file 

3) Edit the file and look for 
http.port 


4) Change the existing value there (in this case it was 7200) to 9012.

5) Save the file and start Search Server

 

Retest searching for data with in xFlow now.