zoukankan      html  css  js  c++  java
  • Tomcat运行一段时间后,自动停止关闭,To prevent a memory leak,Druid 数据库连接自动关闭, the JDBC Driver has been forcibly unregistered.

    1. Tomcat 错误日志

    tail -100f tomcat9/logs/catalina.out

    21-Sep-2017 23:05:39.301 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8809"]
    21-Sep-2017 23:05:39.352 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
    application destroy
    21-Sep-2017 23:05:39.392 WARNING [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
    21-Sep-2017 23:05:39.392 WARNING [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
    21-Sep-2017 23:05:39.603 WARNING [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-60530619] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
     sun.misc.Unsafe.park(Native Method)
     java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
     java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
     com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1841)
    21-Sep-2017 23:05:39.604 WARNING [Thread-5] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-60530619] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
     java.lang.Thread.sleep(Native Method)
     com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:1915)
    21-Sep-2017 23:05:39.611 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8909"]
    21-Sep-2017 23:05:39.615 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8809"]
    21-Sep-2017 23:05:39.619 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8909"]
    21-Sep-2017 23:05:39.620 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8809"]

    2. 错误原因
      从字面翻译:为了防止内存泄漏,JDBC驱动程序已经被强制注销。

    3. 解决办法
      将Tomcat中server.xml监听器注释掉,重启tomcat
      vi tomcat9/conf/server.xml //注释如下两行:

      
    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8709" shutdown="SHUTDOWN">
      <!--
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      -->
  • 相关阅读:
    Redis 主从复制
    Redis 持久化
    Redis 的消息订阅/发布
    Redis 排序功能 -- SORT
    Redis 过期时间与缓存应用
    Redis 事务
    Redis 5种数据类型的常用命令
    Java 框架的核心 -- 反射
    类的加载和初始化 ---- new 一个对象时,在JVM 中的过程是什么
    了解spring
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/11420013.html
Copyright © 2011-2022 走看看