You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Muthu <mu...@gmail.com> on 2017/06/10 00:07:53 UTC

Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Hi Folks,

I used the new Web console to generate the models/artifacts to be used for
automatic persistence. But when i bring up a Spring Boot server with
IgniteSpringBean it fails due to a 'query registration issue'..below is the
stack trace...i suspect from searching online that some word used in a
column is not being accepted by H2 but couldn't figure that out from the
exception...does anyone have a clue?

*SEVERE: Got exception while starting (will rollback startup routine).*
*class org.apache.ignite.IgniteCheckedException: Failed to register query
type: QueryTypeDescriptorImpl [space=DcmEmpCache, name=Emp, tblName=null,
fields={}, idxs={}, fullTextIdx=null, keyCls=class java.lang*
*.String, valCls=class java.lang.Object, keyTypeName=java.lang.String,
valTypeName=com.brocade.dcm.domain.model.Emp, valTextIdx=false, typeId=0,
affKey=null, keyFieldName=null, valFieldName=null, obsolete=fal*
*se]*
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.registerType(IgniteH2Indexing.java:1866)
        at
org.apache.ignite.internal.processors.query.GridQueryProcessor.registerCache0(GridQueryProcessor.java:1306)
        at
org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart0(GridQueryProcessor.java:756)
        at
org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart(GridQueryProcessor.java:817)
        at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCache(GridCacheProcessor.java:1265)
        at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.onKernalStart(GridCacheProcessor.java:898)
        at
org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1013)
        at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1895)
        at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1647)
        at
org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1075)
        at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:573)
        at org.apache.ignite.IgniteSpring.start(IgniteSpring.java:66)
        at
org.apache.ignite.IgniteSpringBean.afterPropertiesSet(IgniteSpringBean.java:159)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
        at
org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
        at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
        at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
        at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
        at
org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
        at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
        at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
        at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
        at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
        at
org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
        at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)
        at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)
        at
org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
        at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
        at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)
        at
com.brocade.dcm.server.ObjectCacheMgrApplication.main(ObjectCacheMgrApplication.java:12)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
        at
org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
*Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
"CREATE TABLE ""DcmEmpCache"".EMP (_KEY VARCHAR VISIBLE[*] NOT NULL,_VAL
OTHER VISIBLE,_VER OTHER INVISIBLE) ENGINE ""org.apache.ignite.*
*internal.processors.query.h2.IgniteH2Indexing$H2TableEngine"" "; expected
"(, FOR, UNSIGNED, NOT, NULL, AS, DEFAULT, GENERATED, NOT, NULL,
AUTO_INCREMENT, BIGSERIAL, SERIAL, IDENTITY, NULL_TO_DEFAULT, SEQUEN*
*CE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL, CHECK,
REFERENCES, ,, )"; SQL statement:*
*CREATE TABLE "DcmEmpCache".Emp (_key VARCHAR VISIBLE NOT NULL,_val OTHER
VISIBLE,_ver OTHER INVISIBLE) engine
"org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$H2TableEngine"
[42001-193]*
        at
org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
        at org.h2.message.DbException.getSyntaxError(DbException.java:205)
        at org.h2.command.Parser.getSyntaxError(Parser.java:537)
        at org.h2.command.Parser.read(Parser.java:3186)
        at org.h2.command.Parser.readIfMore(Parser.java:885)
        at org.h2.command.Parser.parseCreateTable(Parser.java:6043)
        at org.h2.command.Parser.parseCreate(Parser.java:4238)
        at org.h2.command.Parser.parsePrepared(Parser.java:362)
        at org.h2.command.Parser.parse(Parser.java:317)
        at org.h2.command.Parser.parse(Parser.java:293)
        at org.h2.command.Parser.prepareCommand(Parser.java:254)
        at org.h2.engine.Session.prepareLocal(Session.java:561)
        at org.h2.engine.Session.prepareCommand(Session.java:502)
        at
org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1203)
        at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:170)
        at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:158)
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$H2TableEngine.createTable(IgniteH2Indexing.java:3975)
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.createTable(IgniteH2Indexing.java:2006)
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.registerType(IgniteH2Indexing.java:1859)
        ... 64 more


Below is my table schema,

*CREATE TABLE dcm.emp*
*(*
*  id text NOT NULL,*
*  ename text,*
*  job text,*
*  mgr text,*
*  hiredate date,*
*  sal integer,*
*  comm integer,*
*  deptid text,*
*  CONSTRAINT pk_emp PRIMARY KEY (id),*
*  CONSTRAINT fk_deptid FOREIGN KEY (deptid)*
*      REFERENCES dcm.dept (id) MATCH SIMPLE*
*      ON UPDATE RESTRICT ON DELETE CASCADE*
*)*
*WITH (*
*  OIDS=FALSE*
*);*
*ALTER TABLE dcm.emp*
*  OWNER TO postgres;*


Regards,
Muthu

Re: Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Posted by Alexey Kuznetsov <ak...@apache.org>.
Muthu,

Please create separate threads on user for mentioned problems: code
generation (if needed), spring transactions, JDBC.

I'm lost in this "big" number of text lines.

-- 
Alexey Kuznetsov

Re: Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Posted by mlekshma <mu...@gmail.com>.
Thanks Alexey. Got it. Thanks for the helpful responses.

For the other issues w.r.t model generation & spring transaction
integration would it help to share my small POC project on GitHub? I think
these would be very helpful to have fixed. I can also submit a bug request
if needed.

I have some queries on the second point you mentioned...please see inline.

Regards,
Muthu

On Mon, Jun 12, 2017 at 6:32 AM, Alexey Kuznetsov <ak...@apache.org>
wrote:

> Muthu,
>
> >>2. With Ignite/Web Console, if a DB table insert/update/delete operation
> were to happen to the database directly is there a way to have that
> automatically picked up into the cache (so its always in sync with the DB
> tables)?
> >> I know this is too much to ask. I ask because we currently have code
> which uses MyBatis as ORM to read/write to PostgreSQL DB & i need to build
> a cache without trying to integrate with MyBatis which is problematic.
> >> I have some tools in mind & things like messaging based loads, etc to
> try but if Ignite does this with some integration that would be great.
>
> First of all, I would like to state that it is not correct mix  Ignite
> and Web Console in this context.
> Web Console - is just an *EXTERNAL tool*. It could generate some code for
> you and also allows to execute some Ad-hock SQL queries and monitor your
> cluster. That's all.
>
> Second, there only one way to have caches and DB in sync - do ALL data
> modifications via Ignite caches only.
> And configure caches to write-through  to your DB.
>
[MUTHU] : I understand. I was more coming from our practical problem of how
easy (w.r.t to time) it is to have an Ignite cache with all the code
currently writing to DB via MyBatis.

