1

シン クライアント データ ストリーマー (.NET apache ignite) を使用して一部のデータを削除しようとしましたが、例外が発生しました。

AllowOverwrite が false の場合、DataStreamer はデータを削除できません。

私の問題は、AllowOverwrite を true に変更しようとすると、尊重されないことです。

using Apache.Ignite.Core;
using Apache.Ignite.Core.Client;

IgniteClientConfiguration _configuration = new()
{
    Endpoints = new[] { "127.0.0.1:10800" }
};

using (var client = Ignition.StartClient(_configuration))
{
    var cache = client.GetOrCreateCache<int, string>("myCache");
    using (var dataStreamer = client.GetDataStreamer<int, string>("myCache"))
    {
        Console.WriteLine($"AllowOverwrite default value: {dataStreamer.Options.AllowOverwrite}");

        // Set AllowOverwrite to true
        dataStreamer.Options.AllowOverwrite = true;
        Console.WriteLine($"AllowOverwrite: {dataStreamer.Options.AllowOverwrite}"); // Set not repected

        dataStreamer.Remove(1);
    }
}

/*
    Results in:
    AllowOverwrite default value: False
    AllowOverwrite: False
    Unhandled exception. Apache.Ignite.Core.Client.IgniteClientException: DataStreamer 
    can't remove data when AllowOverwrite is false.
       at Apache.Ignite.Core.Impl.Client.Datastream.DataStreamerClient`2.Remove(TK key)
*/

ノート:

  • シン クライアントの代わりにシック クライアントを使用すると、期待どおりに動作します (ただし、私の場合は望ましくありません)。
  • サーバーノードの起動時にこのオプションを有効にするための関連構成が見つかりませんでした

ここで何が欠けているかについて何かアドバイスはありますか? ありがとうございました

4

1 に答える 1