Viswa
Viswa

Reputation: 295

How to disable connection pooling in Webclient in new Springboot 2.1.4.Release?

I am using springboot webclient to call rest api from remote server. First request works fine. If I made subsequent request after sometime, the server throws 500 server error. The error I got is " onError(java.io.IOException: An existing connection was forcibly closed by the remote host)".

I want to test the behavior with disabling connection pool since I believe it uses the previous connection. Can you help me how to disable the connection pool when creating webclient?

TcpClient tcpClient = TcpClient.create()
        .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 30000)
        .option(ChannelOption.SO_KEEPALIVE, false)
        .doOnConnected(connection ->
                connection.addHandlerLast(new ReadTimeoutHandler(30))
                        .addHandlerLast(new WriteTimeoutHandler(30))
        );

ReactorClientHttpConnector httpConnector = new ReactorClientHttpConnector(HttpClient.from(tcpClient));

final WebClient webClient = WebClient
        .builder()
        .clientConnector(httpConnector)
        .baseUrl("http://customer.service.api.internal.cloud.qa.intranet.pagseguro.uol")
        .exchangeStrategies(strategies)
        .build()

Upvotes: 6

Views: 7425

Answers (1)

Violeta Georgieva
Violeta Georgieva

Reputation: 2282

You can disable the connection pooling using the code below

TcpClient tcpClient = TcpClient.newConnection()

Use wiretap(true) to inspect the traffic between the server and the client.

You can also enable the logging for Reactor Netty and trace whether the connection is reused (in the connection pool scenario)

logging.level.reactor.netty=debug

If the connection is reused you will see

2019-04-11 18:52:10.049 DEBUG 98105 --- [ctor-http-nio-5] r.n.resources.PooledConnectionProvider   : [id: 0x897584fa, L:/<IP>:<PORT> - R:/<IP>:<PORT>] Channel acquired, now 1 active connections and 0 inactive connections

Also using the channel id id: 0x897584fa you can track what's happening with the channel.

Upvotes: 11

Related Questions