环境:jBPM 6.0.1.Final, jboss EAP 6.2,spring data jpa 1.4.3.RELEASE,hibernate 4.1.1.Final,spring 4.0.0.RELEASE
我面临着jBPM6表的连接池泄漏问题,而hibernate正在解决50多个查询以完成单个任务。让我清楚地解释一下。
在我的应用程序中,我在应用程序相关表上执行DML操作,我通过调试观察连接重新发布机制
DEBUG [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (http- / 127.0.0.1:8080-4)mysqlDS:returnConnection(3492713e,false) [1/20]
连接池机制工作正常,然后我提交了一个由jbpm完成的任务,一些数据插入jbpm6表,如SessionInfo
,Task
,当插入数据时,连接没有释放,下一步任务也是它没有使用打开的连接和打开新连接并继续..最后我得到以下消息由于jbpm6表。
引起:java.sql.SQLException:javax.resource.ResourceException:IJ000453:无法获得java的托管连接:jboss / datasources / mysqlDS
在org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:147)
at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:70)[hibernate-entitymanager-4.2.7.SP1-redhat-3.jar:4.2.7.SP1-redhat-3]
在org.hibernate.internal.AbstractSessionImpl $ NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)[hibernate-core-4.2.7.SP1-redhat-3.jar:4.2.7.SP1-redhat-3]
在org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)[hibernate-core-4.2.7.SP1-redhat-3.jar:4.2.7.SP1-redhat-3]
...... 111更多
我正在使用org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
和org.springframework.orm.jpa.JpaTransactionManager
进行会话和事务处理,这对于我插入数据的表而言。但不适用于jbpm6的数据插入。
我也配置了<property name="hibernate.connection.release_mode" value="auto"/>
,但没有用来恢复连接。
<!--Following entity manager for Mysql database-->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceUnitName" value="masterDataMysql"/>
</bean>
<!--Transaction manager for both H2 and Mysql-->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
Click here对于错误日志
更新:由于jBPM6没有关闭连接,这种情况正在发生
请帮助如何用jbpm6解决连接泄漏问题??? 任何帮助都非常感谢。