【发布时间】:2016-08-22 19:30:59
【问题描述】:
我正在阅读number of concurrent transaction per connection。
我遇到了jdbc.postgresql.org/documentation/91/thread。 它说
如果一个线程尝试使用该连接,而另一个线程正在使用它,它将一直等待,直到另一个线程完成其当前操作。
如果我有 1 个连接的连接池(使用 cp03),那么基于上述
在一个线程中我这样做:
start transaction
Read query
sleep for 2 min
commit transaction
那么在第一个线程完成事务之前,其他线程应该无法运行任何查询...对吗?
但在我的观察中,当第一个线程处于休眠状态时,我能够让其他线程完成事务
这是为什么呢?我错过了什么?
编辑: CP03 配置:
<property name="hibernate.connection.provider_class" value="org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider" />
<property name="hibernate.generate_statistics" value="false" />
<property name="hibernate.c3p0.max_size" value="1" />
<property name="hibernate.c3p0.min_size" value="0" />
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.idle_test_period" value="300" />
<property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.timeout" value="100" />
【问题讨论】:
-
想发布你的 cp03 配置
-
@ScaryWombat 添加了配置
标签: java multithreading hibernate postgresql jdbc