I’m testing out a first piece of code to use the Ignite persistence layer
in the C# client.



I have added a persistence layer aspect to the configuration for the grid,
like this:



            cfg.PersistentStoreConfiguration = new
PersistentStoreConfiguration()

            {

                PersistentStorePath =
PersistentCacheStoreLocation

            };



I then declare, instantiate and activate the grid:



IIgnite Grid = Ignition.Start(cfg);

Grid.SetActive(true);



However, the SetActive line throws this exception:



ERROR 2017-08-02 13:54:04,994 54667ms CacheComputeServer
GridCacheNode - Exception: Apache.Ignite.Core.Common.IgniteException:
Failed to deserialize object with given class loader:
sun.misc.Launcher$AppClassLoader@c387f44 --->
Apache.Ignite.Core.Common.JavaException: class
org.apache.ignite.IgniteException: Failed to deserialize object with given
class loader: sun.misc.Launcher$AppClassLoader@c387f44

                at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:957)

                at
org.apache.ignite.internal.IgniteKernal.active(IgniteKernal.java:3427)

                at
org.apache.ignite.internal.processors.platform.cluster.PlatformClusterGroup.processInLongOutLong(PlatformClusterGroup.java:401)

                at
org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inLongOutLong(PlatformTargetProxyImpl.java:53)

Caused by: class org.apache.ignite.IgniteCheckedException: Failed to
deserialize object with given class loader:
sun.misc.Launcher$AppClassLoader@c387f44

                at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:129)

                at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94)

                at
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:541)

                at
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheConfigurations(FilePageStoreManager.java:501)

                at
org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.changeGlobalState(GridClusterStateProcessor.java:453)

                at
org.apache.ignite.internal.IgniteKernal.active(IgniteKernal.java:3424)

                ... 2 more

Caused by: java.lang.IllegalArgumentException: Ignite instance name thread
local must be set or this method should be accessed under
org.apache.ignite.thread.IgniteThread

                at
org.apache.ignite.internal.IgnitionEx.localIgnite(IgnitionEx.java:1328)

                at
org.apache.ignite.internal.binary.GridBinaryMarshaller.threadLocalContext(GridBinaryMarshaller.java:392)

                at
org.apache.ignite.internal.binary.BinaryObjectImpl.readExternal(BinaryObjectImpl.java:694)

                at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1849)

                at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1806)

                at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)

                at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018)

                at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942)

                at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)

                at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)

                at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018)

                at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942)

                at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)

                at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)

                at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018)

                at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942)

                at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)

                at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)

                at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)

                at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:121)

                ... 7 more



   --- End of inner exception stack trace ---

   at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.Error(Void*
target, Int32 errType, SByte* errClsChars, Int32 errClsCharsLen, SByte*
errMsgChars, Int32 errMsgCharsLen, SByte* stackTraceChars, Int32
stackTraceCharsLen, Void* errData, Int32 errDataLen)

   at
Apache.Ignite.Core.Impl.Unmanaged.IgniteJniNativeMethods.TargetInLongOutLong(Void*
ctx, Void* target, Int32 opType, Int64 val)

   at
Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.TargetInLongOutLong(IUnmanagedTarget
target, Int32 opType, Int64 memPtr)

   at Apache.Ignite.Core.Impl.Cluster.ClusterGroupImpl.SetActive(Boolean
isActive)

   at [….].CacheComputeServer.StartGridCacheNode() in […]



I was not setting the IgniteInstanceName in the configuration, but the
exception still occurs after setting it.



I googled the exception and found an Ignite issue related to Cassandra that
was fixed in 2.1, however I am not using Cassandra.



Any clues?



Thanks,

Raymond.

Reply via email to