Hi Charlin, I've filed a bug [1]
However, it looks like [QuerySqlField] attributes are missing on TestModel29WithICloneable properties. To make your model queryable with SQL/LINQ, make sure to mark some or all properties like this: public class TestModel29WithICloneable : ICloneable, IBinarizable { [QuerySqlField] public string TestField1 { get; set; } [QuerySqlField] public string TestField2 { get; set; } [QuerySqlField] public string TestField3 { get; set; } ... } This will get rid of the exception (which is still a bug, but for a weird use case when no SQL fields are defined). Thanks, Pavel [1] https://issues.apache.org/jira/browse/IGNITE-13957 On Tue, Jan 5, 2021 at 10:28 AM Ilya Kazakov <kazakov.i...@gmail.com> wrote: > Hello, Charlin! > > Try to enable peer class loading: > https://ignite.apache.org/docs/latest/code-deployment/peer-class-loading > > ---------------------- > Ilya Kazakov > > вт, 5 янв. 2021 г. в 14:52, Charlin S <charli...@hotelhub.com>: > >> Hi, >> >> i'm getting exception on when a new record is added, which was working >> till ignite 2.8.1 >> This issue seems to be with Ignite 2.9.0 and Ignite 2.9.1 >> The c# code is below: >> void Main() >> { >> A a = new A(); >> } >> >> public class A >> { >> public A() >> { >> >> IgniteConfiguration igniteGridIg = new IgniteConfiguration(); >> igniteGridIg.AutoGenerateIgniteInstanceName = true; >> igniteGridIg.IgniteHome = >> @"D:\Software\apache-ignite-2.9.1-bin"; >> igniteGridIg.SpringConfigUrl = >> Path.Combine(@"D:\IgniteConfig\", >> "common_dynamiccache_client_config_2.9.1.xml"); >> igniteGridIg.ConsistentId = >> Guid.NewGuid().ToString().ToUpper(); >> >> IIgnite StaticGrid_Dev = Ignition.Start(igniteGridIg); >> TestModel29WithICloneable model = new TestModel29WithICloneable(); >> >> model.TestField1 = "11"; >> model.TestField2 = "22"; >> >> ICache<string, TestModel29WithICloneable> >> TestModel29WithICloneableICache=null; >> CacheConfiguration cgTest = new >> CacheConfiguration("TestModel29WithICloneable", new >> QueryEntity(typeof(string), typeof(TestModel29WithICloneable))); >> cgTest.CopyOnRead = false; >> cgTest.EagerTtl = true; >> cgTest.Backups = 1; >> >> var cacheName = StaticGrid_Dev.GetOrCreateCache<string, >> object>(cgTest).WithExpiryPolicy(new ExpiryPolicy( >> TimeSpan.FromSeconds(3600), >> TimeSpan.FromSeconds(3600), >> TimeSpan.FromSeconds(3600) >> )); >> >> cacheName.Put("TestModel29WithICloneable:Test|0100010test2", model); >> >> //Console.Write(cacheName); >> Ignition.StopAll(true); >> } >> } >> >> >> Model class: >> public class TestModel29WithICloneable : ICloneable, IBinarizable >> { >> public TestModel29WithICloneable Copy() >> { >> return (TestModel29WithICloneable)this.MemberwiseClone(); >> } >> >> public object Clone() >> { >> var clone = this.MemberwiseClone(); >> return clone; >> } >> public string TestField1 { get; set; } >> public string TestField2 { get; set; } >> public string TestField3 { get; set; } >> >> public void ReadBinary(IBinaryReader reader) >> { >> if (reader != null) >> { >> TestField1 = reader.ReadString("testfield1"); >> TestField2 = reader.ReadString("testfield2"); >> TestField3 = reader.ReadString("testfield3"); >> } >> } >> >> public void WriteBinary(IBinaryWriter writer) >> { >> if (writer != null) >> { >> writer.WriteString("testfield1", TestField1); >> writer.WriteString("testfield2", TestField2); >> writer.WriteString("testfield3", TestField3); >> } >> } >> } >> >> Result : >> javax.cache.CacheException: class >> org.apache.ignite.IgniteCheckedException: Requesting mapping from grid >> failed for [platformId=0, typeId=1876507903] >> at >> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1270) >> at >> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2083) >> at >> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.put(IgniteCacheProxyImpl.java:1319) >> at >> org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.put(GatewayProtectedCacheProxy.java:856) >> at >> org.apache.ignite.internal.processors.platform.cache.PlatformCache.processInStreamOutLong(PlatformCache.java:839) >> at >> org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inStreamOutLong(PlatformTargetProxyImpl.java:67) >> Caused by: class org.apache.ignite.IgniteCheckedException: Requesting >> mapping from grid failed for [platformId=0, typeId=1876507903] >> at >> org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7563) >> at >> org.apache.ignite.internal.processors.cache.GridCacheContext.validateKeyAndValue(GridCacheContext.java:1910) >> at >> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapSingleUpdate(GridNearAtomicSingleUpdateFuture.java:555) >> at >> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.map(GridNearAtomicSingleUpdateFuture.java:457) >> at >> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapOnTopology(GridNearAtomicSingleUpdateFuture.java:446) >> at >> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:249) >> at >> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update0(GridDhtAtomicCache.java:1178) >> at >> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.put0(GridDhtAtomicCache.java:626) >> at >> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2567) >> at >> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2544) >> at >> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.put(IgniteCacheProxyImpl.java:1316) >> ... 3 more >> Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException: >> Requesting mapping from grid failed for [platformId=0, typeId=1876507903] >> at >> org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:689) >> at >> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1757) >> at >> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716) >> at >> org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:796) >> at >> org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142) >> at >> org.apache.ignite.internal.processors.query.QueryTypeDescriptorImpl.validateProps(QueryTypeDescriptorImpl.java:613) >> at >> org.apache.ignite.internal.processors.query.QueryTypeDescriptorImpl.validateKeyAndValue(QueryTypeDescriptorImpl.java:587) >> at >> org.apache.ignite.internal.processors.query.GridQueryProcessor.validateKeyAndValue(GridQueryProcessor.java:3552) >> at >> org.apache.ignite.internal.processors.cache.GridCacheContext.validateKeyAndValue(GridCacheContext.java:1907) >> ... 12 more >> Caused by: java.lang.ClassNotFoundException: Requesting mapping from grid >> failed for [platformId=0, typeId=1876507903] >> at >> org.apache.ignite.internal.MarshallerContextImpl.getClassName(MarshallerContextImpl.java:429) >> at >> org.apache.ignite.internal.MarshallerContextImpl.getClassName(MarshallerContextImpl.java:384) >> at >> org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:371) >> at >> org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:680) >> >> >> Regards >> Charlin >> >