关于tomcat启动时的警告 :Property maxActive is not used in DBCP2, use maxTotal instead. 和 Property maxWait i

https://bbs.csdn.net/topics/340185527

网站今天放到服务器上好好的,过一天就不能访问数据库了,重启一下tomcat就好了,网上找了说是MySQL对所有连接的有效时间默认为28800秒,正好8小时,高手请帮忙,最好有实例,谢谢

看你的描述重启一下tomcat就好了 说明不是mysql 的问题。应该是系统的连接池的原因吧。应该让系统在获取连接池的链接的时候,判断下链接是否是活动的。

https://cloud.tencent.com/developer/article/1353263

关于tomcat启动时的警告 :Property maxActive is not used in DBCP2, use maxTotal instead. 和 Property maxWait i

我们现在用的tomcat大概都是8.5 或是9.0,这些版本的tomcat内置的DBCP2,和以前老版本如tomcat 7的连接池不一样,7.0等老版本用的是DBCP。

tomcat 7等老版本中,内置连接池时 context.xml文件 的默认配置示例:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Resource name="jdbc/day28" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWaitMillis="10000"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/day28"/>
</Context>

在老版本的tomcat里面关于允许的最大连接数用maxActive来表示,最大等待延用maxWait来表示

我们现在用的是新版本的tomcat,新版本内置的连接池已经升级了,所以如果我们继续使用这个配置就会出现如下图所示警告:

警告原文如下:

七月 05, 2018 1:55:06 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory [D:learnJavaWebapache-tomcatapache-tomcat-9.0.7webappsday28_struts2_final]
七月 05, 2018 1:55:06 下午 org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory getObjectInstance
警告: Name = day28 Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have set value of "100" for "maxActive" property, which is being ignored.
七月 05, 2018 1:55:06 下午 org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory getObjectInstance
警告: Name = day28 Property maxWait is not used in DBCP2 , use maxWaitMillis instead. maxWaitMillis default value is -1. You have set value of "10000" for "maxWait" property, which is being ignored.
七月 05, 2018 1:55:06 下午 org.apache.jasper.servlet.TldScanner scanJars
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
七月 05, 2018 1:55:07 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory [D:learnJavaWebapache-tomcatapache-tomcat-9.0.7webappsday28_struts2_final] has finished in [1,469] ms

这个警告其实已经把话说的很明白了,既然8.5,9.0tomcat内置的是DBCP2,已经使用 maxTotal来取代maxActive、使用 maxWaitMillis来取代maxWait,

因此我们只需要将自己的配置文件中的maxActive替换成maxTotalmaxWait替换成maxWaitMillis即可。

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Resource name="jdbc/day28" auth="Container" type="javax.sql.DataSource"
               maxTotal="100" maxIdle="30" maxWaitMillis="10000"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/day28"/>
</Context>

警告消失了:

七月 05, 2018 3:26:15 下午 org.apache.catalina.startup.HostConfig undeploy
信息: Undeploying context [/day28_struts2_final]
七月 05, 2018 3:26:15 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory [D:learnJavaWebapache-tomcatapache-tomcat-9.0.7webappsday28_struts2_final]
七月 05, 2018 3:26:16 下午 org.apache.jasper.servlet.TldScanner scanJars
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
七月 05, 2018 3:26:16 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory [D:learnJavaWebapache-tomcatapache-tomcat-9.0.7webappsday28_struts2_final] has finished in [1,087] ms

附上:DBCP2中配置参数详解链接:http://bsr1983.iteye.com/blog/2092467

本文参考链接如下:https://blog.csdn.net/vr_jia/article/details/74530389

原文地址:https://www.cnblogs.com/linus-tan/p/11307488.html