我有一個play framework 2.3應用程序。當我在開發或生產模式下部署本地機器時,它工作得很好。但是,當我部署在不同的服務器(紅帽企業Linux服務器版本6.2,聖地亞哥)時,大約2小時後應用程序關閉。
多次分析應用程序後,我斷定沒有內存問題,死鎖等。一切正常。我重寫從GlobalSettings調用OnStop方法和記錄這樣一條消息:Play Framework 2.3.x scala - 應用程序關閉無例外
override def onStop(app: Application) {
Logger.info("Application is shutting shutdown...ByeBye")
}
,並在日誌中,這是所有我在關機之前看到:
2015-05-27 00:36:54,515 - [INFO] - from application in **Thread-4**
Application is shutting shutdown...ByeBye
出於某種原因,它總是來自線程4。 我有DEBUG級別的日誌,我沒有看到任何可能引發任何紅旗的異常或消息。看來有些東西在殺死應用程序或發送信號停止。我一直無法確定關機的原因。除了我的一個應用程序之外,沒有任何東西被記錄到/ var/log/messages或任何其他日誌中。 任何可能導致我理解應用程序停止的想法?
我的應用程序的一些細節: 它非常簡單,它暴露了一個REST API。我正在使用'dist'命令構建二進制文件及其所有依賴項。我這樣開始:
/path/to/binary -Dhttp.port=5000 -J-Xmx32g -Dconfig.resource=application_prod.conf
謝謝。
你確定32場演唱會的最大堆大小可以嗎? –
是的。我正在部署的服務器有數百個RAM,我的應用使用遠遠少於32GB。我分析並查看內存是否正常,這不是關機的原因。 –
我面臨同樣的問題。就我而言,我甚至不知道爲什麼服務器越來越關閉並重寫的方法'onStop'不會被調用。 – ajay