Tomcat にデプロイするのに非常に時間がかかることが多い Web アプリケーションがあります。タイムアウトまで待機しているデータベース接続がどこかにあるのではないかと疑っていますが、それは単なる推測であり、問題を解決できるように、何が原因で停止しているのかを確認したいと考えています。誰かがこれを行う方法を提案できますか? Tomcat が WAR をロードしているときにプロファイルを作成し、手がかりを探す必要がありますか? もしそうなら、初心者向けのチュートリアルはどこかにありますか?
これが問題になる場合、私の Web アプリケーションは Spring と Hibernate を使用します。私は同僚から、おそらくこれらが非常に巨大であるという点で速度低下を引き起こしているので、どこかでクラスローダーがロードする必要のある膨大な数のクラスを窒息させていると言われました。
また、Tomcat を停止するか、すでに実行中の Tomcat に WAR をホットデプロイすると、次のように表示されます。
Jun 1, 2012 6:03:33 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/nacem-rest] registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Jun 1, 2012 6:03:34 PM org.apache.catalina.startup.HostConfig deployWAR
おそらくこれは問題の一部ですか?ほとんどの場合、Web アプリケーションを再デプロイするには、Tomcat の再起動も必要です。上記の JDBC ドライバーの問題が原因であると常に想定していましたが、起動時間の遅さも関係しているのではないでしょうか?