Dobrý deň, zapísať niekoľko stoviek reťazcov možné je, ale ja som tam vložil "throw new IllegalStateException(...)", aby som demonštroval správanie, keď na klienta príde nekompletná odpoveď kvoli zlyhaniu JSP stránky. Za normálnych okolností, keď JSP stránka beží správne, nie je potrebné sa s bufferovaním príliš zaoberať.
S pozdravom, -Peter Štibraný Jakub Příkazský wrote: > Dobrý den, > > zkusili jsme experimentovat z různou velikostí bufferu a chyba se > projevuje stejně. Bohužel se projevuje pouze u zákazníka, takže se nám > ji nedaří nasimulovat ve vývojovém prostředí. > > Mám jen jednu otázku: Přijde mi hodně zvláštní, že není možné > vytisknout do stránky "několik stovek řetězců". Toto chování JSP je > běžné, nebo se jedná o nějakou chybu nebo jsem něco nepochopil? Přeci > nebudu nastavovat velikost bufferu podle počtu záznamu v databázi, > například pokud bych dělal nějaký report apod. > > děkuji Jakub > > Jakub Příkazský napsal(a): >> Dobrý den, >> >> děkuji za vyčerpávající odpověď. JSF používají pro zobrazení JSP viz >> http://en.wikipedia.org/wiki/JavaServer_Faces, takže by nám mohla být >> vaše rada být hodně užitečná. >> >> Zdravím >> >> Jakub Příkazský >> >> Peter Stibrany napsal(a): >>> Dobry den, >>> >>> priznam sa, ze neviem ktore z nastaveni v konfiguracii tomcatu toto >>> ovplyvnuju. Ja ked som dany problem pozoroval, tak som menil velkost >>> bufferu priamo v JSP stranke pouzitim direktivy <[EMAIL PROTECTED] >>> buffer="..." >>> %>. >>> >>> Nasledujuca JSP stranka demonstruje problem: >>> >>> <[EMAIL PROTECTED] buffer="9kb" %> >>> <% >>> for (int i = 0; i < 1000; i++) { >>> out.println("" + i + " Bez domu Ivane, ceka te Natasa<br />"); >>> if (i == 350) { >>> out.println("" + i + " Ooops<br />"); >>> throw new IllegalStateException("fail: " + i); >>> } >>> } >>> %> >>> >>> Uvedena velkost buffera 9kb sposobi, ze klient dostane riadky 0 az >>> 221, hoci JSP stranka padne az pri iteracii 350. Detailnejsi pohlad na >>> odpoved zo servera ukaze, ze odpoved (okrem hlaviciek a po odstraneni >>> chunkovania) ma skutocne presne 9216 bajtov, teda 9kb. >>> >>> Tento priklad ukazuje: >>> * klient dostane odpoved, ale nie kompletnu (riadky 222 az 350 sa mu >>> uz nikdy neposlu) >>> * klient nedostane ziadnu informaciu o chybe >>> * chyba (vynimka) je zalogovana v logoch aplikacie >>> >>> Ked sme raz na tento problem narazili, a zvacsili sme velkost buffera >>> dostatocne na to, aby sa nestihlo klientovi nic poslat, tak pri >>> zlyhani JSP stranky a vyhodeni vynimky poslal Tomcat namiesto kusku >>> odpovede radsej chybovu stranku s vynimkou. To nam pomohlo zistit, co >>> sa vlastne stalo. >>> >>> Zial neviem Vam poradit, ako tieto znalosti aplikovat na prostredie >>> JSF :-( >>> >>> -ps >>> >>> 2008/8/21 Jakub Příkazský <[EMAIL PROTECTED]>: >>> >>>> Peter Stibrany napsal(a): >>>> >>>> Děkuji za odpověď, >>>> >>>> zkusil jsem změnit nastavení komponenty tree2, na otevírání uzlů na >>>> serveru na clientSideToggle=false a už se mi alespoň stromek zobrazí. >>>> Pokud ale zkusím rozbalit několik dalších uzlů (při prvním otevření >>>> jsou >>>> zbalené), tak se problém opět objeví. Pouze jsem se chtěl zeptat, >>>> které >>>> hodnoty konfigurace Tomcatu měníte viz >>>> (http://tomcat.apache.org/tomcat-5.5-doc/config/http.html) nebo si >>>> myslíte, že mohou mít vliv? Zkusil jsem změnit bufferSize v >>>> konfiguraci >>>> http konektoru, ale nezpozoroval jsem žádný vliv. Zjistil jsem, že se >>>> maximální velikost vykreslené stránky pohybuje okolo 52KB. Používám >>>> Tomcat 5.5.25. >>>> >>>> S pozdravem >>>> >>>> Jakub Příkazský >>>> >>>>> Prajem pekny den, >>>>> >>>>> Neviem o JSF dost nato, aby som vedel, ci nas problem suvisi s Vasim, >>>>> ale ved posudte... my pouzivame Tomcat, Servlety a JSP stranky. >>>>> >>>>> Pri naozaj velkych vystupoch z JSP stranky sa nam obcas stane, ze >>>>> pocas vykonavania stranky sa cast vystupu stihne poslat na klienta >>>>> (ked sa zaplni buffer), a az potom vykonavanie JSP stranky spadne. >>>>> Problem je, ze klient uz vidi tu cast, co dostal -- ale viac nikdy >>>>> nedostane, lebo JSP stranka zlyhala. Vynimku vidiet v logoch >>>>> aplikacie >>>>> (ak nie je niekde odchytena a zabudnuta), pohlad klienta je vsak >>>>> taky, >>>>> ze dostane len prvu cast stranky a nic viac, ziadnu chybu. >>>>> >>>>> Pozrite sa na vystup, ktory klient dostane ... ci nahodou nema >>>>> velkost >>>>> nasobku velkosti buffera. To by mohlo indikovat podobny problem. Ak >>>>> vsak nevidite ziadne problemy v logoch, tak bude tazke to najst (a >>>>> mozno to ani nesuvisi). >>>>> >>>>> S pozdravom, >>>>> -Peter Stibrany >>>>> >>>>> >>>>> 2008/8/20 Jakub Příkazský <[EMAIL PROTECTED]>: >>>>> >>>>> >>>>>> Zdravím konferenci, >>>>>> >>>>>> v aplikaci se mi objevuje naprosto záhadná chyba. Některé záznamy >>>>>> nelze >>>>>> úplně zobrazit, vykreslí se pouze část stránky (několik uzlů a >>>>>> pak už jen >>>>>> kousek nějakého html). Pro zobrazení záznamu používáme stromek, >>>>>> komponenta >>>>>> tree2 MyFaces viz. (http://wiki.apache.org/myfaces/Tree2). Díval >>>>>> jsem se do >>>>>> logu a nevidím nikde žádné chybu - renderovací cyklus JSF projde >>>>>> celý, data >>>>>> jsou také načtená. V dokumentaci stromku jsem našel zmínku pouze >>>>>> o vysoké >>>>>> paměťové náročnosti pokud je uzlů hodně a je zapnuté rozbalování na >>>>>> klientovi - clientSideToggle=true, ale to není náš případ (cca 40 >>>>>> uzlů). >>>>>> Zkoušel jsem na serveru přístup přes lokální alias (jestli se >>>>>> neděje něco po >>>>>> cestě), ale chyba se projevuje stejně. Napadá někoho, jak problém >>>>>> řešit? >>>>>> >>>>>> díky Jakub >>>>>> >>>>>> >>>>>> >>>> >>>> >> >
