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.