我们在 JBOSS 4.0.2 服务器上部署了 J2EE Web 应用程序。从最近几天开始,应用程序突然停止了。 我们在日志中收到以下错误。
java.net.SocketException: Software caused connection abort: recv failed
由于上述套接字错误,应用程序无法连接数据库。 重新启动 jboss 应用程序也没有帮助。要解决套接字错误,我们必须重新启动生产机器。 重新启动生产机器后,它可以正常工作。
上述套接字错误可能是什么原因?
最佳答案
该错误本质上意味着有人试图从关闭的套接字读取或写入(这是 Windows 中“连接重置”的意思)。尽管发生这种情况的原因有很多,但无法确切说明您的应用程序为何这样做。您可以尝试检查一些事情:
- 如果您有多个线程读取和写入同一个套接字,请确保其中一个线程没有关闭它
- 尝试关闭 Nagle's algorithm ;我见过这个错误的发生,因为有人在操作系统完成写入之前关闭了套接字(您可以使用 setTcpNoDelay 来做到这一点)
关于java - 输入/输出错误: SOCKET ERRORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5335089/