You might want to try this out using the NIO HTTP transport. It should
scale better for this kind of behaviour.

Paul

On Feb 11, 2008 11:11 AM, Matthias Wermund <[EMAIL PROTECTED]> wrote:
>
>
> Hi,
>
> I'm having problems starting a big amount of async webservice requests via
> Axis2 client in short time.
> The requests are all started from the same Thread and should run parallel in
> only small amount.
>
> As you can see below, I start about 1000 * 5 = 5000 requests, but only a max
> of 2-5 are called parallel.
> For each dataset, a few information-requests are started parallel, but I
> ensure that each CallbackHandler has been finished,
> before requesting the informations for the next dataset.
>
> For the first several hundred requests this works fine, but after some time,
> my network (OS is Windows 2000) goes down,
> which means that the complete OS looses the connection to the local network.
>
> I guess this could be based in opening too much TCP connections or something
> like this,
> because if it affects the whole OS and not just my application, it has to be
> something with the network device or driver.
>
> So basically my question is:
> Is it ensured that the TCP connection is already closed when
> CallbackHandler.onError or CallbackHandler.onComplete is called?
> Or must I do this myself in any way?
> Do you have any other clue what might be the problem here?
>
> Thank you!
>
>
> ______________________________________________
> A quick mock-overview of how I start the threads:
>
> List<Dataset> datasets;    // approx. 500 - 1000 objects
> ...
> for (Object data: datasets) {
>     List<Callback> callbacks;
>     for (Information info: myRequestsForThisData) {    // approx. 2-5
> objects
>         // Generating the Request Document
>         Request request = generateRequest(info);
>         // Generating a service Callback instance; the Callback class has an
> attribute "finished"
>         Callback myCallback = new Callback();
>         // remembering the callback
>         callbacks.add(myCallback);
>         // starting the async request
>         stub.startRequest(request,myCallback);
>     }
>
>     // now wait until all Callbacks are finished (finished is true if
> onError or onComplete has been called)
>     while (true) {
>         boolean allCompleted = true;
>         for(Callback callback: callbacks)
>             if (callback.isFinished()) {
>                 allCompleted = false;
>                 break;
>             }
>         if (allCompleted)
>             break;
>         Thread.sleep(25);
>     }
> }
>
>



-- 
Paul Fremantle
Co-Founder and VP of Technical Sales, WSO2
OASIS WS-RX TC Co-chair

blog: http://pzf.fremantle.org
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to