>
> So, you should directly use Ignite as DB -> configure your ORM to work
> with Ignite as with DB via Ignite JDBC driver.
> And configure caches to write-through  to your DB.
>
[MUTHU] : I checked the JDBC driver support a bit back..Is it true to say
that if i have a grid with say 10 ignite caches (caching 10 different
tables in DB) can i just connect to the grid (having it all specified in
the config xml & execute queries on any/all of them including queries that
join from one or more of these caches?...pardon me..but i could not say
these for sure from the docs...if this kind of support is available then as
you mentioned we can use it just like a jdbc data store.

>
>
> --
> Alexey Kuznetsov
>




--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Automatic-Persistence-Unable-to-bring-up-cache-with-web-console-generated-models-org-apache-ignite-I-tp13587p13631.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Posted by Muthu <mu...@gmail.com>.
Thanks Alexey. Got it. Thanks for the helpful responses.

For the other issues w.r.t model generation & spring transaction
integration would it help to share my small POC project on GitHub? I think
these would be very helpful to have fixed. I can also submit a bug request
if needed.

I have some queries on the second point you mentioned...please see inline.

Regards,
Muthu

On Mon, Jun 12, 2017 at 6:32 AM, Alexey Kuznetsov <ak...@apache.org>
wrote:

> Muthu,
>
> >>2. With Ignite/Web Console, if a DB table insert/update/delete operation
> were to happen to the database directly is there a way to have that
> automatically picked up into the cache (so its always in sync with the DB
> tables)?
> >> I know this is too much to ask. I ask because we currently have code
> which uses MyBatis as ORM to read/write to PostgreSQL DB & i need to build
> a cache without trying to integrate with MyBatis which is problematic.
> >> I have some tools in mind & things like messaging based loads, etc to
> try but if Ignite does this with some integration that would be great.
>
> First of all, I would like to state that it is not correct mix  Ignite
> and Web Console in this context.
> Web Console - is just an *EXTERNAL tool*. It could generate some code for
> you and also allows to execute some Ad-hock SQL queries and monitor your
> cluster. That's all.
>
> Second, there only one way to have caches and DB in sync - do ALL data
> modifications via Ignite caches only.
> And configure caches to write-through  to your DB.
>
[MUTHU] : I understand. I was more coming from our practical problem of how
easy (w.r.t to time) it is to have an Ignite cache with all the code
currently writing to DB via MyBatis.

>
> So, you should directly use Ignite as DB -> configure your ORM to work
> with Ignite as with DB via Ignite JDBC driver.
> And configure caches to write-through  to your DB.
>
[MUTHU] : I checked the JDBC driver support a bit back..Is it true to say
that if i have a grid with say 10 ignite caches (caching 10 different
tables in DB) can i just connect to the grid (having it all specified in
the config xml & execute queries on any/all of them including queries that
join from one or more of these caches?...pardon me..but i could not say
these for sure from the docs...if this kind of support is available then as
you mentioned we can use it just like a jdbc data store.

>
>
> --
> Alexey Kuznetsov
>

Re: Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Posted by Alexey Kuznetsov <ak...@apache.org>.
Muthu,

>>2. With Ignite/Web Console, if a DB table insert/update/delete operation
were to happen to the database directly is there a way to have that
automatically picked up into the cache (so its always in sync with the DB
tables)?
>> I know this is too much to ask. I ask because we currently have code
which uses MyBatis as ORM to read/write to PostgreSQL DB & i need to build
a cache without trying to integrate with MyBatis which is problematic.
>> I have some tools in mind & things like messaging based loads, etc to
try but if Ignite does this with some integration that would be great.

First of all, I would like to state that it is not correct mix  Ignite and
Web Console in this context.
Web Console - is just an *EXTERNAL tool*. It could generate some code for
you and also allows to execute some Ad-hock SQL queries and monitor your
cluster. That's all.

Second, there only one way to have caches and DB in sync - do ALL data
modifications via Ignite caches only.
And configure caches to write-through  to your DB.

So, you should directly use Ignite as DB -> configure your ORM to work with
Ignite as with DB via Ignite JDBC driver.
And configure caches to write-through  to your DB.


-- 
Alexey Kuznetsov

Re: Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Posted by Muthu <mu...@gmail.com>.
Oh i missed couple more things,

1. I found one more issue when using CacheSpringStoreSessionListener with
Web console based Automatic Persistence. Transactional writes seems to fail
& does not seem to work as expected (one table/cache was inserted while
another wasn't when both were in a transaction annotated with
@Transactional. (In the below example for my test input one of the 'Emp'
object inserts would fail on the DB & this should have caused the cache &
table to rollback for both 'Dept' & 'Emp', but i see the partial entry for
'Dept')

Below is the code fragment,


*@Transactional*
*public Boolean insertDepartmentWithEmployees(Dept dept, List<Emp> empList)
{*
* Boolean ret = true;*
* try {*
* System.out.println("==== in
ObjectCacheMgrService.insertDepartmentWithEmployees ==== for dept : " +
dept);*
* String uUID = new IgniteUuid(UUID.randomUUID(),
igniteAtomicSequence.incrementAndGet()).toString();*
* dept.setId(uUID);*
* deptCache.getAndPut(uUID, dept);*
* System.out.println("==== in
ObjectCacheMgrService.insertDepartmentWithEmployees : department ====
inserted succesfully : " + dept);*
* for (Emp emp : empList) {*
* uUID = new IgniteUuid(UUID.randomUUID(),
igniteAtomicSequence.incrementAndGet()).toString();*
* emp.setId(uUID);*
* emp.setDeptid(dept.getId());*
* empCache.getAndPut(uUID, emp);*
* System.out.println("==== in
ObjectCacheMgrService.insertDepartmentWithEmployees : employee ====
inserted succesfully : " + emp);*
* }*
* } catch (Exception e) {*
* System.out.println("==== EXCEPTION in
ObjectCacheMgrService.insertDepartmentWithEmployees ==== message is : " +
e.getMessage());*
* System.out.println("==== EXCEPTION in
ObjectCacheMgrService.insertDepartmentWithEmployees ==== class is : " +
e.getClass().getName());*
* e.printStackTrace();*
* ret = false;*
* }*
* return ret;*
*}*

Below is the CacheSpringStoreSessionListener config segment,

*   <!-- Postgresql datasource -->*
*    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">*
*        <property name="driverClassName" value="${db.driverClassName}" />*
* <property name="url" value="${db.url}" />*
* <property name="username" value="${db.username}" />*
* <property name="password" value="${db.password}" />*
* <property name="removeAbandonedOnBorrow" value="true"/>*
* <property name="initialSize" value="10" />*
* <property name="maxTotal" value="20" />*
* <property name="maxIdle" value="5" />*
* <property name="minIdle" value="0" />*
* <property name="maxWaitMillis" value="90000" />*
* <property name="minEvictableIdleTimeMillis" value="900000" />*
* <property name="softMinEvictableIdleTimeMillis" value="900000" />*
* <property name="validationQuery" value="select 1" />*
* <property name="validationQueryTimeout" value="90" />*
* <property name="defaultTransactionIsolation" value="1" />*
*    </bean>*

*    <!-- For transaction manager, using DataSourceTransactionManager"
since we are using JDBC local tx -->*
*    <bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">*
*        <property name="dataSource" ref="dataSource" />*
* <property name="defaultTimeout" value="300" />*
*    </bean>*
<!-- enable transaction demarcation with annotations -->
    <tx:annotation-driven />

* <property name="CacheStoreSessionListenerFactories">*
*         <list>*
*             <bean
class="javax.cache.configuration.FactoryBuilder$SingletonFactory">*
*                 <constructor-arg>*
*                     <bean
class="org.apache.ignite.cache.store.spring.CacheSpringStoreSessionListener">*
*                         <!-- Inject transaction manager. -->*
*                         <property name="transactionManager"
ref="transactionManager"/>*
*                     </bean>*
*                 </constructor-arg>*
*             </bean>*
*         </list>*
* </property>*


Below is the exception (RunTimeException subclass only) getting thrown,

==== EXCEPTION in ObjectCacheMgrService.insertDepartmentWithEmployees ====
class is : javax.cache.integration.CacheWriterException
javax.cache.integration.CacheWriterException: class org.apache.ignite.
transactions.TransactionRollbackException: Transaction has been rolled
back: b5584ef8c51-00000000-0678-3b15-0000-000000000001
        at org.apache.ignite.internal.processors.cache.GridCacheUtils.
convertToCacheException(GridCacheUtils.java:1404)
        at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.
cacheException(IgniteCacheProxy.java:2641)
        at org.apache.ignite.internal.processors.cache.
IgniteCacheProxy.getAndPut(IgniteCacheProxy.java:1589)
        at com.brocade.dcm.server.service.ObjectCacheMgrService.
insertDepartmentWithEmployees(ObjectCacheMgrService.java:101)
        at com.brocade.dcm.server.service.ObjectCacheMgrService$
$FastClassBySpringCGLIB$$2d159c39.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invoke(
MethodProxy.java:204)
        at org.springframework.aop.framework.CglibAopProxy$
CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:721)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.
proceed(ReflectiveMethodInvocation.java:157)
        at org.springframework.transaction.interceptor.
TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:
99)
        at org.springframework.transaction.interceptor.
TransactionAspectSupport.invokeWithinTransaction(
TransactionAspectSupport.java:282)
        at org.springframework.transaction.interceptor.
TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.
proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.CglibAopProxy$
DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656)
        at com.brocade.dcm.server.service.ObjectCacheMgrService$
$EnhancerBySpringCGLIB$$592efdc.insertDepartmentWithEmployees(<generated>)
        at com.brocade.dcm.server.controller.ObjectCacheMgrServiceControlle
r.putPost(ObjectCacheMgrServiceController.java:24)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.web.method.support.InvocableHandlerMethod.
doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.
invokeForRequest(InvocableHandlerMethod.java:133)
        at org.springframework.web.servlet.mvc.method.annotation.
ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.
java:116)
        at org.springframework.web.servlet.mvc.method.annotation.
RequestMappingHandlerAdapter.invokeHandlerMethod(
RequestMappingHandlerAdapter.java:827)
        at org.springframework.web.servlet.mvc.method.annotation.
RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.
java:738)
        at org.springframework.web.servlet.mvc.method.
AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
        at org.springframework.web.servlet.DispatcherServlet.
doDispatch(DispatcherServlet.java:963)
        at org.springframework.web.servlet.DispatcherServlet.
doService(DispatcherServlet.java:897)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(
FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.
doPost(FrameworkServlet.java:872)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
        at org.springframework.web.servlet.FrameworkServlet.
service(FrameworkServlet.java:846)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(
WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.RequestContextFilter.
doFilterInternal(RequestContextFilter.java:99)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.HttpPutFormContentFilter.
doFilterInternal(HttpPutFormContentFilter.java:105)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.HiddenHttpMethodFilter.
doFilterInternal(HiddenHttpMethodFilter.java:81)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.CharacterEncodingFilter.
doFilterInternal(CharacterEncodingFilter.java:197)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
AuthenticatorBase.java:474)
        at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:140)
        at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:79)
        at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:349)
        at org.apache.coyote.http11.Http11Processor.service(
Http11Processor.java:783)
        at org.apache.coyote.AbstractProcessorLight.process(
AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(
AbstractProtocol.java:798)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
doRun(NioEndpoint.java:1434)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(
SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
        at java.lang.Thread.run(Unknown Source)
Caused by: class org.apache.ignite.transactions.TransactionRollbackException:
Transaction has been rolled back: b5584ef8c51-00000000-0678-
3b15-0000-000000000001
        at org.apache.ignite.internal.util.IgniteUtils$11.apply(
IgniteUtils.java:843)
        at org.apache.ignite.internal.util.IgniteUtils$11.apply(
IgniteUtils.java:841)
        at org.apache.ignite.internal.util.IgniteUtils.
convertExceptionNoWrap(IgniteUtils.java:911)
        ... 69 more
Caused by: class org.apache.ignite.internal.transactions.
IgniteTxRollbackCheckedException: Transaction has been rolled back:
b5584ef8c51-00000000-0678-3b15-0000-000000000001
        at org.apache.ignite.internal.processors.cache.
GridCacheAdapter.syncOp(GridCacheAdapter.java:4054)
        at org.apache.ignite.internal.processors.cache.
GridCacheAdapter.getAndPut0(GridCacheAdapter.java:2259)
        at org.apache.ignite.internal.processors.cache.
GridCacheAdapter.getAndPut(GridCacheAdapter.java:2242)
        at org.apache.ignite.internal.processors.cache.
GridCacheAdapter.getAndPut(GridCacheAdapter.java:2221)
        at org.apache.ignite.internal.processors.cache.
IgniteCacheProxy.getAndPut(IgniteCacheProxy.java:1582)
        ... 66 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed update
entry in database [table=dcm.emp, entry=Entry
[key=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc,
val=com.brocade.dcm.domain.model.
Emp [idHash=693577784, hash=1434265603,
id=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc,
ename=Jacky, job=SDEV1, mgr=2, hiredate=2017-05-28, sal=100000, comm=50000,
deptid=90594ef8c51-45a6457b-518e-473c-
aecc-7348b1ed31a5]]]
        at org.apache.ignite.internal.processors.cache.store.
GridCacheStoreManagerAdapter.put(GridCacheStoreManagerAdapter.java:576)
        at org.apache.ignite.internal.processors.cache.store.
GridCacheStoreManagerAdapter.putAll(GridCacheStoreManagerAdapter.java:609)
        at org.apache.ignite.internal.processors.cache.transactions.
IgniteTxAdapter.batchStoreCommit(IgniteTxAdapter.java:1326)
        at org.apache.ignite.internal.processors.cache.transactions.
IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:500)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal.localFinish(GridNearTxLocal.java:3021)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:405)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal$16.apply(GridNearTxLocal.java:3171)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal$16.apply(GridNearTxLocal.java:3163)
        at org.apache.ignite.internal.util.future.GridFutureAdapter.
notifyListener(GridFutureAdapter.java:382)
        at org.apache.ignite.internal.util.future.GridFutureAdapter.
listen(GridFutureAdapter.java:352)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal.commitNearTxLocalAsync(GridNearTxLocal.java:3163)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal.optimisticPutFuture(GridNearTxLocal.java:2373)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal.putAsync0(GridNearTxLocal.java:623)
        at org.apache.ignite.internal.processors.cache.distributed.
near.GridNearTxLocal.putAsync(GridNearTxLocal.java:386)
        at org.apache.ignite.internal.processors.cache.
GridCacheAdapter$20.op(GridCacheAdapter.java:2261)
        at org.apache.ignite.internal.processors.cache.
GridCacheAdapter.syncOp(GridCacheAdapter.java:4040)
        ... 70 more
Caused by: javax.cache.integration.CacheWriterException: Failed update
entry in database [table=dcm.emp, entry=Entry
[key=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc,
val=com.brocade.dcm.domain.model.Em
p [idHash=693577784, hash=1434265603,
id=a0594ef8c51-f6aac86d-689c-43cc-99ad-2a04825bb0cc,
ename=Jacky, job=SDEV1, mgr=2, hiredate=2017-05-28, sal=100000, comm=50000,
deptid=90594ef8c51-45a6457b-518e-473c-ae
cc-7348b1ed31a5]]]
        at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.
writeUpsert(CacheAbstractJdbcStore.java:955)
        at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.
write(CacheAbstractJdbcStore.java:1006)
        at org.apache.ignite.internal.processors.cache.store.
GridCacheStoreManagerAdapter.put(GridCacheStoreManagerAdapter.java:568)
        ... 85 more
Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is
aborted, commands ignored until end of transaction block
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(
QueryExecutorImpl.java:2476)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(
QueryExecutorImpl.java:2189)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(
QueryExecutorImpl.java:300)
        at org.postgresql.jdbc.PgStatement.executeInternal(
PgStatement.java:428)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
        at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(
PgPreparedStatement.java:169)
        at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(
PgPreparedStatement.java:136)
        at org.apache.commons.dbcp2.DelegatingPreparedStatement.
