如果应用程序崩溃或退出但未关闭其 Activity 连接,Java JRE 是否会关闭数据库连接?如果不是,数据库有责任让这些连接超时吗?
我知道如果 Java 崩溃,那么数据库将需要暂停所有打开的连接,因为没有其他事情可以做这项工作。
编辑 额外的想法。如果部署在 Tomcat 中的 WAR 崩溃,Tomcat 服务器是否会清理打开的连接?
最佳答案
这真的取决于。
如果您的 JRE 本身崩溃,它可能无法关闭所有连接。如果只是您的应用程序崩溃,它可能会在释放资源时关闭连接。根据我的经验,大多数情况下似乎都是这种情况,只要 JRE 本身不死。最好的防御当然是正确的错误处理,并确保您打开的连接数不超过要求。
根据我的经验,最好在Tomcat中设置一个数据源,这样即使你的应用程序崩溃了,也不是开放资源的问题。我非常喜欢让我的应用程序服务器处理尽可能多的资源管理,这样我就可以更好地保护我免受有时冒险的代码的影响。
关于connection - 如果应用程序崩溃,Java JRE 会关闭连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680440/