Ohh..missed that..sorry...thanks for the clarification. On Tue, Apr 5, 2016 at 7:09 AM, Pavel Tupitsyn <[email protected]> wrote:
> Please see my reply above. Yes, you can set IGNITE_H2_DEBUG_CONSOLE > environment > variable to open the console from .NET. > > On Tue, Apr 5, 2016 at 1:32 PM, Murthy Kakarlamudi <[email protected]> > wrote: > >> 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. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
