Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-07 Thread chevy
Thanks for the help Sergi. I ran jps and found a thread hanging which had
skipped my exit criteria. Started working after I killed it.



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/class-org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp7543p7585.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread Sergi Vladykin
Yes, it still complains about TODAY field which must not exist anymore. You
need to make sure that Ignite picks up the latest code.
I'm not sure how to achieve that in your environment, never experienced
problems like this, but there are some ideas: run jps and check that no
Ignite nodes are alive, checkout and rebuild your project sources from
scratch, etc...

Sergi

2016-09-06 21:44 GMT+03:00 chevy :

> [00:13:05,916][SEVERE][main][IgniteKernal] Got exception while starting
> (will rollback startup routine).
>
> class org.apache.ignite.IgniteCheckedException: Failed to register query
> type: TypeDescriptor [name=SalesModel, fields={id=class java.lang.String,
> storeId=class java.lang.Integer, date=class java.lang.String, goal=class
> java.lang.Double, forecast=class java.lang.Double, hourlySales=interface
> java.util.List, salesDate=class java.lang.String, today=class
> java.lang.Object, tySales=class java.lang.Double, lySales=class
> java.lang.Double, tyTransactionCount=class java.lang.Double,
> lyTransactionCount=class java.lang.Double, tyAverageBasketSize=class
> java.lang.Double, lyAverageBasketSize=class java.lang.Double,
> previousDay=class java.lang.Object, weekToDate=class java.lang.Object,
> monthToDate=class java.lang.Object}, indexes={storeId_idx=IndexDescriptor
> [type=SORTED], id_idx=IndexDescriptor [type=SORTED]}, fullTextIdx=null,
> keyCls=class java.lang.Integer, valCls=class java.lang.Object,
> valTextIdx=false, registered=false]
>
> at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing.registerType(IgniteH2Indexing.java:1213)
>
> at org.apache.ignite.internal.processors.query.GridQueryProcessor.
> initializeCache(GridQueryProcessor.java:291)
>
> at org.apache.ignite.internal.processors.query.GridQueryProcessor.
> onCacheStart(GridQueryProcessor.java:462)
>
> at org.apache.ignite.internal.processors.cache.
> GridCacheProcessor.startCache(GridCacheProcessor.java:1042)
>
> at org.apache.ignite.internal.processors.cache.GridCacheProcessor.
> onKernalStart(GridCacheProcessor.java:797)
>
> at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:926)
>
> at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(
> IgnitionEx.java:1736)
>
> at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(
> IgnitionEx.java:1589)
>
> at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042)
>
> at org.apache.ignite.internal.IgnitionEx.startConfigurations(
> IgnitionEx.java:964)
>
> at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:850)
>
> at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:749)
>
> at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:619)
>
> at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:589)
>
> at org.apache.ignite.Ignition.start(Ignition.java:347)
>
> at org.apache.ignite.startup.cmdline.CommandLineStartup.
> main(CommandLineStartup.java:302)
>
> Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
> "CREATE TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL OTHER,ID
> VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST DOUBLE,HOURLYSALES
> OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES DOUBLE,LYSALES
> DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT
> DOUBLE,TYAVERAGEBASKETSIZE DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY
> OTHER,WEEKTODATE OTHER,MONTHTODATE OTHER) ENGINE
> ""org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine""
> "; expected "identifier"; SQL statement:
>
> CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id
> VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales
> OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales
> DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount
> DOUBLE,tyAverageBasketSize DOUBLE,lyAverageBasketSize DOUBLE,previousDay
> OTHER,weekToDate OTHER,monthToDate OTHER) engine
> "org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"
> [42001-175]
>
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)
>
> at org.h2.message.DbException.getSyntaxError(DbException.java:197)
>
> at org.h2.command.Parser.readColumnIdentifier(Parser.java:2967)
>
> at org.h2.command.Parser.parseCreateTable(Parser.java:5524)
>
> at org.h2.command.Parser.parseCreate(Parser.java:4003)
>
> at org.h2.command.Parser.parsePrepared(Parser.java:343)
>
> at org.h2.command.Parser.parse(Parser.java:298)
>
> at org.h2.command.Parser.parse(Parser.java:270)
>
> at org.h2.command.Parser.prepareCommand(Parser.java:235)
>
> at org.h2.engine.Session.prepareLocal(Session.

Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread chevy
[00:13:05,916][SEVERE][main][IgniteKernal] Got exception while starting (will 
rollback startup routine).

class org.apache.ignite.IgniteCheckedException: Failed to register query type: 
TypeDescriptor [name=SalesModel, fields={id=class java.lang.String, 
storeId=class java.lang.Integer, date=class java.lang.String, goal=class 
java.lang.Double, forecast=class java.lang.Double, hourlySales=interface 
java.util.List, salesDate=class java.lang.String, today=class java.lang.Object, 
tySales=class java.lang.Double, lySales=class java.lang.Double, 
tyTransactionCount=class java.lang.Double, lyTransactionCount=class 
java.lang.Double, tyAverageBasketSize=class java.lang.Double, 
lyAverageBasketSize=class java.lang.Double, previousDay=class java.lang.Object, 
weekToDate=class java.lang.Object, monthToDate=class java.lang.Object}, 
indexes={storeId_idx=IndexDescriptor [type=SORTED], id_idx=IndexDescriptor 
[type=SORTED]}, fullTextIdx=null, keyCls=class java.lang.Integer, valCls=class 
java.lang.Object, valTextIdx=false, registered=false]

at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.registerType(IgniteH2Indexing.java:1213)

at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.initializeCache(GridQueryProcessor.java:291)

at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart(GridQueryProcessor.java:462)

at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCache(GridCacheProcessor.java:1042)

at 
org.apache.ignite.internal.processors.cache.GridCacheProcessor.onKernalStart(GridCacheProcessor.java:797)

at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:926)

