現在、アプリケーションを再デプロイするたびに、hibernateによって開始されるTimer-0というブロッキングスレッドのために古いwebclassloaderが保持されます。 YourKitでヒープダンプを解析しようとしましたが、いくつかのthousendクラスがまだロードされていて、クラスローダーをブロックしているものがわかりにくいです。TomcatのGrailsアプリケーションのクリーンアンデプロイ
これは、いくつかの質問を私に残します:
クラスローダをアンロードすることはできません理由を見つけるためにどのように?
コンテナを再起動せずにすべてが完全にアンロードされることを確認するベストプラクティスはありますか?
ありがとうございます!
UPDATE
サンプルデータソース:
dataSource {
pooled = true
driverClassName = "org.postgresql.Driver"
dialect = "org.hibernate.dialect.PostgreSQLDialect"
username = "xx"
password = "xx"
configClass = DdlFilterConfiguration
properties {
maxActive = 250
maxIdle = 25
minIdle = 1
initialSize = 10
maxWait = 10000
validationQuery = "select 1 "
validationQueryTimeout = 3
validationInterval = 15000
testOnReturn = true
testWhileIdle = true
testOnBorrow = true
minEvictableIdleTimeMillis = 60000
timeBetweenEvictionRunsMillis = 5000
}
}
Nopeコンテナを再起動します。 :/ –
私は、Tomcat 7とGrailsを使ってパラレルデプロイメントを成功させました。ダウンタイムのない再導入のようなものです。 – Joe
DB接続プールはどうやっていますか? – Joe