You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Charlin S <Ch...@hotelhub.com> on 2021/01/05 06:51:07 UTC

Requesting mapping from grid failed issue with Ignite 2.9.0 and C# model with ICloneable interface but same was working with Ignite 2.8.1

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

Re: Requesting mapping from grid failed issue with Ignite 2.9.0 and C# model with ICloneable interface but same was working with Ignite 2.8.1

Posted by Charlin S <Ch...@hotelhub.com>.
Hi Pavel,
This has worked for me by adding  [QuerySqlField] for all fields. Thank you
much.

Thanks & Regards,
Charlin


On Tue, 5 Jan 2021 at 14:05, Pavel Tupitsyn <pt...@apache.org> wrote:

> 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 <ka...@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 <Ch...@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
>>>
>>

Re: Requesting mapping from grid failed issue with Ignite 2.9.0 and C# model with ICloneable interface but same was working with Ignite 2.8.1

Posted by Pavel Tupitsyn <pt...@apache.org>.
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 <ka...@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 <Ch...@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
>>
>

Re: Requesting mapping from grid failed issue with Ignite 2.9.0 and C# model with ICloneable interface but same was working with Ignite 2.8.1

Posted by Ilya Kazakov <ka...@gmail.com>.
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 <Ch...@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
>