[Java] DNS caching TTL - networkaddress.cache.ttl

by 스뎅(thDeng) on

도메인 이름으로 DNS lookup을 하면 캐싱을 하게 된다.

캐싱하는 시간은 JDK 구현에 따라 다를 수 있고, security manager를 사용하지 않으면 JDK 6 이상은 30초를 캐싱하게 된다.(1) security manager 설정을 하게 되면 무한(forever)으로 캐싱을 하고, security manager는 기본적으로 disable 되어 있다. (잘못된 내용 댓글로 알려주신 성호님 고맙습니다.) 캐싱하지 않게 하거나 캐싱할 시간을 지정해 주려면 JVM 실행 시 networkaddress.cache.ttl 옵션을 주면 된다.

Value Meaning
-1 cache forever (default)
0 no cache
> 0 캐시할 시간 (초)

반대로 DNS lookup이 실패했을 때 한동안 시도하지 않도록 캐싱할 수 있다. networkaddress.cache.negative.ttl

Value Meaning
-1 cache forever
0 no cache
> 0 캐시할 시간 (초), (default: 10)

참고

별도로 명시하지 않을 경우, 이 블로그의 포스트는 다음 라이선스에 따라 사용할 수 있습니다: Creative Commons License CC Attribution-NonCommercial-ShareAlike 4.0 International License