You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by chanducompute <ch...@yahoo.co.in> on 2014/07/25 09:42:52 UTC

Not able to update entity using Camel JPA

Hi,

I am using cmael JPA for my persistence operations,and as part of my updates
I am facing issues.

In my route I am reading a row and then modifying it in a bean and adding to
JPA:entity and getting errors.

here is my route
from("jpa:test.persistence.entity.StatusCodeMappings?consumer.namedQuery=StatusCodeMappings.findById&consumer.delay=50000000&consumeLockEntity=false&consumeDelete=false")
	.log("First Route==>${body}").to("direct:updateExistData");
from("direct:updateExistData").beanRef("mappingsLoader",
"updateExistStatusCodeMappings")
	.log("This is after modification==>${body}").to("jpa:entity");

Here is the update entity logic
mappings.setStatusCode(7);
mappings.setAlertName("Updated one is the one");
mappings.setSeverity(1);

Below is the error I am getting.
2014-07-25 13:12:10,560 WARN  [org.apache.camel.component.jpa.JpaConsumer]
(Camel (OpsCamelContext) thread #0 -
jpa://com.nielsen.engineering.mediaworks.example.jee6.lib.persistence.entity.StatusCodeMappings)
Consumer
Consumer[jpa://com.nielsen.engineering.mediaworks.example.jee6.lib.persistence.entity.StatusCodeMappings?consumeDelete=false&consumeLockEntity=false&consumer.delay=50000000&consumer.namedQuery=StatusCodeMappings.findAll]
failed polling endpoint:
Endpoint[jpa://com.nielsen.engineering.mediaworks.example.jee6.lib.persistence.entity.StatusCodeMappings?consumeDelete=false&consumeLockEntity=false&consumer.delay=50000000&consumer.namedQuery=StatusCodeMappings.findAll].
Will try again at next poll. Caused by:
[javax.persistence.PersistenceException -
org.hibernate.exception.GenericJDBCException: could not perform addBatch]:
javax.persistence.PersistenceException:
org.hibernate.exception.GenericJDBCException: could not perform addBatch
	at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
[hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)
[hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1316)
[hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:999)
[hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[rt.jar:1.7.0_51]
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_51]
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_51]
	at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
	at
org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
[spring-orm-3.0.7.RELEASE.jar:3.0.7.RELEASE]
	at com.sun.proxy.$Proxy168.flush(Unknown Source)
	at
org.apache.camel.component.jpa.JpaConsumer$1.doInTransaction(JpaConsumer.java:124)
[camel-jpa-2.12.2.jar:2.12.2]
	at
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
[spring-tx-3.0.7.RELEASE.jar:3.0.7.RELEASE]
	at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:80)
[camel-jpa-2.12.2.jar:2.12.2]
	at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
[camel-core-2.12.2.jar:2.12.2]
	at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114)
[camel-core-2.12.2.jar:2.12.2]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
[rt.jar:1.7.0_51]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
[rt.jar:1.7.0_51]
	at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
[rt.jar:1.7.0_51]
	at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[rt.jar:1.7.0_51]
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_51]
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_51]
	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: org.hibernate.exception.GenericJDBCException: could not perform
