Still can't run, sorry. It has hardcoded directories from your machine
(IgniteSettings.IGNITE_HOME, IgniteSettings.WorkDirectory - commented them
out), and also GlobalVariables.IgniteSettings.ConfigurationPath:

> Spring XML configuration path is invalid:
D:\NGSourceCode\IgniteConfig\Labs/common_dynamiccache_client_config.xml

Please make sure the zip file has everything required to run the
application on any machine.

On Mon, Sep 19, 2022 at 5:07 PM Charlin S <[email protected]> wrote:

> Hi,
> I have attached here.
> Regards,
> Charlin
>
>
> On Mon, 19 Sept 2022 at 19:00, Pavel Tupitsyn <[email protected]>
> wrote:
>
>> I get an exception when trying to run the code:
>>
>> Unhandled exception. System.NullReferenceException: Object reference not
>> set to an instance of an object.
>>    at ConsoleApp4.IgniteInstance..ctor() in
>> /home/pavel/Downloads/ConsoleApp4/ConsoleApp4/ConsoleApp4/IgniteInstance.cs:line
>> 47
>>    at ConsoleApp4.IgniteInstance.get_Instance() in
>> /home/pavel/Downloads/ConsoleApp4/ConsoleApp4/ConsoleApp4/IgniteInstance.cs:line
>> 33
>>    at ConsoleApp4.UnitOfWork..ctor() in
>> /home/pavel/Downloads/ConsoleApp4/ConsoleApp4/ConsoleApp4/UnitOfWork.cs:line
>> 15
>>    at ConsoleApp4.Program.Main(String[] args) in
>> /home/pavel/Downloads/ConsoleApp4/ConsoleApp4/ConsoleApp4/Program.cs:line 12
>>
>> On Mon, Sep 19, 2022 at 3:04 PM Charlin S <[email protected]> wrote:
>>
>>> Hi,
>>> Cache EexpiryPolicy is 60 minutes. but cache key failing in between and
>>> return data after some time so its not due to expiry policy.
>>> I have prepared a separate solution and attached it here. I am sharing a
>>> cache data reading time screenshot for your reference .
>>> [image: image.png]
>>> Regards,
>>> Charlin
>>>
>>>
>>>
>>>
>>>
>>> On Mon, 19 Sept 2022 at 11:00, Pavel Tupitsyn <[email protected]>
>>> wrote:
>>>
>>>> The code you provided above uses ExpiryPolicy. It might be the reason
>>>> for TryGet to return false - cache entry expires.
>>>> To provide a definitive answer we need a project that runs and
>>>> demonstrates the problem.
>>>>
>>>> On Fri, Sep 16, 2022 at 5:12 PM Charlin S <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>> sorry for inconvenience. It's 90% actual code only. I have changed
>>>>> cache name and grid name as per policy. I have to prepare a separate
>>>>> solution and provide you if required.
>>>>>
>>>>> Regards,
>>>>> Charlin
>>>>>
>>>>>
>>>>>
>>>>> On Fri, 16 Sept 2022 at 19:11, Pavel Tupitsyn <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> It does not have to be your actual code, just something that
>>>>>> demonstrates the problem
>>>>>>
>>>>>> On Fri, Sep 16, 2022 at 4:40 PM Pavel Tupitsyn <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Can you please share a complete project that I can run and see
>>>>>>> the issue?
>>>>>>>
>>>>>>> On Fri, Sep 16, 2022 at 4:30 PM Charlin S <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> Sorry I am not able to share a complete solution. bean xml
>>>>>>>> attached  and code snippet in below
>>>>>>>> IgniteConfiguration igniteGridIg = new IgniteConfiguration();
>>>>>>>>             igniteGridIg.AutoGenerateIgniteInstanceName = true;
>>>>>>>>             if
>>>>>>>> (!string.IsNullOrEmpty(GlobalVariables.IgniteSettings.IGNITE_HOME))
>>>>>>>>             {
>>>>>>>>                 igniteGridIg.IgniteHome =
>>>>>>>> GlobalVariables.IgniteSettings.IGNITE_HOME;
>>>>>>>>             }
>>>>>>>>             var gridDetails =
>>>>>>>> GlobalVariables.IgniteSettings.GridDetails.Where(gd =>
>>>>>>>> gd.GridType.Equals("DynamicGrid",
>>>>>>>> StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
>>>>>>>>             //setting ignite working directory if not ignite will
>>>>>>>> run with default work directory
>>>>>>>>             if
>>>>>>>> (!string.IsNullOrEmpty(GlobalVariables.IgniteSettings.WorkDirectory))
>>>>>>>>             {
>>>>>>>>                 igniteGridIg.WorkDirectory =
>>>>>>>> Path.Combine(GlobalVariables.IgniteSettings.WorkDirectory,
>>>>>>>> gridDetails.CacheType);
>>>>>>>>             }
>>>>>>>>             if (null != gridDetails)
>>>>>>>>             {
>>>>>>>>                 GridName = gridDetails.GridName;
>>>>>>>>                 igniteGridIg.SpringConfigUrl =
>>>>>>>> Path.Combine(GlobalVariables.IgniteSettings.ConfigurationPath,
>>>>>>>> gridDetails.SpringXMLFileName);
>>>>>>>>                 igniteGridIg.ConsistentId =
>>>>>>>> Guid.NewGuid().ToString().ToUpper();
>>>>>>>>                 ICollection<string> lstJvmOptions = null;
>>>>>>>>
>>>>>>>> //"IgniteJVMOption":
>>>>>>>> "-XX:+DisableExplicitGC,-XX:+UseG1GC,-Xms1g,-Xmx2g"
>>>>>>>>                 if
>>>>>>>> (string.IsNullOrEmpty(gridDetails.IgniteJVMOption))
>>>>>>>>                 {
>>>>>>>>                     lstJvmOptions =
>>>>>>>> GlobalVariables.IgniteSettings.IgniteJVMOptionDefault.Split(',').Where(x
>>>>>>>>  =>
>>>>>>>> !string.IsNullOrWhiteSpace(x)).ToList();
>>>>>>>>                 }
>>>>>>>>                 else
>>>>>>>>                     lstJvmOptions =
>>>>>>>> gridDetails.IgniteJVMOption.Split(',').Where(x =>
>>>>>>>> !string.IsNullOrWhiteSpace(x)).ToList();
>>>>>>>>
>>>>>>>>                 if (lstJvmOptions.Any())
>>>>>>>>                     igniteGridIg.JvmOptions = lstJvmOptions;
>>>>>>>> int RetryCount = 0;
>>>>>>>>                 while (InstanceObject == null)
>>>>>>>>                 {
>>>>>>>>                     try
>>>>>>>>                     {
>>>>>>>>                         RetryCount++;
>>>>>>>>                         //Try to start Ignite
>>>>>>>>                         if
>>>>>>>> (!String.IsNullOrEmpty(ApplicationSettingKeys.Get<string>("IgniteInstanceRetryLimit"))
>>>>>>>> && RetryCount >
>>>>>>>> (ApplicationSettingKeys.Get<int>("IgniteInstanceRetryLimit")))
>>>>>>>>                         {
>>>>>>>>                             break;
>>>>>>>>                         }
>>>>>>>>                         //Try to start Ignite
>>>>>>>>                         if
>>>>>>>> (String.IsNullOrEmpty(ApplicationSettingKeys.Get<string>("IgniteDynamicCacheGrid")))
>>>>>>>>                             InstanceObject =
>>>>>>>> Ignition.Start(igniteGridIg);
>>>>>>>>                         else
>>>>>>>>                             InstanceObject =
>>>>>>>> Ignition.TryGetIgnite(ApplicationSettingKeys.Get<string>("IgniteDynamicCacheGrid"))
>>>>>>>> ?? Ignition.Start(igniteGridIg);
>>>>>>>>                     }
>>>>>>>>                     catch (Exception ex) //If failing to start
>>>>>>>> Ignite, wait a bit for the previous AppDomain to stop the Ignite 
>>>>>>>> running
>>>>>>>> instance...
>>>>>>>>                     {
>>>>>>>>                         logContextInfo.ErrorLogger(ex);
>>>>>>>>
>>>>>>>>                     }
>>>>>>>>                 }
>>>>>>>>
>>>>>>>>  public ICache<string, testModel> testModelICache { get; set; }
>>>>>>>>
>>>>>>>> using (new Log4NetTimeLogHelper(logContextInfo, "testModelModel",
>>>>>>>> "testModelModel"))
>>>>>>>>                 {
>>>>>>>>
>>>>>>>>                         testModelICache = testModelICache ??
>>>>>>>> InstanceObject.GetCache<string, testModelModel>("testModelModel")
>>>>>>>> .WithExpiryPolicy(new ExpiryPolicy(
>>>>>>>> TimeSpan.FromMinutes(GlobalVariables.testModelExpiryTime),
>>>>>>>> TimeSpan.FromMinutes(GlobalVariables.testModelExpiryTime),
>>>>>>>> TimeSpan.FromMinutes(GlobalVariables.testModelExpiryTime)
>>>>>>>> ));
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> public CacheServiceResponse GetCacheById(string Key)
>>>>>>>> {
>>>>>>>> CacheServiceResponse response = new CacheServiceResponse();
>>>>>>>>             var model = (T)Activator.CreateInstance(typeof(T));
>>>>>>>>             try
>>>>>>>>             {
>>>>>>>>
>>>>>>>>                     IgniteCache.TryGet(Key, out var value);
>>>>>>>>                     var k = IgniteCache.TryGetAsync(Key);
>>>>>>>>                     if (null != value)
>>>>>>>>                     {
>>>>>>>>                         model = (T)value;
>>>>>>>>                         response.SingleObject = model;
>>>>>>>>                         response.Status = true;
>>>>>>>>                         response.StatusCode =
>>>>>>>> System.Net.HttpStatusCode.OK;
>>>>>>>>                     }
>>>>>>>>                     else
>>>>>>>>                     {
>>>>>>>>                         response.Status = false;
>>>>>>>>                         response.Message = "Given key " + Key + "
>>>>>>>> not present in the cache.";
>>>>>>>>                         response.StatusCode =
>>>>>>>> System.Net.HttpStatusCode.NoContent;
>>>>>>>>                     }
>>>>>>>>
>>>>>>>>             }cache(exception ex)
>>>>>>>> {
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Charlin
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, 16 Sept 2022 at 18:22, Pavel Tupitsyn <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Can you share a reproducer?
>>>>>>>>>
>>>>>>>>> On Fri, Sep 16, 2022 at 3:13 PM Charlin S <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>> Data loss is not possible, because some other time I am able to
>>>>>>>>>> read data with the same key.
>>>>>>>>>>
>>>>>>>>>> FYI: data update not in our workflow(Please ignore my previous
>>>>>>>>>> mail statement it is possible to update the cache by another
>>>>>>>>>> process/workflow). Always data read only once cache inserted by
>>>>>>>>>> key.
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>> Charlin
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, 16 Sept 2022 at 17:21, Pavel Tupitsyn <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Ok, so the issue is that the key is not present in the cache,
>>>>>>>>>>> and this is not expected.
>>>>>>>>>>> Data loss is possible if one of Ignite nodes goes down, and
>>>>>>>>>>> backups [1] are not configured.
>>>>>>>>>>> Please check server logs for errors.
>>>>>>>>>>>
>>>>>>>>>>> [1]
>>>>>>>>>>> https://ignite.apache.org/docs/latest/configuring-caches/configuring-backups
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Sep 16, 2022 at 2:38 PM Charlin S <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> There is no exception and executing the else part. it is
>>>>>>>>>>>> possible to update the cache by another process/workflow.
>>>>>>>>>>>> //response is custom class object
>>>>>>>>>>>> var model = (T)Activator.CreateInstance(typeof(T));
>>>>>>>>>>>> IgniteCache.TryGet(Key, out var value);
>>>>>>>>>>>>                     if (null != value)
>>>>>>>>>>>>                     {
>>>>>>>>>>>>                         model = (T)value;
>>>>>>>>>>>>                         response.SingleObject = model;
>>>>>>>>>>>>                         response.Status = true;
>>>>>>>>>>>>                         response.StatusCode =
>>>>>>>>>>>> System.Net.HttpStatusCode.OK;
>>>>>>>>>>>>                     }
>>>>>>>>>>>>                     else
>>>>>>>>>>>>                     {
>>>>>>>>>>>>                         response.Status = false;
>>>>>>>>>>>>                         response.Message = "Given key " + Key +
>>>>>>>>>>>> " not present in the cache.";
>>>>>>>>>>>>                         response.StatusCode =
>>>>>>>>>>>> System.Net.HttpStatusCode.NoContent;
>>>>>>>>>>>>                     }
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Charlin
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, 16 Sept 2022 at 16:53, Pavel Tupitsyn <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Charlin,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Please provide full exception details.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Sep 16, 2022 at 2:04 PM Charlin S <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>>> Cache.TryGet failed to read intermittently and was unable to
>>>>>>>>>>>>>> read some time later.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> having 3 server nodes and 11 client nodes. cache mode is
>>>>>>>>>>>>>> partition and atomicitymode not been set.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> Charlin
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>

Reply via email to