0

Bambooを使用して、コミットをビルド、テスト、およびサーバーにデプロイしています。ただし、Tomcat側でのデプロイメントが失敗することがあります。Bambooはこれが発生したことを認識していないため、アプリケーションが正しく起動しない場合は手動ビルドを実行する必要があります。

私の知る限り、これはQuartzタスクの実行によるものです。WARを安全に展開する方法はありますが、すべてのジョブが完了するまで待ちますか?デプロイする前に最初にアンデプロイする計画を立てたほうがよいですか?

問題を強調するためにカタリナログを取得しました。

Sep 12, 2012 12:01:14 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/emdb] appears to have started a thread named [quartzScheduler_Worker-3] but has failed to stop it. This is very likely to create a memory leak.
Sep 12, 2012 12:01:14 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/emdb] appears to have started a thread named [quartzScheduler_Worker-4] but has failed to stop it. This is very likely to create a memory leak.
Sep 12, 2012 12:01:14 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/emdb] appears to have started a thread named [quartzScheduler_Worker-5] but has failed to stop it. This is very likely to create a memory leak.
Sep 12, 2012 12:01:14 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/emdb] appears to have started a thread named [quartzScheduler_Worker-6] but has failed to stop it. This is very likely to create a memory leak.
Sep 12, 2012 12:01:14 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/emdb] appears to have started a thread named [quartzScheduler_Worker-8] but has failed to stop it. This is very likely to create a memory leak.
Sep 12, 2012 12:01:14 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/emdb] appears to have started a thread named [quartzScheduler_Worker-10] but has failed to stop it. This is very likely to create a memory leak.
Sep 12, 2012 12:01:14 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/emdb] appears to have started a thread named [Thread-212] but has failed to stop it. This is very likely to create a memory leak.
Sep 12, 2012 12:01:15 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/emdb]
Sep 12, 2012 12:01:16 PM org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [....webapps\emdb\WEB-INF\lib] could not be completely deleted. The presence of the remaining files may cause problems
Sep 12, 2012 12:01:16 PM org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [....webapps\emdb\WEB-INF] could not be completely deleted. The presence of the remaining files may cause problems
Sep 12, 2012 12:01:16 PM org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [....webapps\emdb] could not be completely deleted. The presence of the remaining files may cause problems
Sep 12, 2012 12:01:16 PM org.apache.catalina.startup.ExpandWar delete
SEVERE: [....webapps\emdb] could not be completely deleted. The presence of the remaining files may cause problems
Sep 12, 2012 12:01:17 PM org.apache.catalina.startup.HostConfig deployWAR
4

1 に答える 1

1

そうです、Quartzスケジューラーは、ジョブを実行するために作成されたスレッド(ワーカースレッドプール)を停止していません。QuartzScheduler.shutdown(boolean)アプリケーションのシャットダウン時にメソッドを呼び出す必要があります。GrailsQuartzプラグインがあなたのためにそれをしていないことに私は驚いています。

これが発生する理由は他にもあります。実行中のジョブがいくつかある可能性があり、Quartzはそれらが終了するのを待ってハングします(適切なシャットダウンが呼び出された場合でも)。Tomcatはせっかちで、途中ですべてを殺します。チェックアウト(非コード化?org.quartz.scheduler.interruptJobsOnShutdownorg.quartz.scheduler.interruptJobsOnShutdownWithWaitオプション。

ShutdownHookPluginJVM全体をシャットダウンするのではなく、1つのアプリケーションをアンデプロイするだけなので、役に立たないことに注意してください。

また、エラーメッセージThread-212が原因の1つとしてリストされています。これはおそらくカスタムスレッド(常にスレッドに名前を付けます!)であり、これも中断する必要があります。

も参照してください

于 2012-09-23T08:42:38.720 に答える