I'm using the C# client on Ignite 2.8.0.

I have had an issue with thread deadlocking where the public thread pool is
saturated and then causes a deadlock when a message arrives from another
node using IMessageListener, eg

  public class MyListener : IMessageListener<T>
  {
    public bool Invoke(Guid nodeId, T message)
    {
      // Process it

      return true;
    }
 }

Ignite 2.8.0 now supports custom thread pools in the C# client :)

I can see how to create a custom thread pool in the Ignite configuration,
like this:

            ExecutorConfiguration = new List<ExecutorConfiguration>
            {
              new ExecutorConfiguration
              {
                Name = "MyPool"
                Size = 8
              }
            }

And use it like this:

           ignite.Compute().WithExecutor("MyPool").Run() etc

However, I am not sure how to ask Ignite to run the Invoke() from the
MessageListener on that custom thread pool, rather than the public thread
pool.

Suggestions?

Thanks,
Raymond.

Reply via email to