cancel
Showing results for 
Search instead for 
Did you mean: 

Mybatis hangs on deploy or execution

gokceng1
Champ in-the-making
Champ in-the-making
Hello,
I've been facing some DB problems lately. I'm using Spring configured ProcessEngine. The version is 5.16 and version of Spring dependencies' is 4.0.6.RELEASE. I'm using c3p0 as a connection pool.
When I tried to deploy my processes, thread hangs and as I configured c3p0 to warn me I get 'connection closed' exception.

Thread dump as it hangs like that:

"http-bio-8080-exec-9@15803" daemon prio=5 tid=0x4b nid=NA runnable
  java.lang.Thread.State: RUNNABLE
     at java.net.SocketOutputStream.socketWrite0(SocketOutputStream.java:-1)
     at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
     at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
     at oracle.net.ns.DataPacket.send(DataPacket.java:210)
     - locked <0x495f> (a java.net.SocketOutputStream)
     at oracle.net.ns.NetOutputStream.write(NetOutputStream.java:195)
     at oracle.jdbc.driver.T4CSocketOutputStreamWrapper.flush(T4CSocketOutputStreamWrapper.java:99)
     at oracle.jdbc.driver.T4CSocketOutputStreamWrapper.flush(T4CSocketOutputStreamWrapper.java:92)
     at oracle.jdbc.driver.T4CSocketOutputStreamWrapper.write(T4CSocketOutputStreamWrapper.java:84)
     at oracle.jdbc.driver.T4CMAREngine.marshalB1Array(T4CMAREngine.java:556)
     at oracle.jdbc.driver.T4CTTIrxd.marshal(T4CTTIrxd.java:810)
     at oracle.jdbc.driver.T4C8Oall.marshalBinds(T4C8Oall.java:1678)
     at oracle.jdbc.driver.T4C8Oall.marshal(T4C8Oall.java:1041)
     at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:190)
     at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
     at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
     at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044)
     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
     at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
     at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685)
     - locked <0x4960> (a oracle.jdbc.driver.T4CConnection)
     at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1376)
     at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:823)
     at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:41)
     at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:66)
     at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:45)
     at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:100)
     at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75)
     at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:148)
     at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:137)
     at org.activiti.engine.impl.db.DbSqlSession.flushInserts(DbSqlSession.java:751)
     at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:586)
     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: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.RepositoryServiceImpl.deploy(RepositoryServiceImpl.java:78)
     at org.activiti.engine.impl.repository.DeploymentBuilderImpl.deploy(DeploymentBuilderImpl.java:156)


What can be the reason for this behaviour?
1 REPLY 1

jbarrez
Star Contributor
Star Contributor
Afaik, c3p0 needs ping queries (or keepalive - dunno the name anymore) for some database. otherwise the connection might go stale. Did you configure those properties correctly?