java.net.SocketException: Broken pipe


=2013-06-04 11:12:17,355 ERROR [Timer-6] timer.ClaspHandsTimer (ClaspHandsTimer.java:67) - xxx gmlc exception is:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:124)
at com.xxx.util.SocketUtil.sendMsg(SocketUtil.java:116)
at com.xxx.timer.ClaspHandsTimer.run(ClaspHandsTimer.java:63)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
=2013-06-04 11:12:18,295 ERROR [Timer-5] timer.HeartBeatTimer (HeartBeatTimer.java:74) - xxxgmlc exception is:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:124)
at com.xxx.util.SocketUtil.sendMsg(SocketUtil.java:116)
at com.xxx.timer.HeartBeatTimer.run(HeartBeatTimer.java:70)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)


在定位系统中出现此异常,找了很多资料,最后终于解决:

有可能是linux的线程机制会产生JVM出错的问题,特别是在连接高峰期间经常出现这样的问题
  解决办法是在环境变量中设置: _JAVA_SR_SIGNUM = 12 基本就可以解决。
  在windows环境变量中设置: _JAVA_SR_SIGNUM =12, 若Linux下用 export _JAVA_SR_SIGNUM=12, 基本就可以解决.
linux:
export _JAVA_SR_SIGNUM=12
source /etc/profile

  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.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值