HP 3000 Manuals

Native Mode Spooler (continued) [ COMMUNICATOR 3000/XL XL RELEASE 2.1 ] MPE/iX Communicators


COMMUNICATOR 3000/XL XL RELEASE 2.1

Native Mode Spooler (continued) 

SPFXFER Error Messages 

The following is a list of possible error messages reported by SPFXFER:

     10750    INVALID PURGE OPTION IN COMMAND STRING
     10751    FILE SPECIFIER TOO LONG IN COMMAND STRING
     10752    INVALID COMMAND NAME
     10753    INVALID TAPE FILENAME IN COMMAND STRING
     10754    INVALID USER NAME IN COMMAND STRING
     10755    INVALID COMMAND Syntax
     10756    INVALID DELIMITER IN COMMAND STRING
     10757    KEYWORD MISSING IN COMMAND STRING
     10758    INVALID PARAMETERS IN COMMAND STRING
     10759    COMMAND IS TOO LONG
     10760    AN ERROR HAS BEEN RETURNED BY MYCOMMAND
     10761    TERMINAL I/O ERROR
     10762    NO FILES WERE FOUND UNDER THE SPECIFIED USER.ACCOUNT
     10763    UNABLE TO OPEN TAPE DEVICE
     10764    CANNOT OPEN SPOOLFILE ON DISK
     10765    INVALID TAPE FORMAT
     10766    ERROR WHILE READING TAPE

     10773    EOF MARK NOT FOUND
     10774    WRONG REEL - INCORRECT TAPE LABEL
     10775    WRONG REEL - INCORRECT REEL NUMBER
     10776    WRONG REEL - INCORRECT SPOOK VERSION
     10777    UNABLE TO CLOSE TAPE DEVICE
     10778    ERROR WHILE READING FILE
     10779    ERROR WHILE WRITING FILE
     10780    ERROR WHILE WRITING TO TAPE
     10781    FILE NOT FOUND
     10782    INVALID FILE ID

     10785    INSUFFICIENT CAPABILITY
     10786    UNEXPECTED END OF TAPE ENCOUNTERED
     10787    WRONG REEL HAS BEEN MOUNTED
     10788    MULTI REEL ABORT
     10789    ERROR OCCURRED WHILE ACCESSING NATIVE MODE DEVICE FILES
     10790    ERROR IN SPOOK TAPE DEVICE CLASS DIRECTORY
     10791    INVALID SPOOLFILE BLOCK FORMAT
     10792    ERROR WHILE DELIMITING DEVICE NAME
     10793    CANNOT GET UFID
     10794    CANNOT GET SPOOLFILE ID
     10795    ERROR RETURNED BY FCONTROL
     10796    ERROR RETURNED BY FFILEINFO
     10797    CANNOT OPEN SPOOLFILE ON SYSTEM DISK
     10798    CANNOT CLOSE SPOOLFILE ON SYSTEM DISK
     10799    ERROR RETURNED BY SP_FM_SET
     10800    INVALID TARGET DEVICE
     10801    SPOOKTAPE DEVICE DIRECTORY OVERFLOW
     10802    ERROR RETURNED BY FCHECK
     10803    ERROR RETURNED BY SP_FM_INFO
     10804    CANNOT OPEN STDLIST

THE PRINTSPF UTILITY 

In order to provide the functionality of the SPOOK "mode c=on", a new
utility program called PRINTSPF is provided with the release of the
Native Mode Spooler.  PRINTSPF provides a way to display spoolfile
contents in a formatted manner so that the contents of both the data and
the special overhead area of each record can be examined.

The syntax of PRINTSPF is modeled after the MPE XL PRINT command.  It can
be used to print ranges of records (both absolute and EOF-relative) and
it can also display the record number of each record for easy reference.
Note that the quotation marks are required.

Syntax 

     PRINTSPF "[FILE=]<filename>
              [;[START=]<startrec>]
              [;[END=]<endrec>]
              [;[WIDTH=]<linewidth>]
              [;NUM]"

Parameter Definitions 

