0

I'm using Apache Ignite on Azure Kubernetes service. I need to get the registered devices list from Ignite in lately. But the scan query is not working.

Here is my device object;

public class Device
{
   [Required]
   public string Id { get; set; }
   public bool IsActive { get; set; }
   public DateTime FirstRegisterDateTime { get; set; }
   public Guid FirstRegisterUserId { get; set; }
}

Filter class is like below;

class RegisterDateFilter : ICacheEntryFilter<string, Device>
{
    public DateTime LastSyncDateTime { get; set; }
    public bool Invoke(ICacheEntry<string, Device> entry)
    {
        return entry.Value.FirstRegisterDateTime >= LastSyncDateTime;
    }
}

and finally when I tried to call Scan Query in my method like below;

DateTime lastSyncDateTime = engineManager.GetLastSuccededJobTime(JobConstants.DEVICE_JOB);
using (var cursor = cacheManager.DeviceCache.Query(new ScanQuery<string, Device>(new RegisterDateFilter { LastSyncDateTime = lastSyncDateTime })))
{
    foreach (var entry in cursor)
    {
        //logic
    }
}

When the Scan query is executed, it gives the below error.

Platforms are not available [nodeId=*****-c534-48ae-a5a8-ceb2fff52c72] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I also share the apache official sample. I didn't find the what is the problem?

enter image description here

f_puras
  • 2,521
  • 4
  • 33
  • 38
OguzKaanAkyalcin
  • 621
  • 2
  • 8
  • 25

1 Answers1

0

Looks like your server nodes are Java-only, started with ignite.sh. Please make sure that all server nodes are started from .NET so that .NET-based filters can be evaluated.

https://ignite.apache.org/docs/latest/net-specific/net-platform-interoperability#mixed-platform-clusters

Pavel Tupitsyn
  • 8,393
  • 3
  • 22
  • 44