HPlogo Native Mode Spooler Reference Manual: HP 3000 MPE/iX Computer Systems > Chapter 2 Spooler and Spool File Management Tasks

Spool File Recovery At System Startup

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Glossary

 » Index

The input SPool File DIRectory (SPFDIR) and the output SPFDIR, which are created by Progen near the end of the system startup (boot) process, are filled with information from spool files in IN.HPSPOOL and OUT.HPSPOOL. This provides a run-time "cache" for spool file management. The time necessary to create and fill these directories depends on the number of files in each HPSPOOL group and how the output spool files are distributed among various device queues (LP, CIPER, PP, and so on). Recovery will take the longest time when there are many output spool files in a single queue, for example, LP.

Input spool files usually consist entirely of job $STDIN files. The only other input spool file is the :DATA file, rarely used anymore. The number of input spool files is typically so small that the time spent recovering them to the input SPFDIR is not significant.

Recovery process improvements

There have been two improvements to the recovery process which greatly reduces the amount of time necessary to recover spool files:

  • The boot process spends a small amount of time to assemble the list of spool files in OUT.HPSPOOL. In a test requiring the recovery of 9000 spool files, this time period was two minutes.

  • All spool file recovery now takes place in a separate system process which continues until all output spool files have been recovered into the output SPFDIR (or discarded, if they cannot or should not be recovered), and then terminates. The boot process completes in parallel with the SPFDIR recovery process, and the system then becomes available to users.

Although spool file recovery at is a system process, it is created in the CS queue, which means that it competes with user processes once the system is available. However, as a system process, its priority does not decay, nor is it subject to being time-sliced. If the recovery process does not block itself periodically, user processes are starved. If it blocks itself too often, spool file recovery time is prolonged. To deal with this, the recovery process now pauses one second for every 200 SPFDIR entries it recovers. This forces the Dispatcher to allow some time for user processes to run, thus improving response. The tradeoff is that the recovery process takes longer to complete.

NOTE: Progen creates a file in the permanent domain, HPDISU00.PUB.SYS, for use by the recovery process. The recovery process purges this file before it terminates. If HPDISU00.PUB.SYS exists at system startup, Progen purges it to create the new one needed by the recovery process. Do not create a permanent file with this name.

Spooler behavior during recovery

There may be a period after the system is available to users when some spool files in OUT.HPSPOOL do not have an entry in the output SPFDIR. While some features of the spooling subsystem (described below) are affected during SPFDIR recovery, existing capability, resource limits, and security restrictions have not changed.

While the SPFDIR recovery process is running:

  • Users can stream jobs without restrictions.

  • Jobs can log on (that is, $STDLISTs can be created) without restrictions.

  • Spooler processes can open, print, and delete spool files where an SPFDIR entry exists. Spool files in OUT.HPSPOOL whose SPFDIR entry have not yet been recovered cannot be selected for printing.

  • All output spool file management commands (ALTSPOOLFILE, DELETESPOOLFILE, LISTSPF, SHOWOUT, and SPOOLF) are available, with the restrictions described under "Issuing spool file management commands," below.

  • The SPOOLF ...; PRINT command is not affected by the SPFDIR recovery process.

Once the recovery process has terminated, all existing features of the spooling subsystem are fully available.

Waking an idle spooler process

Recovery of an SPFDIR entry by the recovery process does not wake an idle spooler process even if the entry's priority is above the outfence. To deal with this situation, you may wait until a user creates a new spool file destined for the device managed by the idle spooler. When that spool file enters the READY state, the spooler is notified. It then prints all available files above the outfence. Or, you may wake the idle spooler process by issuing a command such as SPOOLER 6; SUSPEND followed by SPOOLER 6; RESUME. (To use this command, you must be at the system console or have been ALLOWed the SPOOLER command, or have associated a class that includes LDEV 6.) Or, any user with access to a newly-recovered spool file can wake the spooler process for the device with SPOOLF command if the spool file's priority exceeds the system (or device) outfence.

Issuing spool file management commands

If you issue one of the spool file management commands for a a single spoolid whose SPFDIR entry is not yet recovered, it is treated the same as a non-existent spool file and you will see the following message:

Spoolfile "!" either does not exist on the system, or you have

insufficient capabilities to access it. (CIWARN 4563) 

Note that a LISTF of this <Onnnn>.OUT.HPSPOOL displays the filename. The spool file does exist; only its SPFDIR entry does not, as yet.

If you issue one of the spool file management commands for a list of specific spoolids (for example, LISTSPF #O8072 or LISTSPF (#O8072, #O7963, #O8010) it searches for each individual spool file in the list. If it cannot find an SPFDIR entry for the file, it returns error -8039 (Cannot find the spool file).

If you issue one of the spool file management commands for a wildcarded fileset (such as LISTSPF O@, or SHOWOUT SP;JOB=@), you will see information for only those SPFDIR entries that exist at the time the command is entered.

The SPOOLF O@; ALTER and SPOOLF O@; DELETE forms of the SPOOLF command are disallowed, and the following new message is displayed to any user attempting either of these commands:

'SPOOLF ;ALTER' or 'SPOOLF ;DELETE' of a wildcarded fileset is

disabled until the output spoolfile directory has been rebuilt

following a system startup. (CIWARN 4652) 

When recovery is complete

When the output SPFDIR is fully recovered, the following message is displayed on the system console:

   The system has finished rebuilding the 

   output spoolfile directory.

There is no change for OpenView console users. The above forms of the SPOOLF command are then re-enabled.

Feedback to webmaster