Skip to main content

Does XBIS have any throttling capability?  For example, can it be configured to accept only 50 pending requests, and after that, it will reply gracefully, with something like a 503 (service unavailable)? Is there a setting within XBIS that will accomplish this?

Does XBIS have any throttling capability?  For example, can it be configured to accept only 50 pending requests, and after that, it will reply gracefully, with something like a 503 (service unavailable)? Is there a setting within XBIS that will accomplish this?

You didn't mention Windows (IIS) or UNIX (Apache).  The number of active runtime systems are limited by the license use count, so you can't ever have more running COBOL services underway than your license allows.  

For less than that number of concurrent services, the UNIX version has a command line option described on page 123 of the user's guide:

-c count

  Specifies the maximum number of service (child) processes.

  This is normally set to 9999 to indicate that the number of service processes

  is limited only by the license, but it may be set to a smaller value as a “throttle.”

I believe you can also limit this during installation.  

Windows has a BIS_MAX_THREADS system setting but that affects only the request handler and it's very difficult to exhaust the default of 5 threads.  On Windows, simultaneous runtime services are only limited by the license.  

All that said, you would normally perform request throttling in the IIS or Apache web server settings.  

In IIS, you can control the size of the request queue and the number of active requests (connections). IIS is endlessly configurable.  However, already running COBOL services ("sessions") don't count as active requests (requests are basically only active when data is being sent or received) and are limited only by the size of the license.   I'd go looking for an application pool property -- something like what's discussed here: https://serverfault.com/questions/271124/what-is-the-default-number-of-concurrent-requests-that-can-be-processed-by-iis-7.  You could also limit the number of simultaneous persistent connections to your server, but those don't necessarily end when the BIS session ends.

If you can describe your environment, operating system, IIS/Apache version, and the problem you're trying to solve, we (or someone else monitoring this forum) might be able to point you in the right direction.


Does XBIS have any throttling capability?  For example, can it be configured to accept only 50 pending requests, and after that, it will reply gracefully, with something like a 503 (service unavailable)? Is there a setting within XBIS that will accomplish this?

Thanks so much for the reply.

We are running in Apache on AIX and Linux (RHEL).

Our root issue is that when we doing load testing and pushing a large number of requests at XBIS, it just chokes. By chokes I mean the xbisengd processes hang and XBIS stops responding to requests. Ideally what I would like to happen is to somehow (XBIS/Apache etc...) limit the number of requests such that when the number of incoming requests reaches the limit, it would return a "graceful" error and not cause XBIS to go off the rails.

Does XBIS have any throttling capability?  For example, can it be configured to accept only 50 pending requests, and after that, it will reply gracefully, with something like a 503 (service unavailable)? Is there a setting within XBIS that will accomplish this?

You might also mention whether you're running RM/Cobol or ACUCOBOL/extend (you've posted in the RM forum, but I think I recall working with you as an Acu/extend user).

Does XBIS have any throttling capability?  For example, can it be configured to accept only 50 pending requests, and after that, it will reply gracefully, with something like a 503 (service unavailable)? Is there a setting within XBIS that will accomplish this?

Thanks Chuck, yes this is AcuCobol/Extend. I was point specifically to the RM forum by support, since this is an XBIS related issue.