cancel
Showing results for 
Search instead for 
Did you mean: 

Error updating database - ORA-03120

mmaker1234
Champ in-the-making
Champ in-the-making
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.
5 REPLIES 5

jbarrez
Star Contributor
Star Contributor
Seems to be an Oracle internal error, right: http://www.dba-oracle.com/t_ora_03120_two_task_conversion_routine_integer_overflow.htm

Do you see that error happening multiple times?

mmaker1234
Champ in-the-making
Champ in-the-making
Hello Joram,

It seems the error happened only once (at that day). Unfortunately I can not check all the logs (since the beginning of the month for example) as the access to them is restricted.

jbarrez
Star Contributor
Star Contributor
Damn dba's Smiley Tongue

But without much more information I'm afraid I can't say more Smiley Sad

mmaker1234
Champ in-the-making
Champ in-the-making
I could try to provide the information you need.

Unfortunately, as I already mentioned above, the server is a production one and the only thing we could do is to monitor/query its current state. We can not change its configuration (the logging level for example) as it would require a server restart.

Until now the server run flawlessly with several versions (and upgrades) of Activiti. We also didn't observed the above error since its first occurrence.

frederikherema1
Star Contributor
Star Contributor
I think we can blame this one on random bit switched due to solar flares Smiley Wink