[Java lista] flush()
Zsombor
gzsombor at gmail.com
2007. Jan. 23., K, 23:07:18 CET
On 1/23/07, István Viczián <viczian.istvan at gmail.com> wrote:
>
> Ăśdv,
>
> szeretnék élharcosként fellépni a flame-warban, a thread-ek oldalán,
> számomra az egyik legkényesebb téma. :)))
> Az a bajom, hogy futĂłtűzkĂ©nt terjed, hogy web-kontĂ©nerben ne indĂtsunk
> szálakat, az összes állásinterjún ezt hallom, listákon, fórumokon.
> Szegény kezdőkett meg beszivatjuk vele, adják tovább, manapság már a
> teljes magyar Java társadalom ebben a hitben él.
>
> Én is Ăgy kezdtem, volt egy egyszerű hosszan futĂł, nem általunk
> kontrollált - Ă©rtsd Ărt - tárolt eljárás. No, mondták, hogy akkor JMS,
> meg asynch design pattern, meg minden. Ez régen volt, tudta egy
> alkalmazásszerver, jó használjuk azt, EJB-k orrba szájba, JMS kezelés,
> connection-ökkel, session-ökkel, producer, consumer, minden...
> Természetesen rohadt macerás lett, a JMS implementáció is vérzett, EJB
> szabvány sem volt kiforrott. Nem működött, ahogy kellett volna.
> Osztán persze rájöttĂĽnk, ez Ăgy nem, legyen egy thread, kb. 20 sor
> lett a kód. Azóta maximálisan megszűntek a rendszerrel szembeni ilyen
> irányú panaszok.
> Nem tagadom, biztos nem volt megfelelően kezelve a JMS, de sokkal
> könnyebb elrontani, mint a thread-eket, nagyobb infrastruktúra kell
> alá.
>
> Szóval valaki mutasson már egy KONKRÉTUMOT, hogy miért nem (akárcsak
> ajánlott) thread-et használni web-konténerben? Ez városi legenda!!!
> Valaki nem jĂłl olvasta a spckĂłt.
>
> Az EJB-ben nem ajánlott fájlokat kezelni, java.io csomag, ClassLoader,
> Security Manager, socket tiltott, akkor a web-konténerben is? Miért
> csak a thread lett kiemelve?
> EJB 2.1 szabvány 25.1.2 Programming restrictions!
>
> Mit csinál az egyszeri ember, akinek egy web-konténere van (Tomcat)?
> Mondjuk JMS implementáció, vagy ütemező (Quartz) hogy működik? Néztem
> forrást, fordĂtottam már vissza több kommerciális JMS kliens
> könyvtárat, mindegyiknél ott vannak a szálak. Quartz pl.:
> org.quartz.core.QuartzSchedulerThread.
> A Quartz fejlesztőinek mért szabad, nekünk meg miért nem? Az nem a
> kontĂ©ner rĂ©sze, ugyanolyan osztály, mint amit mi Ărunk.
>
> Persze ésszel kell csinálni. Szóval ebben a vitában engem már csak egy
> jĂłl megĂrt programban talált dead-lock-kal lehet meggyĹ‘zni!
>
> Ne szivassuk már be a kezdőbbeket!
>
> Viczi
>
Ez teljesen igy van, web konténerben lehet inditani threadeket, viszont ne
csodálkozzunk, hogyha pl az eredeti servlet request paraméteréhez próbálnánk
nyúlni, akkor bajok lehetnek :) Jah, meg arra tényleg érdemes figyelni, hogy
ne inditsunk több ezer threadet,hanem használjunk valami threadpoolt.
Zs
ui. az eredeti témához még annyit füznék hozzá, hogy
1, simán becachelheti a servlet futtató a választ, mondjuk 64k-ig is akár.
Úgyhogy a flush nem biztos, hogy használ.
2, az, hogy AJAX, azaz kliens oldali javascript, vagy hogy a server
meta-refresh-el frissiti az oldalt majdnem mindegy. Csak az egyik müködik
lynx alatt is :)
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20070123/ca85ca05/attachment.html
További információk a(z) Javalist levelezőlistáról