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





Odpovedet emailem