问题描述(question):

长时间不用,第一次登录或者打开功能控制台报数据库相关的错误,解决方式

问题原因:

长时间没有访问tomcat后,数据库连接已经失效,连接池因为没有检测,所以认为连接有效,导致连接出错。

解决方法:

避免这种错误的方法是设置连接有效查询sql语句。设置后,连接池会使用该sql语句测试连接是否有效,如果无效,会重新建立连接。
设置方法为:
V3.2.1及其之前的版本在tomcat\conf\server.xml(V3.3及其后续版本在tomcat\conf\context.xml)中数据源配置的节点中增加属性validationQuery的设置
例如MSSQL:

<Resource name=”system” auth=”Container” type=”javax.sql.DataSource” driverClassName=”net.sourceforge.jtds.jdbc.Driver” url=”jdbc:jtds:sqlserver://127.0.0.1:1433/x5_1900″

username=”sa” password=”sa” maxActive=”10″ maxIdle=”5″

validationQuery=”select 1;”/>

oralce中validationQuery=”select sysdate from dual”

mysql中validationQuery=”select current_date”或者validationQuery=” select current_time”