Napisałem mały program testujący czy klient "widzi" prawidłowo adres i porty naszego serwera aplikacyjnego. Zdarza się, że Firewalle klientów skutecznie blokują łączność.
Zależało mi, aby w pierwszym kroku "spingować" hosta. Niestety wczoraj odkryliśmy buga, bo polegałem na metodzie InetAddress.isReachable(). Tymczasem sposób jest do chrzanu, bo implementacja nie pinguje a odpytuje usługę echo, która stoi na porcie 7. Wielu adminów blokuje tego typu usługi, starając się maksymalnie uszczelnić serwery. U nas w firmie też i dlatego nasi klienci dostawali informację, że istnieje brak łączności z jednym z serwerów.
Nie dostarczę dzisiaj rozwiązania, z braku czasu, ale wrócę do tematu kiedyś.
Poniżej wadliwy kod:
[sourcecode type="java"]
final String host = "zdanek.ostrejezyki.pl";
final int timeOut = 3000;
final boolean status = InetAddress.getByName(host).isReachable(timeOut);
if (status == false) {
throw new IOException("Brak lacznosci z " + host);
}
[/sourcecode]
Tuesday, April 27, 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment