在 Eclipse 上终止(不停止)tomcat 时数据库连接泄漏

标签 database eclipse tomcat connection terminate

为这个问题写一个好的标题和在网上搜索它一样困难。

我有很多项目,有些正在维护中(它们多年来一直富有成效),有些正在积极开发中。这是一个重要的事实,因为问题发生在我计算机上的所有项目上,而不是其他项目上。

问题是我在tomcat上运行所有web项目,它们都有数据库连接。我总是使用“终止”按钮而不是“停止”按钮来从 eclipse 中重新启动或停止 tomcat。

对于那些不知道的人,终止按钮是从日志控制台或调试控制台停止应用程序的红色按钮,而停止按钮是同一个红色按钮,但在服务器控制台上。

从终止按钮而不是停止按钮停止服务器要快得多,问题是自从我升级到 Helios 后,我的数据库连接在终止服务器时不再关闭......他们在停止它们时关闭它们通常。

不用说我发现这个是因为数据库服务器(Oracle、MySQL 和 SQLServer)开始出现“太多连接”错误。

这让我很头疼,因为代码与这个问题无关,不同项目中不同类型的数据库管理都有同样的问题,只有在我的机器上!是的,我已经在其他计算机上尝试过,但没有出现问题。

我已经尝试了所有我能想到的格式化...

  • 升级到 Indigo
  • 重新安装了 Galileo(甚至下载了一个全新的副本)
  • 重新安装并尝试了不同的数据库
  • 尝试了不同版本的 Tomcat(6 和 7)

我开始认为这可能不是 IDE 的问题,而是在我升级 eclipse 时碰巧开始的。

欢迎提出任何建议!

最佳答案

当您使用那个红色按钮停止 Tomcat 时,实际上请求 Tomcat 停止它自己。如果您的 Web 应用程序的某些 SQL 语句被阻塞,则 Tomcat 不会停止。这可能会导致连接泄漏。

为什么 SQL 语句会阻塞?如果另一个数据库用户更新或删除您的应用程序尝试更新/修改的相同记录,通常会发生这种情况。

但是,在我的例子中,Eclipse 会在大约 30 秒后显示一个弹出窗口,警告 Tomcat 没有自行停止。弹出窗口询问是否应该终止 Tomcat(即使存在被阻止的连接也应该终止)。

关于在 Eclipse 上终止(不停止)tomcat 时数据库连接泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9618080/

相关文章:

python - DataJoint for Python 中正确的 ORDER BY 语法是什么?

java - 如何使用 jdk 1.6.0_20 在 Eclipse 3.6 中配置 tomcat 7?

android - 如何使用 nexus 7 进行 mac os 开发

tomcat - 在 Tomcat 中的 war 文件之间共享 Java 类?

mysql - 创建具有引用两个外键的复合主键的表

php - 查找 MAX AVG 的 SQL 请求

java - Spring框架中使用DataSourceInitializer初始化数据库时编码不正确

eclipse - 有人对 Eclipse 通过远程桌面连接有疑问吗?

tomcat - 将 Thawte 试用证书导入 Java keystore

java - illegalargumentexception - 项目在 Netbeans 上运行但不作为 War 文件在 Tomcat 上运行