728x90
반응형
에러가 발생해서 로그를 확인해보니, 다음과 같은 에러가 발생했다.
java.net.sockettimeoutexception read timed out 에러 발생
에러 원인
데이터의양이 많다던지, 네트워크 속도 때문에 실제 요청이 수신될때까지의 시간이 지나도록
수신이 완료 되지 않을때 생기는 에러가 ReadTimeOut이다.
즉, 수신대기시간을 늘려주면 된다는 것이다..
해결 방법
1. server.xml의 connectionTimeOut 값 수정
톰캣의 server.xml의 <Connector>의 connectionTimeout의 값을 수정해준다.
기본값은 "20000"으로 잡혀 있다. 이걸 "99999"와 같이 늘려주도록 하자.
<!-- 수정전 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- 수정후 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="99999"
redirectPort="8443" />
2. HTTP Connection이 수행되는 connectionTimeOut 및 ReadTimeOut 설정값 수정
.java에서 HttpURLConnection을 사용해 서버통신을 하는 경우에는 해당 객체에서
connectionTimeOut 및 ReadTimeOut을 직접 설정해주어야 한다.
URL url = new URL('http://www.naver.com');
HtppURLConnection = con (HttpURLConnection)url.openConnection();
//con.setConnectionTimeout(1000);
con.setConnectionTimeout(10000);
//con.setReadTimeout(2000);
con.setReadTimeout(20000);
// ConnectionTimeout : 1000 => 10000로 설정
// ReadTimeout : 2000 => 20000로 설정
..........
이렇게 하면 Read timed out에러가 해결될 것이다.
728x90
반응형
'서버' 카테고리의 다른 글
[Tomcat] response code: 500에러와 ReadTimedOut에러에 대한 이야기 (0) | 2022.07.08 |
---|