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.