at 
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1736)

at 
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589)

at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042)

at 
org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:964)

at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:850)

at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:749)

at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:619)

at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:589)

at org.apache.ignite.Ignition.start(Ignition.java:347)

at 
org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:302)

Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE 
TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL OTHER,ID 
VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST DOUBLE,HOURLYSALES 
OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES DOUBLE,LYSALES 
DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT DOUBLE,TYAVERAGEBASKETSIZE 
DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY OTHER,WEEKTODATE 
OTHER,MONTHTODATE OTHER) ENGINE 
""org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"" "; 
expected "identifier"; SQL statement:

CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id 
VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales 
OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales 
DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount DOUBLE,tyAverageBasketSize 
DOUBLE,lyAverageBasketSize DOUBLE,previousDay OTHER,weekToDate 
OTHER,monthToDate OTHER) engine 
"org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine" 
[42001-175]

at org.h2.message.DbException.getJdbcSQLException(DbException.java:332)

at org.h2.message.DbException.getSyntaxError(DbException.java:197)

at org.h2.command.Parser.readColumnIdentifier(Parser.java:2967)

at org.h2.command.Parser.parseCreateTable(Parser.java:5524)

at org.h2.command.Parser.parseCreate(Parser.java:4003)

at org.h2.command.Parser.parsePrepared(Parser.java:343)

at org.h2.command.Parser.parse(Parser.java:298)

at org.h2.command.Parser.parse(Parser.java:270)

at org.h2.command.Parser.prepareCommand(Parser.java:235)

at org.h2.engine.Session.prepareLocal(Session.java:436)

at org.h2.engine.Session.prepareCommand(Session.java:379)

at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1138)

at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:168)

at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:156)

at 
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine.createTable(GridH2Table.java:699)

at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.createTable(IgniteH2Indexing.java:1334)

at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.registerType(IgniteH2Indexing.java:1206)

... 15 more

[00:13:05,921][INFO][main][GridTcpRestProtocol] Command protocol successfully 
stopped: TCP binary

[00:13:05,923][WARNING][main][GridCacheIoManager] Failed to unregister ordered 
cache communication handler because it was not found for topi

Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread Sergi Vladykin
Please send the full stack trace of the error you are getting now, may be
it is not really the same.

Sergi

2016-09-06 20:56 GMT+03:00 chevy :

