我有一个独立的Java应用程序,后端是SQL Server 2012.我们有6个线程,每2秒连续运行一次,它将查询数据库并关闭连接。每分钟我们将打开30个连接并关闭它们。
当我们在 Windows 2008 R2 Standard / Windows 2010(笔记本电脑)/ Windows 2012 Server Standard 中运行应用程序时,它运行正常。但是,如果我们在 Windows 2007 / Windows 2008 Server R2数据中心SP1 上运行我们的应用程序,则连接数量会迅速增加,我们将在标题中收到错误消息。一旦我们收到此错误,我们就无法创建新连接,另外远程桌面到应用程序服务器也无法正常工作,我们必须重新启动服务器。
我们已经检查了代码中的任何连接泄漏,但我们没有找到任何。
Application details:
Java version used : 1.6 Update 30,
JDBC driver used: sqljdb4.jar
我们在获取连接时使用连接池。以下是获取连接的代码
dataSource.getPooledConnection().getConnection();
从管理工作室,我们正在检查以下查询的连接数。
SELECT
DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, loginame
我们已安装此修补程序 http://support.microsoft.com/kb/2577795。 但问题仍在重演。
你能否说明在这种情况下需要做些什么?