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