zoukankan      html  css  js  c++  java
  • 禁用Java DNS缓存-Disable DNS caching

    Once an application has performed network access (i.e. urlconnection, parsing of xml document with external references, etc), the DNS settings get cached so any subsequent operation will use the old settings even if the real settings have changed. To reset everything, you have to restart the server since the the default setting JVM setting is to cache forever.

    There are 4 properties that can be used to override the default behaviour.

    networkaddress.cache.ttl (default: -1)
        Specified in java.security to indicate the caching policy for successful 
        name lookups from the name service. The value is specified as as integer 
        to indicate the number of seconds to cache the successful lookup.
    
        A value of -1 indicates "cache forever".
    
    networkaddress.cache.negative.ttl (default: 10)
        Specified in java.security to indicate the caching policy for un-successful
        name lookups from the name service. The value is specified as as integer to 
        indicate the number of seconds to cache the failure for un-successful lookups.
    
        A value of 0 indicates "never cache". A value of -1 indicates "cache forever". 
    
    sun.net.inetaddr.ttl
        This is a sun private system property which corresponds to networkaddress.cache.ttl. 
        It takes the same value and has the same meaning, but can be set as a command-line 
        option. However, the preferred way is to use the security property mentioned above. 
    
    sun.net.inetaddr.negative.ttl
        This is a sun private system property which corresponds to networkaddress.cache.negative.ttl. 
        It takes the same value and has the same meaning, but can be set as a command-line option. 
        However, the preferred way is to use the security property mentioned above.
    

    So you can disable caching by adding -Dsun.net.inetaddr.ttl=0 on the command line starting the JVM. But you can't set the value of networkaddress.cache.ttl on the command line. You can set the required value in the java.security file located in %JRE%libsecurity

    networkaddress.cache.ttl=60
    networkaddress.cache.negative.ttl=10
    

    or set the value in your code with

    java.security.Security.setProperty("networkaddress.cache.ttl" , "0");
    
  • 相关阅读:
    Linux Apache Mysql PHP楷模设置配备摆设1
    谋划phpMyAdmin2.6以上版本数据乱码题目
    MYSQL到ORACLE法式迁徙的注意变乱
    关于MySQL中的mysqldump饬令的应用
    MySQL 5.0新特性教程 存储进程:第一讲
    Mysql 数据库的导入与导出
    Linux Apache Mysql PHP典范设置装备安排2
    MYSQL数据库初学者运用指南2
    图解MySQL数据库的铺排和操作3
    MySQL完成表中掏出随机数据
  • 原文地址:https://www.cnblogs.com/diyunpeng/p/3637573.html
Copyright © 2011-2022 走看看