Problem with db scripts for Oracle in v4.0 of jbpm
shekharv Aug 3, 2009 10:48 AMHad 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.