環境: Glassfish的4.0(只有一個DAS),Windows Server 2012中R2,爪哇1.7.0_51 通過創建服務子命令創建DAS實例服務。Glassfish4日誌循環 「最大歷史文件」 的問題
問題: 文件屬性已設置的最大的歷史,但是,GlassFish服務器無法將舊的日誌文件中刪除,由於鎖定文件server.log.lck
路徑 - > C: \ glassfish4 \的glassfish \域\ domain1的\配置\ logging.properties com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles = 10
日誌段:
[2014-12-10T18:00:39.372+0900] [glassfish 4.0] [SEVERE] [] [] [tid: _ThreadID=16 _ThreadName=Thread-5] [timeMillis: 1418202039372] [levelValue: 1000] [[
java.util.logging.ErrorManager: 0: FATAL ERROR: COULD NOT DELETE LOG FILE.]]
[2014-12-10T18:00:39.372+0900] [glassfish 4.0] [SEVERE] [] [] [tid: _ThreadID=16 _ThreadName=Thread-5] [timeMillis: 1418202039372] [levelValue: 1000] [[
java.io.IOException: Could not delete log file: C:\glassfish4\glassfish\domains\domain1\logs\server.log.lck
at com.sun.enterprise.server.logging.GFFileHandler.cleanUpHistoryLogFiles(GFFileHandler.java:725)
at com.sun.enterprise.server.logging.GFFileHandler$4.run(GFFileHandler.java:802)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.enterprise.server.logging.GFFileHandler.rotate(GFFileHandler.java:744)
at com.sun.enterprise.server.logging.GFFileHandler$1.run(GFFileHandler.java:301)
at com.sun.enterprise.server.logging.LogRotationTimerTask.run(LogRotationTimerTask.java:68)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)]]
個
發現:
1,如果鎖文件「server.log.lck」存在於日誌文件夾,發生了問題,可以在GlassFish服務器將嘗試每天在日誌中發現上述錯誤刪除舊的日誌文件。如果日誌文件夾中沒有「server.log.lck」,則不會有任何問題並能正常工作。
2,如果通過命令「asadmin start-domain domain1」啓動DAS實例,日誌文件夾中沒有生成鎖定文件「server.log.lck」。但是,如果DAS實例在Windows Service中啓動,則會自動生成鎖定文件「server.log.lck」,並保留0KB直到停止服務,此文件將自動刪除。
3,如果通過添加看門狗選項的命令「asadmin start-domain -w domain1」啓動DAS實例,則會自動生成鎖定文件「server.log.lck」並存在,直到停止服務。
4,出現鎖定文件「server.log.lck」時,總會有一個java.exe進程存在。因此,從Windows Service啓動DAS實例時,在該進程中運行兩個「java.exe」,其中一個正在使用「server.log.lck」。
問題:
1,我想開始/由Windows服務停止DAS實例,而不是使用子命令。此外,我不想讓所有Glassfish日誌保留在我的服務器上,並且會導致磁盤已滿,因此我更願意打開Glassfish日誌記錄最大歷史記錄文件選項。有沒有任何解決方法或解決方案?
2,這是Glassfish的缺陷還是隻是一個設置問題?我確實嘗試在其他服務器上安裝,並且都有相同的問題。
3,爲什麼有兩個java.exe進程在從Windows Server啓動時運行,是第二個用於「看門狗」的進程?
非常感謝您的幫助,請讓我知道是否有任何進一步的信息,你想知道或希望我做一些其他的測試。