Return-Path: Delivered-To: apmail-hc-httpclient-users-archive@www.apache.org Received: (qmail 46097 invoked from network); 15 Jun 2010 18:52:37 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 15 Jun 2010 18:52:37 -0000 Received: (qmail 44048 invoked by uid 500); 15 Jun 2010 18:52:36 -0000 Delivered-To: apmail-hc-httpclient-users-archive@hc.apache.org Received: (qmail 43944 invoked by uid 500); 15 Jun 2010 18:52:36 -0000 Mailing-List: contact httpclient-users-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpClient User Discussion" Delivered-To: mailing list httpclient-users@hc.apache.org Received: (qmail 43934 invoked by uid 99); 15 Jun 2010 18:52:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jun 2010 18:52:36 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of samcrawford@gmail.com designates 209.85.214.51 as permitted sender) Received: from [209.85.214.51] (HELO mail-bw0-f51.google.com) (209.85.214.51) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jun 2010 18:52:31 +0000 Received: by bwz3 with SMTP id 3so725595bwz.10 for ; Tue, 15 Jun 2010 11:52:09 -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 :content-transfer-encoding; bh=pSTJYE5RTV5bkKDc6WoPaHhhh6bsQpUtQLduTMZp/Xs=; b=VMU12bi81vLRPBiVGDt77bFMiJ/V5p8NpWMP9yvrvQSNHZu5VrFF5JRh0sfZ51/9k4 4qasqWjtQdNT+kR7Nv7Gxcnlk/Mc6PVe3d2Bwloq4qEXgitQVsiRSoaeoHPGFgP+u68l fxnaQduIlJMcSr+gWyeA6RA2L8lNlHms9Frms= 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:content-transfer-encoding; b=w/wwZ6CrQy/BMCZOSncIcRF68PGVz7nf+BOpXO3jKwYJZSo7QJopeLtpCe9V54+E0c Kqx65x5zjlTYyQfVaYbw/NUKv2V7sqy50ZsLpMwIJeIPmgTTcesQ52z3sS2gajq03Grp HbDrY6qGmGEO755P27SDRrCuG5U+poGOikxmc= MIME-Version: 1.0 Received: by 10.204.47.6 with SMTP id l6mr5741552bkf.90.1276627929638; Tue, 15 Jun 2010 11:52:09 -0700 (PDT) Received: by 10.204.49.14 with HTTP; Tue, 15 Jun 2010 11:52:09 -0700 (PDT) In-Reply-To: <28888928.post@talk.nabble.com> References: <28883039.post@talk.nabble.com> <28888928.post@talk.nabble.com> Date: Tue, 15 Jun 2010 19:52:09 +0100 Message-ID: Subject: Re: Load balancer and Connection pool From: Sam Crawford To: HttpClient User Discussion Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I don't see anything glaringly wrong there. What's HttpManagerCleaner by the way? I assume this is some peripheral thread that cleans up idle connections? Is this based upon IdleConnectionEvictor that Oleg has posted here? Thanks, Sam On 15 June 2010 10:13, KaiserSose wrote: > > Hi Sam, > first of all thanks for your time and your help. > I can't set any packet sniffer on the frontends (since I don't have acces= s > rights) ... > Here are the "interested" parts of my code ... this is a very reduced par= t > of the manager and its surrounded by other classes and so on ... > > > package it.seat.dol.http.connectionpool; > > public class HttpConnectionManager { > > =C2=A0 =C2=A0protected static final Logger log =3D > Logger.getLogger("HttpConnectionManager"); > =C2=A0 =C2=A0private static HttpConnectionManager instance =3D null; > =C2=A0 =C2=A0private HttpParams hp =3D new BasicHttpParams(); > =C2=A0 =C2=A0private HttpParams tempConfig; > =C2=A0 =C2=A0private Map configList =3D new > HashMap(); > =C2=A0 =C2=A0BasicHttpContext localcontext =3D new BasicHttpContext(); > =C2=A0 =C2=A0private DefaultHttpClient httpclient; > =C2=A0 =C2=A0private ThreadSafeClientConnManager poolManager; > =C2=A0 =C2=A0private static boolean isInit =3D false; > > =C2=A0 =C2=A0// parametri che verranno letti dal file di risorse > =C2=A0 =C2=A0private static Integer managerMaxTotalConn =3D 0; > =C2=A0 =C2=A0private static Integer managerConnPerRoute =3D 0; > > > =C2=A0 =C2=A0private HttpConnectionManager() { > =C2=A0 =C2=A0} > > =C2=A0 =C2=A0 =C2=A0public static HttpConnectionManager getInstance() thr= ows > HttpConnectorException { > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (isInit()) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return instance; > =C2=A0 =C2=A0 =C2=A0 =C2=A0} else { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.warn("getInstance() __ tenta= tivo di ottenere un istanza con > manager non inizializzato"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0throw new > HttpConnectorException(HttpConnectorException.HC_ERR_NOT_INIT, > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"Htt= pConnectionManager.getInstance()", > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"Imp= ossibile ottenere il reference. Non =EF=BF=BD stato > inizializzato il Manager"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0} > > =C2=A0 =C2=A0 =C2=A0public static synchronized void init(Properties conne= ctorProperties) > throws HttpConnectorException { > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (instance =3D=3D null) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0instance =3D new HttpConnectionM= anager(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.info("init() __ COSTRUITO IL= MANAGER HTTP"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0try { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ApplicationConfig.= getInstance().init(connectorProperties); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0managerMaxTotalCon= n =3D > Integer.parseInt(ApplicationConfig.getInstance().getProperty("maxtotalcon= n")); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0managerConnPerRout= e =3D > Integer.parseInt(ApplicationConfig.getInstance().getProperty("maxconnperr= oute")); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if ((managerMaxTot= alConn =3D=3D 0) || (managerConnPerRoute =3D=3D > 0)) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.= error("init() __ Impossibile inizializzare con > managerMaxTotalConn=3D " + managerMaxTotalConn > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0+ " e managerConnPerRoute=3D " + > managerConnPerRoute); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0thro= w new > HttpConnectorException(HttpConnectorException.HC_ERR_WRONGPARAMETER, > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0"HttpConnectionManager.init() ", > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0"Errore nei parametri. Controllare > Application.properties" > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0+ "o i parametri maxtotalconn e > maxconnperroute"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} catch (IOException ex) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if ((managerMaxTot= alConn =3D=3D 0) || (managerConnPerRoute =3D=3D > 0)) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.= error("init() __ errore nell'inizializzazione " + > ex); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0thro= w new > HttpConnectorException(HttpConnectorException.HC_ERR_PATHFILE, > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0"HttpConnectionManager.init() ", > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0"Errore nel file delle propriet=C3=A0"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// logga > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.info("init() __ MANAGER HTTP= INIZIALIZZAZIONE IN CORSO ... > "); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.info("init() __ MANAGER HTTP= CONNESSIONI TOTALI MASSIME: " + > managerMaxTotalConn); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.info("init() __ MANAGER HTTP= CONNESSIONI MASSIME PER > PERCORSO: " + managerConnPerRoute); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0instance.startUp(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0} > > =C2=A0 =C2=A0public static synchronized void init() throws HttpConnectorE= xception { > =C2=A0 =C2=A0 =C2=A0 =C2=A0init(null); > =C2=A0 =C2=A0} > > =C2=A0 =C2=A0private SchemeRegistry createSchemeRegistry() { > =C2=A0 =C2=A0 =C2=A0 =C2=A0SchemeRegistry sr =3D new SchemeRegistry(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0sr.register(new Scheme("http", > PlainSocketFactory.getSocketFactory(), 80)); > =C2=A0 =C2=A0 =C2=A0 =C2=A0sr.register(new Scheme("https", SSLSocketFacto= ry.getSocketFactory(), > 443)); > =C2=A0 =C2=A0 =C2=A0 =C2=A0log.info("createSchemeRegistry() __ MANAGER HT= TP CREATO SCHEME > REGISTRY"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0return sr; > =C2=A0 =C2=A0} > > > =C2=A0 =C2=A0private void startUp() { > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!isInit()) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ConnManagerParamBean connParams = =3D new ConnManagerParamBean(hp); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// imposto le connessioni totali= massime e di massime per > percorso > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0connParams.setMaxTotalConnection= s(managerMaxTotalConn); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0hp.setParameter(ConnManagerPName= s.MAX_CONNECTIONS_PER_ROUTE, new > ConnPerRoute() { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0@Override > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0public int getMaxF= orRoute(HttpRoute route) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0retu= rn managerConnPerRoute; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// Istanzio il connection manage= r ed il client http > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0poolManager =3D new ThreadSafeCl= ientConnManager(hp, > createSchemeRegistry()); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0HttpManagerCleaner manCleaner = =3D new > HttpManagerCleaner(poolManager, 60000); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0manCleaner.start(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0httpclient =3D new DefaultHttpCl= ient(poolManager, hp); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0isInit =3D true; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.info("startUp() __ MANAGER H= TTP INIZIALIZZAZIONE > COMPLETATA"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0} > > [....] > > =C2=A0 =C2=A0private String doGetFinalRequest(String page, String user, S= tring > password, HttpConnectionParams serviceParams) throws IOException, > HttpConnectorException { > =C2=A0 =C2=A0 =C2=A0 =C2=A0String result =3D null; > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (isInit()) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Long startTime =3D null; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (log.isDebugEnabled()) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log.debug("[PROFIL= E]: Chiamata GET accettata"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0startTime =3D Syst= em.currentTimeMillis(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0page =3D encodePage(page); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0String proxyAddress =3D ""; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Integer proxyPort =3D 0; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0String proxyUser =3D ""; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0String proxyPassword =3D ""; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0proxyAddress =3D (String) servic= eParams.getParameter("PROXYHOST"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0proxyPort =3D (Integer) serviceP= arams.getParameter("PROXYPORT"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0proxyUser =3D (String) servicePa= rams.getParameter("PROXYUSER"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0proxyPassword =3D (String) > serviceParams.getParameter("PROXYPASSWORD"); > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0HttpEntity entity =3D null; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0HttpHost targetHost =3D serviceP= arams.getHostObject(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0HttpGet httpget =3D new HttpGet(= page); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0httpget.setParams((HttpParams) s= erviceParams.getHttpParams()); > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if ((!(proxyAddress =3D=3D null)= ) && (!proxyAddress.equals("")) && > (!(proxyPort =3D=3D null)) && (proxyPort > 0)) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0setProxy(httpget, = proxyAddress, proxyPort, proxyUser, > proxyPassword); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!user.equals("")) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0setHostAuthenticat= ion(targetHost.getHostName(), > targetHost.getPort(), user, password); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0HttpResponse response =3D httpcl= ient.execute(targetHost, httpget); > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0switch (response.getStatusLine()= .getStatusCode()) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case HttpStatus.SC= _OK: > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// r= isposta ricevuta correttamente (200) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0logI= fDebug("doGetFinalRequest() __ Ottenuto un response > 200 su " + targetHost.getHostName() + page); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enti= ty =3D response.getEntity(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0brea= k; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case HttpStatus.SC= _MOVED_PERMANENTLY: > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// r= edirect permanente ad un altra pagina (301) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0logI= fDebug("doGetFinalRequest() __ Ottenuto un response > 301 su " + targetHost.getHostName() + page); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enti= ty =3D response.getEntity(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0brea= k; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case HttpStatus.SC= _MOVED_TEMPORARILY: > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// r= edirect temporaneo ad un altra pagina (302) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0logI= fDebug("doGetFinalRequest() __ Ottenuto un response > 302 su " + targetHost.getHostName() + page); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enti= ty =3D response.getEntity(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0brea= k; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case HttpStatus.SC= _UNAUTHORIZED: > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0logI= fDebug("doGetFinalRequest() __ Response 401 su " + > targetHost.getHostName() + page + " connessione non autorizzata"); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0thro= w new > HttpConnectorException(HttpConnectorException.HC_ERR_NOT_AUTH, > "HttpRequester.doGetRequest()", ""); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0default: > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0logI= fDebug("doGetFinalRequest() __ Response " + > response.getStatusLine().getStatusCode() + " su " + targetHost.getHostNam= e() > + page); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0thro= w new > HttpConnectorException(HttpConnectorException.HC_ERR_HTTP, > "HttpRequester.doGetRequest()", ""); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (entity !=3D null) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0result =3D EntityU= tils.toString(entity); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0entity.consumeCont= ent(); > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} > > =C2=A0 =C2=A0 =C2=A0 =C2=A0} > =C2=A0 =C2=A0 =C2=A0 =C2=A0return result; > =C2=A0 =C2=A0} > > -- > View this message in context: http://old.nabble.com/Load-balancer-and-Con= nection-pool-tp28883039p28888928.html > Sent from the HttpClient-User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org > For additional commands, e-mail: httpclient-users-help@hc.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org For additional commands, e-mail: httpclient-users-help@hc.apache.org