java.sql.SQLRecoverableException: IO 错误: Broken pipe
2013-12-19 14:38
477 查看
这个是连接池里面的链接都是长连接,一直保持与数据库的链接。我用的是Oracle数据库。出于某种原因,Oracle数据库会把很长时间的链接kill掉。这样,连接池里面的长连接,并不知道自身在服务器端已经被kill了,再次发生向数据库的请求连接时,发生上面的异常。
没有办法,我只能写了个方法,来解决这个问题:代码如下:
没有办法,我只能写了个方法,来解决这个问题:代码如下:
/** * <pre> * Date:2011-12-29 * 防止发生异常:nested exception is java.sql.SQLRecoverableException: IO Error: Broken pipe * 原因:连接池链接一段时间之后,会被oracle在服务器端中断,而连接池并不知道自己的链接被中断,照旧进行连接操作,发生异常 * @param dataSource * @param oldConn * @return * @throws SQLException * </pre> */ private static Connection getValidConnection(DataSource dataSource,Connection oldConn) throws SQLException { //get the connection from the datasource Connection conn = oldConn; int commonTimeout = 150; //check the connection, if the connection is not suitable, then get the new connection and check it again while(null == conn || conn.isClosed() || !conn.isValid(commonTimeout)) { try { if(null != conn && !conn.isClosed()) { //close the connection conn.close(); } } catch (SQLException e) { logger.error("Can not close connection :\t"+e.getMessage(),e); } //get the new connection conn = dataSource.getConnection(); } //return the valid connection return conn; }
相关文章推荐
- java.sql.SQLRecoverableException: IO 错误: Socket closed
- 解决weblogic错误:java.sql.SQLRecoverableException: IO Error: Broken pipe
- java.sql.SQLRecoverableException: IO 错误: Undefined Error
- 报错解决:java.sql.SQLRecoverableException:IO 错误:Got minus one from a read call
- nested exception is java.sql.SQLException: IO 错误
- nested exception is java.sql.SQLException: IO 错误
- 在linux上通过JDBC连接ORACLE 时总是出现 java.sql.SQLRecoverableException: IO Error: Connection reset 的问题
- 解决Caused by: java.sql.SQLRecoverableException: IO Error: Connection reset相关问题
- 解决Caused by: java.sql.SQLRecoverableException: IO Error: Connection reset相关问题
- SQLRecoverableException: IO 错误: The Network Adapter could not establish the connection
- java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset
- [ORACLE]java.sql.SQLRecoverableException: IO Error: Connection rese
- java.sql.SQLRecoverableException: IO Error: Got minus one from a read call
- java.io.NotSerializableException错误解决方法
- 对于启动 Web 服务器出现 java.io.EOFException 错误的解决
- Spring错误:java.io.FileNotFoundException: class path resource ..cannot be opened because it does not e
- 错误:hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException:
- java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误
- java.io.NotSerializableException错误解决方法
- java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误