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 >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
