2015-06-02 28 views
3

我有一個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 

謝謝。

+0

你確定32場演唱會的最大堆大小可以嗎? –

+0

是的。我正在部署的服務器有數百個RAM,我的應用使用遠遠少於32GB。我分析並查看內存是否正常,這不是關機的原因。 –

+0

我面臨同樣的問題。就我而言,我甚至不知道爲什麼服務器越來越關閉並重寫的方法'onStop'不會被調用。 – ajay

回答

0

如果你已經通過ssh從終端啓動你的應用程序,過了一段時間ssh會話可能會被終止,並且應用程序進程被附加到會話進程, 我通過nohup執行啓動命令這樣的過程將不再被互動和將輸出日誌以指定的文件,而不是終端

0

有類似的問題,在調試模式下顯然運行時(「運行」的命令,而不是「開始」用於生產)它用於4秒後無異常關機。轉換爲prod。模式解決了我的問題。

相關問題