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