关于java的DNS解析IP缓存问题
来源:互联网 发布:怎么做好一个淘宝客 编辑:程序博客网 时间:2024/06/05 14:52
最近发现在java执行方法中,如果有对http接口的调用时,会出现接口的相关域名改变后,java服务对接口域名的改变不生效. 很怪异的问题,后台发现是java的DNS解析IP缓存所致.
相关知识如下:
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
来自: http://www.iteye.com/topic/658657
- 关于java的DNS解析IP缓存问题
- dns不能解析ip地址的问题
- dns不能解析ip地址的问题
- 浏览器DNS解析ip后会缓存
- JAVA socket 关于DNS 缓存
- ColdFusion 的DNS缓存问题
- 关于xen虚拟机不能解析DNS的问题
- 关于邮件服务器的dns解析及mx记录问题!
- IP,子网掩码,网关,DNS的关系解析
- Dns解析为ip
- 关于 子网掩码,IP,网关,DNS 的概述
- 关于 DNS缓存投毒
- 谈谈域名DNS的缓存问题
- 谈谈域名DNS的缓存问题
- Dns缓存问题(转载)
- 查看DNS主机名解析的主机IP并向DNS服务器进行DNS域名解析
- 关于百度DNS的解析过程
- DNS解析 与 DNS缓存 浅见
- js 如何获取文本框中光标索引位置
- 博士这条船[转自交大思源,长文]
- C语言feof了解
- 绘制多个图形
- CSS绘制安卓机器人
- 关于java的DNS解析IP缓存问题
- linux进入系统后root帐号不能登录,密码正确就是不登录
- 编程语言之JavaScript
- matlab 每次从一个txt文件(里面每行是一个图像名字,如1.jpg之类的)读取一行字符串
- 在Outlook 2010中如何实现
- android usb大容量储存时sd卡状态监听
- web.xml配置详解
- HTML5滑动的拼图游戏
- 如何发现订单的最后一次信用释放值和操作日期