Internal session terminated with a runtime error SPOOL_INTERNAL_ERROR (see ST22) | SAP SPOOL OVERFLOW

Internal session terminated with a runtime error SPOOL_INTERNAL_ERROR (see ST22)

SAP SPOOL REORG Report RSPO1041

This  page is about the dump or the error we receive in SAP system due to spool overflow, Spool overflow is nothing but the spool table is 100% occupied. 

First of all before continuing with the SPOOL Dump or Spool error , Let me explain you what is a SPOOL? Why the SPOOL Request is generated and where it is stored, what are the dumps we get when the spool overflow situation occured.

What is a SPool Request?What is a SAP Output Request

Spool request is a document for which a print function has been selected. However, it has not yet been output to a printer or another device. The output data for the print document is stored partly formatted in a data store until an output request is created, that is, until it is sent to a particular output device.

The spool system uses a spool request to store the print data temporarily and to access it. The data is stored in a temporary format. You can also display the print document. The system automatically assigns a 10-digit ID number to a spool request.

Spool requests can be viewed via tcode SP01, the number will be there, programatiically it is sometimes populated in the system field SY-SPONO.

Spool request is a Request which is generated by SAP with the output data, lets say when you Schedule a program and you want to see the output then the Output of that report will go and sit in the Spool.

A target device must be specified for the output for every document to be printed in the SAP System. As the document can be output using not only printers, but also archiving devices, these devices are called Output Devices in the SAP System.
ex:

Name of the spool server (= application server with a spool work process)

so, a spool is nothing but a list of entries that are queued to an output device for printing .so, each entry is recognised with a uniqur number and is like first come first serve basis.

in sap r/3 u can see this using SP01 transaction.

Spool request is sent as a request to the Output device eg : Printer, Fax etc, The request sent to the Output device is called Output Request.

SAP SPOOL table name

TSP01 is the table where the Spool Request Stored, below are the list of Spool related tables

Entries are made in TSP01 if only spool request exists.

Entries to TSP02 is made if output request also exists.

Most common error or the dump which is generated when the spool overflow or spool table is 100% full is Dump "SPOOL_INTERNAL_ERROR" and background jobs are canceled as it is unable to store the new spool requests as there is no more space in the TSP01 table.

Job will get canceled with error "Internal session terminated with a runtime error SPOOL_INTERNAL_ERROR (see ST22) | SAP SPOOL OVERFLOW" as shown in the below screenshot.


Dump generated in st22 looks like



To fix the issue the issue, we have to delete the old spool requests from TSP01 table either manually using SP01 searching with the date or spool request numbers or running the SAP Standard report "RSPO1041".

Note : we cannot schedule the report in background, it will be canceled as the spool table is 100%. run the report with variant to delete old spools using tcode SE38 or SA38.

Schedule the spool reorg job SAP_REORG_JOBS for Program RSPO1041 daily to delete the old spool requests as part of maintenance jobs.