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]