The dispatcher is the service responsible for queuing client requests received from a listener, and dispatching requests to available SEPs.
At the start of a session, the dispatcher registers the client session with the Regions database.
A dispatcher indirectly queues requests received from the listener by invoking a stored procedure in the region database. The stored procedure determines whether there is a SEP available to dispatch the next queued request with the highest priority (which might be a different request from the one just queued). If a SEP is available, the stored procedure returns the ID of the request to be dispatched to the dispatcher. The dispatcher then invokes the SEP service with this request ID. If no SEP is available, the stored procedure indicates this to the dispatcher and no SEP service is invoked.
When no SEP is available for dispatch, it means that the maximum number of SEPs configured for the region are currently running tasks.
A dispatcher service can be either self-hosted within a seedispatch.exe process, or WAS-hosted within a w3wp.exe process.