> Your point is true. But I did a maven clean build and also checked error
> and its same error. Not sure why this is happening. Is there any other
> place that maven saves class files? I am running using eclipse.
> --
> Regards,
> Chetan.
>
> From: "Sergi Vladykin [via Apache Ignite Users]" <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=7554&i=0>>
> Date: Tuesday, September 6, 2016 at 9:30 PM
> To: "Chetan.V.Yadav" <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=7554&i=1>>
> Subject: Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException:
> Failed to register query type: TypeDescriptor
>
> I guess it is either not the same error or you run the old code or
> something like this.
>
> Please make sure that there is no mistake: restart clean cluster, rebuild
> the code and run it again.
>
> Sergi
>
> 2016-09-06 16:19 GMT+03:00 Chetan.V.Yadav <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=7553&i=0>>:
>
>> Hi,
>>
>>  I changed the variable to “todayData" from “today” in SalesModel but
>> still getting same error.
>>
>> /** TdyFeedModel: todayData (not-indexed). */
>>
>> @QuerySqlField
>>
>> public TdyFeedModel todayData;
>> --
>> Regards,
>> Chetan.
>>
>> From: Sergi Vladykin <[hidden email]
>> <http:///user/SendEmail.jtp?type=node&node=7553&i=1>>
>> Reply-To: "[hidden email]
>> <http:///user/SendEmail.jtp?type=node&node=7553&i=2>" <[hidden email]
>> <http:///user/SendEmail.jtp?type=node&node=7553&i=3>>
>> Date: Tuesday, September 6, 2016 at 5:18 PM
>> To: "[hidden email] <http:///user/SendEmail.jtp?type=node&node=7553&i=4>"
>> <[hidden email] <http:///user/SendEmail.jtp?type=node&node=7553&i=5>>
>> Subject: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException:
>> Failed to register query type: TypeDescriptor
>>
>> Hi!
>>
>> The name `TODAY` is problematic because there is a function with the same
>> name.
>>
>> Sergi
>>
>> 2016-09-06 12:40 GMT+03:00 chevy <[hidden email]
>> <http:///user/SendEmail.jtp?type=node&node=7553&i=6>>:
>>
>>> Hi,
>>>
>>>  I am getting "Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in
>>> SQL
>>> statement "CREATE TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL
>>> OTHER,ID VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST
>>> DOUBLE,HOURLYSALES OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES
>>> DOUBLE,LYSALES DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT
>>> DOUBLE,TYAVERAGEBASKETSIZE DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY
>>> OTHER,WEEKTODATE OTHER,MONTHTODATE OTHER) ENGINE "
>>> "org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine""
>>> ";
>>> expected "identifier"; SQL statement:
>>> CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id
>>> VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales
>>> OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales
>>> DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount
>>> DOUBLE,tyAverageBasketSize DOUBLE,lyAverageBasketSize DOUBLE,previousDay
>>> OTHER,weekToDate OTHER,monthToDate OTHER) engine
>>> "org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"
>>> error.
>>>
>>> I have attached complete log in this post. I am not able to understand
>>> how
>>> my data is affecting creating of cache schema and table.
>>>
>>> I am adding data to cache in below format -
>>>
>>> "cache.putAll(finalMap)" and cache is of format "IgniteCache>> SalesModel> cache". "finalMap" looks like "finalMap.put(storeId,
>>> salesModel)". SalesModel structure is shown below -
>>>
>>> package com.ignite.model.sales;
>>>
>>> import java.io.Serializable;
>>> import java.sql.Date;
>>>
>>> import org.apache.ignite.cache.query.annotations.QuerySqlField;
>>>
>>> public class SalesModel implements Serializable {
>>>
>>> private static final long ser

Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread chevy
Your point is true. But I did a maven clean build and also checked error and 
its same error. Not sure why this is happening. Is there any other place that 
maven saves class files? I am running using eclipse.
--
Regards,
Chetan.

From: "Sergi Vladykin [via Apache Ignite Users]" 
mailto:ml-node+s70518n7553...@n6.nabble.com>>
Date: Tuesday, September 6, 2016 at 9:30 PM
To: "Chetan.V.Yadav" 
mailto:chetan.v.ya...@target.com>>
Subject: Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: 
Failed to register query type: TypeDescriptor

I guess it is either not the same error or you run the old code or something 
like this.

Please make sure that there is no mistake: restart clean cluster, rebuild the 
code and run it again.

Sergi

2016-09-06 16:19 GMT+03:00 Chetan.V.Yadav <[hidden 
email]>:
Hi,

 I changed the variable to “todayData" from “today” in SalesModel but still 
getting same error.


/** TdyFeedModel: todayData (not-indexed). */

@QuerySqlField

public TdyFeedModel todayData;

--
Regards,
Chetan.

From: Sergi Vladykin <[hidden 
email]>
Reply-To: "[hidden email]" 
<[hidden email]>
Date: Tuesday, September 6, 2016 at 5:18 PM
To: "[hidden email]" <[hidden 
email]>
Subject: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed 
to register query type: TypeDescriptor

Hi!

The name `TODAY` is problematic because there is a function with the same name.

Sergi

2016-09-06 12:40 GMT+03:00 chevy <[hidden 
email]>:
Hi,

 I am getting "Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL
statement "CREATE TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL
OTHER,ID VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST
DOUBLE,HOURLYSALES OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES
DOUBLE,LYSALES DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT
DOUBLE,TYAVERAGEBASKETSIZE DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY
OTHER,WEEKTODATE OTHER,MONTHTODATE OTHER) ENGINE "
"org.apache.ignite.internal.pr<http://org.apache.ignite.internal.pr>ocessors.query.h2.opt.GridH2Table$Engine""
 ";
expected "identifier"; SQL statement:
CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id
VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales
OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales
DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount
DOUBLE,tyAverageBasketSize DOUBLE,lyAverageBasketSize DOUBLE,previousDay
OTHER,weekToDate OTHER,monthToDate OTHER) engine
"org.apache.ignite.internal.pr<http://org.apache.ignite.internal.pr>ocessors.query.h2.opt.GridH2Table$Engine"
error.

I have attached complete log in this post. I am not able to understand how
my data is affecting creating of cache schema and table.

I am adding data to cache in below format -

"cache.putAll(finalMap)" and cache is of format "IgniteCache cache". "finalMap" looks like "finalMap.put(storeId,
salesModel)". SalesModel structure is shown below -

package com.ignite.model.sales;

import java.io.Serializable;
import java.sql.Date;

import org.apache.ignite.cache.query.annotations.QuerySqlField;

public class SalesModel implements Serializable {

private static final long serialVersionUID = 1L;

/** SalesModel: id (not-indexed). */
@QuerySqlField
public String id;

/** SalesModel: storeId (not-indexed). */
@QuerySqlField
public int storeId;

/** SalesModel: date (not-indexed). */
@QuerySqlField
public String date;

/** TdyFeedModel: tdy (not-indexed). */
@QuerySqlField
public TdyFeedModel day;

/** YstFeedModel: yst (not-indexed). */
@QuerySqlField
public WtdFeedModel previousDay;

/** WtdFeedModel: wtd (not-indexed). */
@QuerySqlField
public WtdFeedModel weekToDate;

/** MtdFeedModel: mtd (not-indexed). */
@QuerySqlField
public MtdFeedModel monthToDate;

//setters and getters for all variables
}

Cache config is as shown below -
/* Initialize cache configuration */
cacheCfg.setName("salesCache");
cacheCfg.setCacheMode(CacheMode.REPLICATED);
cacheCfg.setSwapEnabled(false);
cacheCfg.setOffHeapMaxMemory(0);
cacheCfg.setCopyOnRead(false);

cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);

cacheCfg.setAtomicWriteOrderMode(CacheAtomicWriteOrderMode.CLOCK);
cacheCfg.setIndexedTypes(Integer.class, 
SalesModel.class);

/* Start Ignite node. */
String path = "src/main/java/com/ignite/config/";
   

Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread Sergi Vladykin
I guess it is either not the same error or you run the old code or
something like this.

Please make sure that there is no mistake: restart clean cluster, rebuild
the code and run it again.

Sergi

2016-09-06 16:19 GMT+03:00 Chetan.V.Yadav :

