7 Replies Latest reply on Aug 7, 2009 6:02 PM by Ha Wa

    Problem with db scripts for Oracle in v4.0 of jbpm

    Shekhar Vemuri Newbie

      Had a question about the QA process for jbpm. Here is the background:

      We are trying to deploy the jbpm4.0GA release db scripts on the oracle db. There are a couple of problems with this : there are errors that come up when the script is run. refer to
      http://www.jboss.org/index.html?module=bb&op=viewtopic&t=159251

      Then after we run the scripts, which does creates the tables properly, though, I tried to run the examples, but there is a error whenever there is an attempt to Start a Process instance.


      WARNING: SQL Error: 2291, SQLState: 23000
      Aug 3, 2009 7:39:33 AM org.hibernate.util.JDBCExceptionReporter logExceptions
      SEVERE: ORA-02291: integrity constraint (SVC_GGOV.FK_HTI_HTASK) violated - parent key not found
      
      Aug 3, 2009 7:39:33 AM org.hibernate.util.JDBCExceptionReporter logExceptions
      WARNING: SQL Error: 2291, SQLState: 23000
      Aug 3, 2009 7:39:33 AM org.hibernate.util.JDBCExceptionReporter logExceptions
      SEVERE: ORA-02291: integrity constraint (SVC_GGOV.FK_HTI_HTASK) violated - parent key not found
      
      Aug 3, 2009 7:39:33 AM org.hibernate.event.def.AbstractFlushingEventListener performExecutions
      SEVERE: 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:94)
       at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
       at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
       at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)
       at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
       at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
       at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)
       at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2688)
       at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
       at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
       at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
       at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
       at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:84)
       at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:54)
       at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
       at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceByKey(ExecutionServiceImpl.java:70)
       at edu.apollogrp.taskengine.workflow.service.impl.ExecutionManagementServiceImpl.startProcessAndSignal(ExecutionManagementServiceImpl.java:54)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
       at $Proxy17.startProcessAndSignal(Unknown Source)
       at edu.apollogrp.taskengine.workflow.logic.impl.WorkflowServiceImpl.createNewProcessInstanceAndStart(WorkflowServiceImpl.java:400)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
       at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:50)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
       at $Proxy22.createNewProcessInstanceAndStart(Unknown Source)
       at edu.apollogrp.taskengine.logic.event.TaskEventLogicImpl.raiseEvent(TaskEventLogicImpl.java:45)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
       at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:50)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
       at $Proxy24.raiseEvent(Unknown Source)
       at edu.apollogrp.taskengine.util.interpreter.commands.RaiseEventCommand.executeInternal(RaiseEventCommand.java:32)
       at edu.apollogrp.taskengine.util.interpreter.commands.BaseInterpreterCommand.executeCommand(BaseInterpreterCommand.java:43)
       at edu.apollogrp.taskengine.util.interpreter.WorkflowInterpreter.executeCommand(WorkflowInterpreter.java:95)
       at edu.apollogrp.taskengine.util.interpreter.WorkflowInterpreter.executeCommand(WorkflowInterpreter.java:76)
       at edu.apollogrp.taskengine.util.interpreter.BaseInterpreter.interpretCommand(BaseInterpreter.java:110)
       at edu.apollogrp.taskengine.util.interpreter.BaseInterpreter.rep(BaseInterpreter.java:91)
       at edu.apollogrp.taskengine.util.interpreter.BaseInterpreter.runMain(BaseInterpreter.java:54)
       at edu.apollogrp.taskengine.util.interpreter.BaseInterpreter.runMain(BaseInterpreter.java:47)
       at edu.apollogrp.taskengine.util.interpreter.WorkflowInterpreter.main(WorkflowInterpreter.java:46)
      Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (SVC_GGOV.FK_HTI_HTASK) violated - parent key not found
      
       at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
       at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10768)
       at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:294)
       at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
       at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
       ... 73 more
      
      


      This happens when the script provided with jbpm is used to deploy the tables in an oracle database.

      We work with Oracle 10g.

      This does not happen when the hbm2ddl property is turned on, as it is in the examples distribution. The examples work fine as long as the create-drop is enabled, if that is taken out and the examples are run against the schema generated by the scripts, they start failing too.