Have you followed all of the conventions in the .Net remote assembly loading doc? Have you been able to follow the example given?
https://ignite.apache.org/docs/latest/net-specific/net-remote-assembly-loading On Mon, Aug 29, 2022 at 9:08 AM Charlin S <charli...@hotelhub.com> wrote: > Hi, > I have started .Net node on linux and my POC application throwing > exception but I have added ,PeerAssemblyLoadingMode = > PeerAssemblyLoadingMode.CurrentAppDomain > > Inner Exception 1: > IgniteException: Compute job has failed on remote node, examine > InnerException for details. > > Inner Exception 2: > IgniteException: Failed to deserialize the job > [errType=BinaryObjectException, errMsg=No matching type found for object > [typeId=-1603946807, > typeName=ConsoleApp2.TestModelComputeFunc`1[[Common.Models.StaticCacheModels.TestModel]]]. > This usually indicates that assembly with specified type is not loaded on a > node. When using Apache.Ignite.exe, make sure to load assemblies with > -assembly parameter. Alternatively, set > IgniteConfiguration.PeerAssemblyLoadingMode to CurrentAppDomain.] > > Inner Exception 3: > JavaException: class org.apache.ignite.IgniteException: Failed to > deserialize the job [errType=BinaryObjectException, errMsg=No matching type > found for object [typeId=-1603946807, > typeName=ConsoleApp2.TestModelComputeFunc`1[[Common.Models.StaticCacheModels.TestModel]]]. > This usually indicates that assembly with specified type is not loaded on a > node. When using Apache.Ignite.exe, make sure to load assemblies with > -assembly parameter. Alternatively, set > IgniteConfiguration.PeerAssemblyLoadingMode to CurrentAppDomain.] > at > org.apache.ignite.internal.processors.platform.callback.PlatformCallbackUtils.inLongOutLong(Native > Method) > at > org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway.computeJobCreate(PlatformCallbackGateway.java:295) > at > org.apache.ignite.internal.processors.platform.compute.PlatformAbstractJob.createJob(PlatformAbstractJob.java:114) > at > org.apache.ignite.internal.processors.platform.compute.PlatformClosureJob.execute0(PlatformClosureJob.java:66) > at > org.apache.ignite.internal.processors.platform.compute.PlatformAbstractJob.execute(PlatformAbstractJob.java:80) > at > org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:620) > at > org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7366) > at > org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:614) > at > org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:539) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) > at > org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1417) > at > org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:2199) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1909) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1530) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$5300(GridIoManager.java:243) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1423) > at > org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:834) > > > Regards, > Charlin > > > On Fri, 26 Aug 2022 at 19:30, Charlin S <charli...@hotelhub.com> wrote: > >> Hi, >> Thank you for updating me. I will try and keep you updated. >> >> Regards, >> Charlin >> >> >> On Fri, 26 Aug 2022 at 18:47, Pavel Tupitsyn <ptupit...@apache.org> >> wrote: >> >>> Instead of ignite.sh, please use the following file from the binary >>> package to start Ignite nodes on those Linux machines: >>> platforms/dotnet/bin/netcoreapp3.1/Apache.Ignite.Executable >>> >>> >>> >>> On Fri, Aug 26, 2022 at 4:03 PM Charlin S <charli...@hotelhub.com> >>> wrote: >>> >>>> Hi, >>>> Server Node 1 IP and Server Node 2 IP are Linux machines, where we have >>>> hosted our Ignite as server node through Binary release packages. >>>> My requirement is to do computing from a client application (c#). >>>> >>>> Regards, >>>> Charlin >>>> >>>> >>>> >>>> >>>> On Thu, 25 Aug 2022 at 18:55, Pavel Tupitsyn <ptupit...@apache.org> >>>> wrote: >>>> >>>>> You are starting the client .NET node correctly. It connects to a >>>>> cluster. >>>>> However, SERVER nodes in your cluster are not .NET nodes, they are >>>>> probably Java-only nodes, and can not execute .NET computations. >>>>> >>>>> You should fix the server nodes which are at "Server Node 1 IP", >>>>> "Server Node 2 IP". Start them with Apache.Ignite.exe (Windows), >>>>> Apache.Ignite.Executable (Linux), >>>>> or from your own code with Ignition.Start without client mode. >>>>> >>>>> >>>>> On Thu, Aug 25, 2022 at 4:00 PM Charlin S <charli...@hotelhub.com> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> Could you please share how to start .net nodes (client nodes) through >>>>>> application. currently my application having following code to start .net >>>>>> node >>>>>> var cfg = new IgniteConfiguration >>>>>> { >>>>>> // setting node type as client or server >>>>>> ClientMode=true, >>>>>> DiscoverySpi = new TcpDiscoverySpi >>>>>> { >>>>>> LocalPort = 55800, >>>>>> //LocalPortRange = 10, >>>>>> IpFinder = new TcpDiscoveryStaticIpFinder >>>>>> { >>>>>> Endpoints = new[] { "Server Node 1 IP:55800", >>>>>> "Server Node 2 IP:55800" } >>>>>> } >>>>>> } >>>>>> }; >>>>>> InstanceObject = Ignition.Start(cfg); >>>>>> >>>>>> var compute = InstanceObject.GetCluster().ForRemotes().GetCompute(); >>>>>> compute.Broadcast(calls); //failing with Topology projection is >>>>>> empty, if I comment or uncomment the ClientMode=true, >>>>>> >>>>>> var compute1 = InstanceObject.GetCompute(); >>>>>> var res = compute1.Call(calls); // success if I uncomment the >>>>>> ClientMode=true, >>>>>> Please help me with this. >>>>>> >>>>>> Regards, >>>>>> Charlin >>>>>> >>>>>> >>>>>> On Thu, 25 Aug 2022 at 14:42, Pavel Tupitsyn <ptupit...@apache.org> >>>>>> wrote: >>>>>> >>>>>>> > can we run computing tasks from the Ignite client node? >>>>>>> yes >>>>>>> >>>>>>> > I have tried Ignite.GetCluster().ForRemotes().GetCompute() but >>>>>>> getting ClusterGroupEmptyException: Topology projection is empty. >>>>>>> There are no remote .NET nodes in your cluster. >>>>>>> >>>>>>> On Thu, Aug 25, 2022 at 9:51 AM Charlin S <charli...@hotelhub.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> can we run computing tasks from the Ignite client node? I have >>>>>>>> tried Ignite.GetCluster().ForRemotes().GetCompute() but >>>>>>>> getting ClusterGroupEmptyException: Topology projection is empty. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Charlin >>>>>>>> >>>>>>>> >>>>>>>> On Wed, 24 Aug 2022 at 19:27, Pavel Tupitsyn <ptupit...@apache.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Yes, starting clients and servers from your own C# code is a valid >>>>>>>>> approach. >>>>>>>>> >>>>>>>>> On Wed, Aug 24, 2022 at 4:02 PM Charlin S <charli...@hotelhub.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Earlier my application joined as client by using xml bean and now >>>>>>>>>> Topology empty error gone if I start ignite on my application as >>>>>>>>>> follows >>>>>>>>>> var cfg = new IgniteConfiguration >>>>>>>>>> { >>>>>>>>>> DiscoverySpi = new TcpDiscoverySpi >>>>>>>>>> { >>>>>>>>>> LocalPort = 55800, >>>>>>>>>> //LocalPortRange = 10, >>>>>>>>>> IpFinder = new TcpDiscoveryStaticIpFinder >>>>>>>>>> { >>>>>>>>>> Endpoints = new[] { "Remote:55800", >>>>>>>>>> "Remote:55800" } >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> }; >>>>>>>>>> InstanceObject = Ignition.Start(cfg); >>>>>>>>>> >>>>>>>>>> Can we perform the same action on the client side? >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Charlin >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, 24 Aug 2022 at 18:14, Pavel Tupitsyn < >>>>>>>>>> ptupit...@apache.org> wrote: >>>>>>>>>> >>>>>>>>>>> > Topology projection is empty. >>>>>>>>>>> >>>>>>>>>>> Looks like there are no .NET nodes in the cluster. >>>>>>>>>>> >>>>>>>>>>> How do you start server nodes? ignite.sh/ignite.bat won't work, >>>>>>>>>>> since those start Java-only nodes. >>>>>>>>>>> To start .NET nodes, use Apache.Ignite.exe (Windows) >>>>>>>>>>> or Apache.Ignite.Executable (Linux, macOS). >>>>>>>>>>> >>>>>>>>>>> On Wed, Aug 24, 2022 at 3:17 PM Charlin S < >>>>>>>>>>> charli...@hotelhub.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> New error with new changes >>>>>>>>>>>> System.AggregateException >>>>>>>>>>>> HResult=0x80131500 >>>>>>>>>>>> Message=One or more errors occurred. (Topology projection is >>>>>>>>>>>> empty.) >>>>>>>>>>>> Source=System.Private.CoreLib >>>>>>>>>>>> StackTrace: >>>>>>>>>>>> at System.Threading.Tasks.Task`1.GetResultCore(Boolean >>>>>>>>>>>> waitCompletionNotification) >>>>>>>>>>>> at System.Threading.Tasks.Task`1.get_Result() >>>>>>>>>>>> at Apache.Ignite.Core.Impl.Common.Future`1.Get() >>>>>>>>>>>> at >>>>>>>>>>>> Apache.Ignite.Core.Impl.Compute.Compute.Call[TJobRes](IComputeFunc`1 >>>>>>>>>>>> clo) >>>>>>>>>>>> at >>>>>>>>>>>> ConsoleApp2.CacheUtils.ComputeTest_OnIgnite_OnIgnite(String >>>>>>>>>>>> searchCriteria) >>>>>>>>>>>> in D:\NGSourceCode\POC\ConsoleApp2\ConsoleApp2\CacheUtils.cs:line >>>>>>>>>>>> 75 >>>>>>>>>>>> at ConsoleApp2.Program.Main(String[] args) in >>>>>>>>>>>> D:\NGSourceCode\POC\ConsoleApp2\ConsoleApp2\Program.cs:line 19 >>>>>>>>>>>> >>>>>>>>>>>> Inner Exception 1: >>>>>>>>>>>> ClusterGroupEmptyException: Topology projection is empty. >>>>>>>>>>>> >>>>>>>>>>>> Inner Exception 2: >>>>>>>>>>>> JavaException: class >>>>>>>>>>>> org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException: >>>>>>>>>>>> Topology projection is empty. >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.task.GridTaskWorker.getTaskTopology(GridTaskWorker.java:689) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:502) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:843) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:508) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:476) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.IgniteComputeImpl.executeAsync0(IgniteComputeImpl.java:564) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.platform.compute.PlatformCompute.executeNative0(PlatformCompute.java:329) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.platform.compute.PlatformCompute.processClosures(PlatformCompute.java:294) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.platform.compute.PlatformCompute.processInStreamOutObject(PlatformCompute.java:137) >>>>>>>>>>>> at >>>>>>>>>>>> org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inStreamOutObject(PlatformTargetProxyImpl.java:79) >>>>>>>>>>>> >>>>>>>>>>>> Regards, >>>>>>>>>>>> Charlin >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, 24 Aug 2022 at 17:16, Pavel Tupitsyn < >>>>>>>>>>>> ptupit...@apache.org> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> > Sorry to bother you,does scan in distribute compute faster >>>>>>>>>>>>> than use a scan in client? >>>>>>>>>>>>> >>>>>>>>>>>>> Depends on the use case. Always measure your own scenario. >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Aug 24, 2022 at 2:34 PM wkhapy...@gmail.com < >>>>>>>>>>>>> wkhapy...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Sorry to bother you,does scan in distribute compute faster >>>>>>>>>>>>>> than use a scan in client? >>>>>>>>>>>>>> >>>>>>>>>>>>>> ---Original--- >>>>>>>>>>>>>> *From:* "Pavel Tupitsyn"<ptupit...@apache.org> >>>>>>>>>>>>>> *Date:* Wed, Aug 24, 2022 19:14 PM >>>>>>>>>>>>>> *To:* "user"<user@ignite.apache.org>; >>>>>>>>>>>>>> *Subject:* Re: distributed-computing error >>>>>>>>>>>>>> System.Runtime.Serialization.ISerializable >>>>>>>>>>>>>> >>>>>>>>>>>>>> This line is the problem: >>>>>>>>>>>>>> public ICache<string, T> IgniteCache { get; set; } >>>>>>>>>>>>>> >>>>>>>>>>>>>> You can't serialize an Ignite cache. Instead, use >>>>>>>>>>>>>> [InstanceResource] - uncomment the line you already have, then >>>>>>>>>>>>>> get the >>>>>>>>>>>>>> cache by name: >>>>>>>>>>>>>> >>>>>>>>>>>>>> [InstanceResource] private readonly IIgnite _ignite; >>>>>>>>>>>>>> public string CacheName { get; set; } >>>>>>>>>>>>>> >>>>>>>>>>>>>> ... >>>>>>>>>>>>>> >>>>>>>>>>>>>> var cache = _ignite.GetCache<string, T>(CacheName); >>>>>>>>>>>>>> cache.Query(...) >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, Aug 24, 2022 at 1:31 PM Charlin S < >>>>>>>>>>>>>> charli...@hotelhub.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>> The exception details are as follows. >>>>>>>>>>>>>>> System.AggregateException >>>>>>>>>>>>>>> HResult=0x80131500 >>>>>>>>>>>>>>> Message=One or more errors occurred. (Serializing >>>>>>>>>>>>>>> delegates is not supported on this platform.) >>>>>>>>>>>>>>> Source=System.Private.CoreLib >>>>>>>>>>>>>>> StackTrace: >>>>>>>>>>>>>>> at System.Threading.Tasks.Task`1.GetResultCore(Boolean >>>>>>>>>>>>>>> waitCompletionNotification) >>>>>>>>>>>>>>> at System.Threading.Tasks.Task`1.get_Result() >>>>>>>>>>>>>>> at Apache.Ignite.Core.Impl.Common.Future`1.Get() >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Compute.Compute.Apply[TArg,TJobRes](IComputeFunc`2 >>>>>>>>>>>>>>> clo, TArg arg) >>>>>>>>>>>>>>> at ConsoleApp2.CacheUtils.ComputeTest_OnIgnite(String >>>>>>>>>>>>>>> searchCriteria) in >>>>>>>>>>>>>>> D:\NGSourceCode\POC\ConsoleApp2\ConsoleApp2\CacheUtils.cs:line >>>>>>>>>>>>>>> 76 >>>>>>>>>>>>>>> at ConsoleApp2.Program.Main(String[] args) in >>>>>>>>>>>>>>> D:\NGSourceCode\POC\ConsoleApp2\ConsoleApp2\Program.cs:line 19 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> This exception was originally thrown at this call stack: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> System.MulticastDelegate.GetObjectData(System.Runtime.Serialization.SerializationInfo, >>>>>>>>>>>>>>> System.Runtime.Serialization.StreamingContext) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.SerializableSerializer.WriteBinary<T>(T, >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter) >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write<T>(T) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteObject<T>(string, >>>>>>>>>>>>>>> T) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Apache.Ignite.Core.Impl.Binary.IBinarySerializerInternal.WriteBinary<T>(T, >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter) >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write<T>(T) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteObject<T>(string, >>>>>>>>>>>>>>> T) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Apache.Ignite.Core.Impl.Binary.IBinarySerializerInternal.WriteBinary<T>(T, >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter) >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write<T>(T) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteObject<T>(string, >>>>>>>>>>>>>>> T) >>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>> [Call Stack Truncated] >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Inner Exception 1: >>>>>>>>>>>>>>> SerializationException: Serializing delegates is not >>>>>>>>>>>>>>> supported on this platform. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Note: I am having two 2 server nodes and running the POC >>>>>>>>>>>>>>> application on a client node. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>> Charlin >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wed, 24 Aug 2022 at 15:02, Pavel Tupitsyn < >>>>>>>>>>>>>>> ptupit...@apache.org> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Please share the exception with full stack trace (you've >>>>>>>>>>>>>>>> only shared some warnings, which may or may not be a problem). >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, Aug 24, 2022 at 10:26 AM Charlin S < >>>>>>>>>>>>>>>> charli...@hotelhub.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I have a requirement to fetch the data using >>>>>>>>>>>>>>>>> distributed-computing function and error at >>>>>>>>>>>>>>>>> var res = >>>>>>>>>>>>>>>>> CacheInstance.Instance.InstanceObject.GetCompute().Call(calls); >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> // InstanceObject singleton object for Ignite >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> [11:16:34,865][WARNING][main][Marshaller] Type >>>>>>>>>>>>>>>>> 'System.Collections.Generic.Dictionary`2[System.Int64,Apache.Ignite.Core.Impl.Binary.BinaryFullTypeDescriptor]' >>>>>>>>>>>>>>>>> implements 'System.Runtime.Serialization.ISerializable'. It >>>>>>>>>>>>>>>>> will be written >>>>>>>>>>>>>>>>> in Ignite binary format, however, the following limitations >>>>>>>>>>>>>>>>> apply: DateTime >>>>>>>>>>>>>>>>> fields would not work in SQL; sbyte, ushort, uint, ulong >>>>>>>>>>>>>>>>> fields would not >>>>>>>>>>>>>>>>> work in DML. >>>>>>>>>>>>>>>>> [11:16:34,889][WARNING][main][Marshaller] Type >>>>>>>>>>>>>>>>> 'System.Collections.Generic.Dictionary`2[System.String,System.Byte]' >>>>>>>>>>>>>>>>> implements 'System.Runtime.Serialization.ISerializable'. It >>>>>>>>>>>>>>>>> will be written >>>>>>>>>>>>>>>>> in Ignite binary format, however, the following limitations >>>>>>>>>>>>>>>>> apply: DateTime >>>>>>>>>>>>>>>>> fields would not work in SQL; sbyte, ushort, uint, ulong >>>>>>>>>>>>>>>>> fields would not >>>>>>>>>>>>>>>>> work in DML. >>>>>>>>>>>>>>>>> [11:16:34,895][WARNING][main][Marshaller] Type >>>>>>>>>>>>>>>>> 'System.Func`2[Apache.Ignite.Core.Impl.Binary.BinaryReader,Apache.Ignite.Core.Impl.Compute.ComputeJobHolder]' >>>>>>>>>>>>>>>>> implements 'System.Runtime.Serialization.ISerializable'. It >>>>>>>>>>>>>>>>> will be written >>>>>>>>>>>>>>>>> in Ignite binary format, however, the following limitations >>>>>>>>>>>>>>>>> apply: DateTime >>>>>>>>>>>>>>>>> fields would not work in SQL; sbyte, ushort, uint, ulong >>>>>>>>>>>>>>>>> fields would not >>>>>>>>>>>>>>>>> work in DML. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Kindly help me on this and I have shared the >>>>>>>>>>>>>>>>> implementation below. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> public class ComputeTestModel : IBinarizable >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> [QuerySqlField] >>>>>>>>>>>>>>>>> public string TestField1 { get; set; } >>>>>>>>>>>>>>>>> [QuerySqlField] >>>>>>>>>>>>>>>>> public string TestField2 { get; set; } >>>>>>>>>>>>>>>>> [QuerySqlField] >>>>>>>>>>>>>>>>> public string TestField3 { get; set; } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> public void ReadBinary(IBinaryReader >>>>>>>>>>>>>>>>> reader){}//not added implementation here >>>>>>>>>>>>>>>>> public void WriteBinary(IBinaryWriter >>>>>>>>>>>>>>>>> writer){}//not added implementation here >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> class TestModelComputeFunc<T> : >>>>>>>>>>>>>>>>> IComputeFunc<List<ComputeTestModel>> >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> // [InstanceResource] private readonly IIgnite >>>>>>>>>>>>>>>>> _ignite; >>>>>>>>>>>>>>>>> public ICache<string, T> IgniteCache { get; set; } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> public string _searchCriteria { get; set; } >>>>>>>>>>>>>>>>> public TestModelComputeFunc(ICache<string, T> >>>>>>>>>>>>>>>>> igniteCache, string searchCriteria) >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> IgniteCache = igniteCache; >>>>>>>>>>>>>>>>> _searchCriteria = searchCriteria; >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> public List<ComputeTestModel> Invoke() >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> List<ComputeTestModel> objs = new >>>>>>>>>>>>>>>>> List<ComputeTestModel>(); >>>>>>>>>>>>>>>>> string query = "select * from ComputeTestModel >>>>>>>>>>>>>>>>> where TestField1 = ?"; >>>>>>>>>>>>>>>>> SqlFieldsQuery fieldsQuery = new >>>>>>>>>>>>>>>>> SqlFieldsQuery(query, _searchCriteria); >>>>>>>>>>>>>>>>> IFieldsQueryCursor queryCursor = >>>>>>>>>>>>>>>>> IgniteCache.Query(fieldsQuery); >>>>>>>>>>>>>>>>> if (queryCursor != null) >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> foreach (var cacheEntry in queryCursor) >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> objs.Add(new ComputeTestModel >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> TestField1 = cacheEntry[0] as >>>>>>>>>>>>>>>>> string, >>>>>>>>>>>>>>>>> TestField2 = cacheEntry[1] as >>>>>>>>>>>>>>>>> string, >>>>>>>>>>>>>>>>> TestField3 = cacheEntry[2] as string >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> }); >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> return objs; >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> return null; >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> public static class CacheUtilsTest >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> public static List<ComputeTestModel> >>>>>>>>>>>>>>>>> ComputeTest_OnIgnite(string searchCriteria) >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> //CacheInstance.Instance.ComputeTestICache defined in >>>>>>>>>>>>>>>>> another class public ICache<string, ComputeTestModel> >>>>>>>>>>>>>>>>> ComputeTestModelICache { get; set; } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> ComputeTestComputeFunc<ComputeTestModel> calls >>>>>>>>>>>>>>>>> = new >>>>>>>>>>>>>>>>> ComputeTestComputeFunc<ComputeTestModel>(CacheInstance.Instance.ComputeTestICache, >>>>>>>>>>>>>>>>> searchCriteria); >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> // Execute the collection of calls on the >>>>>>>>>>>>>>>>> cluster. >>>>>>>>>>>>>>>>> var res = >>>>>>>>>>>>>>>>> CacheInstance.Instance.InstanceObject.GetCompute().Call(calls); >>>>>>>>>>>>>>>>> //exception thrown here >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> /* >>>>>>>>>>>>>>>>> //another aproach >>>>>>>>>>>>>>>>> ComputeTestComputeFunc<ComputeTestModel> cacheObject = new >>>>>>>>>>>>>>>>> ComputeTestComputeFunc<ComputeTestModel>(CacheInstance.Instance.ComputeTestICache, >>>>>>>>>>>>>>>>> searchCriteria); >>>>>>>>>>>>>>>>> // var calls = >>>>>>>>>>>>>>>>> CacheInstance.Instance.ComputeTestICache.Select(s => >>>>>>>>>>>>>>>>> cacheObject).ToList(); >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> // Execute the collection of calls on the >>>>>>>>>>>>>>>>> cluster. >>>>>>>>>>>>>>>>> var res = >>>>>>>>>>>>>>>>> CacheInstance.Instance.InstanceObject.GetCompute().Call(calls); >>>>>>>>>>>>>>>>> //exception thrown here >>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>> return null; >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> class Program >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> static void Main(string[] args) >>>>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>>> // Console.WriteLine("Hello World!"); >>>>>>>>>>>>>>>>> var saticCache = >>>>>>>>>>>>>>>>> CacheInstance.Instance.InstanceObject; >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> var res = >>>>>>>>>>>>>>>>> CacheUtilsTest.ComputeTest_OnIgnite("A"); >>>>>>>>>>>>>>>>> int ans= res.Count(); >>>>>>>>>>>>>>>>> Console.ReadKey(); >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>>> Charlin >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>