java.IO.Exception: There is no process to read data written to a pipe Error
개발관련/자바&서블릿 2008/10/15 11:30
On Mon, 21 Jul 2003 11:21:38 -0700, jenny wrote:
> Hi,
>
> I have a java socket program running on AIX 4.3.3.0 platform. It opens
> a socket and sends data to our customer over a leased fractional T1
> line. The line is always connected. However, periodically, I see
> "java.IO.Exception: There is no process to read data written to a pipe"
> error message in my log file. Can anybody tell me in what cases this
> error message could occur?
This is fundamentally a Unix error. It indicates that your thread
communicates over a pipe with another process on the same machine, and
that the receiving process has closed the pipe (or has simply died).
> The other strange thing is that our customer would report that they miss
> a few messages everyday. And when I compare my log with the customer's
> log, I found that the two messages reported to be lost are actually the
> messages I sent before I see "there is no process to read data written
> to a pipe" error message every time. For example, I sent two files
> over, and no exceptions occurred; when i sent the third file, an error
> message would say "there is no process to read data written to a pipe",
> and the third message would get resent while our customer is actually
> missing the first two messages. I don't understand why I am not seeing
> any exceptions when I sent the first two messages. It looks to me that
> when I sent the first message, the link might have already been broken
> but somehow it didn't detect until the third message was sent?? Does
> anyone have an idea of why that happens or what's actually going on? I
> do a flush every time I send out a message, and I've tried to set some
> of the options like TCP_NODELAY and KEEP_SO_ALIVE, but nothing seemed to
> be working.
This is fairly easy to explain. Pipes essentially use a buffer (I think
usually 8k). The first two messages fit into this buffer, the third one is
the one that causes a buffer overflow in the pipe. That's when AIX detects
that the pipe has broken and throws the exception.
원본 http://bytes.com/forum/post63477-2.html
I don't know much about the inner workings of Java or AIX in this context,
so I can't help you find out WHY the pipe breaks.
위는 에로코드로 찾아본 웹페지이이고, 실제로는 WebSphere에서 StaleConnectionException이 발생한것인데 아래는 StaleConnectionException으로 검색해본 정보이다.
http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=was&c=r_p_p&n=1164238566
더많은 검색결과 : http://www.google.co.kr/search?complete ··· %3Boq%3D
> Hi,
>
> I have a java socket program running on AIX 4.3.3.0 platform. It opens
> a socket and sends data to our customer over a leased fractional T1
> line. The line is always connected. However, periodically, I see
> "java.IO.Exception: There is no process to read data written to a pipe"
> error message in my log file. Can anybody tell me in what cases this
> error message could occur?
This is fundamentally a Unix error. It indicates that your thread
communicates over a pipe with another process on the same machine, and
that the receiving process has closed the pipe (or has simply died).
> The other strange thing is that our customer would report that they miss
> a few messages everyday. And when I compare my log with the customer's
> log, I found that the two messages reported to be lost are actually the
> messages I sent before I see "there is no process to read data written
> to a pipe" error message every time. For example, I sent two files
> over, and no exceptions occurred; when i sent the third file, an error
> message would say "there is no process to read data written to a pipe",
> and the third message would get resent while our customer is actually
> missing the first two messages. I don't understand why I am not seeing
> any exceptions when I sent the first two messages. It looks to me that
> when I sent the first message, the link might have already been broken
> but somehow it didn't detect until the third message was sent?? Does
> anyone have an idea of why that happens or what's actually going on? I
> do a flush every time I send out a message, and I've tried to set some
> of the options like TCP_NODELAY and KEEP_SO_ALIVE, but nothing seemed to
> be working.
This is fairly easy to explain. Pipes essentially use a buffer (I think
usually 8k). The first two messages fit into this buffer, the third one is
the one that causes a buffer overflow in the pipe. That's when AIX detects
that the pipe has broken and throws the exception.
원본 http://bytes.com/forum/post63477-2.html
I don't know much about the inner workings of Java or AIX in this context,
so I can't help you find out WHY the pipe breaks.
위는 에로코드로 찾아본 웹페지이이고, 실제로는 WebSphere에서 StaleConnectionException이 발생한것인데 아래는 StaleConnectionException으로 검색해본 정보이다.
http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=was&c=r_p_p&n=1164238566
더많은 검색결과 : http://www.google.co.kr/search?complete ··· %3Boq%3D
트랙백 주소 :: http://www.bywoong.com/trackback/1462
주 2~3회 새글이 올라옵니다. 블로그 방문없이 업데이트 되는 글을 구독하세요.
RSS .
E-Mail .
HanRSS .
WZD .
Google Reader .
Bloglines .
Bookmark this on Delicious

댓글을 달아 주세요