我使用c3p0连接池连接到SQL Server 2008数据库。如下所示,minPoolSize设置为10,但在SQL Server中只启动了一个jTDS进程。
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close" >
<property name="acquireIncrement" value="20" />
<property name="idleConnectionTestPeriod" value="60"/>
<property name="maxConnectionAge" value="7200" />
<property name="preferredTestQuery" value="select 1" />
<property name="maxIdleTime" value="1200" />
<property name="maxPoolSize" value="250" />
<property name="maxStatements" value="50" />
<property name="minPoolSize" value="10" />
<property name="driverClass" value="${database.driver}" />
<property name="jdbcUrl" value="${database.url}" />
<property name="password" value="${database.password}" />
<property name="user" value="${database.user}" />
</bean>
&#34;最大并发连接数(0 =无限制):&#34;在SQL Server中设置为0。
任何想法可能是什么问题?
答案 0 :(得分:3)
问题是我在端口1434上连接到我的数据库。该端口是专用管理连接,SQL Server只允许在该端口上建立一个连接。
SQL Server日志中的错误消息:
无法连接因为&#39; 1&#39;的最大数量专用 管理员连接已存在。在新连接之前可以 必须是现有的专用管理员连接 通过注销或结束流程来删除。 [客户: 127.0.0.1]
错误:17810,严重性:20,状态:2。
我通过启用TCP / IP并将端口更改为1433来解决问题
启用TCP / IP:
打开SQL Server配置管理器 - &gt; SQL Server网络配置 - &gt; MSSQLSERVER协议双击TCP / IP并选择启用是。