Hi Pavel, You are absolutely right. I had 2 config files and I indeed am referring to wrong version. I copied and pasted and VS and instead of creating a new file, it created a link. Thanks for helping me out.
Based on your suggestion that the valueType needs to be unqualified without the namespace, the documentation needs an update. I was basically following that as an example. But without namespace qualification, doesn't that force an user to create unique classnames? <bean class="org.apache.ignite.cache.CacheTypeMetadata"> <!-- Type to query. --> <property name="valueType" value="org.apache.ignite.examples.datagrid.store.Person"/> <!-- Fields to be queried. --> On Mon, Apr 11, 2016 at 4:36 AM, Pavel Tupitsyn <ptupit...@gridgain.com> wrote: > Satya, I can run your solution without errors with fixed config. > This means that you don't actually use the config above for your nodes. > Something else gets loaded for some reason. > > Please do the following: > * Make sure that SpringConfigUrl points to the updated file everywhere you > use it. > * Replace GetOrCreateCache with GetCache. This will ensure that cache is > retrieved from config, not started dynamically. > > Pavel. > > > On Sun, Apr 10, 2016 at 4:48 PM, Murthy Kakarlamudi <ksa...@gmail.com> > wrote: > >> Hi Pavel...Thanks for the update. I seem to be doing something wrong. I >> am still getting the same error even after applying the update you >> suggested. Not sure if the way I specified the types for the columns in >> java matched against definitions in SQL Server. I am attaching below the >> column types from SQL Server. >> >> [image: Inline image 1] >> >> Below is the updated config xml >> <property name="cacheConfiguration"> >> <list> >> <bean class="org.apache.ignite.configuration.CacheConfiguration"> >> <property name="name" value="BU"/> >> <property name="writeThrough" value="true"/> >> <property name="readThrough" value="true"/> >> <property name="writeBehindEnabled" value="true"/> >> <property name="writeBehindFlushFrequency" value="120000"/> >> <property name="cacheStoreFactory"> >> <bean >> class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory"> >> <property name="typeName" >> value="TestIgniteDAL.SQLServerStore, TestIgniteDAL"/> >> </bean> >> </property> >> <property name ="typeMetadata"> >> <list> >> <bean class="org.apache.ignite.cache.CacheTypeMetadata"> >> <!-- Type to query. --> >> *<property name="valueType" value="BusinessUnit"/>* >> <!-- Fields to be queried. --> >> <property name="queryFields"> >> <map> >> <entry key="BUID" value="java.lang.Long"/> >> <entry key="BUName" value="java.lang.String"/> >> <entry key="CreatedByID" value="java.lang.Long"/> >> <entry key="CreatedDate" value="java.util.Date"/> >> <entry key="ModifiedByID" value="java.lang.Long"/> >> <entry key="ModifiedDate" value="java.util.Date"/> >> </map> >> </property> >> <!-- Fields to index in ascending order. --> >> <property name="ascendingFields"> >> <map> >> <entry key="BUID" value="java.lang.Long"/> >> </map> >> </property> >> </bean> >> </list> >> </property> >> </bean> >> </list> >> </property> >> >> Is there a different way to specify the indexed type? In java, I can >> specify at the CacheConfiguration object leve, but .NET API had no such >> method and spring config seems to be the only way unless I am missing >> anything. >> >> Your help is much appreciated, >> Satya. >> >> On Sun, Apr 10, 2016 at 9:23 AM, Pavel Tupitsyn <ptupit...@gridgain.com> >> wrote: >> >>> Looks like the problem is here: >>> <property name="valueType" value="TestIgniteDAL.BusinessUnit"/> >>> >>> Ignite uses type name without namespace in queries and binary objects, >>> so correct line would be >>> >>> <property name="valueType" value="BusinessUnit"/> >>> >>> Let me know if this helps. >>> >>> Pavel. >>> >>> >>> On Sun, Apr 10, 2016 at 1:16 PM, Murthy Kakarlamudi <ksa...@gmail.com> >>> wrote: >>> >>>> Hi Pavel, >>>> Below is the link to download the solution. The attached solution >>>> has 4 projects. TestIgniteServer is used to start Ignite node in server >>>> mode. TestIgniteSQLClient is used to start Ignite in client mode and >>>> execute the sql query against the cache. >>>> >>>> https://drive.google.com/open?id=0B8lM91-_3MwRYUxqX2ZHU0thRmc >>>> >>>> Thanks again for your help, >>>> Satya. >>>> >>>> On Sun, Apr 10, 2016 at 2:33 AM, Pavel Tupitsyn <ptupit...@gridgain.com >>>> > wrote: >>>> >>>>> Satya, there is some issue with configuration in your code. Looks like >>>>> you use different XML than provided above. Make sure the path is correct. >>>>> Or, you can attach your entire solution, and I'll take a look. >>>>> >>>>> Pavel. >>>>> >>>>> On Sat, Apr 9, 2016 at 7:29 PM, Murthy Kakarlamudi <ksa...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hi Pavel, >>>>>> Is that the only change needed? I added that property and I am >>>>>> still getting the same error. >>>>>> >>>>>> <property name="cacheConfiguration"> >>>>>> <list> >>>>>> <bean >>>>>> class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>> *<property name="name" value="BU"/>* >>>>>> <property name="writeThrough" value="true"/> >>>>>> <property name="readThrough" value="true"/> >>>>>> <property name="writeBehindEnabled" value="true"/> >>>>>> <property name="writeBehindFlushFrequency" value="120000"/> >>>>>> <property name="cacheStoreFactory"> >>>>>> <bean >>>>>> class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory"> >>>>>> <property name="typeName" >>>>>> value="TestIgniteDAL.SQLServerStore, TestIgniteDAL"/> >>>>>> </bean> >>>>>> </property> >>>>>> <property name ="typeMetadata"> >>>>>> <list> >>>>>> <bean class="org.apache.ignite.cache.CacheTypeMetadata"> >>>>>> <!-- Type to query. --> >>>>>> <property name="valueType" >>>>>> value="TestIgniteDAL.BusinessUnit"/> >>>>>> <!-- Fields to be queried. --> >>>>>> <property name="queryFields"> >>>>>> <map> >>>>>> <entry key="BUID" value="java.lang.Long"/> >>>>>> <entry key="BUName" value="java.lang.String"/> >>>>>> <entry key="CreatedByID" value="java.lang.Long"/> >>>>>> <entry key="CreatedDate" value="java.util.Date"/> >>>>>> <entry key="ModifiedByID" value="java.lang.Long"/> >>>>>> <entry key="ModifiedDate" value="java.util.Date"/> >>>>>> </map> >>>>>> </property> >>>>>> <!-- Fields to index in ascending order. --> >>>>>> <property name="ascendingFields"> >>>>>> <map> >>>>>> <entry key="BUID" value="java.lang.Long"/> >>>>>> </map> >>>>>> </property> >>>>>> </bean> >>>>>> </list> >>>>>> </property> >>>>>> </bean> >>>>>> </list> >>>>>> </property> >>>>>> >>>>>> Apache.Ignite.Core.Common.IgniteException was unhandled >>>>>> HResult=-2146233088 >>>>>> Message=Indexing is disabled for cache: BU. Use setIndexedTypes or >>>>>> setTypeMetadata methods on CacheConfiguration to enable. >>>>>> 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.CacheOutOpQueryCursor(Void* >>>>>> ctx, Void* obj, Int32 type, Int64 memPtr) >>>>>> at >>>>>> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.CacheOutOpQueryCursor(IUnmanagedTarget >>>>>> target, Int32 type, Int64 memPtr) >>>>>> at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.Query(QueryBase >>>>>> qry) >>>>>> at TestIgniteSQLClient.IgniteSQLClient.Main(String[] args) in >>>>>> C:\Data\Professional\dotnet\workspace\TestIgnite\TestIgniteSQLClient\IgniteSQLClient.cs:line >>>>>> 34 >>>>>> InnerException: >>>>>> >>>>>> >>>>>> On Sat, Apr 9, 2016 at 11:32 AM, Pavel Tupitsyn < >>>>>> ptupit...@gridgain.com> wrote: >>>>>> >>>>>>> Hi Satya, >>>>>>> >>>>>>> > Indexing is disabled for cache: BU. >>>>>>> In the XML configuration, please set cache name like this: >>>>>>> >>>>>>> ... >>>>>>> <bean class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>>> <property name="name" value="BU"/> >>>>>>> ... >>>>>>> >>>>>>> >>>>>>> > do I have to specify the column type classes in java(ex >>>>>>> java.lang.Long etc) in the config xml even if I am working in .NET world >>>>>>> Yes, in 1.5, using Spring XML and Java types is the only way. >>>>>>> This is already fixed, and in upcoming Ignite 1.6 everything can be >>>>>>> configured right from C#. >>>>>>> >>>>>>> Thanks, >>>>>>> Pavel. >>>>>>> >>>>>>> On Sat, Apr 9, 2016 at 5:10 PM, Murthy Kakarlamudi <ksa...@gmail.com >>>>>>> > wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> I am running into below error trying to run SqlQuery in .NET. >>>>>>>> >>>>>>>> Apache.Ignite.Core.Common.IgniteException was unhandled >>>>>>>> HResult=-2146233088 >>>>>>>> Message=Indexing is disabled for cache: BU. Use setIndexedTypes >>>>>>>> or setTypeMetadata methods on CacheConfiguration to enable. >>>>>>>> Source=Apache.Ignite.Core >>>>>>>> >>>>>>>> I am storing the entity created by Entity Framework in cache and >>>>>>>> trying to query that POCO. Below are my Ignite config xml and the >>>>>>>> query I >>>>>>>> am using. >>>>>>>> >>>>>>>> <property name="cacheConfiguration"> >>>>>>>> <list> >>>>>>>> <bean >>>>>>>> class="org.apache.ignite.configuration.CacheConfiguration"> >>>>>>>> <property name="writeThrough" value="true"/> >>>>>>>> <property name="readThrough" value="true"/> >>>>>>>> <property name="writeBehindEnabled" value="true"/> >>>>>>>> <property name="writeBehindFlushFrequency" >>>>>>>> value="120000"/> >>>>>>>> <property name="cacheStoreFactory"> >>>>>>>> <bean >>>>>>>> class="org.apache.ignite.platform.dotnet.PlatformDotNetCacheStoreFactory"> >>>>>>>> <property name="typeName" >>>>>>>> value="TestIgniteDAL.SQLServerStore, TestIgniteDAL"/> >>>>>>>> </bean> >>>>>>>> </property> >>>>>>>> <property name ="typeMetadata"> >>>>>>>> <list> >>>>>>>> <bean >>>>>>>> class="org.apache.ignite.cache.CacheTypeMetadata"> >>>>>>>> <!-- Type to query. --> >>>>>>>> <property name="valueType" >>>>>>>> value="TestIgniteDAL.BusinessUnit"/> >>>>>>>> <!-- Fields to be queried. --> >>>>>>>> <property name="queryFields"> >>>>>>>> <map> >>>>>>>> <entry key="BUID" value="java.lang.Long"/> >>>>>>>> <entry key="BUName" value="java.lang.String"/> >>>>>>>> <entry key="CreatedByID" >>>>>>>> value="java.lang.Long"/> >>>>>>>> <entry key="CreatedDate" >>>>>>>> value="java.util.Date"/> >>>>>>>> <entry key="ModifiedByID" >>>>>>>> value="java.lang.Long"/> >>>>>>>> <entry key="ModifiedDate" >>>>>>>> value="java.util.Date"/> >>>>>>>> </map> >>>>>>>> </property> >>>>>>>> <!-- Fields to index in ascending order. --> >>>>>>>> <property name="ascendingFields"> >>>>>>>> <map> >>>>>>>> <entry key="BUID" value="java.lang.Long"/> >>>>>>>> </map> >>>>>>>> </property> >>>>>>>> </bean> >>>>>>>> </list> >>>>>>>> </property> >>>>>>>> </bean> >>>>>>>> </list> >>>>>>>> </property> >>>>>>>> >>>>>>>> using (var ignite = Ignition.Start(cfg)) >>>>>>>> { >>>>>>>> Console.WriteLine(">>> Cache query example >>>>>>>> started"); >>>>>>>> var cache = ignite.GetCache<int, >>>>>>>> BusinessUnit>("BU"); >>>>>>>> var qry = cache.Query(new >>>>>>>> SqlQuery(typeof(BusinessUnit),"BUID=?",5)); >>>>>>>> foreach(var bu in qry) >>>>>>>> { >>>>>>>> Console.WriteLine(bu); >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> Also, do I have to specify the column type classes in java(ex >>>>>>>> java.lang.Long etc) in the config xml even if I am working in .NET >>>>>>>> world. >>>>>>>> Or can I use .NET equivalent classes from the POCO that was generated >>>>>>>> from >>>>>>>> Entity Framework? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Satya. >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >