Spool Service (AS-ABAP)


This section describes the possible reasons for failure in the spool service and describes how you can increase its availability.


Each of the following components is involved in the SAP spool service and each can fail:

·        Spool work process (this prepares the output data and processes the print job)

·        Database service and file system of operating system

·        Number range service

·        Transfer program (SAPLPD).

·        Destination host

·        Host spool system

·        Output device (for example, printer)

The spool service does not work with transactions, as happens in the database service. Therefore, if a printout is incomplete due to a failure in the output device, the printout is not rolled back in the same way that database transactions can be rolled back. Instead, such a spool request is in most cases marked as “completed” in SAP.

The spool service needs the database service to function. Control information for the spool requests and, if so configured, the output print data itself, are stored in database tables. Output print data is stored in the Temporary Sequential Objects (TemSe) database. To improve system performance and reduce the size of the database, you can move the TemSe database to the file system. For more information, see Administering the TemSe Database.

The spool work process is responsible for preparing the output data, processing the output request, and passing the output request data to the host spool system. Spool work processes run on the spool server. A single spool server can support multiple spool work processes.


Monitor the spool system to identify problems before they affect the availability of your spool service.

·        When a spool server fails

An output device is tied to a single spool server. Do the following:

Ў        Re-assign printers from a failed spool server to a new spool server. Refer to Assigning Output Devices to Another Server.

Ў        To anticipate the problem, set up multiple and alternate spool servers to increase the availability of your spool service. You can also implement load balancing for the spool service.

·        When the database service fails

If the database service fails, no further spool requests can be generated and the following applies:

Ў        Existing spool requests that have not yet been processed are not lost but they cannot be processed.

Ў        Spool requests for which output requests have already been passed to the host spooler or SAPLPD (the transfer program) before the failure of the database service are processed by the host spool system. However, it is not possible to write a corresponding entry indicating “success” in the log table for the spool request.

For more information about SAPLD, see Setting Up SAPLPD for Printers and Fax Devices.

Ў        The spool service is unavailable for the period when the database is down.

You must now check the consistency of the spool database.

·        When SAPLPD, the destination host, or the host spool system fail

In this case the spool request cannot be successfully processed. Such requests are sometimes set to “failed” in the corresponding spool table entries and you can manually restart them, once you have fixed the original problem (that is, the failure in the program SAPLPD, destination host, host spool system).

For more information, see Problem Analysis: Print-Out Missing or Incorrect.

·        When the spool work process fails

In this case the dispatcher restarts the failed spool work process. Then the relevant “administration transaction” on the database is rolled back, so that the uncompleted spool requests are not deleted. The new spool work process then takes over the work of the terminated one.

·        When the output device (for example, printer) fails

In this case the spool request is usually not set to “failed” in the log table. Instead it is normally set to “completed”. For example, this situation might arise because the host spool system incorrectly reports successful processing or because the host spool system does not report anything and processing is assumed to be complete, once the output request has been passed to the host spool system.

So that you can manually restart such spool requests, do the following:

Ў        Do not set the flag “delete after print”.

Ў        Set the “retention period” to a high value (for example, 8 days), so that these spool requests are not deleted.

For more information, see Displaying and Changing Spool Request Information.

You can avoid the manual restart if the host spool system itself automatically repeats the output request, once the existing device has been repaired or an equivalent device has been installed and defined to the host spool system. In this case, the spool request in the log table is not defined as failed since the host spool system has not reported a failure.

·        When a failed output device cannot be repaired

If an equivalent device is not available, then it is not possible to satisfactorily print the output requests that were prepared for the failed device type on a different device type. You need to regenerate the spool requests in this situation, or alter them, so that they can be printed on a different device type. For more information about printing on a different device type, see Displaying and Changing Spool Request Information. You can redirect spool requests from list-type output (that is, from SAP reports), assuming the spool type and print control exist on the different device type, but not output from SAPscript.

You can define a “device pool” containing equivalent devices. If a device defined in a device pool fails, you must remove the failed device from the device pool using the spool administration (transaction SPAD) so that the failed device does not receive any further requests. The device pool continues operating after the failure of a device but with reduced throughput. Any requests that were assigned to the failed device before it was removed from the pool are not automatically redirected to functioning devices in the pool.

For more information, see Assigning an Output Device to a Pool.