I am trying out the Data Streaming feature of Ignite (see https://ignite.apache.org/docs/latest/data-streaming) but even when I am running the very basic example shown on the documentation page I get the following exception:
ApacheIgniteExamplesDemo.DemoWorker[0]
Apache.Ignite.Core.Client.IgniteClientException: Streamer is closed with error, check inner exception for details.
---> System.AggregateException: One or more errors occurred. (One or more errors occurred. (Invalid request op code: 8000))
---> System.AggregateException: One or more errors occurred. (Invalid request op code: 8000)
---> Apache.Ignite.Core.Client.IgniteClientException: Invalid request op code: 8000
at Apache.Ignite.Core.Impl.Client.ClientSocket.DecodeResponse[T](BinaryHeapStream stream, Func`2 readFunc, Func`3 errorFunc)
at Apache.Ignite.Core.Impl.Client.ClientSocket.<>c__DisplayClass33_0`1.<DoOutInOpAsync>b__0(Task`1 responseTask)
at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__271_0(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) [StatusCode=InvalidOpCode]
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at Apache.Ignite.Core.Impl.Client.Datastream.DataStreamerClient`2.ThrowIfClosed()
at Apache.Ignite.Core.Impl.Client.Datastream.DataStreamerClient`2.Add(DataStreamerClientEntry`2 entry)
at Apache.Ignite.Core.Impl.Client.Datastream.DataStreamerClient`2.Add(TK key, TV val)
at ApacheIgniteExamplesDemo.DemoWorker.DataStreamingExample() in C:\demos\ApacheIgniteDemo\DemoWorker.cs:line 262 [StatusCode=Fail]
I have not been able to find out anything about why the streamer is closed with an error and what "Invalid request op code: 8000" indicates. Any help or suggestion on what might be the problem would be highly appreciated.
I run the following code:
//setting up cache
var cache = _ignite.CreateCache<int, string>(new CacheClientConfiguration
{
Name = "cache",
QueryEntities = new[]
{
new QueryEntity(
typeof(int),
typeof(string))
{
TableName = "table",
}
},
SqlSchema = "PUBLIC",
CacheMode = CacheMode.Partitioned
});
//running streamer
using(var streamer = _ignite.GetDataStreamer<int, string>(cache.Name))
{
for (int i = 0; i < 10000; i++)
streamer.Add(i, i.ToString());
}
Ignite is running in a docker container with default configuration.
The error message indicates that the feature is not supported by the server node. Thin client data streamer is available since Ignite 2.11 - please make sure to use that or a later version.