Ano, chovani je to velice zajimave. Serializace threadu na serveru je opravdu zpusobena klientem. MSIE ma otevrene dve keep-alive spojeni na server, firefox jedno (prestoze mu v konfigu nastavim i 50). Krasne se to da overit pres request.getRemotePort(). V okamziku, kdy ve Firefoxu vypnu keep-alive, kazdy request bude mit nove cislo portu, ale presto se synchronizuji. Skoro bych rekl, ze se jedna o bugu ve Firefoxu, ze network.http.max-connections-per-server nebere v podtaz. Proc, nevim.
Jinak co se tyka promennych instance servletu, tak se ma zato, ze tato prasarna by se mela pouzivt opravdu ve vyjimecnem pripade, a to pouze ve vzthau k metode GenericServlet.init(ServletConfig config) , tedy pouze pro nastaveni chovani Servletu identickeho po celou dobu jeho zivota. Servlet by mel byt typicky BEZESTAVOVY. Stavovost je treba prenest az do Modelu, idealne az do DB. Oto 'tapik' Buchta On Sat, Jun 14, 2008 at 01:11:31PM +0200, bardolf * wrote: > Zdravim konferenci, > mam newbie dotaz na servlet. Docetl jsem se o problemu clenskych promennych > (member variables) v servletech pri zpracovani vice requestu najednou. Cetl > jsem napr. tento clanek > http://www.javaworld.com/javaworld/jw-07-2004/jw-0712-threadsafe.html . > Nebudu prepisovat kod, je k videni o page dal > http://www.javaworld.com/javaworld/jw-07-2004/jw-0712-threadsafe.html?page=2 > (ikdyz s malou chybou Thread.currentThread().sleep((long) Math.random() * > 1000); je lepsi nahradi Thread.sleep((long) (Math.random() * 1000)); - nejen > staticka metoda ale hlavne to pretypovani neni dobre). > > Kdyz se tento servlet dotazuje vice requestu v jeden cas, ocekaval bych > vysledek jaky je uveden v clanku. Ale vsechny requesty cekaji jeden na druhy > (jako bych implementoval SingleThreadModel). > > Snazil jsem se nalezt odpoved, tipoval jsem spatne nastaveni weboveho > containeru, ale zkousel jsem to na Tomcatu 6.0.16 a 5.5.26, na Glassfishi V2 > - vse s defaultnim nastavenim. Tak mozna se kdysi davno zmenilo ServletAPI a > vsichni to povazuji za samozrejmost. Ne tak ja ;-). > > Diky za kazdou odpoved, precetl jsem uz hafo konferenci a snad vsechny > internety ;-)
