0

I am working on Xamarin Android using Nest 5.0.1 in NetStandard project.

Search api are called from a portable project.

When calling any Nest Search api via Unit test. It is working fine. But when the same api via Droid project getting below error.

var connectionPool = new SingleNodeConnectionPool( new Uri( "http://localhost:9200" ) );
SearchSettings = new ConnectionSettings( connectionPool, new HttpConnection()).DefaultIndex( "test-index" );
SearchClient = new ElasticClient( SearchSettings );

Can anyone help, what is missing. I have ensured that System.Net.Http is present in both Portable and Droid project.

 # Audit exception in step 1 BadRequest:
    System.NotImplementedException: The method or operation is not implemented.
      at System.Net.Http.HttpClientHandler.set_MaxConnectionsPerServer (System.Int32 value) [0x00000] in /Users/builder/data/lanes/4009/72366f70/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:427 
      at Elasticsearch.Net.HttpConnection.CreateHttpClientHandler (Elasticsearch.Net.RequestData requestData) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:108 
      at Elasticsearch.Net.HttpConnection+<>c__DisplayClass2_0.<GetClient>b__0 (System.Int32 h) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:47 
      at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00037] in /Users/builder/data/lanes/4009/72366f70/source/mono/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs:1049 
      at Elasticsearch.Net.HttpConnection.GetClient (Elasticsearch.Net.RequestData requestData) [0x00042] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:45 
      at Elasticsearch.Net.HttpConnection.Request[TReturn] (Elasticsearch.Net.RequestData requestData) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:64 
      at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn] (Elasticsearch.Net.RequestData requestData) [0x00023] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:400 
    # Inner Exception: The method or operation is not implemented.
    System.NotImplementedException: The method or operation is not implemented.
      at System.Net.Http.HttpClientHandler.set_MaxConnectionsPerServer (System.Int32 value) [0x00000] in /Users/builder/data/lanes/4009/72366f70/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:427 
      at Elasticsearch.Net.HttpConnection.CreateHttpClientHandler (Elasticsearch.Net.RequestData requestData) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:108 
      at Elasticsearch.Net.HttpConnection+<>c__DisplayClass2_0.<GetClient>b__0 (System.Int32 h) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:47 
      at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00037] in /Users/builder/data/lanes/4009/72366f70/source/mono/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs:1049 
      at Elasticsearch.Net.HttpConnection.GetClient (Elasticsearch.Net.RequestData requestData) [0x00042] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:45 
      at Elasticsearch.Net.HttpConnection.Request[TReturn] (Elasticsearch.Net.RequestData requestData) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:64 
      at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn] (Elasticsearch.Net.RequestData requestData) [0x00023] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:400 
    # Exception:
    Elasticsearch.Net.UnexpectedElasticsearchClientException: The method or operation is not implemented. ---> System.NotImplementedException: The method or operation is not implemented.
      at System.Net.Http.HttpClientHandler.set_MaxConnectionsPerServer (System.Int32 value) [0x00000] in /Users/builder/data/lanes/4009/72366f70/source/mono/mcs/class/System.Net.Http/System.Net.Http/HttpClientHandler.cs:427 
      at Elasticsearch.Net.HttpConnection.CreateHttpClientHandler (Elasticsearch.Net.RequestData requestData) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:108 
      at Elasticsearch.Net.HttpConnection+<>c__DisplayClass2_0.<GetClient>b__0 (System.Int32 h) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:47 
      at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00037] in /Users/builder/data/lanes/4009/72366f70/source/mono/mcs/class/referencesource/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs:1049 
      at Elasticsearch.Net.HttpConnection.GetClient (Elasticsearch.Net.RequestData requestData) [0x00042] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:45 
      at Elasticsearch.Net.HttpConnection.Request[TReturn] (Elasticsearch.Net.RequestData requestData) [0x00000] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:64 
      at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn] (Elasticsearch.Net.RequestData requestData) [0x00023] in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:400 
       --- End of inner exception stack trace ---
Irshad Ali
  • 1,153
  • 1
  • 13
  • 39
  • Can you please open an issue for this: https://github.com/elastic/elasticsearch-net/issues. We'll need more detail on the issue, but it looks like the `HttpClientHandler` implementation in the Droid project has not implemented `MaxConnectionsPerServer` property – Russ Cam Jan 27 '17 at 21:49

1 Answers1

1

This was a bug, that is resolved by the ElasticSearch team.

One thing, i had to do is .ConnectionLimit(-1) on ConnectionSettings.

for reference : https://github.com/elastic/elasticsearch-net/issues/2590

Irshad Ali
  • 1,153
  • 1
  • 13
  • 39