filename         Actual file name of the file to be printed to STDLIST.
                 The filename parameter may specify a permanent disk
                 file.  File equations are ignored unless an asterisk ( *
                 ) precedes the filename, indicating a backreference.  If
                 the file name is of the form I####### or O####### then
                 PRINTSPF will search the current (logon) directory for
                 the spoolfile first.  If the file is not found there,
                 PRINTSPF will then search the IN.HPSPOOL (for I#######)
                 or OUT.HPSPOOL (for O#######) directories for the file.
                 Note that this searching procedure is done only if the
                 filename is not qualified with a group or account name.

                 For example:  :PRINTSPF O2353 searches for O2353 in the
                 current directory first.  If O2353 is not found then
                 PRINTSPF will search for O2353.OUT.HPSPOOL.

startrec         Specifies the record number of the first file record to
                 be displayed.  If positive, startrec is relative to 1.
                 If it is negative, it specifies a record location
                 relative to the end-of-file, that is, -5 indicates the
                 fifth (5th) record from the end-of-file.  Zero is
                 changed to a 1.  Default is the first record of the file
                 (1).

endrec           Specifies the last record of the file to be displayed.
                 If positive, endrec is relative to 1.  If negative, it
                 specifies a location relative to the end-of-file, that
                 is, -5 indicates the fifth (5th) record from the
                 end-of-file.  Zero is changed to a 1.  Default is the
                 last record of the file.

linewidth        Specifies the number of characters to display on each
                 line.  The default is the record size of STDLIST minus
                 one.  If the line contains more characters than
                 linewidth, they are truncated.

NUM              Specifies numbering of the lines as they are displayed.
                 The numbers appear in front of the line (record) being
                 displayed.  The number displayed is the actual record
                 number (relative to 1) of each line displayed.  By
                 default, record numbers are not displayed.

STORE/RESTORE 

NMS output spoolfiles, as normal disk files, can now be stored and
restored.  Input spoolfiles are private files and cannot be stored or
restored (see the next section on spoolfile security and the definition
of private spoolfiles).  The rest of this description applies only to
non-private, output spoolfiles.


NOTE A tape created with STORE/RESTORE cannot be used to input spoolfiles to an MPE V/E or CM Spooler system. Spoolfiles output to tape with either the SPOOK or SPOOK5 utility cannot be input with the STORE/RESTORE utility.
The use of an auxiliary directory (the SPFDIR), and the association of each spoolfile with two accounts (HPSPOOL and the creator's account) and one creating user (not necessarily in the HPSPOOL account) make this operation more complex than for non-spoolfiles. Below is a summary of some of the STORE/RESTORE rules when dealing with Native Mode spoolfiles. Refer to the STORE/RESTORE external specifications for full details. * Linked spoolfiles reside in the HPSPOOL account but are created by users in other accounts. Normally, STORE would only allow a user with SM capability (or a user in the HPSPOOL account with AM capability) to store files from the HPSPOOL account. This would prevent users from storing their own spoolfiles, which is one of the major enhancements of the Native Mode Spooler. Therefore, STORE has been enhanced to allow the creating user to store his/her own spoolfiles from the HPSPOOL account. Additionally, an account manager may store any spoolfiles in HPSPOOL created from his/her account, and the system manager and HPSPOOL account manager may store all spoolfiles in HPSPOOL. * The ;PURGE option of STORE is supported. The SPFDIR entry for the spoolfile is deleted when the file is purged. Checkpoint files associated with the spoolfile will also be deleted. * If a spooler process finishes its last copy of a spoolfile while that file is being stored, the spooler will be unable to delete the file. The file management routines will leave the file in the DELPND state, where it will remain until one of the following occurs: * Someone opens and closes it (say, with :PURGE or :SPOOLF ;DELETE). * STORE completes and the PURGE option was selected. * It is resurrected (made READY) by raising the number of copies such that after the :SPOOLF...; ALTER completes, the number of copies to be printed exceeds the number already printed.. * A spoolfile successfully restored to OUT.HPSPOOL is automatically linked to the SPFDIR and its name is changed to match the new spoolid assigned by the file management routines. This avoids potential ID and name conflicts. The SHOW=LONG option displays both the old and the new fully qualified file names. * Files may be restored to OUT.HPSPOOL in one of three ways: * By restoring files which were stored to tape from the OUT.HPSPOOL group. This is the recommended method, since only spoolfiles should ever be in that group, so only spoolfiles will ever be restored there. An SM or OP user can restore files created by any user (even if that user does not exist on the system, see below). An AM user can restore files created by any user in his/her account. Any other user can only restore files s/he created. * By a user logged on in OUT.HPSPOOL who specifies the ;LOCAL keyword. This is not recommended, since non-spoolfiles in the selected fileset will also be restored to that group. * By an SM or OP user logged on anywhere who specifies the GROUP=OUT; ACCOUNT=HPSPOOL option. Again this is not recommended because it will also restore non-spoolfiles in the selected fileset to OUT.HPSPOOL. * If files are restored to OUT.HPSPOOL by a user with SM or OP capability, the existence of the creating user in the creating account is not checked unless the CREATOR option is specified explicitly. This allows spoolfiles to be restored on a print hub for users which exist only on other systems. * An account manager may only restore spoolfiles created by users in his/her account. The ;CREATE=CREATOR option will create the file creator's user, if necessary. * If an account manager restores files created by other users in his/her account, those users must have ND capability at the time of the restore or the restore will fail. * If the HPSPOOL account, or any group within it, does not exist, the ;CREATE=GROUP and/or ;CREATE=ACCOUNT options will not create it. * Assuming that OUT.HPSPOOL exists, an SM or OP user who specifies CREATE will create the file creator's account and user, if they do not already exist. The file is still restored to OUT.HPSPOOL, not to the creator's account. * Specifying ;CREATOR=<newuser>; GROUP=OUT; ACCOUNT=HPSPOOL changes only the file's account, not the creator's account. * Any spoolfile restored to OUT.HPSPOOL which is destined for a device or class not configured on the target system is put in the PROBLM state and linked to the queue of its device or class. The queue is created if necessary. Subsequent files destined for the same device or class will also be put in the PROBLM state and linked to the same queue. SPOOLFILE SECURITY A modified MPE file system security is enforced on linked spoolfiles (that is, those with entries in the spoolfile directory) at all times. Private Spoolfiles A user or application may choose to mark an output spoolfile as private (the default is non-private). All input spoolfiles are forced private. If output spoolfiles contain sensitive information, they should be marked as private in order to provide the file security which was previously available to all spoolfiles. Private output spoolfiles differ from normal output spoolfiles as follows: * Private spoolfiles are File System Level 2 (privileged) files, and can therefore be accessed only by processes which call HPFOPEN while running at Level 2. This corresponds roughly to an MPE CM program which has been PREPped with PM capability and is running in a group which has PM capability. In the bullets which follow, we assume that users are not using such a process to access these files. * A user may not ;SPSAVE a private file. It is assumed that the spoolfile data is sensitive enough that a permanent disk copy of it should not exist (except while printing the file). * No one can :STORE a private file. * No one can copy, browse, or otherwise open a private spoolfile as a disk file. This applies to both input and output spoolfiles. * No one can alter the number-of-copies attribute. This prevents an unauthorized user from generating an extra copy of sensitive data for himself or herself. * No one except a user with System Manager (SM) capability can alter the device attribute. This restricts rerouting the output away from a possibly secured output device. * The only other control over such a file is to raise or lower its priority (including DEFERring/UNDEFERring it), or to delete it completely. The :SPOOLF ..;ALTER command uses the same ordered set of rules as for non-private spoolfiles to determine who may access a private spoolfile. However, the functions available in the command are restricted (with one exception) to altering the file's priority, deleting it or deferring it. In particular, :SPOOLF ;ALTER will not allow any user to ;SPSAVE the file, or change the number of copies. The exception of the previous paragraph is that the user with SM capability is able to change the target device. This is a bailout mechanism if the intended device is unavailable (say, because it is broken), an appropriate substitute device is available, and the output cannot wait for the original device to become available once more. Neither private output spoolfiles nor input spoolfiles may be STOREd or RESTOREd by any user. Non-private Spoolfiles The following ordered set of rules governs access to non-private spoolfiles: * The console user or any user with SM capability can access any spoolfile on the system. A user who has :ASSOCIATEd herself or himself to a device class can access and control any spoolfile whose destination device is in that class. Such a user can read, write, delete, append to, or change the attributes of a spoolfile, using either NMS commands and intrinsics or standard MPE commands and intrinsics. * A user with AM capability has the same rights over any spoolfile whose creating user is in the same account. * A creating user has the same rights over any of his/her spoolfiles. * The last check is standard MPE file security. Again, the access modes available to a given user determine what that user can do with the file. Non-private spoolfiles may be STOREd and RESTOREd by any user who has read access to them. Write access is required to use the ;PURGE option of STORE. DEVICE CLASSES ON 2.1 The Native Mode Spooler (NMS) adheres to the Native Mode Device File strategy, also released on MPE XL 2.1. Under that strategy, device classes are now treated solely as collections of logical devices. This means that operations applied to a device class are applied to all devices in the class. In the past, device classes had some identity of their own, independent of the devices in them. For example, you could OPENQ LP without opening the queues of any devices in class LP. Worse, STARTSPOOL 6 created a spooler process which owned Ldev 6, but STARTSPOOL LP merely opened queues for class LP, creating no spooler process. This became very confusing at times and, in the final analysis, unsupportable. For 2.1, commands such as OPENQ LP are now applied to all devices in class LP. There is no separate class structure to which OPENQ LP is applied. This is also true of commands such as STARTSPOOL LP (or the 2.1 version, SPOOLER LP;START). These latter commands will attempt to start spooler processes for each device in class LP. This behavior affects customers who configure non-existent devices. A SPOOLER <class>;START, where <class> includes such a device, will create a spooler process which will be unable to open its device. Because the process is not fully up and running, you are also unable to SUSPEND it. If you inadvertently create a spooler process for a nonexistent device, remove the process with SPOOLER...;STOP;OPENQ. Non-existent devices are generally used to accumulate spoolfiles destined to be networked to a print hub. As such, it is only necessary that their queues be opened. No spooler process is required. For such devices: * During SYSGEN: * Do not configure them as initially spooled. * Define a unique class name for each such device or for all such devices. Do not include any actual (existing) devices in any of these classes. * In the SYSSTART file: * OPENQ each of these classes. Make sure this is done before any jobs which direct output to a device in any such class are streamed. * Do NOT SPOOLER...; START any of these classes nor any device in any of these classes. SPOOLFILE LOG RECORD FORMAT The formats fo the Native Mode Spooler (NMS) Spoolfile Done log record (Type 120) for both output and input spoolfiles are shown below. The NMS records are similar to the corresponding MPE XL Compatibility Mode (CM) Spoolfile Done log records (Type 108). The differences are: * Eight bytes have been reserved following each of the User, Account, Job and File Designator fields for possible future expansion. * The 15-bit Device File ID (DFID) is now a 31-bit SPOOLID. The I/O bit is now at the end of the field instead of at the beginning. * The 16-bit spoolee LDEV number is now an eight-byte ASCII device name with an additional eight bytes reserved for possible future expansion. * Several of the fields have either been moved or expanded to accommodate 32-bit boundaries. * The maximum possible number of copies has been raised to 65535. * The copy number is now the current copy number. This number is counted upward from 1 and is unique, unlike the CM copy number which was the Number of Copies Remaining. The latter number could be repeated if a user increased the number of copies. The following table shows the NMS Spoolfile Done log record for output spoolfiles: NMS Spoolfile Done log record (output) Word Word (hex) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (dec) +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0 | Record type (= 120) | 0 +---------------------------------------------------------------+ | Record length (= 62 halfwords) | +---------------------------------------------------------------+ 1 | PIN | 1 +---------------------------------------------------------------+ | Time | 2 | stamp | 2 | | +-------+-------------------------------------------------------+ 3 |Jb type| Job | 3 +-------+ | | number | +---------------------------------------------------------------+ 4 | | 4 | User | 5 | name | 5 | | +---------------------------------------------------------------+ 6 |///////////////////////////////////////////////////////////////| 6 |////////////////////////// Reserved /////////////////////////| 7 |///////////////////////////////////////////////////////////////| 7 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ 8 | | 8 | Account | 9 | name | 9 | | +---------------------------------------------------------------+ a |///////////////////////////////////////////////////////////////| 10 |////////////////////////// Reserved /////////////////////////| b |///////////////////////////////////////////////////////////////| 11 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ c | | 12 | Job | d | name | 13 | | +---------------------------------------------------------------+ NMS Spoolfile Done log record (output) (continued) Word Word (hex) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (dec) +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ e |///////////////////////////////////////////////////////////////| 14 |////////////////////////// Reserved /////////////////////////| f |///////////////////////////////////////////////////////////////| 15 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ 10 | | 16 | File | 11 | name | 17 | | +---------------------------------------------------------------+ 12 |///////////////////////////////////////////////////////////////| 18 |////////////////////////// Reserved /////////////////////////| 13 |///////////////////////////////////////////////////////////////| 19 |///////////////////////////////////////////////////////////////| +-------+-------------------------------------------------------+ 14 |Jb type| Job | 20 +-------+ | | number | +---------------------------------------------------------------+ 15 | | 21 | Spoolid +---+ | |I/O| +-----------------------------------------------------------+---+ 16 | | 22 | Device | 17 | name | 23 | | +---------------------------------------------------------------+ 18 |///////////////////////////////////////////////////////////////| 24 |////////////////////////// Reserved /////////////////////////| 19 |///////////////////////////////////////////////////////////////| 25 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ 1a | Number of records processed | 26 | (may be > records in file if internal looping or pfail) | +---------------------------------------------------------------+ 1b | Number of sectors | 27 | in spoolfile | +-------------------------------+-------------------------------+ 1c | Device type | Device subtype | 28 +-------------------------------+-------------------------------+ |/////////// Reserved //////////| Output priority | +-------------------------------+-------------------------------+ 29 1d | Current copy number | +-------------------------------+---------------+---------------+ | Logical pages/physical page |///Reserved////| File dispostn | +-------------------------------+---------------+---------------+ 1e | Number of | 30 | physical pages | +---------------------------------------------------------------+ The following table shows the NMS Spoolfile Done log record for input spoolfiles: NMS Spoolfile Done log record (input) Word Word (hex) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (dec) +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0 | Record type (= 120) | 0 +---------------------------------------------------------------+ | Record length (= 62 halfwords) | +---------------------------------------------------------------+ 1 | PIN | 1 +---------------------------------------------------------------+ | Time | 2 | stamp | 2 | | +-------+-------------------------------------------------------+ 3 |Jb type| Job | 3 +-------+ | | number | +---------------------------------------------------------------+ 4 | | 4 | User | 5 | name | 5 | | +---------------------------------------------------------------+ 6 |///////////////////////////////////////////////////////////////| 6 |////////////////////////// Reserved /////////////////////////| 7 |///////////////////////////////////////////////////////////////| 7 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ 8 | | 8 | Account | 9 | name | 9 | | +---------------------------------------------------------------+ a |///////////////////////////////////////////////////////////////| 10 |////////////////////////// Reserved /////////////////////////| b |///////////////////////////////////////////////////////////////| 11 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ c | | 12 | Job | d | name | 13 | | +---------------------------------------------------------------+ e |///////////////////////////////////////////////////////////////| 14 |////////////////////////// Reserved /////////////////////////| f |///////////////////////////////////////////////////////////////| 15 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ NMS Spoolfile Done log record (input) (continued) Word Word (hex) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (dec) +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 10 | | 16 | File | 11 | name | 17 | | +---------------------------------------------------------------+ 12 |///////////////////////////////////////////////////////////////| 18 |////////////////////////// Reserved /////////////////////////| 13 |///////////////////////////////////////////////////////////////| 19 |///////////////////////////////////////////////////////////////| +-------+-------------------------------------------------------+ 14 |Jb type| Job | 20 +-------+ | | number | +---------------------------------------------------------------+ 15 | | 21 | Spoolid +---+ | |I/O| +-----------------------------------------------------------+---+ 16 | | 22 | Device | 17 | name | 23 | | +---------------------------------------------------------------+ 18 |///////////////////////////////////////////////////////////////| 24 |////////////////////////// Reserved /////////////////////////| 19 |///////////////////////////////////////////////////////////////| 25 |///////////////////////////////////////////////////////////////| +---------------------------------------------------------------+ 1a | Number of records | 26 | in spoolfile | +---------------------------------------------------------------+ 1b | Number of sectors | 27 | in spoolfile | +-------------------------------+-------------------------------+ 1c | Device type | Device subtype | 28 +-------------------------------+-------------------------------+ |/////////// Reserved //////////| 0 | +-------------------------------+-------------------------------+ 1d | 0 | 29 +-------------------------------+---------------+---------------+ | 0 |///Reserved////| File dispostn | +-------------------------------+---------------+---------------+ 1e | | 30 | 0 | +---------------------------------------------------------------+


MPE/iX Communicators