executeUpdate(DelegatingPreparedStatement.java:98)
        at org.apache.commons.dbcp2.DelegatingPreparedStatement.
executeUpdate(DelegatingPreparedStatement.java:98)
        at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.
writeUpsert(CacheAbstractJdbcStore.java:902)
        ... 87 more
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value
violates unique constraint "dcm_emp_ename"
  Detail: Key (ename)=(Jacky) already exists.
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(
QueryExecutorImpl.java:2476)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(
QueryExecutorImpl.java:2189)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(
QueryExecutorImpl.java:300)
        at org.postgresql.jdbc.PgStatement.executeInternal(
PgStatement.java:428)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
        at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(
PgPreparedStatement.java:169)
        at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(
PgPreparedStatement.java:136)
        at org.apache.commons.dbcp2.DelegatingPreparedStatement.
executeUpdate(DelegatingPreparedStatement.java:98)
        at org.apache.commons.dbcp2.DelegatingPreparedStatement.
executeUpdate(DelegatingPreparedStatement.java:98)
        at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.
writeUpsert(CacheAbstractJdbcStore.java:908)
        ... 87 more
Jun 09, 2017 7:46:19 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with
path [] threw exception [Request processing failed; nested exception is
org.springframework.transaction.UnexpectedRollbackException:
Transaction rolled back because it has been marked as rollback-only] with
root cause
org.springframework.transaction.UnexpectedRollbackException: Transaction
rolled back because it has been marked as rollback-only
        at org.springframework.transaction.support.
AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionMan
ager.java:724)
        at org.springframework.transaction.interceptor.
TransactionAspectSupport.commitTransactionAfterReturnin
g(TransactionAspectSupport.java:504)
        at org.springframework.transaction.interceptor.
TransactionAspectSupport.invokeWithinTransaction(
TransactionAspectSupport.java:292)
        at org.springframework.transaction.interceptor.
TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.
proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.CglibAopProxy$
DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656)
        at com.brocade.dcm.server.service.ObjectCacheMgrService$
$EnhancerBySpringCGLIB$$592efdc.insertDepartmentWithEmployees(<generated>)
        at com.brocade.dcm.server.controller.ObjectCacheMgrServiceControlle
r.putPost(ObjectCacheMgrServiceController.java:24)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.web.method.support.InvocableHandlerMethod.
doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.
invokeForRequest(InvocableHandlerMethod.java:133)
        at org.springframework.web.servlet.mvc.method.annotation.
ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.
java:116)
        at org.springframework.web.servlet.mvc.method.annotation.
RequestMappingHandlerAdapter.invokeHandlerMethod(
RequestMappingHandlerAdapter.java:827)
        at org.springframework.web.servlet.mvc.method.annotation.
RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.
java:738)
        at org.springframework.web.servlet.mvc.method.
AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
        at org.springframework.web.servlet.DispatcherServlet.
doDispatch(DispatcherServlet.java:963)
        at org.springframework.web.servlet.DispatcherServlet.
