繁体   English   中英

失去互联网连接后,MySQL连接会如何处理?

[英]What happens to MySQL connection when internet connection is lost?

我的应用程序服务器已连接到MySQL数据库。 此连接为24/7开放。

可以说我的互联网崩溃了,或者我要阻止3306端口。

JDBC会抛出错误吗? 如果没有,我应该如何处理此类问题?

我之所以这样问,是因为在某些情况下,MySQL连接随机停止工作,但是没有关闭,这导致客户端超时。

您将获得MySQLNonTransientConnectionExceptionCommunicationsException 通常,为了程序安全,您要么想要:

  • 根据需要打开/关闭连接

  • 关闭连接后重新打开

我个人推荐前者,尤其是当数据库是用户指定的(某些mysql设置有连接超时)时。

编辑

我似乎忘了提到每个@ThorbjørnRavnAndersen的连接池,但这也是一个可行的解决方案。 我个人不这样做,而是对每个线程操作使用可实例化的SQL连接。

就个人而言,我将所有数据库调用都放入try / catch块中,因为总有可能出现问题。 您将需要在catch块中设置一些默认值,并且如果由于某种原因它碰巧落在这些默认值上,请向最终用户显示某种(理想情况下)错误消息。

不能总是保证运行SQL查询不会拉回任何类型的结果...任何数目的事情都可能出错-服务器可能已关闭,连接可能已饱和,以至于无法将结果拉回服务器。及时地,它也可能位于各种备份的死胡同中。...这些事情必须始终考虑在内,这就是为什么我建议采用上述方式进行备份的原因。

最后,要回答您的问题,是的,在所有这些情况下,JDBC实际上都会引发错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM