AnsweredAssumed Answered

Error updating database - ORA-03120

Question asked by mmaker1234 on Sep 17, 2013
Latest reply on Oct 9, 2013 by frederikheremans1
Hello Activiti developers,

We are using Activiti 5.13 on Oracle 11g database. Yesterday we observed the following error on one of our production systems:
### Error updating database.  Cause: java.sql.SQLException: ORA-03120: two-task conversion routine: integer overflow

### The error may involve org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.updateHistoricActivityInstance-Inline
### The error occurred while setting parameters
### SQL: update ACT_HI_ACTINST set       EXECUTION_ID_ = ?,       ASSIGNEE_ = ?,       END_TIME_ = ?,       DURATION_ = ?     where ID_ = ?
### Cause: java.sql.SQLException: ORA-03120: two-task conversion routine: integer overflow

org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: java.sql.SQLException: ORA-03120: two-task conversion routine: integer overflow

### The error may involve org.activiti.engine.impl.persistence.entity.HistoricActivityInstanceEntity.updateHistoricActivityInstance-Inline
### The error occurred while setting parameters
### SQL: update ACT_HI_ACTINST set       EXECUTION_ID_ = ?,       ASSIGNEE_ = ?,       END_TIME_ = ?,       DURATION_ = ?     where ID_ = ?
### Cause: java.sql.SQLException: ORA-03120: two-task conversion routine: integer overflow

   at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:150)
   at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:558)
   at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:442)
   at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:169)
   at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:116)
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:70)
   at org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:60)
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
   at org.activiti.engine.impl.RuntimeServiceImpl.deleteProcessInstance(RuntimeServiceImpl.java:87)



Any idea of what could happen or how to understand what value broke the query?

Unfortunately getting information from that system is not easy, also the changing of logging level. And "restart" is a four-letter word. I could still provide you with the result of
select max(EXECUTION_ID_) as max_EXECUTION_ID,
       max(ASSIGNEE_) as max_ASSIGNEE,
       max(END_TIME_) as max_END_TIME,
       max(DURATION_) as max_DURATION,
       max(ID_) as max_ID
  from ACT_HI_ACTINST
but I doubt it is useful.

Outcomes