2009-07-06 9 views
0

mysqlデータベースへの接続をプールするために、tomcatコンテナ内にJNDIとともにApache DBCPを使用しています。すべてうまく動作しますが、私が見ている問題は、一旦pconnectionがプールされると決して解放されないということです。負荷スパイク接続が永久に眠っているので、 context.xmlパラメータを使ってプールを縮小する方法はありますか?ここに私のocnfigurationは次のとおりです。DB接続プールを縮小するには?

 defaultAutoCommit="false" 
     defaultTransactionIsolation="REPEATABLE_READ" 
     auth="Container" 
     type="javax.sql.DataSource" 
     logAbandoned="true" 
     removeAbandoned="true" 
     removeAbandonedTimeout="300" 
     maxActive="-1" 
     initialSize="15" 
     maxIdle="10" 
     maxWait="10000" 
     username="user" 
     password="password" 
     driverClassName="com.mysql.jdbc.Driver" 
     url="jdbc:mysql://localhost/mydb"/> 

答えて

2

1000*60*30で、デフォルトよりも低い値にminEvictableIdleTimeMillisを設定してください。

+1

また、次のプロパティを設定する必要があります。testWhileIdle、timeBetweenEvictionRunsMillis、validationQuery –

1

は、私は、接続プールの設定を微調整するために、TomcatのJMXアダプタを使用していた同等の状況ではC3P0接続pool` ~~

+0

確かにDBCPより優れています。パラメータ名はわかりやすいです。あなたの投稿は手元の問題を解決しようとしていません:)。とにかく+1 –

1

を使用するようにしてください。これは、両方を使用して、プールのサイズを増減することができます。したがって、少なくとも本番環境ではサーブレットコンテナへのJMXリモートアクセスを有効にし、例外的な運用状況に対応する機会を得ることをお勧めします。

関連する問題