当前位置: 代码迷 >> J2EE >> spring JdbcTemplate java.net.BindException: Address already in use: connect解决思路
  详细解决方案

spring JdbcTemplate java.net.BindException: Address already in use: connect解决思路

热度:325   发布时间:2016-04-22 02:09:05.0
spring JdbcTemplate java.net.BindException: Address already in use: connect
今天写了个模拟数据采集的程序,就是每隔20秒将执行一遍数据库插入操作,每次插入大概500行

写了Servlet,tomcat启动讲执行Timer。
我写了个TimerTask,里面写了循环插入。
Dao用的是Spring JdbcTemplate。启动之后不定时的有时候1分钟,有时候2分钟,反正就是5分钟之内报错。下面是抛出的异常。

Exception in thread "Timer-0" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败java.net.BindException: Address already in use: connect
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:577)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:641)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:670)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:678)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:710)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:768)
at sof.dao.DataCollector.getSpidbyDpid(DataCollector.java:82)
at sof.rt.CollectTask.run(CollectTask.java:39)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.BindException: Address already in use: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:281)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:269)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:253)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:234)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
... 10 more


------解决方案--------------------
好的,遇到问题的时候先自己多找找。别一遇到问题就来发帖。其实很多时候都只是个小问题而已。自己仔细一点就能找出来。
------解决方案--------------------
java.net.BindException: Address already in use: connect


.. 连接过多
  相关解决方案