addBatch
	at
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.engine.jdbc.batch.internal.BatchingBatch.performExecution(BatchingBatch.java:114)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.engine.jdbc.batch.internal.BatchingBatch.doExecuteBatch(BatchingBatch.java:101)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.execute(AbstractBatchImpl.java:149)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:198)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:357)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:276)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:328)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1234)
[hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	at
org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:996)
[hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
	... 18 more
Caused by: org.h2.jdbc.JdbcBatchUpdateException: Timeout trying to lock
table ; SQL statement:
update opsBridge.status_codes set alert_name=?, severity=?, status_code=?
where status_code_id=? [50200-168]



Can some one please help me resolving this.




Thanks,
Chandu.



--
View this message in context: http://camel.465427.n5.nabble.com/Not-able-to-update-entity-using-Camel-JPA-tp5754434.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Not able to update entity using Camel JPA

Posted by Filippo Balicchia <fb...@gmail.com>.
Hi Chandu,

the problem seems to be this
"Caused by: org.h2.jdbc.JdbcBatchUpdateException: Timeout trying to lock
table ; SQL statement:
update opsBridge.status_codes set alert_name=?, severity=?, status_code=?
where status_code_id=? [50200-168]"


Could you check this
http://stackoverflow.com/questions/4162557/timeout-error-trying-to-lock-table-in-h2
if resolve your problem ?

Regards

--Filippo




2014-07-25 9:42 GMT+02:00 chanducompute <ch...@yahoo.co.in>:
> Hi,
>
> I am using cmael JPA for my persistence operations,and as part of my updates
> I am facing issues.
>
> In my route I am reading a row and then modifying it in a bean and adding to
> JPA:entity and getting errors.
>
> here is my route
> from("jpa:test.persistence.entity.StatusCodeMappings?consumer.namedQuery=StatusCodeMappings.findById&consumer.delay=50000000&consumeLockEntity=false&consumeDelete=false")
>         .log("First Route==>${body}").to("direct:updateExistData");
> from("direct:updateExistData").beanRef("mappingsLoader",
> "updateExistStatusCodeMappings")
>         .log("This is after modification==>${body}").to("jpa:entity");
>
> Here is the update entity logic
> mappings.setStatusCode(7);
> mappings.setAlertName("Updated one is the one");
> mappings.setSeverity(1);
>
> Below is the error I am getting.
> 2014-07-25 13:12:10,560 WARN  [org.apache.camel.component.jpa.JpaConsumer]
> (Camel (OpsCamelContext) thread #0 -
> jpa://com.nielsen.engineering.mediaworks.example.jee6.lib.persistence.entity.StatusCodeMappings)
> Consumer
> Consumer[jpa://com.nielsen.engineering.mediaworks.example.jee6.lib.persistence.entity.StatusCodeMappings?consumeDelete=false&consumeLockEntity=false&consumer.delay=50000000&consumer.namedQuery=StatusCodeMappings.findAll]
> failed polling endpoint:
> Endpoint[jpa://com.nielsen.engineering.mediaworks.example.jee6.lib.persistence.entity.StatusCodeMappings?consumeDelete=false&consumeLockEntity=false&consumer.delay=50000000&consumer.namedQuery=StatusCodeMappings.findAll].
> Will try again at next poll. Caused by:
> [javax.persistence.PersistenceException -
> org.hibernate.exception.GenericJDBCException: could not perform addBatch]:
> javax.persistence.PersistenceException:
> org.hibernate.exception.GenericJDBCException: could not perform addBatch
>         at
> org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
> [hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)
> [hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1316)
> [hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:999)
> [hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [rt.jar:1.7.0_51]
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> [rt.jar:1.7.0_51]
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> [rt.jar:1.7.0_51]
>         at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
>         at
> org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
> [spring-orm-3.0.7.RELEASE.jar:3.0.7.RELEASE]
>         at com.sun.proxy.$Proxy168.flush(Unknown Source)
>         at
> org.apache.camel.component.jpa.JpaConsumer$1.doInTransaction(JpaConsumer.java:124)
> [camel-jpa-2.12.2.jar:2.12.2]
>         at
> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
> [spring-tx-3.0.7.RELEASE.jar:3.0.7.RELEASE]
>         at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:80)
> [camel-jpa-2.12.2.jar:2.12.2]
>         at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
> [camel-core-2.12.2.jar:2.12.2]
>         at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114)
> [camel-core-2.12.2.jar:2.12.2]
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> [rt.jar:1.7.0_51]
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
> [rt.jar:1.7.0_51]
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
> [rt.jar:1.7.0_51]
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> [rt.jar:1.7.0_51]
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [rt.jar:1.7.0_51]
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [rt.jar:1.7.0_51]
>         at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
> Caused by: org.hibernate.exception.GenericJDBCException: could not perform
> addBatch
>         at
> org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.engine.jdbc.batch.internal.BatchingBatch.performExecution(BatchingBatch.java:114)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.engine.jdbc.batch.internal.BatchingBatch.doExecuteBatch(BatchingBatch.java:101)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.execute(AbstractBatchImpl.java:149)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:198)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:357)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:276)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:328)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1234)
> [hibernate-core-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         at
> org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:996)
> [hibernate-entitymanager-4.2.0.SP1-redhat-1.jar:4.2.0.SP1-redhat-1]
>         ... 18 more
> Caused by: org.h2.jdbc.JdbcBatchUpdateException: Timeout trying to lock
> table ; SQL statement:
> update opsBridge.status_codes set alert_name=?, severity=?, status_code=?
> where status_code_id=? [50200-168]
>
>
>
> Can some one please help me resolving this.
>
>
>
>
> Thanks,
> Chandu.
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Not-able-to-update-entity-using-Camel-JPA-tp5754434.html
> Sent from the Camel - Users mailing list archive at Nabble.com.