doService(DispatcherServlet.java:897)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(
FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.
doPost(FrameworkServlet.java:872)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
        at org.springframework.web.servlet.FrameworkServlet.
service(FrameworkServlet.java:846)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(
WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.RequestContextFilter.
doFilterInternal(RequestContextFilter.java:99)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.HttpPutFormContentFilter.
doFilterInternal(HttpPutFormContentFilter.java:105)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.HiddenHttpMethodFilter.
doFilterInternal(HiddenHttpMethodFilter.java:81)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.springframework.web.filter.CharacterEncodingFilter.
doFilterInternal(CharacterEncodingFilter.java:197)
        at org.springframework.web.filter.OncePerRequestFilter.
doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:165)
        at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
AuthenticatorBase.java:474)
        at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:140)
        at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:79)
        at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:349)
        at org.apache.coyote.http11.Http11Processor.service(
Http11Processor.java:783)
        at org.apache.coyote.AbstractProcessorLight.process(
AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(
AbstractProtocol.java:798)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.
doRun(NioEndpoint.java:1434)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(
SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
        at java.lang.Thread.run(Unknown Source)


2. With Ignite/Web Console, if a DB table insert/update/delete operation
were to happen to the database directly is there a way to have that
automatically picked up into the cache (so its always in sync with the DB
tables)? I know this is too much to ask. I ask because we currently have
code which uses MyBatis as ORM to read/write to PostgreSQL DB & i need to
build a cache without trying to integrate with MyBatis which is
problematic. I have some tools in mind & things like messaging based loads,
etc to try but if Ignite does this with some integration that would be
great.

Regards,
Muthu

On Fri, Jun 9, 2017 at 8:12 PM, Muthu <mu...@gmail.com> wrote:

> Hi Alexey,
>
> I have attached the generated files from web console. But the culprit for
> this issue was the below config piece that is generated by web console in
> the CacheConfiguration for each cache
>
>
> *<property name="indexedTypes">*
> *                        <list>*
> *                            <value>java.lang.String</value>*
> *
> <value>com.brocade.dcm.domain.model.Dept</value>*
> *                        </list>*
> *</property>*
>
> Originally in the above config piece the first value was getting generated
> as simply "String" instead of "java.lang.String". I corrected it after
> looking at the exception on first startup before hitting this issue. Then i
> commented out the above config & the exception went away.
>
> But i found some more issues. The model generation seems to miss
> generating some fields & their getters/setters. For example for the table "
> *dcm.emp*" i described earlier (i am not copy pasting the table again
> here for brevity), the generated model DTOs did not have the field "private
> String id;" and the corresponding getters & setters for it..i had to add it
> manually in the DTO and edit the equals, hashCode & toString to fix it. I
> think manually doing this for a lot of tables is very cumbersome...
>
> *public class Dept implements Serializable {*
> *...*
> *...*
>
> *private String id;*
>
> *public String getId() {*
> * return id;*
> * }*
>
> * public void setId(String id) {*
> * this.id <http://this.id> = id;*
> * }*
> *...*
> *...*
> *}*
>
> Regards,
> Muthu
>
> On Fri, Jun 9, 2017 at 6:43 PM, Alexey Kuznetsov <ak...@apache.org>
> wrote:
>
>> Muthu,
>>
>> Could you also attach files generated by WebConsole?
>>
>> On Sat, Jun 10, 2017 at 7:07 AM, Muthu <mu...@gmail.com> wrote:
>>
>>> Hi Folks,
>>>
>>> I used the new Web console to generate the models/artifacts to be used
>>> for automatic persistence. But when i bring up a Spring Boot server with
>>> IgniteSpringBean it fails due to a 'query registration issue'..below is the
>>> stack trace...i suspect from searching online that some word used in a
>>> column is not being accepted by H2 but couldn't figure that out from the
>>> exception...does anyone have a clue?
>>>
>>> *SEVERE: Got exception while starting (will rollback startup routine).*
>>> *class org.apache.ignite.IgniteCheckedException: Failed to register
>>> query type: QueryTypeDescriptorImpl [space=DcmEmpCache, name=Emp,
>>> tblName=null, fields={}, idxs={}, fullTextIdx=null, keyCls=class java.lang*
>>> *.String, valCls=class java.lang.Object, keyTypeName=java.lang.String,
>>> valTypeName=com.brocade.dcm.do <http://com.brocade.dcm.do>main.model.Emp,
>>> valTextIdx=false, typeId=0, affKey=null, keyFieldName=null,
>>> valFieldName=null, obsolete=fal*
>>> *se]*
>>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>>> ing.registerType(IgniteH2Indexing.java:1866)
>>>         at org.apache.ignite.internal.processors.query.GridQueryProcess
>>> or.registerCache0(GridQueryProcessor.java:1306)
>>>         at org.apache.ignite.internal.processors.query.GridQueryProcess
>>> or.onCacheStart0(GridQueryProcessor.java:756)
>>>         at org.apache.ignite.internal.processors.query.GridQueryProcess
>>> or.onCacheStart(GridQueryProcessor.java:817)
>>>         at org.apache.ignite.internal.processors.cache.GridCacheProcess
>>> or.startCache(GridCacheProcessor.java:1265)
>>>         at org.apache.ignite.internal.processors.cache.GridCacheProcess
>>> or.onKernalStart(GridCacheProcessor.java:898)
>>>         at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.j
>>> ava:1013)
>>>         at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.st
>>> art0(IgnitionEx.java:1895)
>>>         at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.st
>>> art(IgnitionEx.java:1647)
>>>         at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java
>>> :1075)
>>>         at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:
>>> 573)
>>>         at org.apache.ignite.IgniteSpring.start(IgniteSpring.java:66)
>>>         at org.apache.ignite.IgniteSpringBean.afterPropertiesSet(Ignite
>>> SpringBean.java:159)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.invokeInitMethods(AbstractAutowireCapableBe
>>> anFactory.java:1687)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.initializeBean(AbstractAutowireCapableBeanF
>>> actory.java:1624)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFac
>>> tory.java:555)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y$1.getObject(AbstractBeanFactory.java:306)
>>>         at org.springframework.beans.factory.support.DefaultSingletonBe
>>> anRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y.doGetBean(AbstractBeanFactory.java:302)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y.getBean(AbstractBeanFactory.java:202)
>>>         at org.springframework.beans.factory.config.DependencyDescripto
>>> r.resolveCandidate(DependencyDescriptor.java:208)
>>>         at org.springframework.beans.factory.support.DefaultListableBea
>>> nFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
>>>         at org.springframework.beans.factory.support.DefaultListableBea
>>> nFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
>>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>>> tionBeanPostProcessor$AutowiredFieldElement.inject(Autowired
>>> AnnotationBeanPostProcessor.java:585)
>>>         at org.springframework.beans.factory.annotation.InjectionMetada
>>> ta.inject(InjectionMetadata.java:88)
>>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>>> tionBeanPostProcessor.postProcessPropertyValues(AutowiredAnn
>>> otationBeanPostProcessor.java:366)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.populateBean(AbstractAutowireCapableBeanFac
>>> tory.java:1264)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFac
>>> tory.java:553)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y$1.getObject(AbstractBeanFactory.java:306)
>>>         at org.springframework.beans.factory.support.DefaultSingletonBe
>>> anRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y.doGetBean(AbstractBeanFactory.java:302)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y.getBean(AbstractBeanFactory.java:202)
>>>         at org.springframework.beans.factory.config.DependencyDescripto
>>> r.resolveCandidate(DependencyDescriptor.java:208)
>>>         at org.springframework.beans.factory.support.DefaultListableBea
>>> nFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
>>>         at org.springframework.beans.factory.support.DefaultListableBea
>>> nFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
>>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>>> tionBeanPostProcessor$AutowiredFieldElement.inject(Autowired
>>> AnnotationBeanPostProcessor.java:585)
>>>         at org.springframework.beans.factory.annotation.InjectionMetada
>>> ta.inject(InjectionMetadata.java:88)
>>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>>> tionBeanPostProcessor.postProcessPropertyValues(AutowiredAnn
>>> otationBeanPostProcessor.java:366)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.populateBean(AbstractAutowireCapableBeanFac
>>> tory.java:1264)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFac
>>> tory.java:553)
>>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>>> pableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y$1.getObject(AbstractBeanFactory.java:306)
>>>         at org.springframework.beans.factory.support.DefaultSingletonBe
>>> anRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y.doGetBean(AbstractBeanFactory.java:302)
>>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>>> y.getBean(AbstractBeanFactory.java:197)
>>>         at org.springframework.beans.factory.support.DefaultListableBea
>>> nFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
>>>         at org.springframework.context.support.AbstractApplicationConte
>>> xt.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
>>>         at org.springframework.context.support.AbstractApplicationConte
>>> xt.refresh(AbstractApplicationContext.java:542)
>>>         at org.springframework.boot.context.embedded.EmbeddedWebApplica
>>> tionContext.refresh(EmbeddedWebApplicationContext.java:122)
>>>         at org.springframework.boot.SpringApplication.refresh(SpringApp
>>> lication.java:737)
>>>         at org.springframework.boot.SpringApplication.refreshContext(Sp
>>> ringApplication.java:370)
>>>         at org.springframework.boot.SpringApplication.run(SpringApplica
>>> tion.java:314)
>>>         at org.springframework.boot.SpringApplication.run(SpringApplica
>>> tion.java:1162)
>>>         at org.springframework.boot.SpringApplication.run(SpringApplica
>>> tion.java:1151)
>>>         at com.brocade.dcm.server.ObjectCacheMgrApplication.main(Object
>>> CacheMgrApplication.java:12)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>> Source)
>>>         at java.lang.reflect.Method.invoke(Unknown Source)
>>>         at org.springframework.boot.loader.MainMethodRunner.run(MainMet
>>> hodRunner.java:48)
>>>         at org.springframework.boot.loader.Launcher.launch(Launcher.jav
>>> a:87)
>>>         at org.springframework.boot.loader.Launcher.launch(Launcher.jav
>>> a:50)
>>>         at org.springframework.boot.loader.JarLauncher.main(JarLauncher
>>> .java:51)
>>> *Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
>>> "CREATE TABLE ""DcmEmpCache"".EMP (_KEY VARCHAR VISIBLE[*] NOT NULL,_VAL
>>> OTHER VISIBLE,_VER OTHER INVISIBLE) ENGINE ""org.apache.ignite.*
>>> *internal.processors.query.h2.IgniteH2Indexing$H2TableEngine"" ";
>>> expected "(, FOR, UNSIGNED, NOT, NULL, AS, DEFAULT, GENERATED, NOT, NULL,
>>> AUTO_INCREMENT, BIGSERIAL, SERIAL, IDENTITY, NULL_TO_DEFAULT, SEQUEN*
>>> *CE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL,
>>> CHECK, REFERENCES, ,, )"; SQL statement:*
>>> *CREATE TABLE "DcmEmpCache".Emp (_key VARCHAR VISIBLE NOT NULL,_val
>>> OTHER VISIBLE,_ver OTHER INVISIBLE) engine "org.apache.ignite.internal.pr
>>> <http://org.apache.ignite.internal.pr>ocessors.query.h2.IgniteH2Indexing$H2TableEngine"
>>> [42001-193]*
>>>         at org.h2.message.DbException.getJdbcSQLException(DbException.j
>>> ava:345)
>>>         at org.h2.message.DbException.getSyntaxError(DbException.java:2
>>> 05)
>>>         at org.h2.command.Parser.getSyntaxError(Parser.java:537)
>>>         at org.h2.command.Parser.read(Parser.java:3186)
>>>         at org.h2.command.Parser.readIfMore(Parser.java:885)
>>>         at org.h2.command.Parser.parseCreateTable(Parser.java:6043)
>>>         at org.h2.command.Parser.parseCreate(Parser.java:4238)
>>>         at org.h2.command.Parser.parsePrepared(Parser.java:362)
>>>         at org.h2.command.Parser.parse(Parser.java:317)
>>>         at org.h2.command.Parser.parse(Parser.java:293)
>>>         at org.h2.command.Parser.prepareCommand(Parser.java:254)
>>>         at org.h2.engine.Session.prepareLocal(Session.java:561)
>>>         at org.h2.engine.Session.prepareCommand(Session.java:502)
>>>         at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.jav
>>> a:1203)
>>>         at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java
>>> :170)
>>>         at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:158)
>>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>>> ing$H2TableEngine.createTable(IgniteH2Indexing.java:3975)
>>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>>> ing.createTable(IgniteH2Indexing.java:2006)
>>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>>> ing.registerType(IgniteH2Indexing.java:1859)
>>>         ... 64 more
>>>
>>>
>>> Below is my table schema,
>>>
>>> *CREATE TABLE dcm.emp*
>>> *(*
>>> *  id text NOT NULL,*
>>> *  ename text,*
>>> *  job text,*
>>> *  mgr text,*
>>> *  hiredate date,*
>>> *  sal integer,*
>>> *  comm integer,*
>>> *  deptid text,*
>>> *  CONSTRAINT pk_emp PRIMARY KEY (id),*
>>> *  CONSTRAINT fk_deptid FOREIGN KEY (deptid)*
>>> *      REFERENCES dcm.dept (id) MATCH SIMPLE*
>>> *      ON UPDATE RESTRICT ON DELETE CASCADE*
>>> *)*
>>> *WITH (*
>>> *  OIDS=FALSE*
>>> *);*
>>> *ALTER TABLE dcm.emp*
>>> *  OWNER TO postgres;*
>>>
>>>
>>> Regards,
>>> Muthu
>>>
>>
>>
>>
>> --
>> Alexey Kuznetsov
>>
>
>

