You can use multiple nodes, this is the whole point of Ignite.

1. I suggest testing something on a single node so that you can use the
debugger and hit breakpoints. When it works, move to multi-node setup.
2. When running multiple nodes, ensure that the stream receiver is deployed
on all nodes (see
https://ignite.apache.org/docs/latest/net-specific/net-standalone-nodes#load-user-assemblies
)
3. When something fails, check the logs on all nodes for exceptions.

On Wed, Jun 1, 2022 at 10:34 AM Charlin S <charli...@hotelhub.com> wrote:

> Hi,
> I am using 3(2 server and 1 client) node cluster, why can we not run this
> with multiple nodes?.
> The First option is also not working now. It was working and now it's
> failing.
>
> Regards,
> Charlin
>
>
>
>
> On Wed, 1 Jun 2022 at 11:28, Pavel Tupitsyn <ptupit...@apache.org> wrote:
>
>> You certainly have other nodes running somewhere, and they get picked up
>> when you run examples, yielding incorrect results.
>> Try adding this right after Ignition.Start:
>>
>> var nodeCount = ignite.GetCluster().GetNodes().Count;
>> if (nodeCount > 1)
>> {
>>     throw new Exception("Unexpected node count: " + nodeCount);
>> }
>>
>>
>> On Tue, May 31, 2022 at 5:30 PM Charlin S <charli...@hotelhub.com> wrote:
>>
>>> Hi,
>>> Thanks for the reply,
>>> I have tried the same code and got an error
>>> message org.apache.ignite.IgniteCheckedException: Failed to finish
>>> operation (too many remaps): 32
>>> tried in Ignite 2.10.0 and 2.13.0 both are having same problem.
>>>
>>> Regards,
>>> Charlin
>>>
>>>
>>>
>>> On Tue, 31 May 2022 at 16:27, Pavel Tupitsyn <ptupit...@apache.org>
>>> wrote:
>>>
>>>> If you run multiple nodes in the cluster, the receiver may be invoked
>>>> on another node, so the breakpoint is not reached.
>>>> I've simplified yor code a bit and it works as expected:
>>>> https://gist.github.com/ptupitsyn/67c984e8ea44da6e2a42efdfc38df53c
>>>>
>>>> On Mon, May 30, 2022 at 11:22 AM Charlin S <charli...@hotelhub.com>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>> Thanks for the reply,
>>>>> First option working for me by creating a cache instance with expiry
>>>>> policy just before datastreamer.
>>>>> My curiosity with datastreamer and receiver also.
>>>>>
>>>>> no build error with new changes, but application not working as
>>>>> expected. added breakpoint in MyStreamReceiver but not reached
>>>>>
>>>>> using (var cacheDataStreamer =
>>>>> DynamicIgniteInstance.Instance.InstanceObject.GetDataStreamer<string,
>>>>> T>(cacheName))
>>>>>                 {
>>>>>                     cacheDataStreamer.AllowOverwrite = true;
>>>>>                     cacheDataStreamer.Receiver = new
>>>>> MyStreamReceiver<T>();
>>>>>                     foreach (var item in data)
>>>>>                     {
>>>>>                         string cacheKey = item.Key;
>>>>>                         int index = cacheKey.IndexOf("Model:");
>>>>>                         if (index > 0)
>>>>>                             cacheKey = cacheKey.Insert(index +
>>>>> "Model:".Length, CacheKeyDefault);
>>>>>                         else
>>>>>                             cacheKey = CacheKeyDefault + cacheKey;
>>>>>                          cacheDataStreamer.AddData(cacheName + ":" +
>>>>> cacheKey, item.Value);
>>>>>
>>>>>
>>>>>                     }
>>>>>                     cacheDataStreamer.Flush();
>>>>>                 }
>>>>>
>>>>> public  class MyStreamReceiver<T> : IStreamReceiver<string, T>
>>>>>     {
>>>>>         public void Receive(ICache<string, T> cache,
>>>>> ICollection<ICacheEntry<string, T>> entries)
>>>>>         {
>>>>>             foreach (var entry in entries)
>>>>>             {
>>>>>                 cache.WithExpiryPolicy(new
>>>>> ExpiryPolicy(TimeSpan.FromSeconds(600), null, null)).Put(entry.Key,
>>>>> entry.Value);
>>>>>             }
>>>>>         }
>>>>>     }
>>>>>
>>>>> Regards,
>>>>> Charlin
>>>>>
>>>>>
>>>>> On Thu, 26 May 2022 at 20:17, Pavel Tupitsyn <ptupit...@apache.org>
>>>>> wrote:
>>>>>
>>>>>> 1. You can set expiry policy in CacheConfiguration so that entries
>>>>>> inserted with DataStreamer are also affected,
>>>>>> see
>>>>>> https://stackoverflow.com/questions/63463142/apache-ignite-net-getdatastreamer-withexpirypolicy
>>>>>>
>>>>>> 2. Compiler error says it all. Generic arguments don't match.
>>>>>> Try changing
>>>>>> MyStreamReceiver : IStreamReceiver<string, object>
>>>>>> to
>>>>>> MyStreamReceiver<T> : IStreamReceiver<string, T>
>>>>>>
>>>>>> On Thu, May 26, 2022 at 5:24 PM Charlin S <charli...@hotelhub.com>
>>>>>> wrote:
>>>>>>
>>>>>>> We have a requirement to set data to expire after some time.
>>>>>>> I set the WithExpiryPolicy for cache instance, but the data added by
>>>>>>> GetDataStreamer does not expire, due to it returning a new instance with
>>>>>>> default policies.
>>>>>>> So I am trying to use IStreamReceiver but not able to build the
>>>>>>> solution.
>>>>>>>
>>>>>>> IStreamReceiver  Code:
>>>>>>>  public  class MyStreamReceiver : IStreamReceiver<string, object>
>>>>>>>     {
>>>>>>>         public void Receive(ICache<string, object> cache,
>>>>>>> ICollection<ICacheEntry<string, object>> entries)
>>>>>>>         {
>>>>>>>             foreach (var entry in entries)
>>>>>>>             {
>>>>>>>                 cache.WithExpiryPolicy(new
>>>>>>> ExpiryPolicy(TimeSpan.FromSeconds(600), null, null)).Put(entry.Key,
>>>>>>> entry.Value);
>>>>>>>             }
>>>>>>>         }
>>>>>>>     }
>>>>>>>
>>>>>>> Datastreamer code error
>>>>>>> [image: image.png]
>>>>>>>
>>>>>>> How to implement IStreamReceiver. Please help me on this.
>>>>>>> Regards,
>>>>>>> Charlin
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>

Reply via email to