java.sql.SQLException: Io 异常: Broken pipe 大大们帮忙 十万火JI!!
SSH程序 tomcat
proxool连接池
配置如下:
DBPool
<driver-url>jdbc:oracle:thin:@(description=(address_list=
(address=(host=*****)(protocol=tcp)(port=1521))
(address=(host=*****)(protocol=tcp)(port=1521))
(load_balance=yes))
(connect_data=(server=dedicated)(service_name=ORCL)))
</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="****"/>
<property name="password" value="****"/>
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>20</maximum-new-connections>
<prototype-count>15</prototype-count>
<maximum-connection-count>80</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
<house-keeping-test-sql>select 1 from dual</house-keeping-test-sql>
<maximum-active-time>1200000</maximum-active-time>
<trace>true</trace>
<verbose>true</verbose>
上线运行一周左右 orcle数据库就倒 大家帮分析下啊
日志信息如下:
[ERROR] 21 七月 11:16:43.338 下午 HouseKeeper [org.logicalcobwebs.proxool.DBPool]
#0048 encountered errors during destruction:
java.sql.SQLException: Io 异常: Broken pipe
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:481)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1228)
at org.logicalcobwebs.proxool.ProxyConnection.reallyClose(ProxyConnection.java:192)
at org.logicalcobwebs.proxool.ConnectionPool.removeProxyConnection(ConnectionPool.java:423)
at org.logicalcobwebs.proxool.HouseKeeper.sweep(HouseKeeper.java:90)
at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:39)
[ERROR] 21 七月 11:16:43.347 下午 HouseKeeper [org.logicalcobwebs.proxool.DBPool]
#0050 encountered errors during destruction:
java.sql.SQLException: 无法从套接字读取更多的数据
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1123)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)
at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:106)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:465)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1228)
at org.logicalcobwebs.proxool.ProxyConnection.reallyClose(ProxyConnection.java:192)
at org.logicalcobwebs.proxool.ConnectionPool.removeProxyConnection(ConnectionPool.java:423)
at org.logicalcobwebs.proxool.HouseKeeper.sweep(HouseKeeper.java:90)
at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:39)
[ERROR] 21 七月 11:16:43.358 下午 HouseKeeper [org.logicalcobwebs.proxool.DBPool]
以上提供的日志只能得出一个结论:数据库访问不起,挂掉了!
还是分析下更多的日志吧!以前出现过类似的问题都是链接不释放,JDBC 代码不关闭链接,还有隐藏的很深的配置问题。建议你让公司DBA监控下数据库的使用情况,具体问题具体分析
原因:1.可能是数据库端的socket通信中断了 2.检查你的数据库服务器是不是down了
你们数据库好像是做了RAC。检查一下数据库日志呢,是否连接被占完了又不释放