Hi,
We are using JBPM 6.5.0 embedded in a Spring Framework, and used either the ComboPooledDataSource or Hikari datasource. However, as per the logs attached, we have identified connection leaks if Hikari DS is used, or apparent Deadlocks if ComboPooledDataSource is used, resulting in our application getting crashed daily.
Could you please take a look at the logs and suggest what might be the problem? Thanks a lot.
When using Hikari datasource:
2017-08-18 11:20:47,790 DEBUG [com.zaxxer.hikari.pool.HikariPool] HikariPool-1 - Pool stats (total=30, active=1, idle=29, waiting=0)
2017-08-18 11:20:48,538 WARN [com.zaxxer.hikari.pool.ProxyLeakTask] Connection leak detection triggered for ConnectionID:1 ClientConnectionId: d849c8ad-a213-44d5-a10a-e358d67e91ab, stack trace follows
java.lang.Exception: Apparent connection leak detected
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:386)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:87)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:112)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:230)
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:237)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:214)
at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52)
at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1512)
at org.hibernate.jpa.internal.TransactionImpl.begin(TransactionImpl.java:45)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:189)
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:380)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
at org.kie.spring.persistence.KieSpringTransactionManager.begin(KieSpringTransactionManager.java:53)
at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:187)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommandService(KnowledgeStoreServiceImpl.java:143)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.loadKieSession(KnowledgeStoreServiceImpl.java:111)
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.loadKieSession(KnowledgeStoreServiceImpl.java:39)
at org.kie.internal.persistence.jpa.JPAKnowledgeService.loadStatefulKnowledgeSession(JPAKnowledgeService.java:144)
at org.jbpm.runtime.manager.impl.factory.JPASessionFactory.findKieSessionById(JPASessionFactory.java:53)
at org.jbpm.runtime.manager.impl.SingletonRuntimeManager.init(SingletonRuntimeManager.java:89)
at org.jbpm.runtime.manager.impl.RuntimeManagerFactoryImpl.newSingletonRuntimeManager(RuntimeManagerFactoryImpl.java:64)
at org.kie.spring.factorybeans.RuntimeManagerFactoryBean.getObject(RuntimeManagerFactoryBean.java:74)
When using ComboPooledDataSource:
2017-08-14 22:10:13,894 WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4c833ca4 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
2017-08-14 22:10:13,900 WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4c833ca4 -- APPARENT DEADLOCK!!! Complete Status:
…….
2017-08-15 11:54:51,104 WARN [com.mchange.v2.resourcepool.BasicResourcePool] com.mchange.v2.resourcepool.BasicResourcePool@647c693f -- an attempt to checkout a resource was interrupted, and the pool is still live: some other thread must have interrupted the Thread attempting checkout!
java.lang.InterruptedException: null
……
2017-08-15 11:54:51,111 INFO [com.mchange.v2.resourcepool.BasicResourcePool] com.mchange.v2.resourcepool.BasicResourcePool@647c693f -- an attempt to checkout a resource was interrupted, because the pool is now closed. [Thread: http-nio-8080-exec-6]
…
2017-08-15 11:54:51,119 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] SQL Error: 0, SQLState: null
….
2017-08-15 11:54:51,119 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] An SQLException was provoked by the following failure: java.lang.InterruptedException
….
2017-08-15 11:54:51,189 ERROR [org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler] Unexpected error occurred in scheduled task.
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
--
You received this message because you are subscribed to a topic in the Google Groups "jBPM Usage" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jbpm-usage/2ufT8ERE_60/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jbpm-usage+...@googlegroups.com.
To post to this group, send email to jbpm-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jbpm-usage/2958b410-de05-4524-a5e9-eb256d77d4fc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.