cancel
Showing results for 
Search instead for 
Did you mean: 

Frequent Io exception: Connection reset

mathewvimal
Champ in-the-making
Champ in-the-making
We are seeing the following exception when activiti runs continuously (for about more than 8 hours). Restart would resolve this issue.
Has anyone seen similar issues? Is there any DB configuration that could resolve this issue?

2013-08-09 10:24:10,196 DEBUG [com.srn.workflow.processinstance.ProcessInstanceManagerImpl] (http-10.71.1.58-8080-2) Starting new worlflow for scrid:1460440 and eventCode:MODIFY_ASSET
2013-08-09 10:24:10,202 ERROR [STDERR] (http-10.71.1.58-8080-2) Aug 9, 2013 10:24:10 AM org.activiti.engine.impl.interceptor.CommandContext close
SEVERE: Error while closing command context
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: java.sql.SQLRecoverableException: Io exception: Connection reset
### The error may involve org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity.selectLatestProcessDefinitionByKey-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLRecoverableException: Io exception: Connection reset
        at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:81)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:73)
        at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:39)
        at org.activiti.engine.impl.db.DbSqlSession.selectOne(DbSqlSession.java:201)
        at org.activiti.engine.impl.persistence.entity.ProcessDefinitionManager.findLatestProcessDefinitionByKey(ProcessDefinitionManager.java:34)
        at org.activiti.engine.impl.persistence.deploy.DeploymentCache.findDeployedLatestProcessDefinitionByKey(DeploymentCache.java:58)
        at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:58)
        at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:31)
        at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
        at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
        at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:42)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
3 REPLIES 3

frederikherema1
Star Contributor
Star Contributor
What connection-pool are you using? Look into the parameters of that or use one that is proven in production that has all kind of internal connection checking built in…

mathewvimal
Champ in-the-making
Champ in-the-making
I guess we should be adjusting jdbc.maxActive value correct? Following is the DB conf we use:

db=oracle
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbcSmiley Surprisedracle:thin:@sc.db.com:1521:EDAMP
jdbc.username=
jdbc.password=
jdbc.maxActive=30
jdbc.minIdle=10
jdbc.maxWait=0

jbarrez
Star Contributor
Star Contributor
You could do that - but you rather should use a 'real' connection pool (DBCP, c3p0, BoneCP, …) since those are way better