Publishing Engine Programmer's Guide > The Arbortext Publishing Engine Request Manager > Predefined Dynamic Components > Predefined Queue Managers
  
Predefined Queue Managers
Arbortext Publishing Engine ships with a Queue Manager implemented by the class com.arbortext.e3.QueueManager. It may be configured with a TestSet so that it can filter queued transactions that match the test set. If no test set is configured, it queues transactions that include the HTTP query parameter queue=yes.
If the Queue Manager decides to queue a transaction, it iterates over each queue in the order defined in e3config.xml. It passes the transaction to each queue and asks the queue to accept the transaction. The Queue Manager continues the iteration from queue to queue until a queue accepts the transaction. If no queue is willing to store the transaction, the Queue Manager returns an error to the client; otherwise it generates a response stating that the transaction was queued.
When the Queue Manager queues a transaction, it will generate either an HTML or XML response, as determined by the HTTP request parameter response-format, which may be set to htmlor xml. An HTML response is a redirect to a web page that displays the status of the queued transaction and allows the user to retrieve the transaction response after the transaction has completed. An XML response is an XML document that lists information about the transaction and the request.
The key piece of information in the response-format=xml response document is the Transaction element, which is a descendant of the FunctionOutput element, which is a descendant of the root-level PEFunctionResult element. The Transaction element has the attribute id, which specifies the transaction ID; use this ID to submit requests to determine the status of the transaction and retrieve its response after it completes execution. Other Transaction attributes include queueId, which specifies the queue which has stored the transaction, held indicating whether the transaction was automatically held or allowed to execute, queuePositionwhich gives the transaction’s location on the queue, and priority, which specifies the transaction’s priority.