【问题标题】:Database connection leak when terminating (Not stopping) tomcat on eclipse在eclipse上终止(不停止)tomcat时数据库连接泄漏
【发布时间】:2012-06-13 20:34:10
【问题描述】:

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

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

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

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

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

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

这对我来说是一个巨大的头疼,因为代码与这个问题无关,不同项目中不同类型的数据库管理有同样的问题,只是在我的机器上!是的,我在其他电脑上试过了,没有出现这个问题。

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

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

我开始认为这可能不是 IDE 问题,它只是在我升级 eclipse 时发生的。

欢迎提出任何建议!

【问题讨论】:

    标签: database eclipse tomcat connection terminate


    【解决方案1】:

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

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

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

    【讨论】:

    • 正确。无论如何,我买了一台新电脑(当然不是因为这个问题)我设置了我的环境,检查了我的项目,安装了数据库,这个问题没有发生。我仍然拥有具有相同工作区的旧笔记本电脑,并且此问题仍然存在。所以我认为它在配置中存在某种错误。
    猜你喜欢
    • 1970-01-01
    • 2014-04-19
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多