Software caused connection abort: recv failed异常
来源:互联网 发布:sqlyog怎么导入sql文件 编辑:程序博客网 时间:2024/04/28 15:35
前段时间在工作中遇到这样一个问题!
我写了一个java项目,但有不想使用jdbc读取文件配置数据库连接的方式,打算将数据库连接交给spring管理,这样会比较方便一点。
刚开始时这样的
<bean id="自定义ID" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url" value="jdbc:oracle:thin:@服务器IP:1521:数据库服务名">
</property>
<property name="username" value="用户名"></property>
<property name="password" value="密码"></property>
<!-- 池启动时创建的连接数量 -->
<property name="initialSize" value="5"></property>
<!-- 同一时间可以从池分配的最多连接数量。设置为0时表示无限制 -->
<property name="maxActive" value="30"></property>
<!-- 池里不会被释放的最多空闲连接数量。设置为0时表示无限制 -->
<property name="maxIdle" value="15"></property>
<!-- 在不新建连接的条件下,池中保持空闲的最少连接数 -->
<property name="minIdle" value="1"></property>
<!-- 设置在自动回收超时连接的时候打印连接的超时错误 -->
<property name="logAbandoned" value="true"></property>
<!-- 设置自动回收超时连接 -->
<property name="removeAbandoned" value="true"></property>
<!-- 自动回收超时时间(以秒数为单位) -->
<property name="removeAbandonedTimeout" value="30"></property>
<!-- 超时等待时间以毫秒为单位 -->
<property name="maxWait" value="3000"></property>
</bean>
正常运行没有问题,由于程序中存在定时任务,所以在规定时间内会自动执行指定的方法
在定时执行的过程中抛出了这个异常
Software caused connection abort: recv failed
上网找了好多资料,试了试还是不能解决这个问题
翻了翻以前做的项目,发现使用的数据库连接池管理类不同。
有是那种数据库连接池管理类:
1、org.apache.commons.dbcp.BasicDataSource =====依赖APACHE下的commons.dbcp-1.4.jar
2、org.logicalcobwebs.proxool.ProxoolDataSource ======proxool.jar下的
使用maven配置
<dependency>
<groupId>com.cloudhopper.proxool</groupId>
<artifactId>proxool</artifactId>
<version>0.9.1</version>
</dependency>
3、com.mchange.v2.c3p0.ComboPooledDataSource -=======依赖的jar使用maven配置
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2.1</version>
</dependency>
那么这三种有什么区别呢?
网上的评价是:
C3P0
比较耗费资源,效率方面可能要低一点。
DBCP
在实践中存在
BUG
,在某些种情会产生很多空连接不能释放,
Hibernate3.0
已经放弃
了对其的支持。
Proxool
的负面评价较少,现在比较推荐它,而且它还提供即时监控连接池状态的功能,便
于发现连接泄漏的情况。
网上的评价是:
C3P0比较耗费资源,效率方面可能要低一点。
DBCP在实践中存在BUG,在某些种情会产生很多空连接不能释放,Hibernate3.0已经放弃了对其的支持。
Proxool的负面评价较少,现在比较推荐它,而且它还提供即时监控连接池状态的功能,便于发现连接泄漏的情况。
但是我使用了Proxool 之后测试还是会抛出以上的异常信息,
<bean id="自定义ID" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="driverUrl" value="jdbc:oracle:thin:@服务器IP:1521:服务名"></property>
<property name="user" value="用户名"></property>
<property name="password" value="密码"></property>
<property name="prototypeCount" value="2"></property>
<property name="minimumConnectionCount" value="10"></property>
<property name="maximumConnectionCount" value="30"></property>
</bean>
最后试了试C3P0的
<bean id="自定义ID" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@服务IP:1521:服务名"></property>
<property name="user" value="用户名"></property>
<property name="password" value="密码"></property>
<property name="minPoolSize">
<value>5</value>
</property>
<property name="maxPoolSize">
<value>30</value>
</property>
<property name="initialPoolSize">
<value>10</value>
</property>
<property name="maxIdleTime">
<value>60</value>
</property>
<property name="acquireIncrement">
<value>5</value>
</property>
<property name="maxStatements">
<value>0</value>
</property>
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>
<property name="acquireRetryAttempts">
<value>30</value>
</property>
<property name="breakAfterAcquireFailure">
<value>false</value>
</property>
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
</bean>
问题就解决了,具体的配置解释就不多说了
- Software caused connection abort: recv failed异常
- Software caused connection abort: recv failed异常
- 开发:异常收集之 Software caused connection abort: recv failed
- 开发:异常收集之 Software caused connection abort: recv failed
- Software caused connection abort: recv failed
- Software caused connection abort: recv failed
- Software caused connection abort: recv failed 说明
- Software caused connection abort: recv failed
- Software caused connection abort: recv failed
- Software caused connection abort: recv failed
- Software caused connection abort: recv failed
- Software caused connection abort: recv failed
- Software caused connection abort: recv failed解决办法
- [查异常网]-java.net.SocketException: Software caused connection abort: recv failed 异常分析
- java.net.SocketException: Software caused connection abort: recv failed 异常分析
- java.net.SocketException: Software caused connection abort: recv failed 异常分析
- java.net.SocketException:Software caused connection abort: recv failed 异常分析
- java.net.SocketException:Software caused connection abort: recv failed 异常分析
- 浏览器缓存机制浅析(一)
- ios 图片上传
- CCAffineTransform(仿射变换 :点乘 差乘 单位化。。。)
- mapreduce编程实例(2)-求最大值和最小值
- 浏览器缓存机制浅析(二)
- Software caused connection abort: recv failed异常
- php和javascript交互:传递数组
- Android 解决adb server is out of date. killing... ADB server didn't ACK * failed to star
- mapreduce编程实例(3)-求平均值
- 数据传输客户端 - 电脑端 - 基于BAT
- Linux环境下段错误的产生原因及调试方法小结
- oracle 编译无效对象
- Codeforces #247 (Div. 2) A. Black Square
- mapreduce编程实例(4)-求中位数和标准差