반응형
얼마 전 broken pipe에러가 발생했다.
로컬, 개발서버에서는 아무런 문제가 발생하지 않았지만,
운영서버에서만 broken pipe에러가 발생했다.
생소한 에러라서 찾아봤다.
broken pipe에서에서 pipe는 소켓을 의미한다고 한다.
클라이언트와 서버 간에 연결이 끊어지면 이 에러가 발생한다고 한다.
클라이언트 혹은 서버에서 문제일 수도 있다고 한다.
그래서 그냥 broken pipe에러를 무시하던가 exception 처리로 무시하라고 한다. (별 거 아닌 듯이)
우리는 이 문제를 해결하기 위해 sysout도 여기저기 찍어보고(운영서버에 로그를 직접적으로 찍기 위해)
에러 발생 지점에 try catch로 예외처리도 다 했지만, 잡을 수가 없었다.
안타깝게도 문제의 원인은 서버에 있었다.(WEB서버? WAS서버? 아마도 WEB서버일 것 같음)
해당 호출이 발생할 때, 정확히 5분0초에 연결이 끊어짐을 확인하였다.
Thread sleep를 통해 테스트를 했고, 정확히 5분 0초에 끊어짐을 확인했다.
해결방법은 서버의 timeout을 늘려주던가, 요청을 더 빠르게 처리할 수 있도록 수정하는 방법뿐이다.
구글에 'read timeout', 'request timeout'이라고 검색하면 대처 방법이 많이 나온다.
아, 나는 (본의 아니게)후자를 선택했고, 오래걸리던 소스를 수정하였다.
반응형
'IT 자료' 카테고리의 다른 글
SSL/TLS 보안 채널에 대한 트러스트 관계를 설정할 수 없습니다. (0) | 2018.04.06 |
---|---|
오라클 테이블 스페이스 용량 구하기 (0) | 2018.03.13 |
dbeaver sql 저장장소 (0) | 2018.01.31 |
유비리포트 순차 셀병함 속성표현식 (0) | 2018.01.24 |
PostgreSQL dual 사용하기 (1) | 2018.01.14 |