<!DOCTYPE html><html><head><title></title><style type="text/css">#fastmail-quoted P{margin-top:0px;margin-bottom:0px;}

p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>When the connections-per-thread limit is reached, requests result in 503 responses. Is the problem resolved by increasing the connections-per-thread value to 50 or 100?<br></div><div><br></div><div>On Wed, Feb 13, 2019, at 04:42, Jocke Eriksson wrote:<br></div><blockquote type="cite" id="fastmail-quoted"><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">Hello,<br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">We are trying to build an API gateway&nbsp;using undertow as a servlet extension, this has been working great until we started our performance tests.<br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">Our setup is two gateways balancing traffic towards 10+ servers and we are using&nbsp;JBoss&nbsp;EAP 7.0 We have observed that some of our requests fail with 503 response. When we get a 503 response from a request, we have also observed that it never reaches the proxy
 target.<br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">I made a small test on my machine to see if I could get the same error, to my surprise&nbsp;this was very easy. First I tried with the following code.<br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><div><span>public class ApiGatewayServletExtension implements ServletExtension {<br> </span> </div><div><br></div><div>&nbsp; &nbsp; @Override<br></div><div>&nbsp; &nbsp; public void handleDeployment(DeploymentInfo deploymentInfo, ServletContext servletContext) {<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; LOG.info("Deploying {}...", MethodHandles.lookup().lookupClass().getSimpleName());<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; deploymentInfo.addInitialHandlerChainWrapper(handler -&gt; {<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try {<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LoadBalancingProxyClient loadBalancer = new LoadBalancingProxyClient()<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addHost(new URI("http://localhost:8282"))<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .setConnectionsPerThread(20);<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return new ProxyHandler(loadBalancer, 30000, handler);<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } catch (URISyntaxException ex) {<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw new IllegalStateException(ex);<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; });<br></div><div>&nbsp; &nbsp; }<br></div><div><span>}</span><br></div></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">I used JMeter with 20 threads making a simple rest GET request and after 30 seconds or so the test stopped with a 503 response.<br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">Then I created a small java application using undertow 2.0.17.Final&nbsp;like this.<br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><div><span>&nbsp; &nbsp; public static void main(final String[] args) {<br> </span> </div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; try {<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LoadBalancingProxyClient loadBalancer = new LoadBalancingProxyClient()<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addHost(new URI("http://localhost:8282"))<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .setConnectionsPerThread(20);<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ProxyHandler proxyHandler = new ProxyHandler(loadBalancer, 30000, ResponseCodeHandler.HANDLE_404);<br></div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Undertow server = Undertow.builder()<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addHttpListener(8080, "localhost")<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .setHandler(proxyHandler).build();<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server.start();<br></div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception ex) {<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(ex.getMessage());<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; }<br></div><div><span>&nbsp; &nbsp; }</span><br></div></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><span></span><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><span>Getting the same result. I have also tried just loading the home page of one of our servers and still the same result.</span><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><span></span><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><span>Any help would be very much appreciated. I have not created a bug because I'm pretty sure we are just missing something here.</span><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><span></span><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><span>Regards Joakim Eriksson.&nbsp; &nbsp;</span><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">&nbsp;<br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);"><br></div><div style="font-family:Calibri, Helvetica, sans-serif;font-size:12pt;color:rgb(0, 0, 0);">&nbsp;&nbsp;<br></div><div>_______________________________________________<br></div><div>undertow-dev mailing list<br></div><div>undertow-dev@lists.jboss.org<br></div><div>https://lists.jboss.org/mailman/listinfo/undertow-dev<br></div></blockquote><div><br></div></body></html>