cancel
Showing results for 
Search instead for 
Did you mean: 

Activiti 5.18 not supporting Bulk inserts for Oracle database

swamy2156
Champ on-the-rise
Champ on-the-rise
Hi,

I am trying to upgrade actviti to 5.18 in my project because of the bulk SQL insert feature. I am really surprised to see bulk inserts not working with Oracle database. Currently I disabled it using setBulkInsertEnabled(false) in processEngineConfiguration.
I would like to know which databases are supporting this feature. Curious to ask, why Bulk inserts not supported by Activiti for Oracle db?

Oracle Database that I am using is : Oracle 11.02.00.03
Spring framework v3.2.3 Release
Ojdbc Jar : com.oracle.ojdbc6:12.1.0.2.0

5 REPLIES 5

swamy2156
Champ on-the-rise
Champ on-the-rise
In continuation to my post, I am seeing exception in logs as follows while initiating a new process request.

### Error updating database.  Cause: java.sql.SQLException: Invalid column type
### The error may involve org.activiti.engine.impl.persistence.entity.HistoricVariableInstanceEntity.bulkInsertHistoricVariableInstance_oracle-Inline
### The error occurred while setting parameters
### SQL: INSERT ALL                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)                 INTO ACT_HI_VARINST (ID_, PROC_INST_ID_, EXECUTION_ID_, TASK_ID_, NAME_, REV_,       VAR_TYPE_, BYTEARRAY_ID_, DOUBLE_, LONG_ , TEXT_, TEXT2_, CREATE_TIME_, LAST_UPDATED_TIME_) VALUES            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)              SELECT * FROM dual
### Cause: java.sql.SQLException: Invalid column type

trademak
Star Contributor
Star Contributor
Hi,

Is there a specific reason for using a different Spring version than the one we ship with Activiti?
On our QA environment Oracle is working with bulk inserts. Is ACT_HI_VARINST the only table causing the issue? Which Maven command are you running and what is your activiti.cfg.xml config?

Best regards,

swamy2156
Champ on-the-rise
Champ on-the-rise
No specific reason not to use Spring version ship with activiti. We aren't upgraded spring version in our environments. Though I upgraded my spring dependencies to 4.1.5.RELEASE still seeing the same problem. Here is my processengine configuration
<code>
  <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    <property name="dataSource" ref="dataSource" />
    <property name="databaseType" value="oracle" />
    <property name="transactionManager" ref="transactionManager" />
    <property name="databaseSchemaUpdate" value="false" />
    <property name="jobExecutorActivate" value="false" />
    <property name="enableDatabaseEventLogging" value="false" />
    <property name="bulkInsertEnabled" value="false" />
    <property name="idGenerator">
      <bean class="org.activiti.engine.impl.persistence.StrongUuidGenerator" />
    </property>
  </bean>
</code>

While debuging a bit deeper about the issue I notice some interesting things. I am seeing this problem with null variables type=null

When turn ON bulkInsertEnabled=true, I am facing problem for following kind of variables (no matter which spring dependency that I am using) and in logs displaying error messages for ACT_HI_VARINST entries only.
HistoricVariableInstanceEntity[id=6ba2df41-8916-11e5-b66b-02000172006d, name=var1, revision=0, type=null],
HistoricVariableInstanceEntity[id=6ba26a09-8916-11e5-b66b-02000172006d, name=var2, revision=0, type=null]
and exception is as follows:
### Cause: java.sql.SQLException: Invalid column type
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:134)
at org.activiti.engine.impl.db.DbSqlSession.flushBulkInsert(DbSqlSession.java:842)
at org.activiti.engine.impl.db.DbSqlSession.flushPersistentObjects(DbSqlSession.java:811)
at org.activiti.engine.impl.db.DbSqlSession.flushInserts(DbSqlSession.java:789)
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:610)
at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:211)
at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:137)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:66)
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:37)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35)
at org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:77)
at com.uprr.netcontrol.bpmworkflowmanagement.common.initiate.workflow.adapter.InitiateWorkflowAdapterImpl.initiate(InitiateWorkflowAdapterImpl.java:27)
at com.uprr.netcontrol.bpmworkflowmanagement.business.process.management.initiate.enterprise.workflow.delegate.DuplicateProcessInstanceDecisionMakerImpl.performAction(DuplicateProcessInstanceDecisionMakerImpl.java:47)
at com.uprr.netcontrol.bpmworkflowmanagement.common.ServiceProvider.processRequest(ServiceProvider.java:71)
at com.uprr.netcontrol.bpmworkflowmanagement.business.process.management.initiate.enterprise.workflow.InitiateWorkFlowServiceTestIT.testProcessRequestITByFileInput(InitiateWorkFlowServiceTestIT.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:224)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.sql.SQLException: Invalid column type
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:9470)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8954)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:9766)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:9743)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:241)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at oracle.ucp.jdbc.proxy.StatementProxyFactory.invoke(StatementProxyFactory.java:294)
at oracle.ucp.jdbc.proxy.PreparedStatementProxyFactory.invoke(PreparedStatementProxyFactory.java:137)
at com.sun.proxy.$Proxy30.setObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:66)
at com.sun.proxy.$Proxy44.setObject(Unknown Source)
at org.apache.ibatis.type.ObjectTypeHandler.setNonNullParameter(ObjectTypeHandler.java:28)
at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:46)
at org.apache.ibatis.type.UnknownTypeHandler.setNonNullParameter(UnknownTypeHandler.java:37)
at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:46)
at org.apache.ibatis.executor.parameter.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:91)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:77)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:58)
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:71)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:44)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:108)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:145)
… 48 more

When turn OFF bulkInsertEnabled, process instance getting created and variables type=null also storing in both Runtime & History tables as is(ACT_RU_VARIABLE.TYPE_ = null, which is as similar as 5.17).

I think when bulkInsertEnabled is turned on, DefaultSqlSession not able to resolve variableType when variable value is null. Same with v5.19also. Is this an expected behaviour or a bug with bulkInsert feature?

swamy2156
Champ on-the-rise
Champ on-the-rise
Any update on this??  when bulkInsertEnabled=true, null variables not getting inserted into ACT_RU_VARIABLE & ACT_HI_VARINST tables and giving exception as  ### Cause: java.sql.SQLException: Invalid column type
Does bulkInserts not allow for variable type NULL??
HistoricVariableInstanceEntity[id=6ba2df41-8916-11e5-b66b-02000172006d, name=var1, revision=0, type=null],


swamy2156
Champ on-the-rise
Champ on-the-rise
I figured out the issue. mybatis dependency is not sync with Activiti version. Because of that, facing the issue. After changing the mybatis version to activiti ship version, problem gone.

Thanks,
Swamy.