=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.
分享到:
相关推荐
Java中的`java.net.SocketException: Connection reset`是一个常见的网络编程错误,通常表示在TCP/IP通信过程中,连接突然中断。这个异常可能在客户端或服务器端发生,通常与数据传输的异常中断有关。 首先,我们来...
NULL 博文链接:https://zhoudan241.iteye.com/blog/1432014
JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是...
### 在Win7系统下抛出java.net.SocketException的解决办法 #### 问题背景及原因分析 在使用MyEclipse开发工具结合JBoss服务器进行项目开发的过程中,遇到一个常见但令人头疼的问题:当启动JBoss服务器时,控制台...
5. **java.net.SocketException: Broken pipe** 在`Connect reset by peer`异常之后继续尝试写操作时,可能会遇到此异常。同样,需要确保在连接断开后不再进行无效的读写操作,并及时关闭Socket。 编写网络程序时...
connection reset解决方案(亲测可用).md
3. 错误信息:当Socket连接池出现问题时,可能会出现错误信息,如"java.net.SocketException: No buffer space available (maximum connections reached?): listen failed"。 解决方法 要解决线程太多导致Socket...
Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574) at ...
本项目专注于使用Java语言实现Modbus TCP/IP协议的读写功能,提供了两种不同的实现方案:jlibmodbus和modbus4j库。这两种库都是Java社区开发的开源工具,专门用于处理Modbus通信。 首先,我们来看jlibmodbus。...