Re: Vice socket klientu ve webové aplikaci (Spring)

2014-06-13 Tema obsahu Vladislav Korecký

Dobrý den,
problém jsem objevil, pan Kamil Podlesak měl pravdu.
Oba zmíněné způsoby byly dobře, problém byl v tom, že verze na webu 
volala kdesi hluboko v objektech jednu zapomenutou metodu static a ta 
pochopitelně způsobovala všechny problémy.

Zkrátka školácká chyba.
Tímto tedy dementuji, že by byl rozdíl s multithreadovým socket klientem 
na webu.
Když použijete správné třídy pro vytvoření threadu či tasku (jedno 
jestli ze Spring či Java EE) , tak vše pojede jak má.


Ještě jednou se omlouvám za zbytečné vlákno.

Vladislav Korecký


On 12.6.2014 13:40, Kamil Podlesak wrote:


Problém zřejmě není v paralelním spouštění (obě varianty vypadají 
zcela správně) ale v té práci se sockety.
Jaký by to mohl být problém, to mě moc nenapadá - jedině snad že pokud 
je těch spojení opravu MOC (stovky, tisíce) tak že to narazí na 
maximální počet otevřených souborů (sockety se počítají jako otevřené 
soubory).

Jinak těžko radit, bez dalších informací.

Kamil Podlešák


On 12. 6. 2014, at 13:30, Vladislav Korecký 
vladislav_kore...@gordic.cz mailto:vladislav_kore...@gordic.cz wrote:



Děkuji za odpověď,
přepsal jsem aplikaci aby místo threads používala bean s Async metodou.
Pomocí scheduleru vyvolávám metody a ta vytváří instanci beany a na 
ní spouští metody s anotací Async.

Vše běží paralelně, ale problém se Socket přetrvává.

Předem děkuji za pomoc,
Korecký

Sign
Ing. Vladislav Korecký mailto:vladislav_kore...@gordic.cz 
signature.png

GORDIC spol. s r.o., Erbenova 4, 586 01 Jihlava
tel: +420 567 571 467

On 12.6.2014 08:29, Tomas Baca wrote:

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/scheduling.html

example:
@Async
FutureString returnSomething(int  i) {
 // this will be executed asynchronously
}


2014-06-11 19:31 GMT+02:00 Vladislav Korecký 
vladislav_kore...@gordic.cz mailto:vladislav_kore...@gordic.cz:


Dobrý den,
prosím o radu.

Mám zkušební console aplikaci, ve které mám třídu která
implementuje Runnable, v metodě run() vytvářím Socket (klient) a
navazuji spojení se serverem.
V main metodě vyvolávám několik instancí výše zmíněné třídy a
vše vesele komunikuje (paralelně).

Když stejnou třídu vytvořím ve webové aplikaci postavené nad
Spring MVC a pomocí scheduleru vyvolám třídu, která vytvoří
instance zmíněného threadu a spustí je, tak se mi jednotlivý
socket klienti poperou (některé instance hlásí, že nelze navázat
spojení, jiné hlásí timeout). Když vše udělám synchroně
(vyvolávám jednotlivé instance threadu postupně), tak vše funguje.
Zkoušel jsem i implementovat Spring TaskExecutor, ale se stejným
výsledkem.

Jak bych měl postupovat ve webové aplikaci, abych mohl navázat N
paralelních spojení se Socket servery ?
Upozorňuji, že komunikace probíhá na TCP/IP úrovní pomocí
zasílání jednotlivých bytes. Nemohu použít HttpClient či podobné
třídy.

Předem děkuji za pomoc,
Vladislav Korecký










Re: Vice socket klientu ve webové aplikaci (Spring)

2014-06-12 Tema obsahu Tomas Baca
http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/scheduling.html
example:
@Async
FutureString returnSomething(int i) {
// this will be executed asynchronously
}



2014-06-11 19:31 GMT+02:00 Vladislav Korecký vladislav_kore...@gordic.cz:

 Dobrý den,
 prosím o radu.

 Mám zkušební console aplikaci, ve které mám třídu která implementuje
 Runnable, v metodě run() vytvářím Socket (klient) a navazuji spojení se
 serverem.
 V main metodě vyvolávám několik instancí výše zmíněné třídy a vše vesele
 komunikuje (paralelně).

 Když stejnou třídu vytvořím ve webové aplikaci postavené nad Spring MVC a
 pomocí scheduleru vyvolám třídu, která vytvoří instance zmíněného threadu a
 spustí je, tak se mi jednotlivý socket klienti poperou (některé instance
 hlásí, že nelze navázat spojení, jiné hlásí timeout). Když vše udělám
 synchroně (vyvolávám jednotlivé instance threadu postupně), tak vše funguje.
 Zkoušel jsem i implementovat Spring TaskExecutor, ale se stejným výsledkem.

 Jak bych měl postupovat ve webové aplikaci, abych mohl navázat N
 paralelních spojení se Socket servery ?
 Upozorňuji, že komunikace probíhá na TCP/IP úrovní pomocí zasílání
 jednotlivých bytes. Nemohu použít HttpClient či podobné třídy.

 Předem děkuji za pomoc,
 Vladislav Korecký



