You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by 杨健 <he...@gmail.com> on 2007/08/28 08:17:25 UTC

tcp transport problem: multithread blocking sending doesn't work

 hi, axis2ers

I create a webservices to send datas, and http,jms transport works fine with
multithread sending, but not for tcp.
TCP uses ws-addressing in both client and server sides, and it works fine in
single thread. In the case of multithread,
e.g.,
1. a thread T1 created to send data D1, use a ServiceClient object in
blocking way(sendReceive())
2. meanwhile, another thread T2(same as T1) created to send data D2
3. T1 sent the data and has not received the reply;(need more time)
4. T2 sent the data and received the reply;(T2 works OK)
5. T1 throws a Exception: Socket output is already shutdown

It seems like T2 shutdown the socket T1 used.

I use the seperator listener by options.setUseSeparateListener(true) and
similarlly "socket shutdown" exception throwed.
My question is:
when using two seperate ServiceClient, there should be two socket
connection. It works fine for http and jms, but why not work for
tcp? Is there something I missed when engaged ws-addressing or some bugs
there?

Thanks for your help.

Re: tcp transport problem: multithread blocking sending doesn't work

Posted by Deepal Jayasinghe <de...@opensource.lk>.
Hi ,
We have not done enough testing on TCP specially in multi thread
environment. So the issue you  have faced should be an limitation in
Axis2 (in TCP transport)  , so please create a JIRA we will definitely
looking to it.

Thanks
Deepal

杨健 wrote:
> hi, axis2ers
>
> I create a webservices to send datas, and http,jms transport works
> fine with multithread sending, but not for tcp.
> TCP uses ws-addressing in both client and server sides, and it works
> fine in single thread. In the case of multithread,
> e.g.,
> 1. a thread T1 created to send data D1, use a ServiceClient object in
> blocking way(sendReceive())
> 2. meanwhile, another thread T2(same as T1) created to send data D2
> 3. T1 sent the data and has not received the reply;(need more time)
> 4. T2 sent the data and received the reply;(T2 works OK)
> 5. T1 throws a Exception: Socket output is already shutdown
>
> It seems like T2 shutdown the socket T1 used.
>
> I use the seperator listener by options.setUseSeparateListener(true)
> and similarlly "socket shutdown" exception throwed.
> My question is:
> when using two seperate ServiceClient, there should be two socket
> connection. It works fine for http and jms, but why not work for
> tcp? Is there something I missed when engaged ws-addressing or some
> bugs there?
>
> Thanks for your help.
>

-- 
Thanks,
Deepal
................................................................
"The highest tower is built one brick at a time"



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org