Dee
2011-07-26 10:10
浏览 667
已采纳

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]

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • cndone 2011-07-26 13:57
    已采纳

    以上提供的日志只能得出一个结论:数据库访问不起,挂掉了!
    还是分析下更多的日志吧!以前出现过类似的问题都是链接不释放,JDBC 代码不关闭链接,还有隐藏的很深的配置问题。建议你让公司DBA监控下数据库的使用情况,具体问题具体分析

    点赞 打赏 评论
  • cndone 2011-07-26 13:10

    原因:1.可能是数据库端的socket通信中断了 2.检查你的数据库服务器是不是down了

    点赞 打赏 评论
  • cndone 2011-07-26 13:28

    你们数据库好像是做了RAC。检查一下数据库日志呢,是否连接被占完了又不释放

    点赞 打赏 评论

相关推荐 更多相似问题