Publishing Engine Programmer's Guide > Arbortext Publishing Engine and its Components > Technical Overview of Arbortext Publishing Engine > Arbortext PE sub-process Pools
  
Arbortext PE sub-process Pools
The primary purpose of Arbortext Publishing Engine is the manipulation of documents using XML and related technologies. The Arbortext PE Request Manager acts as the facilitator handling requests and responses, but it has no knowledge of XML. XML processing is performed by Arbortext PE sub-processes.
Each Arbortext PE sub-process is a running instance of Arbortext’s XML processing engine, with the graphic user interface disabled and additional publishing and performance capabilities enabled. Groups of Arbortext PE sub-processes are organized into Arbortext PE sub-process pools. When a dynamic Arbortext PE Request Manager component determines that it needs the services of an Arbortext PE sub-process, it invokes a method of the Arbortext Publishing Engine Request Context to obtain an Arbortext PE sub-process from a particular pool, uses it to perform one or more operations, and then releases it so that the Arbortext PE Request Manager can use it to fulfill other requests.
An Arbortext PE sub-process pool is a collection of identical Arbortext PE sub-processes that are associated by the following:
a set of request selectors that specify criteria for determining whether the Arbortext PE sub-processes in the pool should process a given transaction
a set of parameters that determine how many Arbortext PE sub-processes are in the pool, how often Arbortext PE sub-processes should be terminated and restarted, and other behaviors (explained in Arbortext PE sub-process Pool Management).
Having multiple Arbortext PE sub-process pools offer two major advantages:
Pools of Arbortext PE sub-processes can be initialized differently.
Arbortext PE sub-processes pools can be configured to process different types of requests.
When a dynamic component (most frequently, a Request Handler) determines that it needs an Arbortext PE sub-process, it calls an Arbortext Publishing Engine Request Context routine and passes a reference to the HTTP request being processed. The Arbortext Publishing Engine Request Context offers the request to each Arbortext PE sub-process pool until one replies that it's configured to handle that type of request. The last Arbortext PE sub-process pool queried is always the default pool, which can allocate an Arbortext PE sub-process to fulfill any request not already handled.