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 Tue, 05 Apr 2016 10:32:18 GMT
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 <ptupitsyn@gridgain.com>
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 <ptupitsyn@gridgain.com>
> 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 <ksatya@gmail.com>
>> 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 <ksatya@gmail.com>
>>> 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 <ptupitsyn@gridgain.com
>>>> > 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 <ksatya@gmail.com>
>>>>> 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 <
>>>>>> ptupitsyn@gridgain.com> 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 <ksatya@gmail.com
>>>>>>> > 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 <
>>>>>>>> ptupitsyn@gridgain.com> 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 <
>>>>>>>>> ksatya@gmail.com> 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 <
>>>>>>>>>> ptupitsyn@gridgain.com> 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
<
>>>>>>>>>>> ksatya@gmail.com> 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
<
>>>>>>>>>>>> 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