的java.net.UnknownHostException - 间歇的问题
问题描述:
我使用Java 1.6.0_17用Java编写的Web服务。
该业务之一熄灭,屏幕废料使用下面的代码我的服务器的另一个问题:的java.net.UnknownHostException - 间歇的问题
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream stream = connection.getInputStream();
return convertStreamToString(stream);
在大多数情况下,时间约80%(非常粗略的估计),这似乎不过做工精细的其余时间,我收到以下异常,当我到达的代码connection.connect()部分:
java.net.UnknownHostException: {my server name was here}
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:525)
at java.net.Socket.connect(Socket.java:475)
我代替了我们的服务器的URL与{我的服务器名称,在这里}在上面的日志。 我能够运行NSLOOKUP和服务器解决罚款。
Web服务运行在Windows 2003 x64标准版Service Pack 2的服务器上的JBoss的4.2.3服务器上。
我不知道Unknownhost异常意味着服务器名称无法得到解决,但我与这为什么发生间歇挣扎。 我宁愿不通过主机文件解析主机名,因为将来当我们更改主机时,我希望能够更改DNS并且不必担心主机文件。
有没有人有任何建议如何解决这个问题? 非常感谢您提供任何帮助。
答
你有片状DNS服务器配置。设置一些监控以向系统管理员证明。这可以像使用shell脚本的cron作业一样简单,也可以像Nogios监视系统那样复杂。
我们也有类似的问题,因为之前的Java6解析出的地址被缓存永远的DNS(或直到JVM停止,以先到者为准),当我们从Java5中迁移到的Java6。所以在一些片状服务器上,当Java6过期的DNS条目出现时,我们突然出现问题。
虽然由于相反的问题,我们意识到了这个问题:我们在DNS循环中有冗余LDAP服务器,当地址永久缓存时,这当然不起作用。
既您的服务器(WS客户机和WS主机)在同一个网络,即没有代理/防火墙问题? – JoseK 2011-06-06 12:13:07
ping your-server-name是什么意思? – stacker 2011-06-06 12:15:56
客户端和主机位于同一网络上,没有代理服务器,并且ping能够正确返回IE:来自111.222.333.444的回复:bytes = 32 time 2011-06-06 12:48:18