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 2022/08/24 07:26:00 UTC
distributed-computing error System.Runtime.Serialization.ISerializable
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
Re: distributed-computing error System.Runtime.Serialization.ISerializable
Posted by Pavel Tupitsyn <pt...@apache.org>.
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 <Ch...@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 <pt...@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 <Ch...@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
>>>
>>>
>>>
Re: distributed-computing error System.Runtime.Serialization.ISerializable
Posted by Charlin S <Ch...@hotelhub.com>.
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 <pt...@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 <Ch...@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
>>
>>
>>
Re: distributed-computing error System.Runtime.Serialization.ISerializable
Posted by Pavel Tupitsyn <pt...@apache.org>.
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 <Ch...@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
>
>
>