2012-01-18 37 views
0

说一个线程输入一个名为m1()的方法并启动一个新的事务。当第二个线程尝试输入相同的方法时,我们注意到第二个方法被阻止。 PROPOGATION_REQUIRED是否阻止第二个线程,直到第一个线程完成作业?隔离没有设置(默认)。Spring的PROPAGATION_REQUIRED方法是否阻塞其他线程?

谢谢。

+2

连接池的大小是多少?另一个线程可能会阻止尝试获取其数据库连接。 – mrembisz 2012-01-18 15:43:18

+0

连接池已被设置为宽松。仍然看到有很多免费的连接 – nkare 2012-01-18 16:33:32

+0

看看线程正在等待什么 - 然后jconsole可以提供帮助。 – mrembisz 2012-01-18 16:45:08

回答

2

不,交易传播设置与一个线程被阻止无关。事务精确地用于允许多个线程同时访问相同的数据库而没有问题。

此方法是否同步?因为这会解释阻塞行为。

+0

验证该方法不同步。谢谢。 – nkare 2012-01-18 16:34:41

+0

您也可以在AOP堆栈中有一个拦截器来同步这些调用。 – 2012-01-18 16:36:37

相关问题