AnsweredAssumed Answered

about the history variables insert sql exception

Question asked by fuhang on Sep 29, 2015
Latest reply on Oct 6, 2016 by ak1801
I have a problem about engine saving history variable causing exception.
this is my configuration:
<blockcode>
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
      <property name="dataSource" ref="dataSourceDBCP"/>
      <!– none, activity, audit, full –>
      <property name="history" value="activity"/>
   </bean>
</blockcode>
when enable history property as activity (or audit or full),and I set the tow variables to start flow instance or complete the task with variables
,the exception is happening(below codes):

Map<String, Object> variables = new HashMap<String, Object>();
variables.put( "accepterDepartmentId", currentTaskParticipantDepartment );
variables.put( "responsibleParticipantId", currentTaskParticipantId );
//cause exception
taskService.complete( taskId, variables );
//cause exception
runtimeService.startProcessInstanceByKey( DepartmentWorkHandleFlowConstant.PROCESS_DEFINITION_KEY, formId, variables );
//this is oracle 12c/11g database, exception is:

org.apache.ibatis.exceptions.PersistenceException:
### 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            (?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?,            ?)              SELECT * FROM dual
### 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.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
   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:81)

How to fix this?

Outcomes