Hi Oleg, Thanks for answers. Clarifications below inline. Regards On Mon, Dec 29, 2014 at 10:04 AM, Oleg Kalnichevski <[email protected]> wrote:
> On Sun, 2014-12-28 at 22:09 +0100, Philippe Mouawad wrote: > > Hi, > > Related to this topic, once we switch to 1 instance of HttpClient shared > by > > all threads, how can we reset SSLContext ? > > We need this feature within jmeter to simulate SSL handshake per client , > > we currently do : > > httpClient.getConnectionManager().shutdown(); > > Which by the way is rather very inefficient way to do this. > > > > What do you mean by resetting SSLContext, changing some SSL handshake > parameters? > In JMeter, when we want to simulate Client certicate authentication, we currently "reset" SSL Context by calling httpClient.getConnectionManager().shutdown(); in order to reproduce the SSL renegociation: https://github.com/apache/jmeter/blob/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java See lines 630 to 638. > One can force SSL renegotiation by evicting all idle connections from > the connection pool. > Ok, that's good to know, so it means even today it would be better to call this instead: httpClient.getConnectionManager().closeIdleConnections(1, TimeUnit.MICROSECONDS); > Please note that if JMeter needs to simulate several physical users > having a separate connection pool per distinct user may be the easiest > and the most representative strategy. > What is the object to use if it's not 1 HttpClient per user as we do today ? PoolingHttpClientConnectionManager does not seem to be the one, as if it's shared among threads, how could we reset it only for 1 user ? > Cheers > > Oleg > > > Thanks > > Regards > > > > On Thu, May 15, 2014 at 10:39 AM, Oleg Kalnichevski <[email protected]> > > wrote: > > > > > On Wed, 2014-05-14 at 19:46 +0100, sebb wrote: > > > > On 14 May 2014 12:28, Oleg Kalnichevski <[email protected]> wrote: > > > > > > ... > > > > > > > >> Issue is not present in HTTPCLient 3.1 > > > > > > > > > > Philippe > > > > > > > > > > If HttpClient is used correctly, this code should only be executed > only > > > > > once. Why does JMeter create more than one instance of HttpClient? > > > > > > > > We currently create an instance for each instance of different proxy > > > > settings and each protocol and each authority, because the client is > > > > created with these settings. > > > > > > > > This is also done for each thread. > > > > > > > > IIRC, this was necessary originally. We have not rewritten the code > > > > yet to use all the latest features. > > > > > > > > > > I see. For the time what you can do is to use a custom SSL socket > > > factory that lazily initializes SSL context when requested for the > first > > > time. This is exactly what HC 3.1 does. It will be somewhat slower > given > > > that one would need to mutex to synchronize access to the > initialization > > > code. > > > > > > Oleg > > > > > > > > Oleg > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [email protected] > > > > For additional commands, e-mail: [email protected] > > > > > > > > > > > > > > > > -- Cordialement. Philippe Mouawad.
