The dispatch service uses the concurrent pool and the in-memory and persistent queues to control the flow of requests to Process Server.
The dispatch service uses the following pool and queues:
Concurrent Pool
The concurrent pool stores requests that Process Server processes at the same time. The number of listeners available to process requests depends on the Max Concurrent value.
In-Memory Queue
The in-memory queue stores requests in the dispatch service memory. The dispatch service moves requests into the in-memory queue when the Max Concurrent value has been reached.
When the concurrent pool has space, requests move from the in-memory queue to the concurrent pool.
You loose requests in the in-memory queue if the Secure Agent restarts unless you enable persistence.
Persistent Queue
The persistent queue stores in-memory queue requests if you enable persistence. The persistent queue holds requests in the database.
Requests move from the persistent queue to the concurrent pool when a listener frees up.
If the Secure Agent restarts and requests are only in the in-memory queue and not in the persistent queue, the requests are lost.
The following image shows how the dispatch service throttles requests: