Idea ID: 2747964

uCMDB REST-API should limit the number of requests per session not globally

Status : Waiting for Votes
Waiting for Votes
See status update history
over 1 year ago

Dear Micro Focus

As an industry standard every tools want to consume REST-APIs. We are planning to extensively make use of the uCMDB REST-API but recently detect the API limitation of 15 requests / second.

With the current implementation of the uCMDB REST-API we are unable to scale for multiple data consumers.

Especially with chunked data retrieval you have very soon more than 15 requests/second. As a global limitation you can never know when this limitation gets hit.

 

We suggest the following enhancement:

The number of API requests should not be limited globally but per Session. Let’s say 15 requests/s and per session.
With this approach the client can handle the number of parallel requests/second itself and control waiting times accordingly.
Otherwise you never know when the limitation was crossed and this leads to HTTP 5XX errors.

 

uCMDB REST API Limitation was found here:

https://docs.microfocus.com/itom/Universal_CMDB:2019.05/RESTAPIDeploy

 

Best regards,

Thomas

Labels:

API
Optimization
Parents
  • I tested the DoSFilter parameters with REST API running on UCMDB Server. I needed to modify <UCMDBServer>/deploy/rest-api/WEB-INF/web.xml and <UCMDBServer>/deploy/rest-api/WEB-INF/quickstart-web.xml

    The following parameters were working when testing the URL https://<UCMDBSERVER>/rest-api/ping/ with 25 users, 50 iterations and 100msec delay between iterations.

            <init-param>
                <param-name>maxRequestsPerSec</param-name>
                <param-value>300</param-value>
            </init-param>
            <init-param>
                <param-name>throttledRequests</param-name>
                <param-value>150</param-value>
            </init-param>
            <init-param>
                <param-name>delayMs</param-name>
                <param-value>10</param-value>
            </init-param>

Comment
  • I tested the DoSFilter parameters with REST API running on UCMDB Server. I needed to modify <UCMDBServer>/deploy/rest-api/WEB-INF/web.xml and <UCMDBServer>/deploy/rest-api/WEB-INF/quickstart-web.xml

    The following parameters were working when testing the URL https://<UCMDBSERVER>/rest-api/ping/ with 25 users, 50 iterations and 100msec delay between iterations.

            <init-param>
                <param-name>maxRequestsPerSec</param-name>
                <param-value>300</param-value>
            </init-param>
            <init-param>
                <param-name>throttledRequests</param-name>
                <param-value>150</param-value>
            </init-param>
            <init-param>
                <param-name>delayMs</param-name>
                <param-value>10</param-value>
            </init-param>

Children
No Data