Performance and Load Management Follow
AuraPlayer's ServiceManager allows you to create numerous amounts of web services.
In order to improve performance, and avoid overloading your application server (i.e. the Forms/HTML server), there are few measures that we take by default.
The ServiceManager maintains connection pools of open connections per service URL.
This connection pool manages pre-opened connections and limits the total amount of them. Once a clients runs a web service, it requests connection from the corresponding pool. The pool returns a pre-opened connection if available, creates a new connection within the mam limit, or exhausts after a timeout.
The pool keeps a core size of idle connections ready to be used. Such pre-opened connection is initialized on a state that is the beginning of the scenario that is may run. For example, for a Forms service it establishes connection to the Forms server, and for HTML service it loads the first web page of the scenario.
After a configured threshold, the connections in the pool are restarted to avoid timeouts.
A web service call will use a pre-opened connection (if there is any), and otherwise it will create a new connection. Using a pre-opened connection considerably reduces run times since the connection is already established and many of the required data is already cached.
Once a pre-opened connection is consumed, the pool will recreate another one, maintaining a core size for the pool, up to the maximal connections limit.
Concurrent connection limit
In order to avoid overloading of the Forms/HTML/Database server, AuraPlayer allows control over the concurrent amount of opened connections (idle and in-use in total).
In event that there is maximal amount of clients running service over the same application server, and another client requests a connection, he will be blocked until a connection slot frees up (or a timeout is reached).
This ensures that your application server will remain performant as possible, as it's response and execution times have direct and major effect on services created with AuraPlayer's ServiceManager.
Note that load balancing connection to the application server may not regulate connection made by other platform (without AuraPlayer).
All features mentioned in this document are fully configurable and may be disabled if you wish so.
System Properties -
Forms/HTML connection core/limit keys: SESSION_MANAGER_CORE_POOL_SIZE / SESSION_MANAGER_MAX_POOL_SIZE.
Database connections limit key: DB_CONNECTION_POOL_SIZE.
Pool refresh intervals: SESSION_MANAGER_CONNECTION_POOL_TIMEOUT_SECONDS