2012-01-18 22 views
0

スレッドがm1()というメソッドに入り、新しいトランザクションを開始するとします。 2番目のスレッドが同じメソッドを入力しようとすると、2番目のメソッドがブロックされていることがわかります。最初のスレッドがジョブを完了するまで、PROPOGATION_REQUIREDは2番目のスレッドをブロックしますか?分離は設定されていません(デフォルト)。メソッドのSpring PROPAGATION_REQUIREDは他のスレッドをブロックしていますか?

ありがとうございました。

+2

接続プールのサイズはどのくらいですか?もう一方のスレッドは、データベース接続の取得をブロックする可能性があります。 – mrembisz

+0

接続プールが自由に設定されています。まだ多くの接続がフリーであることがわかります – nkare

+0

スレッドが待っているのを見てください - jconsoleがそれを助けることができます。 – mrembisz

答えて

2

いいえ、トランザクションの伝播設定は、1つのスレッドがブロックされていることとは関係ありません。トランザクションは、複数のスレッドが問題なく同じデータベースに同時にアクセスできるようにするために、正確に使用されます。

この方法は同期されていますか?これは、ブロック動作を説明するためです。

+0

メソッドが同期されていないことを確認しました。ありがとう。 – nkare

+0

また、コールを同期させるAOPスタックにインターセプタを持つこともできます。 –

関連する問題