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ý 
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ý  


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
Future returnSomething(int  i) {
 // this will be executed asynchronously
}


2014-06-11 19:31 GMT+02:00 Vladislav Korecký 
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ý  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ý
> 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
>> Future returnSomething(int i) {
>> // this will be executed asynchronously
>> }
>> 
>> 
>> 2014-06-11 19:31 GMT+02:00 Vladislav Korecký :
>> 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ý  	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
Future returnSomething(int  i) {
 // this will be executed asynchronously
}


2014-06-11 19:31 GMT+02:00 Vladislav Korecký 
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-11 Tema obsahu Tomas Baca
http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/scheduling.html
example:
@Async
Future returnSomething(int i) {
// this will be executed asynchronously
}



2014-06-11 19:31 GMT+02:00 Vladislav Korecký :

> 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ý
>