Sorry, the code you sent is not working.

- There is a stack overflow due to recursion
at UnitOfWork.testModelRepository
- Cache does not exist exception at IgniteCacheInstance (changed
to GetOrCreateCache)
- All exceptions are swallowed (empty catch blocks)

I made it work with some changes, now I get exit code 0, not sure what to
do with that.

On Wed, Sep 21, 2022 at 1:09 PM Charlin S <[email protected]> wrote:

> Hi,
> Please let me know if there are any findings in my configuration or
> implementation.
>
> Regards,
> Charlin
>
>
> On Tue, 20 Sept 2022 at 11:51, Charlin S <[email protected]> wrote:
>
>> Hi,
>> I already attached server config in the same mail thread( along with
>> sample code).
>>
>> Regards,
>> Charlin
>>
>>
>> On Tue, 20 Sept 2022 at 11:50, Pavel Tupitsyn <[email protected]>
>> wrote:
>>
>>> Now the client starts, but cannot connect to a server. How do I start a
>>> server, do you use a config file or something else?
>>>
>>> On Tue, Sep 20, 2022 at 9:15 AM Charlin S <[email protected]>
>>> wrote:
>>>
>>>> Hi,
>>>> Sorry for inconvenience, I have removed local machine path dependency.
>>>>
>>>> Regards,
>>>> Charlin
>>>>
>>>>
>>>> On Tue, 20 Sept 2022 at 11:04, Pavel Tupitsyn <[email protected]>
>>>> wrote:
>>>>
>>>>> 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