QUTL

Updated February 2022; see History

A-Shell on multi-user systems (and even stand-alone) uses a queue file, qflock.sys, in which to store information which may be shared by multiple users. This file is in the form of a linked list, analogous to the AMOS queue blocks system, and is used by the FLOCK and XLOCK subroutines.

The QUTL command is primarily intended to give some control over the FLOCK and XLOCK locks present on the system, by reading and processing the queue file. It can display which users currently have locks, and is also able to re-initialize the XLOCK and FLOCK queue lists , a process which normally requires a machine reset under AMOS, or some specially written assembly language routines. QUTL may also be used to zap a logged on A-Shell user. This will remove all locks and queue blocks associated with that user, and although the user may continue to be able run whatever program they are in, as soon as it attempts to make an XLOCK or FLOCK call, or when it exits back to the dot prompt, it will see that it has been removed from the queue and will abort with an appropriately (cryptic) error message. (Something like "your queue file has been zapped.")

When used to list the existing XLOCKs and/or FLOCKs, QUTL provides an option to output the list to a file. This, combined with the fact that you can run QUTL from a command file, provides a mechanism for nightly processing programs to check if any locks were left in use, and optionally remove them (either by zapping the queue entirely, or just the user, or by using the KILL.LIT utility).

You must be logged into OPR: in order to use the queue utility.

History

2021 December, A-Shell 6.5.1709, QUTL.LIT 3.1(132):  add new command/switch "ZAPURJ" (for ZAP UnResponsive Jobs) to remove all abandoned job table entries resulting from sessions terminating without cleanly exiting from A-Shell. The command may be specified interactively from the QUTL menu, or via the /ZAPURJ command line switch.

2016 November, A-Shell 6.4.1534, QUTL.LIT 3.1(129):  Remove previous maximum of 20000 FLOCK or XLOCK records and reduce the fixed partition memory requirement from approximately 700K to 200K by using dynamic arrays.