现象描述: 无论通过命令行还是手动执行启动,tomcat实例均在加载配置文件时卡住,导致启动失败。
1. 首先查看catalina.out日志,有Log4j的实例停住了,但不能确定是哪个线程阻塞;
2. jstack查看线程信息,有outputStream.openAppend()这个方法上,一直没有返回,因此确定IO句柄不能获得——在读取一个文件的时候挂死了。
3. 检查相关的代码是Log4J,因此检查log4j的配置文件,发现配置的目标目录是NFS上。
4. NFS挂载因为网络原因不能访问时,访问挂载点的应用会永远挂起,不会超时也不会异常,因此确定问题。

文章详细描述了在使用Tomcat时遇到的启动失败问题,原因是NFS挂载在网络原因下无法访问,导致读取文件时挂起。通过检查Log4J配置文件和使用jstack工具定位到问题根源,最终确认并解决了NFS挂载不可用的问题。
463

被折叠的 条评论
为什么被折叠?



