tomcat启动后卡死

这是一台机器上启动多个tomcat遇到的问题。程序在开发机上用jetty跑没有问题。但是部署到测试机上却出问题了。而且时而正常,时而卡住。非常诡异。

看日志,一直卡在
Initializing Spring root WebApplicationContext
后面就没有日志了。

将Spring开启debug日志级别,catch可能的exception,统统没用。在网上能查到的说法都是可能某个线程连接数据库卡住了(要么是数据库地址配置不对,要么是数据库服务器暂时不可用),但是都不符合我的情况。

后来用了一个超好用的工具jstack,直接打印出堆栈情况。注意要用启动tomcat的用户执行这个命令,例如我用user_00启动tomcat,用root执行jstack都没法得到正确输出。

然后发现问题所在,main线程和另一个定时任务死锁了,他们都调用了Spring framework的getBean方法。具体还没有仔细分析。

所以如果再遇到卡住的问题,可以试试jstack。

你可能感兴趣的:(错误处理)