我上传了一个在网络托管上使用Java开发的网站。我已经将它上传到tomcat服务器上。每41分钟,我得到503错误,我必须运行startup.sh
脚本。我通过我创建的程序java检测到它。我怀疑tomcat中的机器人或脚本每隔41分钟停止一次tomcat
你相信什么,你建议做什么?
我害怕因为tomcat每41分钟停一次就有人攻击我了!
答案 0 :(得分:3)
最近我遇到了这个问题,如果将来有人面临同样的问题,我希望这会有所帮助。
场景:Tomcat在没有任何日志或错误的情况下关闭
1)我的问题的根本原因:使用TimerTask从任务访问的同步方法
2)我有一个单例类,其中有一个同步方法,可以根据计时器或用户操作从各种线程访问,有时这种方法需要几分钟才能完成。当TimerTask正在等待这个方法一段时间(我猜计时器超时/线程被杀死或后台发生了什么事情)并且当方法锁被解除时,tomcat就会被杀死。
所以我删除了synchronized关键字并删除了singleton,并为线程安全做了一些代码更改。然后问题就消失了。
我是如何发现的:我在同步方法的第一行中有一个日志语句,每次tomcat关闭时,我都会在最后几行找到此消息。
检查这是否有帮助:http://www.vineetmanohar.com/2010/06/howto-auto-recover-tomcat-crashes/