Java
Oracle 11g JDBC Driver에서 Hang이 발생하는 경우
멋진그이름
2017. 2. 20. 09:52
<개요>
동시에 다수의 Java Process를 기동하여 JDBC Connection을 맺을때 시간이 매우 많이 소요되는 경우가 있습니다.
(timeout이 발생하기도 함)
이럴때는 난수발생을 체크해보시기 바랍니다.
<내용>
JDBC Driver에서 로그인을 하기 위해서 난수발생을 이용하는데 기본적으로
random을 사용하게 되어있습니다.
random에서 waiting이 발생하면서 connection을 맺지 못하는 경우가 있습니다.
이 부분을 urandom을 사용하도록 변경해보시기 바랍니다.
(random에 비해서 urandom은 속도가 빠르고 대신 보안에 취약하다고 보고가 되어있습니다.)
<방법>
JVM옵션을 아래와 같이 추가합니다.
-Djava.security.egd=file:///dev/urandom
ps>리눅스 커널버전에 따라서 발생하는 경우도 있으니 같이 확인하시면 좋을 것 같습니다.