Re: Vice socket klientu ve webové aplikaci (Spring)

2014-06-12 Tema obsahu Vladislav Korecký

Děkuji za odpověď,
přepsal jsem aplikaci aby místo threads používala bean s Async metodou.
Pomocí scheduleru vyvolávám metody a ta vytváří instanci beany a na ní 
spouští metody s anotací Async.

Vše běží paralelně, ale problém se Socket přetrvává.

Předem děkuji za pomoc,
Korecký

Sign
Ing. Vladislav Korecký mailto:vladislav_kore...@gordic.cz 	GORDIC 
spol. s r.o.

GORDIC spol. s r.o., Erbenova 4, 586 01 Jihlava
tel: +420 567 571 467

On 12.6.2014 08:29, Tomas Baca wrote:

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/scheduling.html

example:
@Async
FutureString returnSomething(int  i) {
 // this will be executed asynchronously
}


2014-06-11 19:31 GMT+02:00 Vladislav Korecký 
vladislav_kore...@gordic.cz mailto:vladislav_kore...@gordic.cz:


Dobrý den,
prosím o radu.

Mám zkušební console aplikaci, ve které mám třídu která
implementuje Runnable, v metodě run() vytvářím Socket (klient) a
navazuji spojení se serverem.
V main metodě vyvolávám několik instancí výše zmíněné třídy a vše
vesele komunikuje (paralelně).

Když stejnou třídu vytvořím ve webové aplikaci postavené nad
Spring MVC a pomocí scheduleru vyvolám třídu, která vytvoří
instance zmíněného threadu a spustí je, tak se mi jednotlivý
socket klienti poperou (některé instance hlásí, že nelze navázat
spojení, jiné hlásí timeout). Když vše udělám synchroně (vyvolávám
jednotlivé instance threadu postupně), tak vše funguje.
Zkoušel jsem i implementovat Spring TaskExecutor, ale se stejným
výsledkem.

Jak bych měl postupovat ve webové aplikaci, abych mohl navázat N
paralelních spojení se Socket servery ?
Upozorňuji, že komunikace probíhá na TCP/IP úrovní pomocí zasílání
jednotlivých bytes. Nemohu použít HttpClient či podobné třídy.

Předem děkuji za pomoc,
Vladislav Korecký






Re: Vice socket klientu ve webové aplikaci (Spring)

2014-06-12 Tema obsahu Kamil Podlesak

Problém zřejmě není v paralelním spouštění (obě varianty vypadají zcela 
správně) ale v té práci se sockety.
Jaký by to mohl být problém, to mě moc nenapadá - jedině snad že pokud je těch 
spojení opravu MOC (stovky, tisíce) tak že to narazí na maximální počet 
otevřených souborů (sockety se počítají jako otevřené soubory).
Jinak těžko radit, bez dalších informací.

Kamil Podlešák


On 12. 6. 2014, at 13:30, Vladislav Korecký vladislav_kore...@gordic.cz wrote:

 Děkuji za odpověď,
 přepsal jsem aplikaci aby místo threads používala bean s Async metodou.
 Pomocí scheduleru vyvolávám metody a ta vytváří instanci beany a na ní 
 spouští metody s anotací Async.
 Vše běží paralelně, ale problém se Socket přetrvává.
 
 Předem děkuji za pomoc,
 Korecký
 
 Ing. Vladislav Koreckýsignature.png
 GORDIC spol. s r.o., Erbenova 4, 586 01 Jihlava
 tel: +420 567 571 467 On 12.6.2014 08:29, Tomas Baca wrote:
 http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/scheduling.html
 
 example:
 @Async
 FutureString returnSomething(int i) {
 // this will be executed asynchronously
 }
 
 
 2014-06-11 19:31 GMT+02:00 Vladislav Korecký vladislav_kore...@gordic.cz:
 Dobrý den,
 prosím o radu.
 
 Mám zkušební console aplikaci, ve které mám třídu která implementuje 
 Runnable, v metodě run() vytvářím Socket (klient) a navazuji spojení se 
 serverem.
 V main metodě vyvolávám několik instancí výše zmíněné třídy a vše vesele 
 komunikuje (paralelně).
 
 Když stejnou třídu vytvořím ve webové aplikaci postavené nad Spring MVC a 
 pomocí scheduleru vyvolám třídu, která vytvoří instance zmíněného threadu a 
 spustí je, tak se mi jednotlivý socket klienti poperou (některé instance 
 hlásí, že nelze navázat spojení, jiné hlásí timeout). Když vše udělám 
 synchroně (vyvolávám jednotlivé instance threadu postupně), tak vše funguje.
 Zkoušel jsem i implementovat Spring TaskExecutor, ale se stejným výsledkem.
 
 Jak bych měl postupovat ve webové aplikaci, abych mohl navázat N paralelních 
 spojení se Socket servery ?
 Upozorňuji, že komunikace probíhá na TCP/IP úrovní pomocí zasílání 
 jednotlivých bytes. Nemohu použít HttpClient či podobné třídy.
 
 Předem děkuji za pomoc,
 Vladislav Korecký