私は、Tomcat 7.0.22に配備された最小限のSpring webappを持っています。これは、ページ、コントローラ、サービス、およびSELECTクエリを実行するメソッドを持つDAOで構成されています。Tomcat 7 JDBC接続プールを使用してWebアプリケーションをアンデプロイすると、接続が持続するのはなぜですか?
Webアプリケーションは、新しいTomcat JDBC connection pool使用するように設定されている - ここではWebアプリケーションののcontext.xmlでのリソースの構成です:私は、Webアプリケーションを展開するとき、私は5つの接続がSQLから五$セッションを照会(表示され
<Resource name="jdbc/myDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@blah blah"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="15"
initialSize="5"
maxWait="40000"
validationQuery="select 1 from dual"
removeAbandoned="true"
removeAbandonedTimeout="300"
logAbandoned="false"
username="user"
password="pass"
testOnBorrow="true"
validationInterval="30000"
timeBetweenEvictionRunsMillis="60000"
minEvictableIdleTimeMillis="60000" />
は、開発者)。 Webアプリケーションをアンデプロイすると、接続は継続します(状態はWAITING)。 Webappを再デプロイするたびに、5つの新しい接続が表示されます。
プールがまだぶら下がっているように見えます。また、Tomcatのマネージャーアプリの「リークを見つける」ボタンは、アプリにメモリがリークしていると伝えます。
webappがアンデプロイされたときにプールを削除する方法を教えてください。
ありがとう、私はそのクラスを知らなかった...非常に便利! – Paul