スレッドがm1()というメソッドに入り、新しいトランザクションを開始するとします。 2番目のスレッドが同じメソッドを入力しようとすると、2番目のメソッドがブロックされていることがわかります。最初のスレッドがジョブを完了するまで、PROPOGATION_REQUIREDは2番目のスレッドをブロックしますか?分離は設定されていません(デフォルト)。メソッドのSpring PROPAGATION_REQUIREDは他のスレッドをブロックしていますか?
ありがとうございました。
スレッドがm1()というメソッドに入り、新しいトランザクションを開始するとします。 2番目のスレッドが同じメソッドを入力しようとすると、2番目のメソッドがブロックされていることがわかります。最初のスレッドがジョブを完了するまで、PROPOGATION_REQUIREDは2番目のスレッドをブロックしますか?分離は設定されていません(デフォルト)。メソッドのSpring PROPAGATION_REQUIREDは他のスレッドをブロックしていますか?
ありがとうございました。
いいえ、トランザクションの伝播設定は、1つのスレッドがブロックされていることとは関係ありません。トランザクションは、複数のスレッドが問題なく同じデータベースに同時にアクセスできるようにするために、正確に使用されます。
この方法は同期されていますか?これは、ブロック動作を説明するためです。
メソッドが同期されていないことを確認しました。ありがとう。 – nkare
また、コールを同期させるAOPスタックにインターセプタを持つこともできます。 –
接続プールのサイズはどのくらいですか?もう一方のスレッドは、データベース接続の取得をブロックする可能性があります。 – mrembisz
接続プールが自由に設定されています。まだ多くの接続がフリーであることがわかります – nkare
スレッドが待っているのを見てください - jconsoleがそれを助けることができます。 – mrembisz