QAD QXtend pricing and licensing is enforced using the License Manager Web service, which controls the release of receivers and agents. The License Manager enables you to limit the total number of licensed agents, monitor the release of licenses, and track the number of receivers in use. It is located within QXI and supports a single instance of QAD QXtend.
The License Manager enforces the agent limit encoded in the QAD QXtend license by tracking when agents are requested and when they are released. It retrieves the agent limit by decoding the agent count from the license string. This enforced limit ensures that the number of agents is not exceeded across a QAD QXtend installation.
When the License Manager is started, it creates a license pool for the current QAD QXtend instance. The license pool then creates a pool of agents, determined by the licensed agent count, and initializes them. Agents in the initialized state have been created, but are not yet assigned a processing task.
License Manager Flow
Each time a Message Sender service in QXO is started for an unregistered subscriber, the system makes a call to the License Manager to reserve an agent for the task. In QXI, connection pool agents process QDoc requests, and one or more processing threads are assigned to each connection pool.
Each time a QDoc is processed, a request for a licensed agent is sent to the License Manager. If there are no available agents, an exception is returned and processing stops. The system waits a predefined period for an available licensed agent. The waiting period is determined using a combination of the values in the Configurable Timeout and Maximum Retry fields in the Connection Pool window.
A licensed agent changes state from idle to busy when processing a task. When the task is complete, the agent becomes idle again and is available to process other tasks. This allows agents to be used freely across the QXI and QXO services.
A connection thread is an idle connection in the QXI connection pools or a Message Sender thread in QXO. Each time a connection thread is closed, the License Manager releases the agent from the reserved pool.