与主机***的TCP / IP连接失败。错误:没有可用的缓冲区空间(达到最大连接数?)connect

时间:2017-02-06 09:19:56

标签: java sql-server windows tcp connection-pooling

我有一个独立的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。 但问题仍在重演。

你能否说明在这种情况下需要做些什么?

0 个答案:

没有答案