java服务器出现broken pipe ,connection reset解决方法

时间:2021-06-19 11:01:09

近期用java写的email服务器经常出现 broken pipe 错误。 经查验

有可能是linux的线程机制会产生JVM出错的问题,特别是在连接高峰期间经常出现这样的问题,tomcat在linux下也出现类似情况。
  解决办法是在环境变量中设置: _JAVA_SR_SIGNUM = 12 基本就可以解决。

在WIN环境变量中设置: _JAVA_SR_SIGNUM=12, 若Linux下用 export _JAVA_SR_SIGNUM=12, 基本就可以解决.
  sun的解释:
  --posted by: cooper
  Below is a clipping from Sun on working around JVM crashes under high
  thread counts in the JVM 1.3 for Linux
  On Linux, use a larger signal number for hotspot thread
  suspension/resumption handler. The signal number being used is
  specified by environment variable _JAVA_SR_SIGNUM. Setting it to a
  number larger than SIGSEGV (11) will solve the problem. A good number
  to use is 12, which is SIGUSR2. Using signal 16 to work around the
  problem might have potential problems. So on tcsh, "setenv
  _JAVA_SR_SIGNUM 12" can solve the problem.