环境: 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启动时运行,是第二个用于“看门狗”的进程?
非常感谢您的帮助,请让我知道是否有任何进一步的信息,你想知道或希望我做一些其他的测试。