如何应对java服务器宕机_tomcat服务器宕机解决方案

报错信息:

java.lang.Object.wait(Native Method)

java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)

com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)

每次出现这个报错都会导致tomcat应用服务器停机,加了下面的java代码后就再也没有停过了。

解决办法:

编写Java代码

packagecn.listener;importjava.sql.Driver;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.Enumeration;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;importjavax.servlet.annotation.WebListener;importcom.mysql.jdbc.AbandonedConnectionCleanupThread;

@WebListenerpublic class ContextFinalizer implementsServletContextListener {public voidcontextInitialized(ServletContextEvent sce) {

}public voidcontextDestroyed(ServletContextEvent sce) {

Enumeration drivers =DriverManager.getDrivers();

Driver d= null;while(drivers.hasMoreElements()) {try{

d=drivers.nextElement();

DriverManager.deregisterDriver(d);

System.out.println(String.format("ContextFinalizer:Driver %s deregistered", d));

}catch(SQLException ex) {

System.out.println(String.format("ContextFinalizer:Error deregistering driver %s", d) + ":" +ex);

}

}try{

AbandonedConnectionCleanupThread.shutdown();

}catch(InterruptedException e) {

System.out.println("ContextFinalizer:SEVERE problem cleaning up: " +e.getMessage());

e.printStackTrace();

}

}

}

@WebListener,这个注解相当于在web.xml配置如下内容

cn.listener.ContextFinalizer

解决方案可以参考如下网址:https://stackoverflow.com/questions/25699985/the-web-application-appears-to-have-started-a-thread-named-abandoned-connect

当然还有就是我再参考这个解决方案的时候,发现mysql-connection如果版本过低会导致上述列出的Java代码报错,通过提高mysql-connection.java的版本即可解决该问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值