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>리눅스 커널버전에 따라서 발생하는 경우도 있으니 같이 확인하시면 좋을 것 같습니다.