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 <[email protected]> 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.
>

Reply via email to