Zdarvim,

  jakou pouzivate verzi Javy?? Nam se stalo neco podobneho v nasi web
aplikaci. Pomoci JConsole jsme prisli na to, ze sockety neprojdou
finelizerem (duvod je spatne napsana metoda finalize). Tu to chybu jsme
vygooglili a mela by byt opravena ve verzi Javy 1.6. Pokud to nicemu nebrani
tak bych doporucit prejit.

  S pozdravem Jan Liska

On Fri, Feb 29, 2008 at 11:56 AM, Stepan Roh <[EMAIL PROTECTED]> wrote:

> Zdravim.
>
> Objevil jsem takove zajimave chovani socketu v Jave na Windows ve
> spojitosti s Apache.
>
>     public static void main(String[] args) throws Exception {
>         int i = 0;
>         while (true) {
>             Socket sock = openSocket();
>             OutputStream os = sock.getOutputStream();
>             os.write("GET / HTTP/1.1\n\n".getBytes());
>             InputStream is = sock.getInputStream();
>             while (is.read() != -1) {
>                 // void
>             }
>             is.close();
>             os.close();
>             sock.close();
>             System.out.println("" + i++);
>         }
>     }
>
>
>     private static Socket openSocket() throws Exception {
>         InetAddress address = InetAddress.getByName("localhost");
>         Socket socket = new Socket(address, 80);
>         socket.setReuseAddress(true);
>         socket.setTcpNoDelay(true);
>         socket.setKeepAlive(true);
>         socket.setSoLinger(true, 0);
>         return socket;
>     }
>
> Takto se mi na mem stroji (Windows XP Professional, Apache 2.0.59)
> podarilo docilit otevreni 24362 spojeni. Po zakomentovani radku
> uzavirajicich spojeni jich bylo 27596 a po zakomentovani radku s
> nastavenim SO_LINGER (ale s uzaviranim) jich bylo 29018. To jsou cisla,
> ktera me prekvapila, protoze SO_LINGER s timeoutem 0 by melo zpusobit, ze
> pri zavreni socketu dojde k okamzitemu TCP resetu spojeni a to by pak melo
> byt okamzite k pouziti.
>
> Nejde pouze o tento test, problem se vyskytnul i pri realnem nasazeni.
>
> Nesetkal se s tim jeste nekdo? Diky.
>
> S pozdravem,
>
> Stepan Roh
>

Odpovedet emailem