No more data to read from socket问题


2012-05-19 14:37:39,244 ERROR: [http-bio-9604-exec-222] [BaseRootDAO.executeQueryByPS]throw SQL Exception ->No more data to read from socket 
java.sql.SQLRecoverableException: No more data to read from socket 
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1157) 
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:290) 
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) 
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) 
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)

该异常通常是因为使用了连接池,当从连接池取得的connection失效或者超时的时候,使用这个连接来进行数据库操作就会抛出以上异常。 

解决方法就是让数据库连接池在给你返回connection之前,检查该connnection是否超时或者失效,如果是,则evict这个connection,并返回一个可用的connection。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"nomoredatatoreadfromsocket" 这个词组的意思是“无法从套接字读取更多的数据”。它通常用于描述网络通信中的问题,表明一个程序或计算机无法继续从套接字接收数据,可能是因为数据已经全部接收完毕,或者出现了某些错误导致连接中断。这个错误通常出现在计算机网络编程中,表示无法从套接字读取更多的数据。这种情况可能发生在以下情况下: 1. 套接字已经关闭:这可能是因为远程主机已经关闭了连接,或者因为本地主机在读取数据之前已经关闭了套接字。 2. 数据已经被完全读取:如果你在一个循环中读取套接字中的数据,那么当读取完所有数据后,你可能会遇到这个错误。 3. 网络错误:这可能是由于网络中断或其他网络错误导致的。 要解决这个问题,你可以尝试以下几个步骤: 1. 确保套接字没有被关闭:在尝试读取套接字之前,请确保套接字已经建立连接,并且远程主机没有关闭连接。 2. 检查是否已经读取完所有数据:如果你正在读取套接字中的数据,可以检查是否已经读取完所有数据。如果没有,请继续读取,直到数据全部读取完毕。 3. 检查网络连接:如果套接字已经建立连接,并且你仍然无法读取数据,可能是由于网络中断或其他网络错误导致的。可以尝试重新连接网络或者联系网络管理员解决问题。 希望这些信息能够帮助你解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值