【发布时间】:2012-09-05 07:38:02
【问题描述】:
我们将 hiberante、c3p0、postgresql 用于持久层。 在运行数据密集型作业(主要是选择/插入)时,其中一位开发人员决定在提交之前使用 entityManager.flush(),就像这样
entityManager.getTransaction().begin()
insert n elements
entityManager.flush()
entityManager.getTransaction().commit()
一段时间后,所有运行数据密集型作业的线程似乎都被阻塞了,我们发现它们正在等待来自池的数据库连接。 池中处于“空闲事务”状态的所有连接。 这种情况每次都可以复制。
删除flush()后情况就消失了。
有人知道为什么会这样吗?
谢谢:D
【问题讨论】:
-
您找到答案了吗?我有类似的问题:stackoverflow.com/questions/28992996/…
-
我们也看到了类似的情况。
标签: hibernate jpa transactions