Dobry den,

podle specifikace servletu verze 2.4 (a podle predchozich verzi take) muze byt v kontejneru jen jedna instance servletu, pokud servlet neimplementuje SingleThreadModel. Vice instanci je povoleno pokud je aplikace distribuovana (je v DD oznacena jako distributable a bezi ve vice kontejnerech - pak kazdy kontejner muze mit vlastni instanci servletu) nebo pokud servlet implementuje SingleThreadModel (pak muze byt v kontejneru vice instanci a kontejner zajistuje pooling).
Ve verzi 2.4 je ovsem SingleThreadModel deprecated.

Z.T.
--
Zdenek Tronicek
Department of Computer Science and Engineering
Prague                   tel: +420 2 2435 7410
http://cs.felk.cvut.cz/~tronicek


Quoting Lukáš Zapletal <[EMAIL PROTECTED]>:

No ja mam pocit, ze specifikace nerika, ze paklize v jeden okamzik
mate vice requestu na jeden servlet, ze je MUSI zakonite vyrizovat
jedna instance. Je na kontejneru, zda se rozhodne vytvorit vice (treba
deset) instanci. Pozadavky pak muze distribuovat mezi tyto instance -
to zalezi na implementaci. Nicmene nelze zarucit, ze se tak nestane -
a prave proto tu mame single thread model.

LZ

Dne 14. červen 2008 13:11 bardolf * <[EMAIL PROTECTED]> napsal(a):
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 ;-)




--
Lukas Zapletal
http://lukas.zapletalovi.com





Odpovedet emailem