2017-12-12 10 views
0

DBに書き込もうとしているマルチスレッドアプリケーション(100スレッド)があります。 私は書き込みを見ていますが、非常にゆっくりとしています。私は、スレッドダンプを取ったときロック待ちのマルチスレッドHibernateアプリケーションComboPooledDataSource

は、私は100件のスレッドの80は、私はこの問題を解決するにはどうすればよい

java.lang.Thread.State: BLOCKED (on object monitor) 
    at com.amazon.odin.hibernate.ConnectionPool.getConnection(ConnectionPool.java:143) 
    - waiting to lock <0x00000007bdc5cc70> (a com.mchange.v2.c3p0.ComboPooledDataSource) 
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) 

で待っていることに気づきましたか?

答えて

0

接続プールには20の接続しかないため、スレッドはそのリソースに対して競合しています。データベースがそれを処理できない場合、接続の量を100に引き上げると、それは役に立たないことに注意してください。次に、競合を接続プールからDBリソースに移動するだけです。

DBサーバーに十分なジュースがある場合は、プール内の最大接続数を増やし、そのスループットにどのような影響があるかを確認することができます。

関連する問題