java對DNS解析IP進行緩存,默認緩存超時時間爲-1(在重啓JVM前永久緩存),
在第一次訪問某域名後將會緩存解析到的IP地址,以後直接從緩存裏得到所需的信息(如IP地址),而無需再訪問DNS服務器,
但若是在進行支付的時候DNS解析IP的地址有變動的話,提交的地址仍爲原解析的IP地址,這將會訪問到無效的IP地址而沒法進行支付
建議在java虛擬機的設置中將緩存的時間設置爲較小的時間,例如1分鐘(60秒)
因爲是全局的變量,在設置後會影響全部的應用程序,請先衡量一下對您平臺全部的應用程序是否有影響後再進行設置
設置方法:
在命令啓動JVM的時候設置參數"-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
例如:運行Test.class
java -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60 Test
Resin
第一個方式:
修改resin.conf,在 <server-default>下,添加以下配置便可
<jvm-arg>-Dnetworkaddress.cache.ttl=60</jvm-arg>
<jvm-arg>-Dsun.net.inetaddr.ttl=60</jvm-arg>
第二個方式:
在linux /unix 下或編輯 httpd.sh
args='-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60'
websphere
第一個方式:
選擇服務器-> 應用程序服務器-> Server1-> 進程定義->Java 虛擬機。
滾動到通用 JVM 參數,添加:
-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60
單擊肯定以保存更改
第二個方式:
修改XML文件
IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\liangwgNode01Cell\nodes\liangwgNode01\servers\server.xml
在文件末尾,在屬性「disableJIT="false"」以前的位置,
添加:genericJvmArguments="-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
Tomcat
第一個方式:
1:進入TOMCAT的bin目錄下,找到tomcat5w.exe文件,雙擊,選擇java,找到java options
在文本框裏添加: -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60
第二個方式:
2: 進入TOMCAT的bin目錄下,找到文件catalina.bat,增長:
JAVA_OPTS="-Xms256 -Xmx512 -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
Weblogic
Weblogic目錄下的兩個文件:
%Weblogic_home%\user_projects\domains\domain-name\startWebLogic.cmd(若是是UNIX系統,就是startWebLogic.sh )
%Weblogic_home%\user_projects\domains\domain-name\startManagedWebLogic.cmd
(若是是UNIX系統,就是startManagedWebLogic.sh