2017-10-23 7 views
0

MySQLデータベースとC3P0ComboPooledDataSourceを使用してプールしています。以下は設定です:MySQLの接続がC3P0で終わらない

minPoolSize=10 
maxPoolSize=50 
maxStatements=50 
idleConnectionTestPeriod=3600 
acquireIncrement=5 
maxIdleTime=600 
numHelperThreads=6 
unreturnedConnectionTimeout=3600 
maxIdleTimeExcessConnections=600 

maxIdleTimeの後のドキュメントごとに、接続が自動的に閉じる必要があります。これはローカルでデバッグするときに発生します。しかし、プロダクションサーバでは、MySQLの接続数(show processlist)が50を超えており、最後の2400秒からスリープモードに入り、理想的には600秒後に閉じられるはずです。このため、アプリケーションは接続を確立できませんプールされたデータソースはmaxPoolSizeを超えています。これをデバッグするために何ができるのか、どうすれば解決できるか教えてください。

+0

接続の使い方は? JdbcTemplateまたはプレーンJDBC? –

答えて

0

これはほぼ間違いなく接続リークです。接続を確実に閉じるには、try-with-resourcesのようなものを使用するのが理想的です。

あなたのアプリケーションが接続を確実に閉じていない場所を理解していない場合は、「接続」を参照してください。 C3P0 Spring Hibernate: Pool maxed out. How to debug?

関連する問題