Re: Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Posted by Muthu <mu...@gmail.com>.
Hi Alexey,

I have attached the generated files from web console. But the culprit for
this issue was the below config piece that is generated by web console in
the CacheConfiguration for each cache


*<property name="indexedTypes">*
*                        <list>*
*                            <value>java.lang.String</value>*
*
<value>com.brocade.dcm.domain.model.Dept</value>*
*                        </list>*
*</property>*

Originally in the above config piece the first value was getting generated
as simply "String" instead of "java.lang.String". I corrected it after
looking at the exception on first startup before hitting this issue. Then i
commented out the above config & the exception went away.

But i found some more issues. The model generation seems to miss generating
some fields & their getters/setters. For example for the table "*dcm.emp*"
i described earlier (i am not copy pasting the table again here for
brevity), the generated model DTOs did not have the field "private String
id;" and the corresponding getters & setters for it..i had to add it
manually in the DTO and edit the equals, hashCode & toString to fix it. I
think manually doing this for a lot of tables is very cumbersome...

*public class Dept implements Serializable {*
*...*
*...*

*private String id;*

*public String getId() {*
* return id;*
* }*

* public void setId(String id) {*
* this.id <http://this.id> = id;*
* }*
*...*
*...*
*}*

Regards,
Muthu

On Fri, Jun 9, 2017 at 6:43 PM, Alexey Kuznetsov <ak...@apache.org>
wrote:

