java - 输入/输出错误: SOCKET ERRORS

标签 java sockets jakarta-ee

我们在 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/

相关文章:

java - 用于内连接查询的 Hibernate 映射对象

java - JAX_RS 资源和 EJB 生命周期不匹配

java - 在将列表添加到 gridModel 之前对对象类列表进行排序

Java 客户端-服务器编程 : Shared Memory Between Clients

java - 当我从客户端关闭套接字时,socket.getInputStream.read() 不会抛出异常

jakarta-ee - 在 NetBeans 中使用 JRebel

java - 一个类文件可以实现多少接口(interface)

java - Apache POI 3.9 : WorkbookFactory method not found

java - 尝试将二维数组顺时针旋转 90 度,但它是逆时针旋转

sockets - TCP 选择功能不适用于第二个连接