> Hi,
>
>  I changed the variable to “todayData" from “today” in SalesModel but
> still getting same error.
>
> /** TdyFeedModel: todayData (not-indexed). */
>
> @QuerySqlField
>
> public TdyFeedModel todayData;
> --
> Regards,
> Chetan.
>
> From: Sergi Vladykin 
> Reply-To: "user@ignite.apache.org" 
> Date: Tuesday, September 6, 2016 at 5:18 PM
> To: "user@ignite.apache.org" 
> Subject: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException:
> Failed to register query type: TypeDescriptor
>
> Hi!
>
> The name `TODAY` is problematic because there is a function with the same
> name.
>
> Sergi
>
> 2016-09-06 12:40 GMT+03:00 chevy :
>
>> Hi,
>>
>>  I am getting "Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in
>> SQL
>> statement "CREATE TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL
>> OTHER,ID VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST
>> DOUBLE,HOURLYSALES OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES
>> DOUBLE,LYSALES DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT
>> DOUBLE,TYAVERAGEBASKETSIZE DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY
>> OTHER,WEEKTODATE OTHER,MONTHTODATE OTHER) ENGINE "
>> "org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine""
>> ";
>> expected "identifier"; SQL statement:
>> CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id
>> VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales
>> OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales
>> DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount
>> DOUBLE,tyAverageBasketSize DOUBLE,lyAverageBasketSize DOUBLE,previousDay
>> OTHER,weekToDate OTHER,monthToDate OTHER) engine
>> "org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"
>> error.
>>
>> I have attached complete log in this post. I am not able to understand how
>> my data is affecting creating of cache schema and table.
>>
>> I am adding data to cache in below format -
>>
>> "cache.putAll(finalMap)" and cache is of format "IgniteCache> SalesModel> cache". "finalMap" looks like "finalMap.put(storeId,
>> salesModel)". SalesModel structure is shown below -
>>
>> package com.ignite.model.sales;
>>
>> import java.io.Serializable;
>> import java.sql.Date;
>>
>> import org.apache.ignite.cache.query.annotations.QuerySqlField;
>>
>> public class SalesModel implements Serializable {
>>
>> private static final long serialVersionUID = 1L;
>>
>> /** SalesModel: id (not-indexed). */
>> @QuerySqlField
>> public String id;
>>
>> /** SalesModel: storeId (not-indexed). */
>> @QuerySqlField
>> public int storeId;
>>
>> /** SalesModel: date (not-indexed). */
>> @QuerySqlField
>> public String date;
>>
>> /** TdyFeedModel: tdy (not-indexed). */
>> @QuerySqlField
>> public TdyFeedModel day;
>>
>> /** YstFeedModel: yst (not-indexed). */
>> @QuerySqlField
>> public WtdFeedModel previousDay;
>>
>> /** WtdFeedModel: wtd (not-indexed). */
>> @QuerySqlField
>> public WtdFeedModel weekToDate;
>>
>> /** MtdFeedModel: mtd (not-indexed). */
>> @QuerySqlField
>> public MtdFeedModel monthToDate;
>>
>> //setters and getters for all variables
>> }
>>
>> Cache config is as shown below -
>> /* Initialize cache configuration */
>> cacheCfg.setName("salesCache");
>> cacheCfg.setCacheMode(CacheMode.REPLICATED);
>> cacheCfg.setSwapEnabled(false);
>> cacheCfg.setOffHeapMaxMemory(0);
>> cacheCfg.setCopyOnRead(false);
>>
>> cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizati
>> onMode.FULL_SYNC);
>> cacheCfg.setAtomicWriteOrderMo
>> de(CacheAtomicWriteOrderMode.CLOCK);
>> cacheCfg.setIndexedTypes(Integer.class,
>> SalesModel.class);
>>
>> 

Re: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread Chetan . V . Yadav
Hi,

 I changed the variable to “todayData" from “today” in SalesModel but still 
getting same error.


/** TdyFeedModel: todayData (not-indexed). */

@QuerySqlField

public TdyFeedModel todayData;

--
Regards,
Chetan.

From: Sergi Vladykin mailto:sergi.vlady...@gmail.com>>
Reply-To: "user@ignite.apache.org<mailto:user@ignite.apache.org>" 
mailto:user@ignite.apache.org>>
Date: Tuesday, September 6, 2016 at 5:18 PM
To: "user@ignite.apache.org<mailto:user@ignite.apache.org>" 
mailto:user@ignite.apache.org>>
Subject: [EXTERNAL] Re: class org.apache.ignite.IgniteCheckedException: Failed 
to register query type: TypeDescriptor

Hi!

The name `TODAY` is problematic because there is a function with the same name.

Sergi

2016-09-06 12:40 GMT+03:00 chevy 
mailto:chetan.v.ya...@target.com>>:
Hi,

 I am getting "Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL
statement "CREATE TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL
OTHER,ID VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST
DOUBLE,HOURLYSALES OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES
DOUBLE,LYSALES DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT
DOUBLE,TYAVERAGEBASKETSIZE DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY
OTHER,WEEKTODATE OTHER,MONTHTODATE OTHER) ENGINE "
"org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"" ";
expected "identifier"; SQL statement:
CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id
VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales
OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales
DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount
DOUBLE,tyAverageBasketSize DOUBLE,lyAverageBasketSize DOUBLE,previousDay
OTHER,weekToDate OTHER,monthToDate OTHER) engine
"org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"
error.

I have attached complete log in this post. I am not able to understand how
my data is affecting creating of cache schema and table.

I am adding data to cache in below format -

"cache.putAll(finalMap)" and cache is of format "IgniteCache cache". "finalMap" looks like "finalMap.put(storeId,
salesModel)". SalesModel structure is shown below -

