Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NamedParameterJdbcTemplate+TomCat,打开和关闭数据库连接_Java_Tomcat_Spring Mvc - Fatal编程技术网

Java NamedParameterJdbcTemplate+TomCat,打开和关闭数据库连接

Java NamedParameterJdbcTemplate+TomCat,打开和关闭数据库连接,java,tomcat,spring-mvc,Java,Tomcat,Spring Mvc,我有一个部署在TomCat服务器上的SpringMVC项目,我一直遇到与数据库连接的问题。几个小时后,当用户尝试登录时,将遇到500错误,并显示以下消息: HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.RecoverableDataAccessException: The last packet successfully received from the serv

我有一个部署在TomCat服务器上的SpringMVC项目,我一直遇到与数据库连接的问题。几个小时后,当用户尝试登录时,将遇到500错误,并显示以下消息:

HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.RecoverableDataAccessException: The last packet successfully received from the server was 75,026,904 milliseconds ago. The last packet sent successfully to the server was 75,031,521 milliseconds ago. is longer than the server configured value of 'wait_timeout'.
我相信问题是因为TomCat认为MySQL的连接仍然是开放的,但是MySQL在8小时后关闭了连接。收到此错误后刷新页面后,一切正常

我的问题是,有没有一种方法可以让我用来查询数据库的NamedParameterJdbcTemplate在每次使用时打开和关闭连接,而不是维护一个持久连接?还是有更好的方法来解决这个问题


也许设置autoReconnect=true?我现在正在尝试,但需要几个小时才能知道它是否有效。

假设您使用的是Tomcat的连接池,您可以将池设置为testOnBorrow=true和validationQuery=SELECT 1。这样,在线程签出连接之前,将先检查连接。如果它被关闭,另一个将被打开并提供给为您的请求提供服务的线程。您可以阅读Tomcat提供的选项文档。

假设您使用的是Tomcat的连接池,您可以将池设置为testOnBorrow=true和validationQuery=SELECT 1 FROM my_test_table。这样,在线程签出连接之前,将先检查连接。如果它被关闭,另一个将被打开并提供给为您的请求提供服务的线程。您可以阅读Tomcat提供的选项文档