Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Java na webovém serveru: Vlastní JSP značky a servlety

Ladislav Thon
Ladislav Thon (neregistrovaný) ---.insite.cz
17. 3. 2010 8:37

Re: Java na webovém serveru: Vlastní JSP značky a servlety

Jen drobnost, load-on-startup neznamená počet instancí servletu (ta je vždycky jedna), ale pořadí, v jakém se servlety inicializují.

Franta Kučera aura:90
17. 3. 2010 19:51

Re: Java na webovém serveru: Vlastní JSP značky a servlety

Díky za opravu, je to tak.

BTW: někdy může existovat více instancí jednoho serveru – záleží na implementaci AS a použití rozhraní SingleThreaded­Model.

Vít Šesták (v6ak) aura:72
17. 3. 2010 19:52

Re: Java na webovém serveru: Vlastní JSP značky a servlety

Třeba u Google App Engine, že?

Franta Kučera aura:90
17. 3. 2010 19:52

Re: Java na webovém serveru: Vlastní JSP značky a servlety

sorry :-)
serveru → servletu
(to je tak, když člověk už myslí na druhou část věty)

Ladislav Thon
Ladislav Thon (neregistrovaný) ---.net.upc.cz
18. 3. 2010 0:34

Re: Java na webovém serveru: Vlastní JSP značky a servlety

To je pravda, ale SingleThreadModel je deprecated a uživatel by v každém případě měl předpokládat, že servlet je jen jeden = musí být thread-safe (ideálně bezestavový – ač je to možná s podivem, obvykle to vůbec není problém --, jiná řešení velmi rychle vedou k výkonnostním problémům).

Guido
Guido (neregistrovaný) ---.net.upc.cz
20. 3. 2010 20:44

Re: Java na webovém serveru: Vlastní JSP značky a servlety

To je samozřejmě nesmysl – instance servletu je vždy jen jedna a pro každý request vytváří konejner nový thred. Viz specifikace.

Jedinou výjimkou, kdy existuje více instancí servletu, je, pokud je aplikace nasazená v distribuovaném prostředí – na více JVM. Ale i tak, v každém JVM je pouze jedna instance každého servletu. Opět viz specifikace.

BTW, kdybyste dělal SCWCD, tak byste to věděl. Rovněž mohu doporučit skvělou knížku z edice Head First, kde je toto několikrát, s odkazem na specifikaci, zdůrazňováno.

Franta Kučera aura:90
21. 3. 2010 1:20

Re: Java na webovém serveru: Vlastní JSP značky a servlety

Doporučuji příslušnou specifikaci dostudovat. Sice se tam píše, že:

For a servlet not hosted in a distributed environment (the default), the servlet container must use only one instance per servlet declaration.

ale zároveň:

However, for a servlet implementing the SingleThreadModel interface, the servlet container may instantiate multiple instances to handle a heavy request load

Nicméně asi nemá cenu se o tom přít – užitečnost vícenásobných instancí téhož servletu je sporná (asi taky proto je SingleThreadModel zavržený) a navíc mi přijde celkem přirozené psát servlety tak, aby byly vláknově bezpečné – co jde, tak bezstavově a pokud jsou potřeba nějaké proměnné (třeba kolekce) na úrovni třídy, tak počítat s tím, že k nim může přistupovat víc vláken současně.

Guido
Guido (neregistrovaný) ---.net.upc.cz
1. 4. 2010 21:09

Re: Java na webovém serveru: Vlastní JSP značky a servlety

Specifikace jest dostudována. Neříká se v ní, jakým způsobem se má SingleThreadModel implementovat – je to vendor specific. Navíc je STM od verze 2.4 deprecated a ani předtím nebylo doporučeno ho používat.

Zasílat nově přidané příspěvky e-mailem