我的MSWindows上的Tomcat下运行的应用程序异常。为了设置系统以更好地了解失败原因,我尝试添加GC日志记录-但到目前为止,我的尝试都失败了。
最初,我在setenv.bat中设置了CATALINA_OPTS-但是在重新启动服务时将忽略它们。
然后我尝试使用Tomcat8w.exe添加选项:
{
"age": "26",
"email": "norman@futurestud.io",
"isDeveloper": "true",
"name": "Norman"
}
该服务无法以“错误4”启动。事件查看器显示:
Apache Tomcat 8.0 Tomcat8服务终止,出现以下特定于服务的错误: 系统无法打开文件。
我已经检查了路径,并且SYSTEM用户具有完全控制权。 Tomcat stderr日志中没有错误报告-只有一个条目:
-Xloggc:"C:\PerfLogs\gc-tomcat.log"
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=10
-XX:GCLogFileSize=5M
-XX:+PrintGCDetails
-verbose:gc
-XX:+PrintGCDateStamps
-XX:+HeapDumpOnCtrlBreak
我看不到其他日志文件中添加任何内容。
删除上面的选项将允许服务启动。将上面的配置与路径上的双引号一起使用不会产生任何影响。在启动服务之前创建初始日志文件没有任何影响。
如何启用GC日志记录?我如何找出当前失败的原因?
(不幸的是,不能迁移到更用户友好的操作系统)。
更新 我在common-daemon-YYYY-MM-DD.log中找到了更多日志条目:
Commons Daemon procrun stdout initialized
,如果相关的话:
[2018-08-29 11:04:52] [info] [ 4068] Running 'Tomcat8' Service...
[2018-08-29 11:04:52] [info] [ 2560] Starting service...
[2018-08-29 11:04:52] [error] [ 4200] CreateJavaVM Failed
[2018-08-29 11:04:52] [error] [ 4200] The system could not find the environment option that was entered.
[2018-08-29 11:04:52] [error] [ 2560] Failed to start Java
[2018-08-29 11:04:52] [error] [ 2560] ServiceStart returned 4
[2018-08-29 11:04:52] [info] [ 4068] Run service finished.
[2018-08-29 11:04:52] [info] [ 4068] Commons Daemon procrun finished
答案 0 :(得分:0)
经过大量研究,我发现MSWindows jvm显然是Java世界中的第二流公民。根据{{3}},MSWindows Java引擎不支持日志轮换。从配置中删除以下选项使JVM可以从GC日志记录开始:
bash: syntax error near unexpected token `do'
为什么将此报告为“系统无法打开文件”,我不知道。
现在,我只需要弄清楚日志文件填满后会发生什么/如何防止这种情况。