package com.ignite.model.sales;

import java.io.Serializable;
import java.sql.Date;

import org.apache.ignite.cache.query.annotations.QuerySqlField;

public class SalesModel implements Serializable {

private static final long serialVersionUID = 1L;

/** SalesModel: id (not-indexed). */
@QuerySqlField
public String id;

/** SalesModel: storeId (not-indexed). */
@QuerySqlField
public int storeId;

/** SalesModel: date (not-indexed). */
@QuerySqlField
public String date;

/** TdyFeedModel: tdy (not-indexed). */
@QuerySqlField
public TdyFeedModel day;

/** YstFeedModel: yst (not-indexed). */
@QuerySqlField
public WtdFeedModel previousDay;

/** WtdFeedModel: wtd (not-indexed). */
@QuerySqlField
public WtdFeedModel weekToDate;

/** MtdFeedModel: mtd (not-indexed). */
@QuerySqlField
public MtdFeedModel monthToDate;

//setters and getters for all variables
}

Cache config is as shown below -
/* Initialize cache configuration */
cacheCfg.setName("salesCache");
cacheCfg.setCacheMode(CacheMode.REPLICATED);
cacheCfg.setSwapEnabled(false);
cacheCfg.setOffHeapMaxMemory(0);
cacheCfg.setCopyOnRead(false);

cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);

cacheCfg.setAtomicWriteOrderMode(CacheAtomicWriteOrderMode.CLOCK);
cacheCfg.setIndexedTypes(Integer.class, 
SalesModel.class);

/* Start Ignite node. */
String path = "src/main/java/com/ignite/config/";
Ignite ignite = Ignition.start(path + "mpm-ignite.xml");

