ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Murthy Kakarlamudi <ksa...@gmail.com>
Subject Re: SQLServer Persistence Store Error
Date Mon, 04 Apr 2016 11:13:03 GMT
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 <ptupitsyn@gridgain.com>
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 <ksatya@gmail.com>
> 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 <ksatya@gmail.com>
>> 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.
>>>
>>
>>
>

Mime
View raw message