2012-03-08 49 views
1

为这个问题编写一个好的标题很困难,因为它是在网络上搜索它的。在eclipse上终止(不停止)tomcat时发生数据库连接泄露

我有很多的项目,有些是在维护(他们已经生产了多年)等人在积极发展。这是一个重要的事实,因为问题发生在我的计算机上的所有项目上,而不是其他人上。

的问题是,我在Tomcat上运行的所有Web项目,他们都有数据库连接。我总是使用“终止”按钮来支持“停止”按钮,从eclipse重新启动或停止tomcat。

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

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

那么没有必要说我发现了这一点,因为数据库服务器(Oracle,MySQL等和SQLServer)开始给“有太多的连接”的错误。

这对我来说是一个巨大的头部划痕,因为代码与这个问题无关,不同类型的数据库管理在不同的项目中都有同样的问题,只能在我的机器上!是的,我曾在其他计算机上尝试过这种方法,但问题并未发生。

我已经试过各种我可以从格式化想到的短...

  • 升级到靛蓝
  • 重新安装的伽利略(甚至下载一个新的副本)
  • 重新安装并尝试了不同的数据库
  • 尝试不同版本的雄猫(6和7)

我开始认为它可能不是一个IDE问题,它刚好在我升级eclipse时开始。

欢迎任何建议!

回答

1

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

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

然而,在我的情况下,Eclipse中显示约30秒后弹出一个警告表示Tomcat没有停止本身。弹出窗口询问Tomcat是否应该被终止(即使在被阻塞的连接存在时也应该终止)。

+0

正确。无论如何,我买了一台新电脑(当然不是因为这个问题),我设置了我的环境,检查了我的项目,安装了数据库,这个问题没有发生。我仍然有旧的笔记本电脑有相同的工作区,这个问题依然存在。所以我认为它在配置中存在某种错误。 – Lisandro 2012-06-16 17:21:16