Known Bug: soapUI 4.5.0 only handles 2 simultaneous requests

Report your bugs here, Thank you!

Known Bug: soapUI 4.5.0 only handles 2 simultaneous requests

Postby SmartBear Support » 03 May 2012 12:25

This is a bug [SOAPUI-3947] in soapUI 4.5.0 (which therefore also affects the soapUI Runner in loadUI 2.0.0).

It will be fixed in soapUI 4.5.1 (and in soapUI nightly builds, starting tonight) and loadUI 2.0.1.


There's also a workaround for this:
  1. In your soapUI project's Load Script (Open project window, click the Overview tab and open the Load Script panel), enter the following:

    Code: Select all
    com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.httpClient.connectionManager.maxTotal = 2000
    com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.httpClient.connectionManager.defaultMaxPerRoute = 2000

  2. Save your project (right click on the project in the Navigator panel and click Save).
  3. Reload your project (right click on the project in the Navigator panel and click Reload).
SmartBear Support
Administrator
Administrator
 
Posts: 6702
Joined: 16 Feb 2009 10:53

Re: Known Bug: soapUI 4.5.0 only handles 2 simultaneous requ

Postby esandrei » 20 May 2012 02:43

Since this is my first post here I would like to thank soapUI team for the best web service test tool, not even counting it's also open source!!! Thank you, and keep up the fantastic work :)

Now, about this bug.

Funny but I actually kind of fixed it 6 weeks ago on my local soapUI installation. It took 2 lines of code on the right place to use the configuration already existing in soapUI global settings (soapUI Preferences -> HTTP Settings -> Max Connections per Host). It works great and soapUI restart is not required when changing the configuration.

Here's what I did, I added the 2 lines in SoapUIMultiThreadedHttpConnectionManager.IdleConnectionMonitorThread.run(). This is how run() looks like right now:

Code: Select all
@Override
public void run()
{
    try
    {
        while (!shutdown)
        {
            // patch by eSandrei
            // defaults are 2/20 connections which is a bottleneck for a load test (even if you run the load with 100 threads they will all
            // wait in line for the 2 connections)
            // changing to use SoapUI HTTP preferences (I hardcoded defaults 500/2000 as in other classes but these should be centralized)
            // stubbed here and not in the outer class constructor to apply preferences without restarting SoapUI
            // also, didn't choose request/releaseConnection because it is called too often, this one looks
            // like it's called only when connMng is idle or every 5s
            ((ThreadSafeClientConnManager)connMgr).setDefaultMaxPerRoute((int)SoapUI.getSettings().getLong(HttpSettings.MAX_CONNECTIONS_PER_HOST, 500L));
            ((ThreadSafeClientConnManager)connMgr).setMaxTotal((int)SoapUI.getSettings().getLong(HttpSettings.MAX_TOTAL_CONNECTIONS, 2000L));

            synchronized (this)
            {
                wait(5000);
                // Close expired connections
                connMgr.closeExpiredConnections();
                // Optionally, close connections
                // that have been idle longer than 30 sec
                connMgr.closeIdleConnections(30, TimeUnit.SECONDS);
            }
        }
    }
    catch (InterruptedException ex)
    {
        // terminate
    }
}
esandrei
User
 
Posts: 1
Joined: 07 Apr 2012 07:28


Return to soapUI Bugs



cron