Installing Arbortext Publishing Engine > Troubleshooting > Publishing Very Large Documents on Windows
  
Publishing Very Large Documents on Windows
When publishing very large documents to PDF on Windows, the publishing process may fail with an Out of virtual memory space error message. This situation can occur when the publishing process encounters a Windows 2GB memory addressing limitation. You can update your Windows boot.ini file to address 3GB of memory using the instructions provided on Microsoft's web site at:
www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx
* 
Ensure that you make the change exactly as described in the Microsoft documentation. Incorrectly modifying system files can leave your workstation in an unstable state.
Arbortext Publishing Engine Initializer
A Java object that implements the E3Initializer interface. This object's init method is called after all other objects are initialized. An initializer can execute startup tasks, such as retrieving and caching publishing configuration reports or transforming and caching stylesheets.
Arbortext Publishing Engine Notifier
Java object that implements the com.arbortext.e3.E3Notifier interface. A notifier is called by the Arbortext PE Request Manager each time a transaction changes state. A notifier can be implemented and configured to respond to a transaction state change by performing an action, such as sending an email.
Arbortext Publishing Engine Queue
Java object that implements the com.arbortext.e3.ArbortextQueue interface. The Arbortext Publishing Engine Queue is a container of ordered transactions that are awaiting execution. Transactions are placed on a queue by the Arbortext Publishing Engine Queue Manager. The Queue Manager offers the request to each queue in the order in which they are defined in the Arbortext Publishing Enginee3config.xml configuration file. When a queue accepts the request, it holds it until the Queued Transaction Scheduler selects it for processing. After completion, a queued transaction is deleted from its queue.
Arbortext Publishing Engine Queue Manager
Java object that implements the com.arbortext.e3.QueueManager interface. The Arbortext Publishing Engine Queue Manager determines whether an HTTP request should be queued. Arbortext PE Request Manager offers the request to each queue manager in the order in which they are defined in the Arbortext Publishing Enginee3config.xml configuration file. When a queue manager accepts the request, Arbortext PE Request Manager waits for the response from the Queue Manager and passes it to the client.
Arbortext Publishing Engine Request Context
A Java object that implements the E3RequestContext interface. The Arbortext Publishing Engine Request Context provides services and information about resources available to the context and writes to log files.
The Request Context object is created by the Arbortext PE Request Managerinit method. It provides information to each Arbortext Publishing Engine Request Handler, Arbortext Publishing Engine Request Selector, Arbortext PE sub-process pool, Arbortext Publishing Engine Cache Manager, Arbortext Publishing Engine Queue Manager, and Arbortext Publishing Engine Initializer.
The Request Context provides information about the Arbortext Publishing Engine environment such as parameter values, and about services such as the location of an Arbortext PE sub-process pool. It can also write to a servlet log and permit custom code to modify the global state of the Arbortext Publishing Engine environment.
Arbortext Publishing Engine Request Evaluator
A Java object that implements the E3RequestEvaluator interface. The Arbortext Publishing Engine Request Evaluator can be defined in the TestSet section for each SubprocessPool, QueueManager, Queue, and Notifier defined in the Arbortext Publishing Enginee3config.xml file.
The wrapper TestSet object can combine a set of defined Arbortext Publishing Engine Request Selector tests to create test criteria. Two or more tests can be combined using AND and OR logic to form more complex criteria. For example, a TestSet might have a test to detect a particular content-type header and another test to detect a particular query parameter with a specific value. If an HTTP request meets this criteria, the Arbortext Publishing Engine Request Evaluator returns a boolean value of TRUE and the request would be accepted for processing.
Arbortext Publishing Engine Request Function
A Java object that implements the E3RequestFunction interface. The Arbortext Publishing Engine Request Handler is configured to map query parameters from the request to Arbortext Publishing Engine Request Functions. Each built-in Arbortext Publishing Engine function is mapped to a corresponding built-in Arbortext Publishing Engine Request Function. For example, the f=status function is mapped to the com.arbortext.e3.FunctionStatus interface.
The Request Handler distributed with Arbortext Publishing Engine can be customized to add custom function names and mappings without writing a new Arbortext Publishing Engine Request Handler.
Arbortext Publishing Engine Request Handler
A Java object that implements the E3RequestHandler interface. The Arbortext PE Request Manager passes an incoming request to each defined Request Handler to determine which one is configured to service it.
A custom Arbortext Publishing Engine Request Handler must implement the init, destroy, and service methods. The init method is called during Arbortext PE Request Manager initialization, and it receives the Arbortext Publishing Engine Request Context object and the parameters from the Arbortext Publishing Engine configuration file (e3config.xml). The service method is called to process a client request, creating a request object and a response object. The Arbortext PE Request Manager goes to each Request Handler, in the order they're defined in e3config.xml, looking for a response that signifies whether it can process the query in the request. The Arbortext PE Request Manager calls the Request Handler's destroy method during termination.
Arbortext PE Request Manager
The Arbortext Publishing Engine Java servlet that handles all HTTP and SOAP requests and responses for document conversion and manipulation. It implements the standard init, service, and destroy methods of a servlet.
Incoming requests are passed to active Arbortext Publishing Engine Request Handlers according to configured criteria. When a response is returned to the servlet, the Arbortext PE Request Manager conveys the response to the servlet container, which returns the response to the client making the request.
Arbortext Publishing Engine Request Object
A Java object that implements the E3ApplicationRequest interface and contains all information being submitted in an HTTP or SOAP request to Arbortext Publishing Engine.
Arbortext Publishing Engine Response Object
A Java object that implements the E3ApplicationResponse interface and contains the response to be transferred to the HTTP or SOAP client making a request.
Arbortext Publishing Engine Request Selector
A Java object that implements the E3RequestSelector interface. Each Arbortext Publishing Engine Request Selector object applies test criteria to a request to help determine routing. If the request matches a predefined condition, the request is accepted by its Arbortext PE sub-process pool for processing.
A Request Selector has an init and a test method. The init method is called during Arbortext PE Request Manager initialization; and it receives the information in the Arbortext Publishing Engine Request Context object and the parameters from the Arbortext Publishing Engine configuration file (e3config.xml). The test method is called when the Arbortext PE Request Manager needs to evaluate a request against a set of tests associated with an Arbortext PE sub-process pool. For example, a request selector could test a request for an HTTP header content-type: text/xml and return TRUE or FALSE.
Request Selectors can be logically combined using AND and OR statements in the TestSet defined for each Arbortext PE sub-process pool in e3config.xml.
Arbortext PE sub-process
A Java object that implements the com.arbortext.E3SubprocessPool interface and controls a group of Arbortext PE sub-processes that are identical and interchangeable. Arbortext PE Request Manager evaluates an HTTP or SOAP request against the parameters for each Arbortext PE sub-process pool in the order they're defined in e3config.xml.
Each Arbortext PE sub-process pool is uniquely identified and has its own parameters, such as minimum and maximum number of processes, time-out values, and so on. If you have more than one Arbortext PE sub-process pool, each one must have an Arbortext Publishing Engine Request Evaluator TestSet defined in e3config.xml that specifies the criteria for accepting HTTP requests.
One Arbortext PE sub-process pool must always be configured as the default pool. The default pool allocates an Arbortext PE sub-process to service any HTTP request that no other pool can accept. Because a request is assigned to the first Arbortext PE sub-process pool with matching criteria, the order in which pools are defined is important. You must define the default pool last to be sure that all other enabled pools are evaluated first.
The Arbortext PE sub-process pool can't be customized.
Arbortext PE sub-process Context
A Java object that implements the E3SubprocessContext interface. The Arbortext PE sub-process Context object contains any parameters specified in the SubprocessContext element for a SubprocessPool, along with the Arbortext PE sub-process pool name and the Arbortext PE sub-process number (taken from the range of configured minimum to maximum number of Arbortext PE sub-processes).
The Arbortext PE sub-process Context serves two purposes:
An Arbortext Publishing Engine Request Handler can retrieve the information provided by the Arbortext PE sub-process Context.
The Arbortext PE sub-process Context object is passed to the individual Arbortext PE sub-process taking the request, making it available to Arbortext Publishing Engine custom ACL, Java, JavasScript, and VBScript applications.
Arbortext Publishing Engine Transaction
A transaction is a request and response pair of objects that are processed by Arbortext Publishing Engine. The transaction includes the request transmitted to Arbortext PE Request Manager by a client, the response that’s returned to the client, and any intermediate files or logs generated when producing the response. The transaction is created upon receiving the request, and associated files are placed in the active transaction directory to wait for processing. There are two types of transactions:
an immediate transaction
Arbortext PE Request Manager transmits the response to the waiting client immediately after processing is complete. The immediate transaction will then be deleted from the active transaction directory. You can configure an immediate transaction to be archived in the Transaction Archive directory afterward.
a queued transaction
Arbortext PE Request Manager places a transaction on a queue (provided the request meets queuing criteria) until it can be processed. After the transaction is processed, the client can retrieve the resulting output from the active transaction directory using the transaction ID. The transaction will be deleted from the active transaction directory according to the configuration settings for duration and retrieval by the client. You can configure a queued transaction to be archived in the Transaction Archive directory afterward.
Request object
A Java object that contains all the information from a client HTTP or SOAP request. A servlet is configured to handle it by evaluating a portion of the URL for routing.
Response object
A Java object that's created in conjunction with the Request object and constructed to handle the returned results. A custom application uses its methods to specify the information to be returned as the HTTP or SOAP response.
Servlet
A web component, managed by a servlet container, that generates dynamic content. Servlets interact with web clients using a request and response model implemented by the servlet container. This request and response model is based on the behavior of the Hypertext Transfer Protocol (HTTP).
Servlet container
A servlet container deploys the web application into its runtime environment. It loads and manages a servlet throughout its lifecycle using the servlet context. When the servlet container initializes the servlet, it creates the servlet context object which contains information about the servlet's runtime environment.
Servlet context
A Java object that manages the runtime state of a servlet for the servlet container. It defines the servlet's view of the web application it's running in.
SOAP
Formerly, an acronym for Simple Object Access Protocol, but now it's simply known as SOAP. SOAP is a cross-platform communication protocol based on XML that controls an exchange commonly consisting of a request and a response. The data is exchanged in a SOAP message that usually uses HTTP as the transport mechanism. The server processes the SOAP message through a web service that the client calls when making a request.
SOAP message
An XML document that follows a specific format. The client sends a request in a SOAP message to the web service, and the message contains a SOAP envelope. The SOAP envelope can consist of Header, Body (required), and Fault elements. The SOAP envelope supplies a requesting call to a server-side application through the web service. The SOAP envelope also includes instructions for returning a response.
Web application
A collection of servlets, JavaServer Pages, HTML documents, images, archives, or other data.
WSDL
An acronym for Web Services Description Language, which is a server-side document that describes the criteria by which a client application can call an application using SOAP. WSDL defines a SOAP web service by exposing its structure in XML format.