> Muthu,
>
> Could you also attach files generated by WebConsole?
>
> On Sat, Jun 10, 2017 at 7:07 AM, Muthu <mu...@gmail.com> wrote:
>
>> Hi Folks,
>>
>> I used the new Web console to generate the models/artifacts to be used
>> for automatic persistence. But when i bring up a Spring Boot server with
>> IgniteSpringBean it fails due to a 'query registration issue'..below is the
>> stack trace...i suspect from searching online that some word used in a
>> column is not being accepted by H2 but couldn't figure that out from the
>> exception...does anyone have a clue?
>>
>> *SEVERE: Got exception while starting (will rollback startup routine).*
>> *class org.apache.ignite.IgniteCheckedException: Failed to register query
>> type: QueryTypeDescriptorImpl [space=DcmEmpCache, name=Emp, tblName=null,
>> fields={}, idxs={}, fullTextIdx=null, keyCls=class java.lang*
>> *.String, valCls=class java.lang.Object, keyTypeName=java.lang.String,
>> valTypeName=com.brocade.dcm.do <http://com.brocade.dcm.do>main.model.Emp,
>> valTextIdx=false, typeId=0, affKey=null, keyFieldName=null,
>> valFieldName=null, obsolete=fal*
>> *se]*
>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>> ing.registerType(IgniteH2Indexing.java:1866)
>>         at org.apache.ignite.internal.processors.query.GridQueryProcess
>> or.registerCache0(GridQueryProcessor.java:1306)
>>         at org.apache.ignite.internal.processors.query.GridQueryProcess
>> or.onCacheStart0(GridQueryProcessor.java:756)
>>         at org.apache.ignite.internal.processors.query.GridQueryProcess
>> or.onCacheStart(GridQueryProcessor.java:817)
>>         at org.apache.ignite.internal.processors.cache.GridCacheProcess
>> or.startCache(GridCacheProcessor.java:1265)
>>         at org.apache.ignite.internal.processors.cache.GridCacheProcess
>> or.onKernalStart(GridCacheProcessor.java:898)
>>         at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.
>> java:1013)
>>         at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.
>> start0(IgnitionEx.java:1895)
>>         at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.
>> start(IgnitionEx.java:1647)
>>         at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java
>> :1075)
>>         at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:
>> 573)
>>         at org.apache.ignite.IgniteSpring.start(IgniteSpring.java:66)
>>         at org.apache.ignite.IgniteSpringBean.afterPropertiesSet(Ignite
>> SpringBean.java:159)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.invokeInitMethods(AbstractAuto
>> wireCapableBeanFactory.java:1687)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.initializeBean(AbstractAutowir
>> eCapableBeanFactory.java:1624)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFac
>> tory.java:555)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y$1.getObject(AbstractBeanFactory.java:306)
>>         at org.springframework.beans.factory.support.DefaultSingletonBe
>> anRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y.doGetBean(AbstractBeanFactory.java:302)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y.getBean(AbstractBeanFactory.java:202)
>>         at org.springframework.beans.factory.config.DependencyDescripto
>> r.resolveCandidate(DependencyDescriptor.java:208)
>>         at org.springframework.beans.factory.support.DefaultListableBea
>> nFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
>>         at org.springframework.beans.factory.support.DefaultListableBea
>> nFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>> tionBeanPostProcessor$AutowiredFieldElement.inject(A
>> utowiredAnnotationBeanPostProcessor.java:585)
>>         at org.springframework.beans.factory.annotation.InjectionMetada
>> ta.inject(InjectionMetadata.java:88)
>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>> tionBeanPostProcessor.postProcessPropertyValues(AutowiredAnn
>> otationBeanPostProcessor.java:366)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.populateBean(AbstractAutowireCapableBeanFac
>> tory.java:1264)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFac
>> tory.java:553)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y$1.getObject(AbstractBeanFactory.java:306)
>>         at org.springframework.beans.factory.support.DefaultSingletonBe
>> anRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y.doGetBean(AbstractBeanFactory.java:302)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y.getBean(AbstractBeanFactory.java:202)
>>         at org.springframework.beans.factory.config.DependencyDescripto
>> r.resolveCandidate(DependencyDescriptor.java:208)
>>         at org.springframework.beans.factory.support.DefaultListableBea
>> nFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
>>         at org.springframework.beans.factory.support.DefaultListableBea
>> nFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>> tionBeanPostProcessor$AutowiredFieldElement.inject(A
>> utowiredAnnotationBeanPostProcessor.java:585)
>>         at org.springframework.beans.factory.annotation.InjectionMetada
>> ta.inject(InjectionMetadata.java:88)
>>         at org.springframework.beans.factory.annotation.AutowiredAnnota
>> tionBeanPostProcessor.postProcessPropertyValues(AutowiredAnn
>> otationBeanPostProcessor.java:366)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.populateBean(AbstractAutowireCapableBeanFac
>> tory.java:1264)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFac
>> tory.java:553)
>>         at org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y$1.getObject(AbstractBeanFactory.java:306)
>>         at org.springframework.beans.factory.support.DefaultSingletonBe
>> anRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y.doGetBean(AbstractBeanFactory.java:302)
>>         at org.springframework.beans.factory.support.AbstractBeanFactor
>> y.getBean(AbstractBeanFactory.java:197)
>>         at org.springframework.beans.factory.support.DefaultListableBea
>> nFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
>>         at org.springframework.context.support.AbstractApplicationConte
>> xt.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
>>         at org.springframework.context.support.AbstractApplicationConte
>> xt.refresh(AbstractApplicationContext.java:542)
>>         at org.springframework.boot.context.embedded.EmbeddedWebApplica
>> tionContext.refresh(EmbeddedWebApplicationContext.java:122)
>>         at org.springframework.boot.SpringApplication.refresh(SpringApp
>> lication.java:737)
>>         at org.springframework.boot.SpringApplication.refreshContext(Sp
>> ringApplication.java:370)
>>         at org.springframework.boot.SpringApplication.run(SpringApplica
>> tion.java:314)
>>         at org.springframework.boot.SpringApplication.run(SpringApplica
>> tion.java:1162)
>>         at org.springframework.boot.SpringApplication.run(SpringApplica
>> tion.java:1151)
>>         at com.brocade.dcm.server.ObjectCacheMgrApplication.main(Object
>> CacheMgrApplication.java:12)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>> Source)
>>         at java.lang.reflect.Method.invoke(Unknown Source)
>>         at org.springframework.boot.loader.MainMethodRunner.run(MainMet
>> hodRunner.java:48)
>>         at org.springframework.boot.loader.Launcher.launch(Launcher.
>> java:87)
>>         at org.springframework.boot.loader.Launcher.launch(Launcher.
>> java:50)
>>         at org.springframework.boot.loader.JarLauncher.main(JarLauncher
>> .java:51)
>> *Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
>> "CREATE TABLE ""DcmEmpCache"".EMP (_KEY VARCHAR VISIBLE[*] NOT NULL,_VAL
>> OTHER VISIBLE,_VER OTHER INVISIBLE) ENGINE ""org.apache.ignite.*
>> *internal.processors.query.h2.IgniteH2Indexing$H2TableEngine"" ";
>> expected "(, FOR, UNSIGNED, NOT, NULL, AS, DEFAULT, GENERATED, NOT, NULL,
>> AUTO_INCREMENT, BIGSERIAL, SERIAL, IDENTITY, NULL_TO_DEFAULT, SEQUEN*
>> *CE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL, CHECK,
>> REFERENCES, ,, )"; SQL statement:*
>> *CREATE TABLE "DcmEmpCache".Emp (_key VARCHAR VISIBLE NOT NULL,_val OTHER
>> VISIBLE,_ver OTHER INVISIBLE) engine "org.apache.ignite.internal.pr
>> <http://org.apache.ignite.internal.pr>ocessors.query.h2.IgniteH2Indexing$H2TableEngine"
>> [42001-193]*
>>         at org.h2.message.DbException.getJdbcSQLException(DbException.
>> java:345)
>>         at org.h2.message.DbException.getSyntaxError(DbException.java:
>> 205)
>>         at org.h2.command.Parser.getSyntaxError(Parser.java:537)
>>         at org.h2.command.Parser.read(Parser.java:3186)
>>         at org.h2.command.Parser.readIfMore(Parser.java:885)
>>         at org.h2.command.Parser.parseCreateTable(Parser.java:6043)
>>         at org.h2.command.Parser.parseCreate(Parser.java:4238)
>>         at org.h2.command.Parser.parsePrepared(Parser.java:362)
>>         at org.h2.command.Parser.parse(Parser.java:317)
>>         at org.h2.command.Parser.parse(Parser.java:293)
>>         at org.h2.command.Parser.prepareCommand(Parser.java:254)
>>         at org.h2.engine.Session.prepareLocal(Session.java:561)
>>         at org.h2.engine.Session.prepareCommand(Session.java:502)
>>         at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.jav
>> a:1203)
>>         at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java
>> :170)
>>         at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:158)
>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>> ing$H2TableEngine.createTable(IgniteH2Indexing.java:3975)
>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>> ing.createTable(IgniteH2Indexing.java:2006)
>>         at org.apache.ignite.internal.processors.query.h2.IgniteH2Index
>> ing.registerType(IgniteH2Indexing.java:1859)
>>         ... 64 more
>>
>>
>> Below is my table schema,
>>
>> *CREATE TABLE dcm.emp*
>> *(*
>> *  id text NOT NULL,*
>> *  ename text,*
>> *  job text,*
>> *  mgr text,*
>> *  hiredate date,*
>> *  sal integer,*
>> *  comm integer,*
>> *  deptid text,*
>> *  CONSTRAINT pk_emp PRIMARY KEY (id),*
>> *  CONSTRAINT fk_deptid FOREIGN KEY (deptid)*
>> *      REFERENCES dcm.dept (id) MATCH SIMPLE*
>> *      ON UPDATE RESTRICT ON DELETE CASCADE*
>> *)*
>> *WITH (*
>> *  OIDS=FALSE*
>> *);*
>> *ALTER TABLE dcm.emp*
>> *  OWNER TO postgres;*
>>
>>
>> Regards,
>> Muthu
>>
>
>
>
> --
> Alexey Kuznetsov
>

Re: Automatic Persistence : Unable to bring up cache with web console generated models ("org.apache.ignite.IgniteCheckedException: Failed to register query type" exception is thrown)

Posted by Alexey Kuznetsov <ak...@apache.org>.
Muthu,

Could you also attach files generated by WebConsole?

On Sat, Jun 10, 2017 at 7:07 AM, Muthu <mu...@gmail.com> wrote:

