Hi Pavel...Yes the solution you suggested is working. Thanks so much for your help.
Regarding my other question, is there a way to query the cache other than writing a client node? Something similar to IGNITE_H2_DEBUG_CONSOLE on java side? On Tue, Apr 5, 2016 at 4:53 AM, Pavel Tupitsyn <[email protected]> wrote: > I have tested the attached solution. Everything works fine. > You just have to add BusinessUnit to the BinaryConfiguration: > > var cfg = new IgniteConfiguration > { > SpringConfigUrl = @"config\ignite.xml", > JvmOptions = new List<string> {"-Xms512m", "-Xmx1024m"}, > BinaryConfiguration = > new BinaryConfiguration > { > TypeConfigurations = new[] {new BinaryTypeConfiguration(typeof > (BusinessUnit))} > } > }; > > Let me know if this works for you. > > Pavel. > > > On Tue, Apr 5, 2016 at 10:30 AM, Pavel Tupitsyn <[email protected]> > wrote: > >> Satya, zip file downloaded fine, I'll investigate it and get to you later. >> >> Regarding [Serializable]: cached objects in Ignite are serialized and >> sent over the network. >> So your entities should be set up for serialization, one way or another, >> see details: https://apacheignite-net.readme.io/docs/serialization >> It is possible to serialize auto-generated classes without modifying >> them, by providing them in BinaryConfiguration. I'll check attached code >> and see if it works. >> >> IGNITE_H2_DEBUG_CONSOLE: just add the following line anywhere before >> Ignition.Start: Environment.SetEnvironmentVariable( >> "IGNITE_H2_DEBUG_CONSOLE", "true"); >> >> Pavel. >> >> On Tue, Apr 5, 2016 at 7:16 AM, Murthy Kakarlamudi <[email protected]> >> wrote: >> >>> Hi Pavel, >>> I was playing around with different options and once I specified >>> [Serializable] annotation at the entity class level, I was able to >>> successfully insert into cache. With this setting LoadCache() method is >>> working as well. Not sure if this is the right approach. I will not prefer >>> this as this needs an update to a auto-generated class and any subsequent >>> updates might overide the manual settings. >>> >>> On a separate note, is there a way I can query the cache using sql >>> console. In java, I can set IGNITE_H2_DEBUG_CONSOLE to query the cache. >>> Wondering if there is an equivalent on .NET side. >>> >>> Thanks, >>> Satya. >>> >>> On Mon, Apr 4, 2016 at 8:08 PM, Murthy Kakarlamudi <[email protected]> >>> wrote: >>> >>>> Hi Pavel, >>>> I am not able to send the solution zip in gmail. It is blocking as >>>> the zip file contains executables. Can you please check if you can download >>>> the solution from the below location: >>>> >>>> https://drive.google.com/open?id=0B8lM91-_3MwRS3pFU2JwRjJkYVU >>>> >>>> Thanks, >>>> Murthy. >>>> >>>> On Mon, Apr 4, 2016 at 11:09 AM, Pavel Tupitsyn <[email protected] >>>> > wrote: >>>> >>>>> LoadCache arguments are serialized and passed over network. Cache >>>>> instance can't be used as a LoadCache argument. >>>>> Please try to do a cache put directly in the main method: >>>>> using (var ignite = Ignition.Start(cfg)) >>>>> { >>>>> var cache = ignite.GetCache<int, >>>>> CustomTransactionsDetail>(null); >>>>> cache.Put(1, entities. >>>>> CustomTransactionsDetails.First()); >>>>> } >>>>> >>>>> I suspect there is an issue with serializing CustomTransactionsDetail >>>>> instances. >>>>> Entity Framework POCO proxies can't be serialized by Ignite >>>>> automatically. >>>>> You have to either disable proxies ( >>>>> https://msdn.microsoft.com/en-us/library/dd456853(v=vs.100).aspx), or >>>>> implement IBinarizable with manual serialization. >>>>> >>>>> If you send me your whole solution in a zip file, I'll be able to >>>>> investigate further. >>>>> >>>>> Thanks, >>>>> >>>>> Pavel. >>>>> >>>>> On Mon, Apr 4, 2016 at 5:53 PM, Murthy Kakarlamudi <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi Pavel, >>>>>> I was trying to do that before and ran into issues passing cache >>>>>> object to my CacheAdapter implementation which is in a different dll. Can >>>>>> you please help where I went wrong: >>>>>> >>>>>> In my main program, I was passing cache in LoadCache method: >>>>>> using (var ignite = Ignition.Start(cfg)) >>>>>> { >>>>>> Console.WriteLine(">>> Cache query example started"); >>>>>> var cache = ignite.GetCache<int, >>>>>> CustomTransactionsDetail>(null); >>>>>> *cache.LoadCache(null,cache);* >>>>>> Console.WriteLine(">> Organization Cache Size: " + >>>>>> cache.GetSize()); >>>>>> Console.ReadLine(); >>>>>> } >>>>>> >>>>>> In my CacheStoreAdapter implementation, I tried to access Cache as >>>>>> below: >>>>>> >>>>>> public override void LoadCache(Action<object, object> act, params >>>>>> object[] args) >>>>>> { >>>>>> try { >>>>>> * ICache cache = (ICache)args[0]; // Throwing an >>>>>> error here.* >>>>>> var customTxnDetailsList = >>>>>> entities.CustomTransactionsDetails; >>>>>> // Iterate over whole underlying store and call act >>>>>> on each entry to load it into the cache. >>>>>> foreach (CustomTransactionsDetail entry in >>>>>> customTxnDetailsList) >>>>>> { >>>>>> Console.WriteLine("Adding to cache: {0} {1}", >>>>>> entry.CustomTransDetailID, entry); >>>>>> //act(entry.CustomTransDetailID, entry); >>>>>> >>>>>> } >>>>>> }catch(Exception e) >>>>>> { >>>>>> Console.WriteLine("Exception is {0}", e); >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> On Mon, Apr 4, 2016 at 8:26 AM, Pavel Tupitsyn < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Instead of LoadCache, can you try a simple cache put and see what >>>>>>> happens? >>>>>>> >>>>>>> cache[1] = new CustomTransactionsDetail(); >>>>>>> >>>>>>> and with entity from EF: >>>>>>> >>>>>>> cache[2] = entities.CustomTransactionsDetails.First(); >>>>>>> >>>>>>> Pavel. >>>>>>> >>>>>>> On Mon, Apr 4, 2016 at 3:20 PM, Murthy Kakarlamudi <[email protected] >>>>>>> > wrote: >>>>>>> >>>>>>>> Sorry....attached the wrong version. Below is the full entity class >>>>>>>> and the CacheStore implementation. >>>>>>>> >>>>>>>> namespace MyIgnite >>>>>>>> { >>>>>>>> using System; >>>>>>>> using System.Collections.Generic; >>>>>>>> >>>>>>>> public partial class CustomTransactionsDetail >>>>>>>> { >>>>>>>> public Nullable<int> TransactionID { get; set; } >>>>>>>> public string InstrumentTypeName { get; set; } >>>>>>>> public string InstrumentTypeShortName { get; set; } >>>>>>>> public string DealType { get; set; } >>>>>>>> public string PutCall { get; set; } >>>>>>>> public Nullable<System.DateTime> Expiry { get; set; } >>>>>>>> public string Side { get; set; } >>>>>>>> public Nullable<System.DateTime> Comodity1Month { get; set; >>>>>>>> } >>>>>>>> public Nullable<System.DateTime> Comodity2Month { get; set; >>>>>>>> } >>>>>>>> public Nullable<double> Asset1 { get; set; } >>>>>>>> public Nullable<double> Asset2 { get; set; } >>>>>>>> public Nullable<long> QtyAsset1 { get; set; } >>>>>>>> public Nullable<long> QtyAsset2 { get; set; } >>>>>>>> public Nullable<double> StrikePrice { get; set; } >>>>>>>> public Nullable<double> RiskFreeRate { get; set; } >>>>>>>> public Nullable<double> CostOfCarry1 { get; set; } >>>>>>>> public Nullable<double> CostOfCarry2 { get; set; } >>>>>>>> public Nullable<double> VolatilityAsset1 { get; set; } >>>>>>>> public Nullable<double> VolatilityAsset2 { get; set; } >>>>>>>> public Nullable<double> FixedPrice { get; set; } >>>>>>>> public Nullable<int> BUID { get; set; } >>>>>>>> public Nullable<int> PortfolioID { get; set; } >>>>>>>> public Nullable<int> StrategyID { get; set; } >>>>>>>> public Nullable<int> CPID { get; set; } >>>>>>>> public Nullable<int> TraderID { get; set; } >>>>>>>> public Nullable<int> InsTypeID { get; set; } >>>>>>>> public string ListOfAllIndexText { get; set; } >>>>>>>> public Nullable<System.DateTime> MvStartMonth { get; set; } >>>>>>>> public string SourceSysName { get; set; } >>>>>>>> public Nullable<System.DateTime> EndOfDayDate { get; set; } >>>>>>>> public Nullable<int> DealSideGPID { get; set; } >>>>>>>> public Nullable<int> ProfileID { get; set; } >>>>>>>> public Nullable<int> InstrumentSeqNo { get; set; } >>>>>>>> public Nullable<int> InstrumentSourceID { get; set; } >>>>>>>> public string EventSourceName { get; set; } >>>>>>>> public string CFlowTypeID { get; set; } >>>>>>>> public string RTStatName { get; set; } >>>>>>>> public string TranStatName { get; set; } >>>>>>>> public Nullable<long> SequenceNo { get; set; } >>>>>>>> public Nullable<System.DateTime> TimeStamp { get; set; } >>>>>>>> public Nullable<int> CustomTransHeaderID { get; set; } >>>>>>>> public int CustomTransDetailID { get; set; } >>>>>>>> public string IndexName1 { get; set; } >>>>>>>> public string IndexName2 { get; set; } >>>>>>>> public Nullable<double> LTD_PNL { get; set; } >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> public override void LoadCache(Action<object, object> act, params >>>>>>>> object[] args) >>>>>>>> { >>>>>>>> try { >>>>>>>> var customTxnDetailsList = >>>>>>>> entities.CustomTransactionsDetails; >>>>>>>> // Iterate over whole underlying store and call act >>>>>>>> on each entry to load it into the cache. >>>>>>>> foreach (CustomTransactionsDetail entry in >>>>>>>> customTxnDetailsList) >>>>>>>> { >>>>>>>> Console.WriteLine("Adding to cache: {0}", >>>>>>>> entry.CustomTransDetailID); >>>>>>>> act(entry.CustomTransDetailID, entry); >>>>>>>> >>>>>>>> } >>>>>>>> }catch(Exception e) >>>>>>>> { >>>>>>>> Console.WriteLine("Exception is {0}", e); >>>>>>>> } >>>>>>>> >>>>>>>> } >>>>>>>> >>>>>>>> static void Main(string[] args) >>>>>>>> { >>>>>>>> var cfg = new IgniteConfiguration >>>>>>>> { >>>>>>>> SpringConfigUrl = >>>>>>>> @"C:\Data\Professional\dotnet\workspace\MyIgnite\MyIgniteConsole\config\ignite.xml", >>>>>>>> JvmOptions = new List<string> { "-Xms512m", >>>>>>>> "-Xmx1024m" } >>>>>>>> }; >>>>>>>> //Ignition.ClientMode = true; >>>>>>>> using (var ignite = Ignition.Start(cfg)) >>>>>>>> { >>>>>>>> Console.WriteLine(">>> Cache query example >>>>>>>> started"); >>>>>>>> var cache = ignite.GetCache<int, >>>>>>>> CustomTransactionsDetail>(null); >>>>>>>> >>>>>>>> cache.LoadCache(null); >>>>>>>> >>>>>>>> Console.ReadLine(); >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> Console.ReadLine(); >>>>>>>> } >>>>>>>> >>>>>>>> There are no other parts to these files. These POCOs are generated >>>>>>>> by Entity Framework. Please let me know if you need additional >>>>>>>> information. >>>>>>>> >>>>>>>> Satya. >>>>>>>> >>>>>>>> On Mon, Apr 4, 2016 at 8:11 AM, Pavel Tupitsyn < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Satya, >>>>>>>>> >>>>>>>>> In your code above there is "act(entry.personDetailID, entry);", >>>>>>>>> but there is no personDetailID member in the CustomTransactionsDetail >>>>>>>>> class. >>>>>>>>> Are you sure this is the correct one? Also, it is a partial class >>>>>>>>> - are there any parts in other files? >>>>>>>>> >>>>>>>>> Can you attach full source code of your application? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Pavel. >>>>>>>>> >>>>>>>>> On Mon, Apr 4, 2016 at 2:59 PM, Murthy Kakarlamudi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Below is my entity. I am not doing any serialization currently >>>>>>>>>> while storing in the cache. >>>>>>>>>> >>>>>>>>>> namespace MyIgnite >>>>>>>>>> { >>>>>>>>>> using System; >>>>>>>>>> using System.Collections.Generic; >>>>>>>>>> >>>>>>>>>> public partial class CustomTransactionsDetail >>>>>>>>>> { >>>>>>>>>> public Nullable<int> TransactionID { get; set; } >>>>>>>>>> public string TypeName { get; set; } >>>>>>>>>> public Nullable<System.DateTime> Expiry { get; set; } >>>>>>>>>> public string Side { get; set; } >>>>>>>>>> public Nullable<System.DateTime> TimeStamp { get; set; } >>>>>>>>>> public Nullable<int> CustomTransHeaderID { get; set; } >>>>>>>>>> public int CustomTransDetailID { get; set; } >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Satya. >>>>>>>>>> >>>>>>>>>> On Mon, Apr 4, 2016 at 7:50 AM, Pavel Tupitsyn < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Satya, >>>>>>>>>>> >>>>>>>>>>> Looks like exception comes from your entity member(s) during >>>>>>>>>>> serialization. >>>>>>>>>>> >>>>>>>>>>> Can you please attach your entity class code? >>>>>>>>>>> * Does it have any navigation properties that may cause SQL >>>>>>>>>>> queries? >>>>>>>>>>> * How do you serialize it in Ignite? (Do you implement >>>>>>>>>>> IBinarizable?) >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> >>>>>>>>>>> Pavel. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Mon, Apr 4, 2016 at 2:13 PM, Murthy Kakarlamudi < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Pavel, >>>>>>>>>>>> Thanks for your response. I stepped through the LoadCache >>>>>>>>>>>> method in debug mode and noticed that it is failing at the act() >>>>>>>>>>>> method. >>>>>>>>>>>> Below is my code for LoacCache. >>>>>>>>>>>> >>>>>>>>>>>> public override void LoadCache(Action<object, object> act, >>>>>>>>>>>> params object[] args) >>>>>>>>>>>> { >>>>>>>>>>>> var personDetailsList = entities.personDetails; >>>>>>>>>>>> // Iterate over whole underlying store and call act >>>>>>>>>>>> on each entry to load it into the cache. >>>>>>>>>>>> foreach (personDetail entry in personDetailsList) >>>>>>>>>>>> { >>>>>>>>>>>> Console.WriteLine("Adding to cache: " + >>>>>>>>>>>> entry.personDetailID); >>>>>>>>>>>> act(entry.personDetailID, entry); >>>>>>>>>>>> >>>>>>>>>>>> } >>>>>>>>>>>> >>>>>>>>>>>> } >>>>>>>>>>>> >>>>>>>>>>>> I can see the statement: "Adding to cache: " in the node >>>>>>>>>>>> output and the control hangs at the next line executing the "act" >>>>>>>>>>>> method >>>>>>>>>>>> and then it throws SQLException Timeout. Not sure why the "act" >>>>>>>>>>>> method is >>>>>>>>>>>> taking so much time to store the entries in cache. >>>>>>>>>>>> >>>>>>>>>>>> For testing, I commented out "act" statement and the program >>>>>>>>>>>> completed looping through all the entries returned by Entity >>>>>>>>>>>> Framework >>>>>>>>>>>> without any errors. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Satya. >>>>>>>>>>>> >>>>>>>>>>>> On Mon, Apr 4, 2016 at 4:40 AM, Pavel Tupitsyn < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Satya, >>>>>>>>>>>>> >>>>>>>>>>>>> "*Timeout expired. The timeout period elapsed prior to >>>>>>>>>>>>> completion of the operation or the server is not responding.*" >>>>>>>>>>>>> This is an SQL exception. Please make sure that your entity >>>>>>>>>>>>> connection works. >>>>>>>>>>>>> You can set a breakpoint on the first line of LoadCache >>>>>>>>>>>>> method, step over your code and see what happens. Or wrap it in >>>>>>>>>>>>> try-catch >>>>>>>>>>>>> block. >>>>>>>>>>>>> >>>>>>>>>>>>> Meanwhile, looks like cache store error messages are not very >>>>>>>>>>>>> informative. >>>>>>>>>>>>> I've added a Jira ticket, we'll fix it shortly: >>>>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-2943 >>>>>>>>>>>>> >>>>>>>>>>>>> Thank you, >>>>>>>>>>>>> >>>>>>>>>>>>> Pavel >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, Apr 4, 2016 at 7:07 AM, Murthy Kakarlamudi < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hello all, >>>>>>>>>>>>>> I was able to resolve the error I posted above. I had to >>>>>>>>>>>>>> basically add the relevant EntityFramwork references in the >>>>>>>>>>>>>> solution that >>>>>>>>>>>>>> runs my Ignite server node. After successfully creating the >>>>>>>>>>>>>> cache, however >>>>>>>>>>>>>> I am running into the below timeout issue: >>>>>>>>>>>>>> >>>>>>>>>>>>>> [00:02:37] Ignite node started OK (id=cf8c5e00) >>>>>>>>>>>>>> [00:02:37] Topology snapshot [ver=1, servers=1, clients=0, >>>>>>>>>>>>>> CPUs=4, heap=0.89GB] >>>>>>>>>>>>>> *>>> Cache query example started* >>>>>>>>>>>>>> *Adding to cache: 228505* >>>>>>>>>>>>>> [00:03:10,524][SEVERE][pub-#10%null%][GridJobWorker] Failed >>>>>>>>>>>>>> to execute job >>>>>>>>>>>>>> [jobId=bcc9f6fd351-cf8c5e00-c86f-4e58-b0ad-6754896baf34, >>>>>>>>>>>>>> ses=GridJobSessionImpl [ses=GridTaskSessionImpl >>>>>>>>>>>>>> [taskName=o.a.i.i.processors.cache.GridCacheAdapter$LoadCacheClosure, >>>>>>>>>>>>>> dep=LocalDeployment [super=GridDeployment [ts=1459742547098, >>>>>>>>>>>>>> depMode=SHARED, clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, >>>>>>>>>>>>>> clsLdrId=a9c9f6fd351-cf8c5e00-c86f-4e58-b0ad-6754896baf34, >>>>>>>>>>>>>> userVer=0, >>>>>>>>>>>>>> loc=true, sampleClsName=java.lang.String, pendingUndeploy=false, >>>>>>>>>>>>>> undeployed=false, usage=0]], >>>>>>>>>>>>>> taskClsName=o.a.i.i.processors.cache.GridCacheAdapter$LoadCacheClosure, >>>>>>>>>>>>>> sesId=acc9f6fd351-cf8c5e00-c86f-4e58-b0ad-6754896baf34, >>>>>>>>>>>>>> startTime=1459742557568, endTime=9223372036854775807, >>>>>>>>>>>>>> taskNodeId=cf8c5e00-c86f-4e58-b0ad-6754896baf34, >>>>>>>>>>>>>> clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, >>>>>>>>>>>>>> closed=false, cpSpi=null, failSpi=null, loadSpi=null, usage=1, >>>>>>>>>>>>>> fullSup=false, subjId=cf8c5e00-c86f-4e58-b0ad-6754896baf34, >>>>>>>>>>>>>> mapFut=IgniteFuture [orig=GridFutureAdapter [resFlag=0, res=null, >>>>>>>>>>>>>> startTime=1459742557584, endTime=0, ignoreInterrupts=false, >>>>>>>>>>>>>> lsnr=null, >>>>>>>>>>>>>> state=INIT]]], >>>>>>>>>>>>>> jobId=bcc9f6fd351-cf8c5e00-c86f-4e58-b0ad-6754896baf34]] >>>>>>>>>>>>>> class org.apache.ignite.IgniteException: class >>>>>>>>>>>>>> org.apache.ignite.IgniteException: Timeout expired. The timeout >>>>>>>>>>>>>> period >>>>>>>>>>>>>> elapsed prior to completion of the operation or the server is not >>>>>>>>>>>>>> responding. >>>>>>>>>>>>>> at >>>>>>>>>>>>>> org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1792 >>>>>>>>>>>>>> >>>>>>>>>>>>>> Apache.Ignite.Core.Cache.Store.CacheStoreException was >>>>>>>>>>>>>> unhandled >>>>>>>>>>>>>> HResult=-2146233088 >>>>>>>>>>>>>> Message=class org.apache.ignite.IgniteException: *Timeout >>>>>>>>>>>>>> expired. The timeout period elapsed prior to completion of the >>>>>>>>>>>>>> operation >>>>>>>>>>>>>> or the server is not responding.* >>>>>>>>>>>>>> Source=Apache.Ignite.Core >>>>>>>>>>>>>> StackTrace: >>>>>>>>>>>>>> at >>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.Error(Void* >>>>>>>>>>>>>> target, >>>>>>>>>>>>>> Int32 errType, SByte* errClsChars, Int32 errClsCharsLen, SByte* >>>>>>>>>>>>>> errMsgChars, Int32 errMsgCharsLen, Void* errData, Int32 >>>>>>>>>>>>>> errDataLen) >>>>>>>>>>>>>> at >>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Unmanaged.IgniteJniNativeMethods.TargetInStreamOutLong(Void* >>>>>>>>>>>>>> ctx, Void* target, Int32 opType, Int64 memPtr) >>>>>>>>>>>>>> at >>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.TargetInStreamOutLong(IUnmanagedTarget >>>>>>>>>>>>>> target, Int32 opType, Int64 memPtr) >>>>>>>>>>>>>> at >>>>>>>>>>>>>> Apache.Ignite.Core.Impl.PlatformTarget.DoOutOp(Int32 type, >>>>>>>>>>>>>> Action`1 action) >>>>>>>>>>>>>> at MyIgniteConsole.Program.Main(String[] args) in >>>>>>>>>>>>>> C:\Data\Professional\dotnet\workspace\MyIgnite\MyIgniteConsole\Program.cs:line >>>>>>>>>>>>>> 29 >>>>>>>>>>>>>> at System.AppDomain._nExecuteAssembly(RuntimeAssembly >>>>>>>>>>>>>> assembly, String[] args) >>>>>>>>>>>>>> at System.AppDomain.ExecuteAssembly(String >>>>>>>>>>>>>> assemblyFile, Evidence assemblySecurity, String[] args) >>>>>>>>>>>>>> at >>>>>>>>>>>>>> Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() >>>>>>>>>>>>>> at >>>>>>>>>>>>>> System.Threading.ExecutionContext.RunInternal(ExecutionContext >>>>>>>>>>>>>> executionContext, ContextCallback callback, Object state, Boolean >>>>>>>>>>>>>> preserveSyncCtx) >>>>>>>>>>>>>> at >>>>>>>>>>>>>> System.Threading.ExecutionContext.Run(ExecutionContext >>>>>>>>>>>>>> executionContext, >>>>>>>>>>>>>> ContextCallback callback, Object state, Boolean preserveSyncCtx) >>>>>>>>>>>>>> at >>>>>>>>>>>>>> System.Threading.ExecutionContext.Run(ExecutionContext >>>>>>>>>>>>>> executionContext, >>>>>>>>>>>>>> ContextCallback callback, Object state) >>>>>>>>>>>>>> at System.Threading.ThreadHelper.ThreadStart() >>>>>>>>>>>>>> InnerException: >>>>>>>>>>>>>> >>>>>>>>>>>>>> From my main program, I am making below call: >>>>>>>>>>>>>> cache.LoadCache(null); >>>>>>>>>>>>>> >>>>>>>>>>>>>> In my store implementation I have the following overide >>>>>>>>>>>>>> method: >>>>>>>>>>>>>> public override void LoadCache(Action<object, object> act, >>>>>>>>>>>>>> params object[] args) >>>>>>>>>>>>>> { >>>>>>>>>>>>>> var personDetailsList = entities.personDetails; >>>>>>>>>>>>>> // Iterate over whole underlying store and call >>>>>>>>>>>>>> act on each entry to load it into the cache. >>>>>>>>>>>>>> foreach (personDetail entry in personDetailsList) >>>>>>>>>>>>>> { >>>>>>>>>>>>>> Console.WriteLine("Adding to cache: " + >>>>>>>>>>>>>> entry.personDetailID); >>>>>>>>>>>>>> act(entry.personDetailID, entry); >>>>>>>>>>>>>> >>>>>>>>>>>>>> } >>>>>>>>>>>>>> >>>>>>>>>>>>>> } >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> thanks in advance for your help... >>>>>>>>>>>>>> >>>>>>>>>>>>>> Satya. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Sat, Apr 2, 2016 at 11:49 AM, Murthy Kakarlamudi < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>> In my .NET application, I have an underlying SQL Server >>>>>>>>>>>>>>> DB that I am planning to access using Ignite Persistence >>>>>>>>>>>>>>> feature. I was >>>>>>>>>>>>>>> following the StoreExample provided in the examples and created >>>>>>>>>>>>>>> the ignite >>>>>>>>>>>>>>> configuration accordingly. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> <property name="cacheConfiguration"> >>>>>>>>>>>>>>> <list> >>>>>>>>>>>>>>> <bean >>>>>>>>>>>>>>> class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>>>>>>>>>>> <property name="writeThrough" value="true"/> >>>>>>>>>>>>>>> <property name="readThrough" value="true"/> >>>>>>>>>>>>>>> <property name="cacheStoreFactory"> >>>>>>>>>>>>>>> <bean >>>>>>>>>>>>>>> class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory"> >>>>>>>>>>>>>>> <property name="typeName" >>>>>>>>>>>>>>> value="MyIgnite.SQLServerStore, MyIgnite"/> >>>>>>>>>>>>>>> </bean> >>>>>>>>>>>>>>> </property> >>>>>>>>>>>>>>> </bean> >>>>>>>>>>>>>>> </list> >>>>>>>>>>>>>>> </property> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> My SQLServerStore which is part of MyIgnite dll is as below. >>>>>>>>>>>>>>> I am using EntityFramework as ORM to access underlying >>>>>>>>>>>>>>> SQLServer. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> class SQLServerStore : CacheStoreAdapter >>>>>>>>>>>>>>> { >>>>>>>>>>>>>>> private TestEntities entities; >>>>>>>>>>>>>>> public SQLServerStore() >>>>>>>>>>>>>>> { >>>>>>>>>>>>>>> entities = new TestEntities(); >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> /// <summary> >>>>>>>>>>>>>>> /// Loads all values from underlying persistent >>>>>>>>>>>>>>> storage. >>>>>>>>>>>>>>> /// This method gets called as a result of <see >>>>>>>>>>>>>>> cref="ICache{TK,TV}.LoadCache"/> call. >>>>>>>>>>>>>>> /// </summary> >>>>>>>>>>>>>>> /// <param name="act">Action that loads a cache >>>>>>>>>>>>>>> entry.</param> >>>>>>>>>>>>>>> /// <param name="args">Optional arguments.</param> >>>>>>>>>>>>>>> public override void LoadCache(Action<object, >>>>>>>>>>>>>>> object> act, params object[] args) >>>>>>>>>>>>>>> { >>>>>>>>>>>>>>> var personDetailsList = entities.PersonDetails; >>>>>>>>>>>>>>> // Iterate over whole underlying store and call >>>>>>>>>>>>>>> act on each entry to load it into the cache. >>>>>>>>>>>>>>> foreach (personDetail entry in personDetailsList) >>>>>>>>>>>>>>> { >>>>>>>>>>>>>>> act(entry.personD, entry); >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Whwn I try to run the above, I am getting the below error. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Apache.Ignite.Core.Common.IgniteException was unhandled >>>>>>>>>>>>>>> HResult=-2146233088 >>>>>>>>>>>>>>> Message=Exception has been thrown by the target of an >>>>>>>>>>>>>>> invocation. >>>>>>>>>>>>>>> Source=Apache.Ignite.Core >>>>>>>>>>>>>>> StackTrace: >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.Error(Void* >>>>>>>>>>>>>>> target, >>>>>>>>>>>>>>> Int32 errType, SByte* errClsChars, Int32 errClsCharsLen, SByte* >>>>>>>>>>>>>>> errMsgChars, Int32 errMsgCharsLen, Void* errData, Int32 >>>>>>>>>>>>>>> errDataLen) >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Unmanaged.IgniteJniNativeMethods.IgnitionStart(Void* >>>>>>>>>>>>>>> ctx, SByte* cfgPath, SByte* gridName, Int32 factoryId, Int64 >>>>>>>>>>>>>>> dataPtr) >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.IgnitionStart(UnmanagedContext >>>>>>>>>>>>>>> ctx, String cfgPath, String gridName, Boolean clientMode) >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> Apache.Ignite.Core.Ignition.Start(IgniteConfiguration cfg) >>>>>>>>>>>>>>> at MyIgniteConsole.Program.Main(String[] args) in >>>>>>>>>>>>>>> C:\Data\Professional\dotnet\workspace\MyIgnite\MyIgniteConsole\Program.cs:line >>>>>>>>>>>>>>> 21 >>>>>>>>>>>>>>> at System.AppDomain._nExecuteAssembly(RuntimeAssembly >>>>>>>>>>>>>>> assembly, String[] args) >>>>>>>>>>>>>>> at System.AppDomain.ExecuteAssembly(String >>>>>>>>>>>>>>> assemblyFile, Evidence assemblySecurity, String[] args) >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> System.Threading.ExecutionContext.RunInternal(ExecutionContext >>>>>>>>>>>>>>> executionContext, ContextCallback callback, Object state, >>>>>>>>>>>>>>> Boolean >>>>>>>>>>>>>>> preserveSyncCtx) >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> System.Threading.ExecutionContext.Run(ExecutionContext >>>>>>>>>>>>>>> executionContext, >>>>>>>>>>>>>>> ContextCallback callback, Object state, Boolean preserveSyncCtx) >>>>>>>>>>>>>>> at >>>>>>>>>>>>>>> System.Threading.ExecutionContext.Run(ExecutionContext >>>>>>>>>>>>>>> executionContext, >>>>>>>>>>>>>>> ContextCallback callback, Object state) >>>>>>>>>>>>>>> at System.Threading.ThreadHelper.ThreadStart() >>>>>>>>>>>>>>> InnerException: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Any help would be appreciated. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>> Satya. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
