[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