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.

Reply via email to