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. >>>>>> >>>>> >>>>> >>>> >>> >> >
