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