Tomcat 啟動時間長
我們目前正在兩個不同的伺服器上部署我們的內部程序。這兩個伺服器都內置在 Cisco Openstack 中。作業系統 Centos 7。
問題是,每次重新部署應用程序時,我們都需要重新啟動 tomcat;關閉 tomcat 的行為符合預期。當我們啟動 tomcat 時,伺服器 10 多分鐘沒有響應。
這是我的過程:
- 使用 $TomcatHome/bin/shutdown.sh 關閉 tomcat
- 部署兩個war文件
- 使用 $TomcatHome/bin/startup.sh 啟動 tomcat
如果我導航到與網頁關聯的 URL,載入欄會旋轉大約 10 分鐘或更長時間,直到頁面突然出現。
我還嘗試在應用程序的首頁上使用 wget。我得到一個等待響應錯誤,如下所示:
[vagrant@host-10-105-5-51 Gen]$ !w wget 10.105.5.47:8080/am --2016-09-10 11:34:51-- http://10.105.5.47:8080/am Connecting to 10.105.5.47:8080... connected. HTTP request sent, awaiting response...
除了Google搜尋之外,我不確定如何解決這個問題。
我應該為這個問題添加更多細節:
- 我在本地 vm 上執行 app/tomcat,它會在呼叫啟動腳本後幾秒鍾啟動。
- 查看日誌目錄中的 catalina out 文件。似乎存在涉及片語“地址已在使用中”的錯誤
我發現這個問題與 SecureRandom 有關。這是我的openstack機器:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Running renew job for nxueo client in background 27-Sep-2016 09:25:08.992 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [632,566] milliseconds.
這是我在流浪機器上的錯誤:
26-Sep-2016 12:31:49.714 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [26,213] milliseconds.
通過執行以下命令可以解決此問題:
sudo echo "securerandom.source=file:/dev/urandom" >> $JAVA_HOME"/jre/lib/security/java.security";