jvm的DNS解析ip緩存時(shí)間
關(guān)于java的DNS解析IP緩存問題:java對DNS解析IP進(jìn)行緩存,默認(rèn)緩存超時(shí)時(shí)間為-1(在重啟JVM前永久緩存),在第一次訪問某域名后將會緩存解析到的IP地址,之后直接從緩存里獲得所需的信息(
關(guān)于java的DNS解析IP緩存問題:
java對DNS解析IP進(jìn)行緩存,默認(rèn)緩存超時(shí)時(shí)間為-1(在重啟JVM前永久緩存),
在第一次訪問某域名后將會緩存解析到的IP地址,之后直接從緩存里獲得所需的信息(如IP地址),而無需再訪問DNS服務(wù)器,
但如果在進(jìn)行支付的時(shí)候DNS解析IP的地址有變更的話,提交的地址仍為原解析的IP地址,這將會訪問到無效的IP地址而無法進(jìn)行支付
建議在java虛擬機(jī)的設(shè)置中將緩存的時(shí)間設(shè)置為較小的時(shí)間,例如1分鐘(60秒)
由于是全局的變量,在設(shè)置后會影響所有的應(yīng)用程序,請先衡量一下對您平臺所有的應(yīng)用程序是否有影響后再進(jìn)行設(shè)置
設(shè)置方法:
在命令啟動JVM的時(shí)候設(shè)置參數(shù)"-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
例如:運(yùn)行Test.class
java -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60 Test
Resin
第一個方式:
修改resin.conf,在
第二個方式:
在linux /unix 下或編輯 httpd.sh
args='-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60'
websphere
第一個方式:
選擇服務(wù)器-> 應(yīng)用程序服務(wù)器-> Server1-> 進(jìn)程定義->Java 虛擬機(jī)。
滾動到通用 JVM 參數(shù),添加:
-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60
單擊確定以保存更改
第二個方式:
修改XML文件
IBMWebSphereAppServerprofilesAppSrv01config?llsliangwgNode01CellnodesliangwgNode01serversserver.xml
在文件末尾,在屬性“disableJIT="false"”之前的位置,
添加:genericJvmArguments="-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
Tomcat
第一個方式:
1:進(jìn)入TOMCAT的bin目錄下,找到tomcat5w.exe文件,雙擊,選擇java,找到j(luò)ava options
在文本框里添加: -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60
第二個方式:
2: 進(jìn)入TOMCAT的bin目錄下,找到文件catalina.bat,增加:
JAVA_OPTS="-Xms256 -Xmx512 -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
Weblogic
Weblogic目錄下的兩個文件:
Weblogic_homeuser_projectsdomainsdomain-namestartWebLogic.cmd(如果是UNIX系統(tǒng),就是startWebLogic.sh )
Weblogic_homeuser_projectsdomainsdomain-namestartManagedWebLogic.cmd
(如果是UNIX系統(tǒng),就是startManagedWebLogic.sh )
加入:set JAVA_OPTIONS=-Xms256m –Xmx256m -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60