发布于2025-01-07 21:28 阅读(1004) 评论(0) 点赞(23) 收藏(1)
我在 TomCat 服务器上部署了一个 Spring MVC 项目,但一直遇到数据库连接问题。几个小时后,当用户尝试登录时,他们会遇到 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 FROM my_test_table"。这样,在线程签出连接之前,将检查连接。如果连接已关闭,则会打开另一个连接并将其提供给处理您的请求的线程。您可以在此处阅读 Tomcat 提供的选项的文档。
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/694706/8c4fc624853234b7419f/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!