Return-Path: Delivered-To: apmail-ws-kandula-dev-archive@www.apache.org Received: (qmail 98814 invoked from network); 18 Sep 2010 08:52:32 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Sep 2010 08:52:32 -0000 Received: (qmail 59176 invoked by uid 500); 18 Sep 2010 08:52:31 -0000 Delivered-To: apmail-ws-kandula-dev-archive@ws.apache.org Received: (qmail 58783 invoked by uid 500); 18 Sep 2010 08:52:29 -0000 Mailing-List: contact java-dev-help@axis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@axis.apache.org Delivered-To: mailing list java-dev@axis.apache.org Received: (qmail 58775 invoked by uid 99); 18 Sep 2010 08:52:28 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 18 Sep 2010 08:52:28 +0000 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of amilasuriarachchi@gmail.com designates 74.125.82.51 as permitted sender) Received: from [74.125.82.51] (HELO mail-ww0-f51.google.com) (74.125.82.51) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 18 Sep 2010 08:52:07 +0000 Received: by wwb28 with SMTP id 28so3043037wwb.32 for ; Sat, 18 Sep 2010 01:51:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=cZceVF6ovpOdSrZPjr8FSkugZwdJJ+Deez3wO0L/bSI=; b=RExwG62LeeiVP0WEITOFH7iCssxwE15B1dz1Tzchr4Xhgna/9zF3L/XfoJ2Zmyp+QF ftYjV73KnmYkld4c06gBvegey7hel6GpXI8SHe497+NYB6ShwkzcYTDhNmFB6x3TbhP4 04eUHagbfgGblILGEEdF0lkaJW1hkTxADkYOU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=VgpFCY3hGxolaLZCStdkQsIvqHNN1t5TEsvTKSXkk7kVbHS5tGFUvQYB9VYNVqCmLo HQNKE/fwX2inc3lAfUS4HqyZI1tLRYx/tJiYA0AEqBxLLGvplbJDLcYJ02PSmmf2Xh8M oHuUZBpt2zpn1UCMU/TMVH+GJWjFqR/5Ym3jw= MIME-Version: 1.0 Received: by 10.216.6.195 with SMTP id 45mr1854747wen.86.1284799906865; Sat, 18 Sep 2010 01:51:46 -0700 (PDT) Received: by 10.227.43.5 with HTTP; Sat, 18 Sep 2010 01:51:46 -0700 (PDT) In-Reply-To: <4C93BBB3.1020306@thoughtcraft.com> References: <4C93BBB3.1020306@thoughtcraft.com> Date: Sat, 18 Sep 2010 14:21:46 +0530 Message-ID: Subject: Re: HTTP connection management in Axis From: Amila Suriarachchi To: java-dev@axis.apache.org Content-Type: multipart/alternative; boundary=0016364d1f390e619f049084ca3c X-Virus-Checked: Checked by ClamAV on apache.org --0016364d1f390e619f049084ca3c Content-Type: text/plain; charset=ISO-8859-1 On Sat, Sep 18, 2010 at 12:34 AM, Glen Daniels wrote: > (New thread for discussing $subject.) > > So, for 1.6 it would be great if we could finalize our HTTP management > stuff, > and have a clean set of APIs / patterns that we can have documented and > FAQ'ed. > > This thread can break off into sub-threads if desired, but things I think > we > need to get right include the following: > > * Do we re-use HTTPClient / MultithreadedHTTPConnectionManager by default? > > My answer here would be yes, but the code currently uses any MHCM that it > finds in the context hierarchy - so if you want to have a separate one > per-operation or per-message, you can just drop it in to the right context. > I think it's critical that the default behavior is as friendly as possible > to > the common use-cases, though. > So we need to define what the common use-case is. I think the httpClient look up algorithm should looks like this, looks for cached http client object and if found use it looks for cached MHCM object and if found create a new httpClient per invocation. if both options not available create a new http Client per invocation. All lookups should happen in the message context. So the default is to create new httpClient. This way users can override default option for high load situations. thanks, Amila. > > * Can we upgrade to HTTPClient v4? > > I haven't investigated this yet - has anyone played with this to know how > challenging or not the migration is? > > * Are our APIs good enough? > > In particular, can we offer enough flexibility to the end-user via > easy-to-understand APIs / properties? > > * Are our tests adequate? > > I think not yet. We need at least to have small tests that prove re-use is > working, tests for ServiceClient/OperationClient/Stubs, tests for > rejiggering > various properties, and ideally a full build will run a 5000-iteration loop > sequence to test that the connection starvation problem hasn't snuck back > in > (particularly critical on Windows). > > * Other stuff? > > What am I missing? > > Thanks, > --G > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org > For additional commands, e-mail: java-dev-help@axis.apache.org > > -- Amila Suriarachchi WSO2 Inc. blog: http://amilachinthaka.blogspot.com/ --0016364d1f390e619f049084ca3c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Sat, Sep 18, 2010 at 12:34 AM, Glen D= aniels <glen@= thoughtcraft.com> wrote:
(New thread for discussing $subject.)

So, for 1.6 it would be great if we could finalize our HTTP management stuf= f,
and have a clean set of APIs / patterns that we can have documented and FAQ= 'ed.

This thread can break off into sub-threads if desired, but things I think w= e
need to get right include the following:

* Do we re-use HTTPClient / MultithreadedHTTPConnectionManager by default?<= br>
My answer here would be yes, but the code currently uses any MHCM that it finds in the context hierarchy - so if you want to have a separate one
per-operation or per-message, you can just drop it in to the right context.=
I think it's critical that the default behavior is as friendly as possi= ble to
the common use-cases, though.

So we need to define= what the common use-case is.

I think the httpClient look up algorit= hm should looks like this,

looks for cached http client object and i= f found use it
looks for cached MHCM object and if found create a new httpClient per invoc= ation.
if both options not available create a new http Client per invoca= tion.

All lookups should happen in the message context.

So th= e default is to create new httpClient. This way users can override default = option for high load situations.

thanks,
Amila.

=A0

* Can we upgrade to HTTPClient v4?

I haven't investigated this yet - has anyone played with this to know h= ow
challenging or not the migration is?

* Are our APIs good enough?

In particular, can we offer enough flexibility to the end-user via
easy-to-understand APIs / properties?

* Are our tests adequate?

I think not yet. =A0We need at least to have small tests that prove re-use = is
working, tests for ServiceClient/OperationClient/Stubs, tests for rejiggeri= ng
various properties, and ideally a full build will run a 5000-iteration loop=
sequence to test that the connection starvation problem hasn't snuck ba= ck in
(particularly critical on Windows).

* Other stuff?

What am I missing?

Thanks,
--G

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




--
Amila Suriarachchi
W= SO2 Inc.
blog: http://am= ilachinthaka.blogspot.com/
--0016364d1f390e619f049084ca3c--