Hi
I have a problem with database for BAM. I created sample code :
ActivityBuilder request =
activity("broker:topic:req?concurrentConsumers=1").name("Request")
.correlate(xpath("/Request/@Id").stringResult());
ActivityBuilder response =
activity("broker:topic:res?concurrentConsumers=1").name("Response")
.correlate(xpath("/Response/@Id").stringResult());
response
.starts().after(request.completes())
.expectWithin(seconds(10))
.errorIfOver(seconds(20)).to("log:com.test?level=error");
It works fine for the first time, there is a timeout information. Once I
stop application and start it again and send a message to req topic there is
an exception (see the end of the post). I checked this and it's because once
restarted Apache Camel tries once again to insert activity definition to the
table CAMEL_ACTIVITYDEFINITION, but there is unique constraint on the name
column there , that's why there is an exception. Do you know any solution or
workaround for this problem except for cleaning database each time there is
an application restart ?
Regards
Marcin
2011-12-13 09:46:19,803 [AItoMDP.qmirror] INFO JpaBamProcessorSupport
- >> LoadEntity call
2011-12-13 09:46:19,850 [AItoMDP.qmirror] WARN JDBCExceptionReporter
- SQL Error: 1, SQLState: 23000
2011-12-13 09:46:19,850 [AItoMDP.qmirror] ERROR JDBCExceptionReporter
- ORA-00001: unique constraint (MARCIN.SYS_C0011139) violated
2011-12-13 09:46:19,850 [AItoMDP.qmirror] WARN JDBCExceptionReporter
- SQL Error: 1, SQLState: 23000
2011-12-13 09:46:19,850 [AItoMDP.qmirror] ERROR JDBCExceptionReporter
- ORA-00001: unique constraint (MARCIN.SYS_C0011139) violated
2011-12-13 09:46:19,850 [AItoMDP.qmirror] ERROR
AbstractFlushingEventListener - Could not synchronize database state with
session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC
batch update
at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:178)
at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at
org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)
at
org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1175)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1251)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:241)
at
org.springframework.orm.jpa.JpaTemplate$10.doInJpa(JpaTemplate.java:330)
at
org.springframework.orm.jpa.JpaTemplate$10.doInJpa(JpaTemplate.java:1)
at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183)
at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:146)
at
org.springframework.orm.jpa.JpaTemplate.findByNamedParams(JpaTemplate.java:321)
at
org.apache.camel.bam.ProcessBuilder.findOrCreateActivityDefinition(ProcessBuilder.java:187)
at
org.apache.camel.bam.rules.ActivityRules.getActivityDefinition(ActivityRules.java:72)
at
org.apache.camel.bam.model.ActivityState.isActivity(ActivityState.java:84)
at
org.apache.camel.bam.model.ProcessInstance.getActivityState(ProcessInstance.java:124)
at org.apache.camel.bam.TimeExpression.evaluate(TimeExpression.java:55)
at
org.apache.camel.bam.rules.TemporalRule.processExchange(TemporalRule.java:99)
at
org.apache.camel.bam.rules.ActivityRules.processExchange(ActivityRules.java:63)
at
org.apache.camel.bam.rules.ProcessRules.processExchange(ProcessRules.java:44)
at
org.apache.camel.bam.processor.JpaBamProcessor.processEntity(JpaBamProcessor.java:58)
at
org.apache.camel.bam.processor.JpaBamProcessor.processEntity(JpaBamProcessor.java:37)
at
org.apache.camel.bam.processor.BamProcessorSupport$1.doInTransaction(BamProcessorSupport.java:97)
at
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at
org.apache.camel.bam.processor.BamProcessorSupport.process(BamProcessorSupport.java:89)
at
org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:306)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:91)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:243)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint
(MARCIN.SYS_C0011139) violated
at
oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10296)
at
oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:216)
at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at
org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 61 more
2011-12-13 09:46:19,850 [AItoMDP.qmirror] ERROR BamProcessorSupport
- Caught: org.springframework.dao.DataIntegrityViolationException: Could not
execute JDBC batch update; SQL [insert into CAMEL_ACTIVITYDEFINITION (name,
processDefinition_id, id) values (?, ?, ?)]; constraint
[MARCIN.SYS_C0011139]; nested exception is
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC
batch update
org.springframework.dao.DataIntegrityViolationException: Could not execute
JDBC batch update; SQL [insert into CAMEL_ACTIVITYDEFINITION (name,
processDefinition_id, id) values (?, ?, ?)]; constraint
[MARCIN.SYS_C0011139]; nested exception is
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC
batch update
at
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:637)
at
org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:102)
at
org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
at
org.springframework.orm.jpa.JpaAccessor.translateIfNecessary(JpaAccessor.java:152)
at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:188)
at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:146)
at
org.springframework.orm.jpa.JpaTemplate.findByNamedParams(JpaTemplate.java:321)
at
org.apache.camel.bam.ProcessBuilder.findOrCreateActivityDefinition(ProcessBuilder.java:187)
at
org.apache.camel.bam.rules.ActivityRules.getActivityDefinition(ActivityRules.java:72)
at
org.apache.camel.bam.model.ActivityState.isActivity(ActivityState.java:84)
at
org.apache.camel.bam.model.ProcessInstance.getActivityState(ProcessInstance.java:124)
at org.apache.camel.bam.TimeExpression.evaluate(TimeExpression.java:55)
at
org.apache.camel.bam.rules.TemporalRule.processExchange(TemporalRule.java:99)
at
org.apache.camel.bam.rules.ActivityRules.processExchange(ActivityRules.java:63)
at
org.apache.camel.bam.rules.ProcessRules.processExchange(ProcessRules.java:44)
at
org.apache.camel.bam.processor.JpaBamProcessor.processEntity(JpaBamProcessor.java:58)
at
org.apache.camel.bam.processor.JpaBamProcessor.processEntity(JpaBamProcessor.java:37)
at
org.apache.camel.bam.processor.BamProcessorSupport$1.doInTransaction(BamProcessorSupport.java:97)
at
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at
org.apache.camel.bam.processor.BamProcessorSupport.process(BamProcessorSupport.java:89)
at
org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:90)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:306)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:91)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:243)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.exception.ConstraintViolationException: Could not
execute JDBC batch update
at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:178)
at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at
org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)
at
org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1175)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1251)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:241)
at
org.springframework.orm.jpa.JpaTemplate$10.doInJpa(JpaTemplate.java:330)
at
org.springframework.orm.jpa.JpaTemplate$10.doInJpa(JpaTemplate.java:1)
at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183)
... 50 more
Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint
(MARCIN.SYS_C0011139) violated
at
oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10296)
at
oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:216)
at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at
org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 61 more
--
View this message in context:
http://camel.465427.n5.nabble.com/BAM-problem-with-database-tp5071036p5071036.html
Sent from the Camel - Users mailing list archive at Nabble.com.