Ahoj,
trochu nestíhám, tak odpovídám všem se zpožděním.
Zapracovali jsme radu od Jardy Hurdese, uvidíme, co na to život.
Všem díky
Katka
pro "tapika"
Přístup k proudu už synchronizujeme, URL nesdílíme, to si každé vlákno vytvoří svoje.
S TCPMonem ani TCPdumpem zatím neumíme
pro Romana Pichlíka:
- Mate nekolik Java klientu nebo jednoho Java klienta
jednoho pro server a jiného pro posílání
- Ten klient pouziva nekolik vlaken nebo jedno vlakno.
až 300 vlaken
- Pokud nekolik vlaken, jakym zpusobem posilaji pozadavky na server
nejsou nijak synchronizované, volají statickou metodu, která provede POST
- HttpURLConnection, je sdilena mezi vlakny nebo ma kazde vlakno vlastni.
každé vlastní
- pouziva se HttpURLConnection jako persistent conection, pokud ano
chodi vam tam ty data dobre
persistent nepoužíváme, data většinou chodí dobře, ale občas se pomíchají
| Roman Pichlik <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED] 18.10.2006 11:43
|
|
je v tom hrozny hokej, nemohla byste lepe pospat Vas problem.
- Mate nekolik Java klientu nebo jednoho Java klienta
- Ten klient pouziva nekolik vlaken nebo jedno vlakno.
- Pokud nekolik vlaken, jakym zpusobem posilaji pozadavky na server
- HttpURLConnection, je sdilena mezi vlakny nebo ma kazde vlakno vlastni.
- pouziva se HttpURLConnection jako persistent conection, pokud ano
chodi vam tam ty data dobre
[EMAIL PROTECTED] napsal(a):
>
> Ahoj,
>
> connect neděláme, to dělá implicitně nějaká metoda (asi getOutputStream
> nebo getInputStream), kterou voláme.
> disconnect neděláme - v JavaDoc píšou, že tato metoda indikuje, že další
> dotazy na server jsou nepravděpodobné (což není náš případ).
>
> dík všem
> Kačka
>
>
>
> *"Jiri Fabian" <[EMAIL PROTECTED]>*
> Sent by: [EMAIL PROTECTED]
>
> 17.10.2006 16:59
> Please respond to
> Java <[email protected]>
>
>
>
> To
> "'Java'" <[email protected]>
> cc
>
> Subject
> RE: pomíchaná vlákna
>
>
>
>
>
>
>
>
>
>
> Cau,
>
>
>
> nezapominate na klientovi volat na te HttpUrlConnection connect() resp.
> disconnect()?
>
>
>
> Mej se,
>
>
>
> fil
>
>
> ------------------------------------------------------------------------
>
>
>
> *From:[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> *On Behalf Of [EMAIL PROTECTED]
> *Sent:* Tuesday, October 17, 2006 1:48 PM
> *To:* Java
> *Subject:* Re: pomíchaná vlákna
>
>
>
>
> Ahoj, je to takto:
>
> Kde to máme pomíchané, to nevíme. Víme toto:
>
> ODESÍLATEL:
>
> public static HttpURLConnection post (
> URL fo_url,
> Document fo_xml
> )
> {
> HttpURLConnection lo_connection; // konexe na server
> try // pripoj se na server
> {
> // otevri konexi na server
> lo_connection = (HttpURLConnection) fo_url.openConnection ();
> lo_connection.setDoInput (true); // povol cteni
> lo_connection.setDoOutput (true); // povol zapis
> lo_connection.setUseCaches (false); // zakaz cache
> lo_connection.setRequestMethod ("POST"); // budem POSTovat
> lo_connection.setRequestProperty ("Content-Type",
> "text/xml; charset=UTF-8");
>
> ByteArrayOutputStream lo_buf = new ByteArrayOutputStream ();
>
> getXmlTransformer ().transform (new DOMSource (fo_xml),
> new StreamResult (lo_buf));
>
> bigLog.info ("Posilam stream: [\n" + lo_buf.toString () +
> "\n]"); // tady je to ještě OK
>
> OutputStream lo_out = lo_connection.getOutputStream ();
> lo_out.write (lo_buf.toByteArray ());
> lo_out.close ();
> }
>
>
> SERVLET:
>
> public void doPost (
> HttpServletRequest fo_req, // I: HTTP request
> HttpServletResponse fo_res // O: HTTP response
> )
> {
> InputStream lo_in = fo_req.getInputStream (); // ziskej vstupni stream
>
> ByteArrayOutputStream lo_input = new ByteArrayOutputStream ();
> for (;;)
> {
> byte [] lan_buffer = new byte [2048];
> int ln_bytesRead = lo_in.read (lan_buffer);
> if (-1 == ln_bytesRead) break;
> lo_input.write (lan_buffer, 0, ln_bytesRead); // tady už to
> je pomíchané
> }
>
> Dík
> Katka
>
>
>
> *Martin Kuba <[EMAIL PROTECTED]>*
> Sent by: [EMAIL PROTECTED]
>
> 16.10.2006 16:57
>
> Please respond to
> Java<[email protected]>
>
>
>
>
>
>
>
> To
>
>
> Java<[email protected]>
>
> cc
>
>
>
>
> Subject
>
>
> Re: pomíchaná vlákna
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Kdyz mate vsechno v poradku, tak k problemum nemuze dochazet ;-)
>
> Zkuste pouzit TCPMon, viz
> http://ws.apache.org/commons/tcpmon/tcpmontutorial.html
> aspon poznate, jestli je chyba na klientovi nebo na serveru.
>
> Makub
>
> [EMAIL PROTECTED] wrote:
> >
> > ano, mame reentrantni metody, kontrovali jsme to ;-(
> >
> > *On Mon, 16 Oct 2006 16:12:36 +0200, Katerina.Molnarova wrote*
> > > zdravím,
> > > používáme toto nastavení:
> > >
> > > <Connector port="8084" maxHttpHeaderSize="8192"
> > > * maxThreads="150" minSpareThreads="25"
> > maxSpareThreads="75"*
> > > enableLookups="false" redirectPort="8443"
> acceptCount="100"
> > > connectionTimeout="20000" disableUploadTimeout="true" />
> > >
> > > Při zpracování se spouští až 300 vláken, ale kluci se tváří, že je
> > to v pohodě.
> > >
> > >
> >
> > Mate urcite vsechny metody servletu reentrantni?
> > Pokud si dobre pamatuji, tak ve specifikaci servlet API je, server
> > vytvori singleton instanci tridy servletu a potom ji pouziva z vice
> > vlanek najednou.
> > Takze pokud neni kod reentrantni mouhou se dit zajimave veci.
> >
> > A jak poznate, ze je kod reentrantni:
> > zejmena nepouzivate v metodach jine, nez lokalni promene - "alokovane
> > na zasobnik" (tj. nikoliv atributy objektu)
> >
> >
> > Lukas
> >
>
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Supercomputing Center Brno Martin Kuba
> Institute of Computer Science email: [EMAIL PROTECTED]
> Masaryk University http://www.ics.muni.cz/~makub/
> Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
> --------------------------------------------------------------
--
S pozdravem Roman "Dagi" Pichlik
/* http://www.sweb.cz/pichlik/ Blog pro kodery */
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