> Hi Folks,
>
> I used the new Web console to generate the models/artifacts to be used for
> automatic persistence. But when i bring up a Spring Boot server with
> IgniteSpringBean it fails due to a 'query registration issue'..below is the
> stack trace...i suspect from searching online that some word used in a
> column is not being accepted by H2 but couldn't figure that out from the
> exception...does anyone have a clue?
>
> *SEVERE: Got exception while starting (will rollback startup routine).*
> *class org.apache.ignite.IgniteCheckedException: Failed to register query
> type: QueryTypeDescriptorImpl [space=DcmEmpCache, name=Emp, tblName=null,
> fields={}, idxs={}, fullTextIdx=null, keyCls=class java.lang*
> *.String, valCls=class java.lang.Object, keyTypeName=java.lang.String,
> valTypeName=com.brocade.dcm.domain.model.Emp, valTextIdx=false, typeId=0,
> affKey=null, keyFieldName=null, valFieldName=null, obsolete=fal*
> *se]*
>         at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing.registerType(IgniteH2Indexing.java:1866)
>         at org.apache.ignite.internal.processors.query.GridQueryProcessor.
> registerCache0(GridQueryProcessor.java:1306)
>         at org.apache.ignite.internal.processors.query.GridQueryProcessor.
> onCacheStart0(GridQueryProcessor.java:756)
>         at org.apache.ignite.internal.processors.query.GridQueryProcessor.
> onCacheStart(GridQueryProcessor.java:817)
>         at org.apache.ignite.internal.processors.cache.
> GridCacheProcessor.startCache(GridCacheProcessor.java:1265)
>         at org.apache.ignite.internal.processors.cache.GridCacheProcessor.
> onKernalStart(GridCacheProcessor.java:898)
>         at org.apache.ignite.internal.IgniteKernal.start(
> IgniteKernal.java:1013)
>         at org.apache.ignite.internal.IgnitionEx$
> IgniteNamedInstance.start0(IgnitionEx.java:1895)
>         at org.apache.ignite.internal.IgnitionEx$
> IgniteNamedInstance.start(IgnitionEx.java:1647)
>         at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.
> java:1075)
>         at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.
> java:573)
>         at org.apache.ignite.IgniteSpring.start(IgniteSpring.java:66)
>         at org.apache.ignite.IgniteSpringBean.afterPropertiesSet(
> IgniteSpringBean.java:159)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.invokeInitMethods(
> AbstractAutowireCapableBeanFactory.java:1687)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.initializeBean(
> AbstractAutowireCapableBeanFactory.java:1624)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.doCreateBean(
> AbstractAutowireCapableBeanFactory.java:555)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.createBean(
> AbstractAutowireCapableBeanFactory.java:483)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
>         at org.springframework.beans.factory.support.
> DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.
> java:230)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
>         at org.springframework.beans.factory.config.DependencyDescriptor.
> resolveCandidate(DependencyDescriptor.java:208)
>         at org.springframework.beans.factory.support.
> DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.
> java:1138)
>         at org.springframework.beans.factory.support.
> DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.
> java:1066)
>         at org.springframework.beans.factory.annotation.
> AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(
> AutowiredAnnotationBeanPostProcessor.java:585)
>         at org.springframework.beans.factory.annotation.
> InjectionMetadata.inject(InjectionMetadata.java:88)
>         at org.springframework.beans.factory.annotation.
> AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(
> AutowiredAnnotationBeanPostProcessor.java:366)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.populateBean(
> AbstractAutowireCapableBeanFactory.java:1264)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.doCreateBean(
> AbstractAutowireCapableBeanFactory.java:553)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.createBean(
> AbstractAutowireCapableBeanFactory.java:483)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
>         at org.springframework.beans.factory.support.
> DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.
> java:230)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
>         at org.springframework.beans.factory.config.DependencyDescriptor.
> resolveCandidate(DependencyDescriptor.java:208)
>         at org.springframework.beans.factory.support.
> DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.
> java:1138)
>         at org.springframework.beans.factory.support.
> DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.
> java:1066)
>         at org.springframework.beans.factory.annotation.
> AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(
> AutowiredAnnotationBeanPostProcessor.java:585)
>         at org.springframework.beans.factory.annotation.
> InjectionMetadata.inject(InjectionMetadata.java:88)
>         at org.springframework.beans.factory.annotation.
> AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(
> AutowiredAnnotationBeanPostProcessor.java:366)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.populateBean(
> AbstractAutowireCapableBeanFactory.java:1264)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.doCreateBean(
> AbstractAutowireCapableBeanFactory.java:553)
>         at org.springframework.beans.factory.support.
> AbstractAutowireCapableBeanFactory.createBean(
> AbstractAutowireCapableBeanFactory.java:483)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
>         at org.springframework.beans.factory.support.
> DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.
> java:230)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
>         at org.springframework.beans.factory.support.
> AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
>         at org.springframework.beans.factory.support.
> DefaultListableBeanFactory.preInstantiateSingletons(
> DefaultListableBeanFactory.java:761)
>         at org.springframework.context.support.AbstractApplicationContext.
> finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
>         at org.springframework.context.support.AbstractApplicationContext.
> refresh(AbstractApplicationContext.java:542)
>         at org.springframework.boot.context.embedded.
> EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.
> java:122)
>         at org.springframework.boot.SpringApplication.refresh(
> SpringApplication.java:737)
>         at org.springframework.boot.SpringApplication.refreshContext(
> SpringApplication.java:370)
>         at org.springframework.boot.SpringApplication.run(
> SpringApplication.java:314)
>         at org.springframework.boot.SpringApplication.run(
> SpringApplication.java:1162)
>         at org.springframework.boot.SpringApplication.run(
> SpringApplication.java:1151)
>         at com.brocade.dcm.server.ObjectCacheMgrApplication.main(
> ObjectCacheMgrApplication.java:12)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at org.springframework.boot.loader.MainMethodRunner.run(
> MainMethodRunner.java:48)
>         at org.springframework.boot.loader.Launcher.launch(
> Launcher.java:87)
>         at org.springframework.boot.loader.Launcher.launch(
> Launcher.java:50)
>         at org.springframework.boot.loader.JarLauncher.main(
> JarLauncher.java:51)
> *Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
> "CREATE TABLE ""DcmEmpCache"".EMP (_KEY VARCHAR VISIBLE[*] NOT NULL,_VAL
> OTHER VISIBLE,_VER OTHER INVISIBLE) ENGINE ""org.apache.ignite.*
> *internal.processors.query.h2.IgniteH2Indexing$H2TableEngine"" "; expected
> "(, FOR, UNSIGNED, NOT, NULL, AS, DEFAULT, GENERATED, NOT, NULL,
> AUTO_INCREMENT, BIGSERIAL, SERIAL, IDENTITY, NULL_TO_DEFAULT, SEQUEN*
> *CE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL, CHECK,
> REFERENCES, ,, )"; SQL statement:*
> *CREATE TABLE "DcmEmpCache".Emp (_key VARCHAR VISIBLE NOT NULL,_val OTHER
> VISIBLE,_ver OTHER INVISIBLE) engine
> "org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$H2TableEngine"
> [42001-193]*
>         at org.h2.message.DbException.getJdbcSQLException(
> DbException.java:345)
>         at org.h2.message.DbException.getSyntaxError(DbException.java:205)
>         at org.h2.command.Parser.getSyntaxError(Parser.java:537)
>         at org.h2.command.Parser.read(Parser.java:3186)
>         at org.h2.command.Parser.readIfMore(Parser.java:885)
>         at org.h2.command.Parser.parseCreateTable(Parser.java:6043)
>         at org.h2.command.Parser.parseCreate(Parser.java:4238)
>         at org.h2.command.Parser.parsePrepared(Parser.java:362)
>         at org.h2.command.Parser.parse(Parser.java:317)
>         at org.h2.command.Parser.parse(Parser.java:293)
>         at org.h2.command.Parser.prepareCommand(Parser.java:254)
>         at org.h2.engine.Session.prepareLocal(Session.java:561)
>         at org.h2.engine.Session.prepareCommand(Session.java:502)
>         at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.
> java:1203)
>         at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.
> java:170)
>         at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:158)
>         at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing$H2TableEngine.createTable(IgniteH2Indexing.java:3975)
>         at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing.createTable(IgniteH2Indexing.java:2006)
>         at org.apache.ignite.internal.processors.query.h2.
> IgniteH2Indexing.registerType(IgniteH2Indexing.java:1859)
>         ... 64 more
>
>
> Below is my table schema,
>
> *CREATE TABLE dcm.emp*
> *(*
> *  id text NOT NULL,*
> *  ename text,*
> *  job text,*
> *  mgr text,*
> *  hiredate date,*
> *  sal integer,*
> *  comm integer,*
> *  deptid text,*
> *  CONSTRAINT pk_emp PRIMARY KEY (id),*
> *  CONSTRAINT fk_deptid FOREIGN KEY (deptid)*
> *      REFERENCES dcm.dept (id) MATCH SIMPLE*
> *      ON UPDATE RESTRICT ON DELETE CASCADE*
> *)*
> *WITH (*
> *  OIDS=FALSE*
> *);*
> *ALTER TABLE dcm.emp*
> *  OWNER TO postgres;*
>
>
> Regards,
> Muthu
>



-- 
Alexey Kuznetsov