try (IgniteCache cache =
ignite.getOrCreateCache(cacheCfg)) {
if 
(ignite.cluster().forDataNodes(cache.getName()).nodes().isEmpty()) {
...
}

// Put created data entries to cache.
cache.putAll(finalMap);

log.txt <http://apache-ignite-users.70518.x6.nabble.com/file/n7543/log.txt>



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/class-org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp7543.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.



Re: class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread Sergi Vladykin
Hi!

The name `TODAY` is problematic because there is a function with the same
name.

Sergi

2016-09-06 12:40 GMT+03:00 chevy :

> Hi,
>
>  I am getting "Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL
> statement "CREATE TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL
> OTHER,ID VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST
> DOUBLE,HOURLYSALES OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES
> DOUBLE,LYSALES DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT
> DOUBLE,TYAVERAGEBASKETSIZE DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY
> OTHER,WEEKTODATE OTHER,MONTHTODATE OTHER) ENGINE "
> "org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine""
> ";
> expected "identifier"; SQL statement:
> CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id
> VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales
> OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales
> DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount
> DOUBLE,tyAverageBasketSize DOUBLE,lyAverageBasketSize DOUBLE,previousDay
> OTHER,weekToDate OTHER,monthToDate OTHER) engine
> "org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"
> error.
>
> I have attached complete log in this post. I am not able to understand how
> my data is affecting creating of cache schema and table.
>
> I am adding data to cache in below format -
>
> "cache.putAll(finalMap)" and cache is of format "IgniteCache SalesModel> cache". "finalMap" looks like "finalMap.put(storeId,
> salesModel)". SalesModel structure is shown below -
>
> package com.ignite.model.sales;
>
> import java.io.Serializable;
> import java.sql.Date;
>
> import org.apache.ignite.cache.query.annotations.QuerySqlField;
>
> public class SalesModel implements Serializable {
>
> private static final long serialVersionUID = 1L;
>
> /** SalesModel: id (not-indexed). */
> @QuerySqlField
> public String id;
>
> /** SalesModel: storeId (not-indexed). */
> @QuerySqlField
> public int storeId;
>
> /** SalesModel: date (not-indexed). */
> @QuerySqlField
> public String date;
>
> /** TdyFeedModel: tdy (not-indexed). */
> @QuerySqlField
> public TdyFeedModel day;
>
> /** YstFeedModel: yst (not-indexed). */
> @QuerySqlField
> public WtdFeedModel previousDay;
>
> /** WtdFeedModel: wtd (not-indexed). */
> @QuerySqlField
> public WtdFeedModel weekToDate;
>
> /** MtdFeedModel: mtd (not-indexed). */
> @QuerySqlField
> public MtdFeedModel monthToDate;
>
> //setters and getters for all variables
> }
>
> Cache config is as shown below -
> /* Initialize cache configuration */
> cacheCfg.setName("salesCache");
> cacheCfg.setCacheMode(CacheMode.REPLICATED);
> cacheCfg.setSwapEnabled(false);
> cacheCfg.setOffHeapMaxMemory(0);
> cacheCfg.setCopyOnRead(false);
>
> cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.
> FULL_SYNC);
> cacheCfg.setAtomicWriteOrderMode(
> CacheAtomicWriteOrderMode.CLOCK);
> cacheCfg.setIndexedTypes(Integer.class,
> SalesModel.class);
>
> /* Start Ignite node. */
> String path = "src/main/java/com/ignite/config/";
> Ignite ignite = Ignition.start(path +
> "mpm-ignite.xml");
>
> try (IgniteCache cache =
> ignite.getOrCreateCache(cacheCfg)) {
> if (ignite.cluster().
> forDataNodes(cache.getName()).nodes().isEmpty()) {
> ...
> }
>
> // Put created data entries to cache.
> cache.putAll(finalMap);
>
> log.txt  >
>
>
>
> --
> View this message in context: http://apache-ignite-users.
> 70518.x6.nabble.com/class-org-apache-ignite-IgniteCheckedException-Failed-
> to-register-query-type-TypeDescriptor-tp7543.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>


class org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-09-06 Thread chevy
Hi,

 I am getting "Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL
statement "CREATE TABLE ""salesCache"".SALESMODEL (_KEY INT NOT NULL,_VAL
OTHER,ID VARCHAR,STOREID INT,DATE VARCHAR,GOAL DOUBLE,FORECAST
DOUBLE,HOURLYSALES OTHER,SALESDATE VARCHAR,TODAY[*] OTHER,TYSALES
DOUBLE,LYSALES DOUBLE,TYTRANSACTIONCOUNT DOUBLE,LYTRANSACTIONCOUNT
DOUBLE,TYAVERAGEBASKETSIZE DOUBLE,LYAVERAGEBASKETSIZE DOUBLE,PREVIOUSDAY
OTHER,WEEKTODATE OTHER,MONTHTODATE OTHER) ENGINE "
"org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"" ";
expected "identifier"; SQL statement:
CREATE TABLE "salesCache".SalesModel (_key INT NOT NULL,_val OTHER,id
VARCHAR,storeId INT,date VARCHAR,goal DOUBLE,forecast DOUBLE,hourlySales
OTHER,salesDate VARCHAR,today OTHER,tySales DOUBLE,lySales
DOUBLE,tyTransactionCount DOUBLE,lyTransactionCount
DOUBLE,tyAverageBasketSize DOUBLE,lyAverageBasketSize DOUBLE,previousDay
OTHER,weekToDate OTHER,monthToDate OTHER) engine
"org.apache.ignite.internal.processors.query.h2.opt.GridH2Table$Engine"
error. 

I have attached complete log in this post. I am not able to understand how
my data is affecting creating of cache schema and table.
 
I am adding data to cache in below format -

"cache.putAll(finalMap)" and cache is of format "IgniteCache cache". "finalMap" looks like "finalMap.put(storeId,
salesModel)". SalesModel structure is shown below -

package com.ignite.model.sales;

import java.io.Serializable;
import java.sql.Date;

import org.apache.ignite.cache.query.annotations.QuerySqlField;

public class SalesModel implements Serializable {

private static final long serialVersionUID = 1L;

/** SalesModel: id (not-indexed). */
@QuerySqlField
public String id;

/** SalesModel: storeId (not-indexed). */
@QuerySqlField
public int storeId;

/** SalesModel: date (not-indexed). */
@QuerySqlField
public String date;

/** TdyFeedModel: tdy (not-indexed). */
@QuerySqlField
public TdyFeedModel day;

/** YstFeedModel: yst (not-indexed). */
@QuerySqlField
public WtdFeedModel previousDay;

/** WtdFeedModel: wtd (not-indexed). */
@QuerySqlField
public WtdFeedModel weekToDate;

/** MtdFeedModel: mtd (not-indexed). */
@QuerySqlField
public MtdFeedModel monthToDate;

//setters and getters for all variables
}

Cache config is as shown below -
/* Initialize cache configuration */
cacheCfg.setName("salesCache");
cacheCfg.setCacheMode(CacheMode.REPLICATED);
cacheCfg.setSwapEnabled(false);
cacheCfg.setOffHeapMaxMemory(0);
cacheCfg.setCopyOnRead(false);

cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);

cacheCfg.setAtomicWriteOrderMode(CacheAtomicWriteOrderMode.CLOCK);
cacheCfg.setIndexedTypes(Integer.class, 
SalesModel.class);

/* Start Ignite node. */
String path = "src/main/java/com/ignite/config/";
Ignite ignite = Ignition.start(path + "mpm-ignite.xml");

try (IgniteCache cache =
ignite.getOrCreateCache(cacheCfg)) {
if 
(ignite.cluster().forDataNodes(cache.getName()).nodes().isEmpty()) {
...
}

// Put created data entries to cache.
cache.putAll(finalMap);

log.txt   



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/class-org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp7543.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-04-13 Thread Vasiliy Sisko
Hello. 
Issue with error in index generation
https://issues.apache.org/jira/browse/IGNITE-2856 is closed.
It will be available at master branch or in next nightly build. 



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p4148.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-19 Thread Vasiliy Sisko
Also I notice that in generated index declaration database field name  was
used instead of java name. 

Please fix index field names to java name.



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3554.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-19 Thread Vasiliy Sisko
I am always glad to help you.

Writing to cache with sql string is not implemented yet, but issue to its
implementation already exist. 
You can watch to this issue:
https://issues.apache.org/jira/browse/IGNITE-2294



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3578.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-19 Thread minisoft_rm
super cool 

So before ver1.6, let me test more things about "SELECT".



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3579.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-19 Thread Vasiliy Sisko
Hello.

I reproduced this issue. Schema import utility generate wrong code in
special case.
You may watch this issue https://issues.apache.org/jira/browse/IGNITE-2856.

The reason of that exception is that columns [CARD_NO] for @navy and
[P_PRODUCTORDERLIMIT] for @minisoft_rm are configured as index fields and do
not configured as query fields.

To quick fix this issue you need to configure all fields specified in
indexes as query fields or do not create indexes for absent fields.

Also you can try to configure cache with GridGain Web Console (This issue is
already fixed for Web Console), which is described at this page
http://ignite.apache.org/addons.html.

Please let me know if my answer helped you



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3551.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-18 Thread minisoft_rm
thank you.. it is very helpful.. and the web console is cool~

after this issue, May I ask one more question about how to write to cache
with sql string.

I read the "https://apacheignite.readme.io/v1.5/docs/persistent-store";.
however, there is no clear code how to run "update or delete " sql
on IgniteCache. the most possible reason is that I am using Ignite with
incorrect way? 

please advise, thanks~~~



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3576.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-15 Thread vkulichenko
BTW, please properly subscribe to the mailing list, otherwise community
doesn't receive email notifications. Here is the instruction:
http://apache-ignite-users.70518.x6.nabble.com/mailing_list/MailingListOptions.jtp?forum=1


minisoft_rm wrote > CacheConfig.java
  
> 
> Hktvproduct.java
>   
> 
> HktvproductKey.java
> 
>   
> 
> please review the java files above. hope you could help me out... just
> very simple logic... but I cannot make it.. :-(

When indexes are created, you should use Java object field name, not
database name. For example, instead of this:

idxs.add(new QueryIndex("*p_productorderlimit*", true,
"productorderlimitRelIDX_20005"));

you should do this:

idxs.add(new QueryIndex("*pProductorderlimit*", true,
"productorderlimitRelIDX_20005"));

Is this the code generated by schema utility?

-Val



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3530.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-15 Thread vkulichenko
Hi,

Can you please show your cache configuration as well as key and value
classes?

-Val



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3524.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: org.apache.ignite.IgniteCheckedException: Failed to register query type: TypeDescriptor

2016-03-11 Thread vkulichenko
Hi,

Can you please properly subscribe to the mailing list so that community
receives email notifications? Follow the instruction here:
http://apache-ignite-users.70518.x6.nabble.com/mailing_list/MailingListOptions.jtp?forum=1


navy wrote
> After I load the data from mysql,I try to read it with sqlQuery,but When I
> put the jar ignite-indexing to my project,some error will
> happen.org.apache.ignite.IgniteCheckedException: Failed to register query
> type: TypeDescriptor,Caused by: org.h2.jdbc.JdbcSQLException: Column
> "CARD_NO" not found; SQL statement.

Can you show your test code, model classes and cache configuration?

-Val



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/org-apache-ignite-IgniteCheckedException-Failed-to-register-query-type-TypeDescriptor-tp3447p3459.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.