2011-06-06 16 views
1

Java 1.6.0_17を使用してJavaで記述されたWebサービスがあります。サービスの
一つは消灯し、画面のスクラップ次のコードを使用して、私のサーバーの別の1:ほとんどの部分についてはjava.net.UnknownHostException - 断続的な問題

HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 

InputStream stream = connection.getInputStream(); 

return convertStreamToString(stream); 

を、時間の約80%(非常にラフな推測)しかし、これは正常に動作するようです私は、コードのconnection.connect()部分を取得する際の時間の残りの部分は、私は次の例外を取得しています:私は私たちのサーバーのURLを置き換え

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) 

に{私のサーバー名がここにいました}上記のログ。 nslookupを実行でき、サーバーが正常に解決しました。

Webサービスは、Windows 2003 Standard x64 Edition Service Pack 2サーバー上のJBoss 4.2.3サーバー上で動作します。

Unknownhost例外が原因でサーバー名が解決されなかったことを知っていますが、なぜこれが断続的に起こっているのかと苦労しています。 私はホストファイルを介してホスト名を解決したくないです。将来、ホストを変更するときに、私はDNSを変更でき、ホストファイルについて心配する必要がないからです。
誰もこの問題の解決方法に関する提案はありますか? お手数ですがお寄せいただきありがとうございます。

+0

同じネットワーク内の両方のサーバー(WSクライアントとWSホスト)、つまりプロキシ/ファイアウォールの問題はありませんか? – JoseK

+0

ping your-server-nameとは何ですか? – stacker

+0

クライアントとホストがプロキシサーバーなしの同じネットワーク上にあり、pingが正常に戻ってきます。IE:Reply from 111.222.333.444:bytes = 32 time <1ms TTL = 127 –

答えて

0

フレークなDNSサーバー構成があります。システム管理者にそれを証明するためにいくつかの監視をセットアップしてください。これは、シェルスクリプトを使用したcronジョブや、Nogiosの監視システムと同じくらい簡単です。

Java6より前にDNS解決済みアドレスが永久にキャッシュされていた(またはJVMが停止されるまでのいずれか早い方が先行していた)ので、Java5からJava6に移行したときに同様の問題が発生しました。そこで、Java6のDNSエントリの期限が切れたときに突然問題が発生したサーバーがありました。

DNSラウンドロビンには冗長なLDAPサーバーがありましたが、アドレスが永遠にキャッシュされても機能しません。

関連する問題