Banner
 
 

Supervisor Software Changes 480.01 -500.43

 
500.43 FIX TTINTERFACE COMMAND HANDLING OF TP COMMANDS
Wed, October 20 2004

SUPERVISOR change 500.29 affected TP commands issued from MARC stations using the TTINTERFACE directive. Most responses returned only one line of output or would timeout after 60 seconds. This problem is now fixed.

500.42 FIX LOGJBNO AND LOGMIXNO ATTRIBUTES
Wed, October 6 2004

Depending on the length of the log entry being scanned for any of the LOG contexts, the OPAL LOGMIXNO and LOGJOBNO attributes could return zero or incorrect values. This problem applied to both EVAL and WHEN variants and is now fixed.

500.41 FIX TP KEYIN COMMAND AND ERR MSG CORRUPTION
Mon, October 4 2004

If a TP command was issued from an OPAL KEYIN function and the command generated an error, subsequent TP commands via KEYIN would generate random errors in the log, often corrupting the command itself. This problem was introduced by Supervisor 500.29 and has now been fixed.

500.40 EMPTY QUEUES WHEN EXECUTING WAIT ZERO
Fri, September 24 2004

If a WAIT is called with a value of 0 (zero), then SUPERVISOR will automatically send all currently queued ODT statements to the MCP. Usually, a WAIT inside a WHEN-driven ODTS causes event tracking to be disable for the duration of the time period - even a WAIT(0) could have lost events. Now, WAIT (0) will not cause event tracking to be disabled at all.

500.39 SUPPORT FOR INUSESTACKS AND MAXACTUALSTACKS
Fri, September 24 2004

Two new SUPERVISOR attributes in the SYSTEM context have been implemented:

MAXACTUALSTACKS
INUSESTACKS

The MAXACTUALSTACKS attributes returns the maximum number of real stacks that are available for use on the system - this value excludes stacks that have been reserved for the MCP. INUSESTACKS returns the current number of stacks that are currently in-use on the system and includes independent runners, segment dictionary stacks and tasks. The INUSESTACKS attribute is very useful for tracking stack usage on the system in conjunction with the MAX STACKS system setting.

500.38 CORRECT BAD TL JOB FILE HANDLING
Fri, September 24 2004

SUPERVISOR will now correctly handle a value of '*' for the USE JOB .. AFTER TL setting; previously, the job file residence check performed did not handle this case. This problem is now fixed.

500.37 EXTEND DO - #<SLOT>
Wed, September 22 2004

The DO -#<slot> command is no longer restricted to slots started using the DO command. This command will now terminate any active slot.

500.36 EXPAND 'THE DO WILL BE DONE' MESSAGE
Wed, September 22 2004

The 'DO WILL BE DONE and 'WHEN WILL BE ACTIVATED' messages have been expanded to include Situation and ODTs names.

500.35 INTERNAL CHANGE ONLY
Wed, September 22 2004

Internal change only.

500.34 HANDLE SPLIT TCPIP LOG RECORDS FOR WHENS
Fri, September 17 2004

The change described in 500.33 only correctly handled log records received by an EVAL and not by a WHEN environment. This problem is now fixed.

500.33 FIX LOGTEXT ATTRIBUTE FOR BIB LOG ENTRIES
Fri, September 17 2004

The LogText attribute would return an error message when used for log entries with a length of 33 words, or in fact 4+ any multiple of 29 words. It was first noted on TCPIP Security entries (Major 27 Minor 11). Such entries are now processed correctly.

500.32 CORRECT OPAL DUMP STRING STACK LENGTHS
Tue, September 14 2004

The correct lengths will now be shown for all string stack items in the report generated by the DUMP statement and the SLOT command, (as documented in SUPERVISOR DNote 500.26). Previously, all items had the same length as the top-of-stack entry.

An extension to the DO command enables SUPERVISOR to force an OPAL dump prior to the execution of an individual operator. This feature is ONLY currently permitted with the DO command and may only be executed once.

The extension to the DO command is shown below:

----- DO ---+-----------------------+--- <identifier> ----------|
            |                       |
            +-- [ @ <integer> - ] --+

where <integer> is the code syllable index.

The operator can be selected from a DEFINE listing generated using SET
LIST CODE after the DEFINE name.

DEFINE + ODTS TEST SET LIST CODE:
$A:="THIS IS A TEST";
SHOW($A);

A fragment of the code listing of the above would be:

0043 EXIT
0044 SHOW
0045 STOP

To force a dump at code syllable 44 (that executes the SHOW statement):

TT DO [@ 44] TEST

It is very likely that this facility will only ever be used by Metalogic personnel for development and fault debugging purposes.

500.31 EXTEND REC HELP FOR SNMP
Mon, September 13 2004

This change extends the Help for the TT REC command to include details of the new SNMP Names mnemonic and the REC MIB command.

500.30 FIX TM KEYIN RESIZE FAULT
Mon, September 6 2004

Due to the effects of two earlier SUPERVISOR changes, the TM command interface used to support the DSI tape Robot software did not work correctly. First, all TM commands would return TM COMMAND NULL INPUT not allowed. Secondly, if any TM command was issued via an Opal KEYIN function, SUPERVISOR would fault with a DIMENSION RESIZE ERROR, requiring a restart. Both these problems have been resolved.

500.29 IMPROVE TP COMMAND LOGGING
Fri, August 20 2004

Previously, the logging of TP commands in the TRIM TAPELOG file did not include much information about the origin of the command. This has been changed: now each logged command will indicate if it originated from a WINDOW or ODT, an AFTER or internally from a DO. In addition, the ODT unit number, remote LSN or WHEN slot number will be indicated accordingly. If the TP command came from an OPAL KEYIN statement, this will be shown too.

For example:

12:03:00 ODT: Via AFTER: CONFIRM
12:02:24 Msg: Vol:000001 purge authorised (unchanged)
12:02:24 ODT: Via AFTER,U=IPP: 1 PGOK
12:01:00 Msg: Volumes confirmed 0 (warnings 0),Links 0,Errors 0
12:01:00 ODT: Via AFTER,U=TEST,A=IPP: CONFIRM
11:59:00 ODT: Via KEYIN[31],U=TEST,A=IPP: 77
11:56:29 ODT: Via ODTS[30],U=FLEX,A=RULES: 22
11:55:29 ODT: Via ODTS[30]: 1
11:54:27 ODT: Via WIN(209): 1

Each command will show any associated Usercode and Accesscode passed by SUPERVISOR; this may have been assigned to an AFTER, DO or WHEN using the FOR modifier or inherited from the TERM USER specifications of a SUPERVISOR window. User information appears immediately prior to the command text.

Commands issued from a TRIM slave system are logged locally and, if the command is non-interrogatory, written to the TAPELOG on the master. On the master, the originating BNA host or TCPIP address will now be written with the command:

13:11:34 Msg: Volumes confirmed 0 (warnings 0),Links 0,Errors 0
13:11:34 Rmt: Via 10.0.0.16: CONFIRM

500.28 CORRECT RELOAD SCHEDULE BEHAVIOUR
Wed, August 4 2004

Previously, the behaviour of the RELOAD SCHEDULE command did not work correctly, requiring a restart of SUPERVISOR to complete the reload and often causing other problems.

RELOAD SCHEDULE will now better manage the loading of a SAVED/SCHEDULE file without requiring a SUPERVISOR restart, nor will it enforce a backtrack of the loaded SCHEDULE. All 'missed' activities from the loaded SCHEDULE will always be discarded. Any active SUPERVISOR windows will remain so.

RELOAD now allows alternative SAVED/SCHEDULE files to be easily loaded into a running SUPERVISOR without further action. Prior to the RELOAD, a PRINT SCHEDULE of the current days schedule is performed. As in the current RELOAD mechanism, if a RELOAD is successful, the previous SCHEDULE file is renamed to *OLDSCHEDULE.

The RELOAD will automatically gracefully terminate existing WHENs and invoke the WHENs that were previously active in the SCHEDULE file that has just been loaded. An additional display message will be seen:

  SUPERVISOR: RELOAD OF SAVED SCHEDULE IS COMPLETE

The syntax for the RELOAD command is unchanged.

500.27 SUPPORT FOR USE(SILOKIND) ATTRIBUTE
Wed, August 4 2004

The USE attribute has been extended to allow the additional keyword SILO or SILOKIND allow programmatic access to the USE SILOKIND specification.

500.26 SUPPORT FOR OPAL DUMP STATEMENT
Wed, August 4 2004

A new SUPERVISOR command, SLOT, allows users at the ODT or COMS windows to interrogate the environment of any active OPAL program. The response generated shows slot information and shows the full OPAL environment, exposing string and real variable values.

  ----- SLOT ------ <WHEN slot number> -----------------------|

The <WHEN slot number> corresponds to the value seen on the right of a WHEN ? response. The SLOT command may take a PRINT modifier. SLOT will return:

  Slot-related information similar to WHEN ?
  OPAL string variables
  OPAL real variables
  Run-time stack information
  Wait state details

If the OPAL is waiting on an internal event e.g. time or OPAL functions such as KEYIN or TAPEDB, this information will be displayed. The SLOT command will only give a response when OPAL code is in a WAIT state or not currently executing code.

For example, WHEN slot 30 has a DO called CALLER active, waiting on a KEYIN response:

  --- SUPERVISOR WHEN STATUS (Limit = 40, Active = 30, Queued = 0) --
  W 174*49481 DO CALLER (WAIT KEYIN) 30
    TIMES:CPU=00:00:00,IO=00:00:00,ET=00:00:04
  0 evals, 1 ODTS entry

TT SLOT 30

  ---- OPAL DUMP FOR SLOT #30 At 10:47:12 ---

Entered by : DO CALLER
Handled 0 Restarts
Times: CPU= 0:00:00, IO= 0:00:00, Elapsed= 0:00:14
Originated from WINDOW 174 session 49481
Grinder state is KEYIN waiting for 0:00:15

  --- DUMP OF OPAL STRING VARIABLES ---
  -- MYREAL (31) --
  00000:*SYSTEM/491/DELTA/MCP/491_IC105

  --- DUMP OF OPAL REAL VARIABLES ---
  MYREAL 26CAFD651B0D Value = 0.585858

  --- OPAL STACK INFO ---
  CALL DO DEPTH is 2
  Level #1: ABC
  Level #2: DEF

  Code syllable 0157, Operator= KEY
  TOPOFSTACK = 11
  STAK[11] = 000000000000
  STAK[10] = 000000000000
  STRINGTOS = 2
  STR2B is STRINGS[2,*], STR is STRINGS[1,*]
  ....

Some of the information shown may only be of interest to Metalogic personnel to assist with problem resolution. Also, OPAL dumps will be automatically taken for certain programming errors that can occur inside an OPAL routine e.g. DIVIDE BY ZERO.

This implementation also supports the new OPAL DUMP statement that can be used only from ODTSEQUENCES, as discussed in OPAL DNote 500.15.

500.25 REMOVE TRAILING NULL FROM COMS RESPONSE
Wed, July 14 2004

A multi line response to the COMS function had a trailing Null character. The null character has been removed.

500.24 UNCONDITIONAL UPDATE OF LAST TAPELIB TIME
Mon, July 5 2004

SUPERVISOR will now unconditionally assign the current log date/time, as passed by LOGREADER, during a restart. Previously, it was possible for this timestamp update to be missed causing unnecessary log scanning by LOGREADER during future restarts.

500.23 SUPPORT FOR VL CONTEXT
Mon, July 5 2004

A new OPAL context, called VL has been implemented for SUPERVISOR. On cataloging systems only, this context allows information about all volumed entries in the system Volume Library. Knowledge of Flex and CopyWrite volumes, as created by FAMILYMANAGER and MERGETAPE, is included in the attribute subset using information from the FLEX Statistics file.

The full set of attributes can be viewed using the command:

    TT HELP ATTR =:VL

OPAL programs that use the VL context may now retrieve information about all volumed entries in the Volume Library; previously, this information was only available from reports generated by SYSTEM/LISTVOLUMELIB or the FLEX utilities. The usual expected attributes are available such as KIND, SERIALNO and VLNAME but several additional FLEX-oriented attributes such as WASBACKUP, RELEASED and FLEXMEDIA (e.g. Disk Farm, CD Image, CD) have been added. Several useful attributes from the FLEX Statistics file interface such as BACKUPREFS and BACKUPSONDISK are available.

The VL context may be only be used with the EVAL command or, from within other OPAL programs, using the COUNT and OBJECTS functions. The following example generates a report of all FLEX volumes with non-zero BACKUPREFS

    DEFINE + SITUATION VL(VL):
    BACKUPREFS GTR 0
    DEFINE + ODTSEQUENCE VL(VL):
    SHOW(SERIALNO,,KIND 8,,VLNAME 17,,FLEXMEDIA 8,,BACKUPREFS)
    EVAL VL DO VL

Examples of COUNT and OBJECTS:

    COUNT(VL=PACK,TAPE:VLNAME INCL "DEV")
    OBJECTS(VL:KIND=PACK AND BACKUPREFS GTR 0)

The volumes are returned in KIND order (i.e. DISK, PACK or TAPE) and sorted by ascending serial number within KIND.

The VL context allows one or more subcontexts to filter the returned volume list. These subcontexts map to the FLEXMEDIA attribute:

    DISK, PACK, CDR or CDIMAGE, FARM or REMOTE and TAPE
    DEFINE + SITUATION(VL=CDIMAGE):
    TRUE

The media kind of a volume is determined from the serial number prefix (assigned by FLEX for the FAMILYMANAGER and MERGETAPE utilities) and an original KIND of PACK.

500.22 USE DEIMPLEMENT OP SILO AND FIX ANOMALIES
Tue, June 29 2004

If an USE SILO specification was not in effect, SUPERVISOR would always display the warning message INVALID 'USE SILOKIND' SETTING during a restart. If assigned, an USE SILO entry is now written into the file specified by a SAVE SCHEDULE AS...

500.21 SUPPORT FOR OPAL QUEUED CONTEXT
Tue, June 29 2004

A new OPAL context, called JOBQUEUE or SQ, has been implemented for SUPERVISOR. This context allows information about queued jobs to be retrieved from the system and mapped to OPAL attributes. The full set of attributed can be viewed using:

     TT HELP ATTR =:SQ

OPAL programs using the SQ context may be used with the EVAL command or within an OBJECTS or COUNT function. It is not possible, at this time, for JOBQUEUE programs to be used with an event-based command such as WHEN.

The JOBQUEUE context is useful for processing one or more system commands and extracting job-related information in the system queues. For example:

     DEFINE + SITUATION SHOWQ(JOBQUEUES):
     USER="LIVE" AND NAME INCL "METALOGIC" AND STARTTIME EQL EMPTY
     DEFINE + ODTSEQUENCE SHOWQ(JOBQUEUES):
     ODT(JOBNUMBER,"FS");

So, to FS any queued jobs whose usercode is LIVE and job name includes METALOGIC:

     EVAL SHOWQ DO SHOWQ

Note the JOBNAME attribute includes any parameters passed to the job so an example of the string returned by JOBNAME might be:

     LIVE/JOB/TEST("STRING PARAM",22)

To limit the EVAL to selected queues, a numeric subcontext is permitted e.g. to restrict the search to queue 30:

     DEFINE + SITUATION SHOWQ(JOBQUEUES=30):
     TRUE

Alternatively, the QUEUE attribute may be used for filtering:

     DEFINE + SITUATION SHOWQ(SQ):
     QUEUE = 30

Instead of the above EVAL, an OBJECTS call can perform the same:

     DEFINE + ODTSEQUENCE JOBQUEUES:
     $LIST:= OBJECTS(JOBQUEUES:USER="LIVE" AND NAME INCL "METALOGIC");
     IF $LIST NEQ EMPTY THEN
     ODTS($LIST,"FS");

Note that, currently, it is not possible to retrieve information for a job entry in a system queue outside of the JOBQUEUE context e.g. VIA(TASK(NNNN... is not able to return valid information if NNNN is a queued jobnumber.

500.20 SUPPORT COPYWRITE VOLUME ADD LOGREADER DETECTION
Thu, June 17 2004

This change supports the capability of the LOGREADER utility to process Disk Farm, Cd and CD image volumes created by FLEX and COPYWRITE. See LOGREADER DNOTE 500.03 for more information.

500.19 RECOVER LOST MESSAGES FROM WFL FUNCTION
Mon, June 14 2004

During a SUPERVISOR restart, it was possible for a MSG-based WHEN to fault if a message was detected whilst the LOGREADER utility was being initiated. This problem, which caused the WHEN to occasionally fault with and INVALID INDEX, is now fixed.

500.18 PROTECT SOPVRSN FOR TEST OPAL VERSIONS
Mon, June 14 2004

Internal change only.

500.17 RECOVER LOST MESSAGES FROM WFL FUNCTION
Fri, June 4 2004

Previously, it was possible for SUPERVISOR to miss job event messages generated by the WFL function and processed by an ON JOBMESSAGE loop. This problem, particularly apparent on multi-processor systems, would leave the DO or WHEN indefinitely marked with a status of 'WAIT WFL'. This problem has now been fixed.

It should be stressed that the WFL function should be used with caution inside an ODTS associated with a WHEN. Similar to the WAIT statement, an ON JOB MESSAGE block will disable the normal WHEN events whilst the block is active. Due to the indeterminate time that a job invoked by WFL may take, SUPERVISOR will disable events until the ON JOBMESSAGE block is exited.

500.16 FIX ACCESSCODE ERR IF USERCODE DISABLED
Fri, June 4 2004

SUPERVISOR would unconditionally give the error:

'ACCESS code is required for this USERCODE'

If a 'TT FOR *' command was issued through an ODT statement executed by an ODTSequence that was running under a USERCODE and ACCESSCODE (required because ACCESSCODENEEDED was set). This problem is now fixed.

500.15 SUPPORT FOR WHENID(SLOT)
Fri, June 4 2004

A new variant of the WHENID attribute, SLOT, has been added for SUPERVISOR only. The OPAL attribute WHENID(SLOT) returns the active slot number as seen in an EV ? response. This self-knowledge attribute can be used, for example, with the TT OK #<slot> command.

500.14 INCREASE MAIL BODY MAX LINE WIDTH TO 1000
Fri, June 4 2004

SUPERVISOR will now segment text lines in a MAIL message in 1000 character chunks. Previously this limit was only 132 characters and would break up useful attributes such as LOGTEXT or TEXT when the email client should be handling the wraparound.

500.13 REPORT TO EMAIL/FIX PDT RESPONSE
Tue, April 20 2004

The SUPERVISOR response generated for a 'PRINT PDT' command for a CD image or wrapped container only showed the text 'PDT FOR '. This has been corrected; the response will now show the full name of the image or container.

SUPERVISOR will now suppress page headings for reports if SUPERVISOR's USE DESTINATION starts with the prefix 'MAIL'. In particular, the PRINT SCHEDULE, PRINT PDT and PRINT DEFINES commands will now show this behaviour.

500.12 FIX JOBREJECT INVALID INDEX FOR LONG LOG REC
Tue, April 13 2004

Previously, it was possible for a JOBREJECT WHEN or EVAL to fault with an INAVLID INDEX at 97030140 when retrieving certain attributes (e.g. NAME, USERCODE) from an associated EI log record that was longer than 30 words. This problem is now resolved.

It was also possible for SUPERVISOR to occasionally fail to find the appropriate EI records if they were not yet available in the SUMLOG. This could occur if log activity was very quiet and the last row of the SUMLOG had not yet been written. This change will help to minimise the problem, but not necessarily eliminate it.

500.11 SUPPORT FOR OPAL GLOBAL VARIABLES
Wed, March 31 2004

This change supports global variables as described in Opal Dnote 500.06.

Two new mnemonics (EMAIL and PRINTDEFAULTS) have been added to the TERM attribute.

The TERM(LOGONUSER) attribute can now be used as the first parameter to the USERDATA attribute.

500.10 HANDLE LOG VOLUME APPENDS ON MCP 5.0
Mon, March 29 2004

From the release of MCP 5.0, it is now possible for SUPERVISOR to track library maintenance or DMSII tape append operations. This is feasible because the MCP provide a new LOG VOLUMES record ( Major type 15, Minor type 17) when the append occurs, detectable in real-time by SUPERVISOR.

When an append is detected, SUPERVISOR and TRIM regard the event as a 'new' tape event, causing the original tape to become a history entry. The TapeLog will show the following entry:

16:39:39 Evt: APPEND [000031] (IPP)MYTESTTAPE/FILE000 (not SCR)

A TP interrogation will show

TP HP0001

  ----- METATAPELIB: MT [HP0001] -----
  Volume : APPENDTEST/FILE000
  Cycle : 1 Reel : 1
  Version : 0 Density : FMTDDS2
  Owner : IPP
  Location : EXCEPTION Sent date : 26/03/2004
  Appended at : 16:38:22 on 25/03/2004
  Savefactor : 30
  Host info : NX4200MCP #1234
  Not expired : 24/04/2004
  Volume last accessed : 16:38:22 on 25/03/2004
  Created by task 08826 : *LIBRARY/MAINTENANCE
  Owned by job no 08265 : (META)MYCOPY
  Usage count : 10 times since first entered
  Backup refs : 5 (5 resident)
  This volume has been APPENDED

  Marked as : VOLUMED
  Rule info : EXCEPTION
In the TAPEDB context, a new attribute called APPENDED will signify that the volumed has been appended. Note that the creator task and job numbers and creation date/time will be updated though the original job and task names will be retained (it is not possible to get these names for the task responsible for the append operation).

500.09 CORRECT MAIL HEADER ERROR MESSAGES
Thu, March 18 2004

When using the MAIL function, SUPERVISOR would return incorrect error codes if email headers, such as 'To:,'CC:' etc., were used but did not have any content. For example, if the 'From:' header was used with empty text, the MAIL function would erroneously return error code -103 which refers to 'Mail transmission aborted due to FAULT or DS'. This problem is now resolved.

500.08 TERMINATE EVAL AFTER READER DS
Thu, March 18 2004

If an EVREADER process faulted during EVAL processing, the EVAL would be automatically terminated. However, this did not occur if EVREADER was DS-ed by the operator, leaving the EVAL active but not processing. Now, a DS of EVREADER will cause the associated EVAL to terminate.

500.07 FIX TRUNCATED ODT CONTINUATION REQUESTS
Thu, March 18 2004

Previously, it was possible for SUPERVISOR to return a truncated PER, response for certain ODT commands, such as PER, when invoked from a SUPERVISOR COMS window. In such cases, a 'TT +' to request the next page of the response would signal that no next page was available. This situation, which was only observed where the command response was longer than one terminal page long, is now resolved.

500.06 FIX INVALID INDEX FROM PRINT <COMMAND>
Mon, March 8 2004

The change discussed in SUPERVISOR Dnote 500.03 caused certain TT PRINT <Supervisor command> to fault with INVALID INDEX at 26285400. This problem is now fixed.

Also, a PRINT ATTRIBUTES command would always display multiple END OF PAGE ERROR messages during printfile creation. This problem meant that there were no top-of-form skips present after each page in the backup file. This behaviour has been corrected.

500.05 RANDOM ERRORS USING SURECODECOMPILETIME
Thu, February 26 2004

The use of the SURE attribute SURECODECOMPILETIME could have caused various run-time errors that depended on its usage in an OPAL script.

This problem is now resolved.

500.04 REPLACE PNOTE BY PRDEF FOR MAIL PRINTING
Thu, February 26 2004

The change discussed in SUPERVISOR DNote 500.02 allowed a NOTE attribute to be applied via the PRINT statement. This has now been further enhanced to allow an alternative PRINTDEFAULTS to be assigned using the prefix 'PRDEF='. For example, to force the print to Virtual Mail:

PRINT("PRDEF=NOTE=""To:support;Subject:Test;"",DESTINATION=""MAIL""");

When executed within an ODTS, SUPERVISOR will apply the above print defaults to the LINE file generated by the printing task. Any current PRINTDEFAULTS assigned to the station will be overridden.

If TT USE DESTINATION setting is set to 'MAIL' (or starts with 'MAIL'), SUPERVISOR will now check the EMAIL attribute assigned to the log-on usercode if no PRINTDEFAULTS exist. If a WHEN or DO is executed with a FOR modifier then SUPERVISOR will look for PRINTDEFAULTS or EMAIL settings on the FOR usercode before checking the usercode associated with the logged-on user (if one exists).

The usage of 'PNOTE=' is now deimplemented.

500.03 ADD TERM KNOWLEDGE ATTRIBUTE
Thu, February 26 2004

A new self-knowledge attribute has been added to SUPERVISOR. This allows a DO or WHEN to determine the original log-on usercode, accesscode and COMS stationed, if applicable. Note that usercode and accesscode settings will change if the TERM USER of the station has been changed.

A HELP ATTR TERM will show:
  TERM (SYSTEM) RETURNS STRING
   PARAMETERS : 1. MNEMONIC, VALUES : LOGONUSER(66), LOGONACCESS(67),
           LOGONSTATION(68).
   SEMANTICS : Returns information about the user's current TERM
      settings inherited from COMS or changed by TERM USER.

500.02 DETECT EMAIL NOTE WHEN PRINTING
Tue, February 17 2004

It is now possible to pass a user-supplied NOTE to a WHEN, DO or EVAL that processes output using the PRINT statement. If the first print message after the OPAL completed, contains the leading string 'PNOTE=', SUPERVISOR will assign the remainder of the message to the print file's NOTE attribute.

This simple mechanism allows prints destined for the MAILLIB Virtual Server, in particular, to override email addresses and Subject headers though it can be used to supply any custom NOTE. For example:

  DEFINE + ODTS PRINTME:
    IF MYSELF(ENTRIES)=1 THEN
      PRINT("PNOTE=To:test@metalog.com;Subject:My printing");

The above example is only significant for a USE DETINATION that is set to a MAILLIB virtual server.

500.01 CONFIRM COMPATIBILITY WITH MCP 5.0
Mon, February 16 2004

Confirm compatibility with MCP 5.0

490.32 FIX LOG MAJOR LIST EVALS
Mon, February 16 2004

The feature described in SUPERVISOR Dnote 490.28, which described a method of filtering multiple log major types in the context definition, did not work correctly for LOG SITUations used with the EVAL command.

This problem has been fixed.

490.30 INHIBIT SILO WARNING DURING INITIALIZATION
Wed, February 11 2004

If a TT USE SILO setting was not being used, SUPERVISOR would display the message INVALID 'USE SILOKIND' SETTING during its initialization. Also the 'USE SILO -' command, used to cancel an existing SILO support did not correctly remove the TL_SILOKIND config variable leaving an invalid setting. Both these problems have been fixed.

490.29 EXTEND SURE ATTS FOR REPOSITORY SELECT
Tue, February 10 2004

The SURE attribute subset returns information, via the SURELIB system library, from the InfraDesign SURE source control system. These attributes have been extended to allow an extra, optional parameter which identifies the SURE repository to be accessed. Both SUPERVISOR and FLEX Library will automatically attempt a connection to a different SURE library identified by a modified SL.

For example, a typical SURE attribute reference inside a LOGBOJ or MX=BOT context might be:

   SURECHECKCOMPILE(NAME,PDSURETIMESTAMP(NAME))

If the file identified by NAME was in a different SURE repository, here signified as the string 'SAS', then the attribute call would appear as:

   SURECHECKCOMPILE(NAME,PDSURETIMESTAMP(NAME),"SAS")

SUPERVISOR will attempt to connect to an SL-ed library whose function name is:

   SL SURELIBSAS

SUPERVISOR and FLEX will automatically link to the next library, delinking from a previous SURELIB if needed. This mechanism allows multiple SURE repositories to be accessed, identified by different usercodes and disk families.

490.28 ALLOW EXTENDED LOG SITU DEFINES
Tue, February 10 2004

Previously, it was not possible for a LOG context SUPERVISOR script to detect more than one LOG major type in the subcontext definition; only a single major type with a list of minor types was permitted. This se restriction has now been relaxed and multiple LOG Major types can be specified for a LOG SITUation using the '+' operator:

   DEFINE + SITUATION LOGSELECT(LOG=1+5+14):

The above SITU will only receive LOG Major Types 1,5 and 14 - all minor type for each Major will be automatically selected. It is not possible to assign a Minor type for an individual Major type in this mechanism.

This implementation allows a LOG SITU to receive more than one Major type in a very efficient way instead of using a generic LOG context which would receive ALL generated log entries. The new LOGTYPE attribute allows the SITU to easily select only those Minor types that are of interest (LOGTYPE=(LOG Major*100)+LOG Minor):

   DEFINE + SITUATION LOGSELECT(LOG=1+14):
      LOGTYPE={105,106,1404}

The above SITU would only select Major Type 1 and Minor Types 5 or 6, or Major Type 14 with Minor Type 4.

490.27 EXTEND INLINE OPAL LENGTH AND DONT DISCARD
Tue, February 10 2004

The 255-character restriction on the length of an in-line OPAL expression has now been increased to 4096.

Previously, if an EVAL or WHEN used a defined SITUation with an in-line DO or DISPLAY, the context of the SITU was not being automatically inherited. This meant that the context of the in-line component always had to be inserted otherwise syntax errors would result. This problem is now fixed.

Also, any new SUPERVISOR DO or WHEN command was unconditionally invalidating any current in-line OPAL expression, even though the WHEN or DO did not have any in-line OPAL itself. This problem has now been fixed.

490.26 SUPPORT EI ATTS FOR JOBREJECT CONTEXT
Tue, February 10 2004

The JOBREJECT context now supports a small subset of attributes from the EI log record that is generated prior to a job that iq Q-DSed.

These attributes include NAME, USERCODE, CHARGECODE and ACCESSCODE.

490.25 FIX LOG CONTEXT EI HANDLING
Tue, February 3 2004

Previously, the EI context was not correctly handled by the SUMLOG reading procedures used to handle a log EVAL. This caused SUPERVISOR to return ALL log records to the EVAL instead of LOGMAJOR=0 and LOGMINOR types 1 or 2.

490.24 DETECT OPALTAPELIB LINKING
Thu, January 29 2004

Previously, it was possible for a DELINK OPALTAPELIB command to fail even though SUPERVISOR was already successfully linked to the library. This problem was caused because SUPERVISOR did not keep track of all the OPALTAPELIB entrypoints used.

This problem is now fixed.

490.23 FIX MAILLIB DELINK AND ALLOW MAIL COMMAND
Wed, January 28 2004

The DELINK MAILLIB command did not consistently reset the flag that indicated a successful delinkage from MAILLIB, even though the library connection had been severed. This problem is now fixed.

The MAIL and DELINK commands are now permitted from Supervisor COMS windows without the need for a TT prefix.

490.22 ALLOW REC FROM SUP WINDOW AND MINOR HELP CHANGE
Tue, December 30 2003

The REC command is now permitted from SUPERVISOR windows without a TT prefix plus SUPERVISOR will now recognize the USERLICENCE ODT command. A minor change to the HELP REC response has been made.

490.21 USE MCP FILERECFORMAT ENTRYPOINT
Tue, December 16 2003

SUPERVISOR now uses the MCP FILERECFORMAT entrypoint for its file handling functions instead of an older, internal mechanism.

490.20 SUPPORT USE SILO COMMAND
Tue, December 16 2003

The USE SILO command is now available to permit easier changes to the support of Unisys StorageTek and DSI libraries. The command syntax is show below:

----- USE --- SILO ----+--- DSI -----------+-----------------|
                       +--- DSI_NOTM ------+
                       +--- DSI_SERIAL ----+
                       +--- UNISYS  -------+
                       +--- UNISYS_TEST ---+
                       +---    -   --------+

The SUPERVISOR option SILO (SO +SILO) now has no effect on the support of Tape Robot systems by SUPERVISOR and will be deimplemented in a later release. The USE SILO assignment still updates the TL_SILOKIND config variable so, for existing TRIM users, no changes are necessary.

Although only two tape robot systems are supported, each can be controlled in different ways. In particular, the DSI robot software can be controlled in three different ways according to the USE SILO setting:

  • DSI This means that full DSI Cartridge Tape Library support is enabled. All tape assignments are passed through to CSCLIB by Metalogic's TAPEMANAGER for processing by DSI's own TAPEMANAGER library. DSI's TM command is available from Supervisor windows.
  • DSI_NOTM The DSI TAPEMANAGER runs in ACTIVE mode but any tape requests will NOT be passed the DSI software by Metalogic's TAPEMANAGER.
  • DSI_SERIALNO Same as DSI except that tape assignment requests are only passed to CSCLIB if a tape serial number has already been assigned to the request. Note that if both a SERIALNO and SCRATCHPOOL are assigned, the SCRATCHPOOL is removed by the Metalogic TAPEMANAGER library.
  • UNISYS This setting enables supports for Unisys CSCLIB 2.1 and later for larger Tape Robot CTL systems such as StorageTek. The TK command is available for silo interrogation.
  • UNISYS_TEST This setting is not for customer use and been left in the help for Metalogic usage only.

The '-' modifier will immediately cancel the current USE SILO setting.

Changes to the USE SILO setting are applied immediately. As well as SUPERVISOR, both the TRIM software and Metalogic's TAPEMANAGER library are informed. Previously, both TAPEMANAGER and TAPELIBUPDATER would require manual termination and restart.

Also, the DELINK command will now show a list of all libraries that are currently linked by SUPERVISOR or its processes.

490.18 EXTEND HELP FOR REC '=DATE' MODIFIER
Tue, December 2 2003

The TT REC command now has a new modifier for disk type files.

TT HELP REC describes its use.

490.17 SHOW INPUT COMMANDS IN TASKFILE
Tue, November 18 2003

The first line of each command in an Enter file is now written to the taskfile with a prefix of In:. Responses to TT DO and TT WHEN commands are also now reported. This should make it easier to track otherwise unidentified error messages.

490.16 AUTOMATIC HANDLING OF MAXSTACKS CHANGES
Mon, November 17 2003

On certain, larger Unisys mainframes the MAX STACKS command allows a site to dynamically increase/decrease the number of stacks available to the system. Increasing this value without restarting SUPERVISOR would cause numerous INVALID INDEX faults during normal running.

Now, SUPERVISOR will automatically detect if MAX STACKS has been changed and will resize its own internal tables accordingly.

490.15 FIX WARNING WHEN EXECUTING WAIT IN LOG ODTS
Mon, November 3 2003

Previously, executing a WAIT statement inside a LOG-based WHEN would usually generate the erroneous warning message:

ERRORS REP_L_E MIN 1 RES=05

This did not affect the WHEN nor the effect of the WAIT but would cause confusion. This problem is now fixed.

It should be noted that using the WAIT statement inside an ODTSequence associated with a WHEN is not recommended; whilst the WAIT is being executed, SUPERVISOR will discard any new events for the WHEN until the WAIT has been exited.

490.14 FIX TRUNCATED CONTROLLER MESSAGES
Wed, October 29 2003

Patch 490.12 caused certain COMS-SUPERVISOR window messages, generated by library-maintenance commands such as COPY and REMOVE, to be truncated by 3 characters. This problem is now fixed.

490.13 AUTO SAVE OF SCHEDULE AFTER CONVERSION
Tue, October 28 2003

In future releases of SUPERVISOR where a SCHEDULE conversion is required, the existing SCHEDULE file will now be automatically secured before the conversion procedure starts. The current SCHEDULE file will be copied to the family specified by USE FAMILY ... FOR SAVES and will be renamed as:

   	*SAVED/SCHEDULE/VERSIONnn_mmddyy 	

In the event of a release reversion after a SCHEDULE conversion, this saved SCHEDULE file can be reinstated with the old release.

490.12 ALLOW WFL COMMANDS WITH FOR MODIFIER
Tue, October 28 2003

Previously, if a FOR modifier was used as a prefix for a WFL command such as START, BEGIN JOB etc. then the command would fail with a 'MISSING TIME QUALIFICATION' error. This occurred if the command was issued from the ODT, SUPERVISOR window or form within a DO.

This behaviour has been changed and direct WFL commands are now permitted with a FOR modifier. Note that the character '?' can be used to allow DISPLAY statements (these otherwise collide with the SUPERVISOR variant) or to avoid the use of 'BEGIN JOB'.

Some examples:

     TT FOR META/PASSWORD ACCESS TEST/TEST START WFL/TEST ON DEV(99) 
     TT FOR META/PW ?DISPLAY MYJOB(USERCODE) 
     TT FOR META CHARGE C1234 RUN *BATCH/APPLICATION 
490.11 DEFINE COUNT INFO FROM SHOW COMMAND
Wed, October 22 2003

The SHOW command wil now provide additional information about all DEFINEs in the SCHEDULE file. A typical response is shown below:

TT SHOW

----- SUPERVISOR SCHEDULE STATISTICS -----
SCHEDULE VERSION = 16
SCHEDULE IS 180000 SEGMENTS - 94% AVAILABLE

AVAILABLE = 169213, LARGEST AREA = 169092
39 SEGMENTS IN 21 AREAS LESS THAN 10
169174 SEGMENTS IN 4 AREAS LARGER THAN 9

Total number of DEFINEs in SCHEDULE is 1148
653 Segments in use by 222 SITUATION(s)
8275 Segments in use by 831 ODTS(es)
1142 Segments in use by 95 DISPLAY(s)
91 Segments in use by 14 MEMO(s)

Last METATAPELIB timestamp was 13:25:59 21/10/2003
LOG evaluations will time slice after 20 log records

490.10 FIX MISSING LOGTEXT HDR FOR MAINT LOG RECS
Tue, October 14 2003

If the LOGTEXT attribute was used to analyze an IOEXCEPTION maintenance log record (major type 2, minor type 21) from a log-based EVAL, it was likely that heading information would be omitted from the generated LOGTEXT attribute.

For example, the LOGTEXT attribute could return either of the following forms:

PACK 2002 (UNITTYPE=17 SUBTYPE=4022-103 SCSI PACK CTLTYPE=FCPK1EMC
IO START AREA AREA PORT CTL LOGICAL
MIX DATE TIME START LENGTH #
317 10/10/2003 08:28:34 09959D38 5E7B8 CHARS 21114 13540 5E7B80000081

Or, with most of the heading removed:

08:28:34 09959D38 5E7B8 CHARS 21114 13540 5E7B80000081 002002 320 JOB

The above would occur if two maint records for the same unit were processed in sequence from the log or there were multiple references to the LOGTEXT attribute in the calling SITU or ODTS.

This behaviour, a feature of the JOBFORMATTER library, has now been disabled and the full heading information for each MAINT IO log record will be provided.

490.09 DELINK SURELIB WILL TERMINATE LIBRARY
Thu, October 2 2003

The DELINK SURELIB command will now attempt to call a new entrypoint in SURELIB, called TERMINATESURE, requesting the termination of the library on the SURE repository system. On such a system, SURELIB is a freeze-controlled library and would previously require a manual THAW to terminate it.

490.08 MULTIPLE SURE REQUEST TIMING PROBLEM
Thu, September 25 2003

If multiple SURE requests were issued from an event-based ODTSequence, it was possible for some of the requests to fail if other events were subsequently queued for the DO or WHEN. This problem has been resolved.

Similarly, if a MSG ODTSequence executed OPAL functions such as KEYIN, USERFN, SURE etc. and a message arrived to SUPERVISOR whilst the DO or WHEN was waiting for the function to complete, it was likely that any message attributes, such as TEXT, would then return spurious information, if used.

490.07 PROTECT SURELIB CALLS
Wed, September 17 2003

SUPERVISOR retrieval of information from the SURE subset of attributes is now protected by offloading such calls to the GRINDER process instead of the main SUPERVISOR stack. When an OPAL program is waiting for information to return from GRINDER, the WHEN slot will be marked as '(WAIT SURE)'.

FLEX functionality using these attributes is unaffected by this change.

490.06 FIX SYNTAX ERROR FOR WINDOW WFL JOBS
Wed, September 17 2003

Previously, SUPERVISOR would give SYNTAX ERROR IN WFL failures for any WFL jobs or commands executed from a SUPERVISOR window. For example, all START, RUN or BEGIN JOB statements would fail. This problem is now fixed.

490.05 FIX LOSS OF MX=W AND MX=GOING EVENTS
Wed, September 17 2003

When an event-based MX WHEN (i.e. SITU such as MX=W, MX=S or MX=GOING) executes OPAL functions such as KEYIN or USERFN, this causes SUPERVISOR to force the WHEN into a special 'wait' state until the function has been processed by the GRINDER process. During this wait, other MX=W or MX=GOING events are still queued to the WHEN slot but, under certain timing conditions, it was possible for SUPERVISOR to occasionally lose some of these queued entries when they were subsequently processed.

This problem, which made SUPERVISOR appear to miss waiting entries in particular, is now resolved.

490.04 ILLEGAL STACK SWAP FOR LARGE CALL DO
Fri, August 29 2003
If an ODTSEQUENCE was performing a CALL DO up to 6 levels deep and that CALL DO performed a function such as WAIT, KEYIN or COMS, then SUPERVISOR would die with an ILLEGAL STACK SWAP. In this case, SUPERVISOR could not be restarted unless a suitable SAVED/SCHEDULE or decompiled schedule was available. In theory, SUPERVISOR should only permit a nesting of 5 CALL DO's but this code was incorrect and did not terminate the caller when this maximum was exceeded.

This problem is now fixed and the max CALL DO level is now set at 6 to allow compatibility. It is not recommended that ODTSEQUENCES use nested CALL DO to such a depth because of the difficulty in their maintenance and debugging.

490.03 KEYIN NULL RESPONSE FIX
Wed, August 27 2003
SUPERVISOR will now return the complete text 'NULL RESPONSE' for OPAL KEYIN commands such as mixnumber AX, DS etc. Previously, the last character was always dropped.

490.02 INHIBIT UNRELIABLE UNIT CHANGE EVENTS
Wed, August 27 2003
SUPERVISOR filters out certain unit status change events from the MCP because of side-effects on PER context handling. These events were unnecessarily triggering PER WHENs and OPAL attributes subsequently retrieved would often be invalid. This change now excludes UNITCHANGE type 23 (NSCCHANGEV) from exhibiting the same behaviour.

490.01 ALLOW MAIL SEMI-COLONS AS NOISE
Mon, August 18 2003
The MAIL function will now consider semi-colons in its header parameter to be noise e.g.

MAIL("To:TEST;;Subject:Test;;","Text")

will now not fail with a -100 error (Bad message header).

480.93 IMPLEMENT SAVE AFTER COMMAND & AF DEL FIXES
Mon, August 18 2003
The SAVE command has been extended to allow the option to save all AFTERS in the SCHEDULE to a specific file. Previously the AFTER only content would have only been available in a full decompiled schedule.

The semantic change is shown below:

------- SAVE --- AFTERS -----  AS ----- <filename> --------|                  
                 --                                                           

In addition to the above change, the handling of AFTERs has been improved; any AFTER command will now have multiple spaces removed from the command text, unless the spaces are in a quoted string. This permits AF commands to be more easily deleted (if using the AF-..<text> variant) without having to ensure that the original number of spaces was preserved. For existing AF commands already held in the SCHEDULE, SUPERVISOR will automatically deblank when comparing with AFTERs for addition or deletion.

Also, SUPERVISOR will now correctly output the number of AFTERs successfully entered or failed during an ENTER command. previously, these values would often be incorrect.

If a new SCHEDULE file was created on a SUPERVISOR restart for any reason, the automatic ENTER that loads the file specified by USE FILE FOR REBUILD could fail with a STACK OVERFLOW. This problem, which could occur if the ENTER file was very large, is now fixed.

480.92 REINSTATE SYNTAX CHECKS FOR AF START
Tue, August 5 2003
For some time now, SUPERVISOR has not been syntaxing checking any START jobs set up by the AFTER command. Only START commands with illegal filenames or parameters would have been flagged. This behaviour has been corrected.

480.91 FIX MSG SIZE ERROR FOR TM KEYINS
Tue, August 5 2003
The DSIHANDLER process would die with a MSG SIZE ERROR if a DSI TM command, such as TM INVENT, generated a response greater than 16416 characters. This problem is now fixed.

480.90 ALLOW SINGLE QUOTES FOR STRING HANDLING
Tue, August 5 2003
SUPERVISOR will now accept single quotes as well as the usual double quote for string handling in OPAL. Please see OPAL DNote 480.30 for more information.

480.89 PROVIDE SUPPORT FOR ON JOBMESSAGE & JOB CONTEXT
Tue, August 5 2003

This change allows SUPERVISOR users to track single or multiple WFL activities from a single OPAL program. All job messages, BOJ and EOJ information are returned and made available via a special OPAL context called JOB. It is not possible to DEFINE an ODTSequence with a context
of this type.

A new integer-valued OPAL function, called WFL, has been implemented; this function allows WFL-style commands such as PROCESS, RUN and START to be processed from a SUPERVISOR ODTSequence. Although this activity can be simply achieved using the ODT statement, the main difference is that all job and task messages emitted by the WFL can be captured within the same OPAL program using a new statement, ON JOBMESSAGE.

The WFL function is only available of MCP 48.1 or later.

The WFL function requires a string parameter, passing the name of the job to be invoked or other WFL commands. Optionally, it will accept a second string parameter that can be used to identify the job - this can be used to assist the tracking and reporting of multiple jobs from the same ODTSequence. This parameter cannot exceed 17 characters. The semantics are:

    ---- WFL -- ( <string exp.> ) -----+-----------------------+-----|
                                       |                       |
                                       +-- ( <string exp.> ) --+                 
		

The value held in <string expression> can represent a job name, which will be START-ed by SUPERVISOR, or commands such as PROCESS, RUN or BEGIN JOB. The second <string expression> parameter is optional; but, if used, will allow the caller to assign an internal identity to the job for tracking purposes. This identity is usually used to retrieve additional job info using attributes such as WFLEOJREASON, WFLTIMESTAMP etc. Please see the end of this note for more information.

If successful, the WFL functions returns the mix number of the 'job' that has just been started otherwise a negative value is returned reflecting the reason why the function failed. For example:

#JOBNO:= WFL("(TEST)BATCH ON DEV")
IF WFL("RUN *OBJECT/TESTPROGRAM ON HLPACK") >0 THEN .....
#T:= WFL("BEGIN JOB J;DISPLAY ""THIS IS A TEST"";END JOB")
WFL("(LIVE)BATCH/JOB ON PROD","BATCH")

The WFL function may only be used from an ODTSequence.

SUPERVISOR will apply any usercode attributes assigned from the DO's WHEN slot but this can be overridden by using FOR syntax prefixing the START command. The FOR modifier is used in exactly the same way as the AFTER command e.g.

WFL("FOR META/PW ACCESS T/PW1 CHARGE C123 START JOBNAME")

The above job will run under the META usercode,the Accesscode T and a ChargeCode of C123. Within SUPERVISOR, there are ways to execute these jobs, without using passwords, by removing the NODEFAULTUSE Userdatafile attribute from the SUPERVISOR or by running the DO under the ODTSECURITY usercode.

Note that a WFL command *must* be provided after the FOR component.

If the WFL function fails for any reason, one of the following negative values may be returned:

-1 BADWFL : Various; particularly START of illegal file
-2 NOFILE : START of non-resident JOBSYMABOL file
-3 NOTIMP : Not available on pre-48.1 MCP
-4 NOENTP : Missing MAGUS support
-5 PRGFLT : Internal Metalogic fault
-6 BADFOR : Bad FOR modifier (usercode/accesscode/charge)
-7 EMPTYID : User supplied an empty id string parameter
-8 DUPID : Id parameter already being used
-9 LONGID : Id parameter exceeds 17 characters

Once one or more WFL jobs have been invoked, the MCP automatically passes all job-related information to the requesting WHEN slot. These messages remain queued in the slot until an ON JOBMESSAGE block is entered. The syntax is shown below:

      ------- ON -- JOBMESSAGE ---- DO --+-- <ODTS statement>-------+--|
                                         |                          |
                                         +-- <Compound statement> --+             

Once ON JOBMESSAGE has been executed, the context of the ODTS will switch to a type of JOB. SUPERVISOR will now mark the DO, as seen in a TT EV ? display, with a status of '(WAIT WFL)'. When the MCP passes a job message to the WHEN slot, code associated with the ON JOBMESSAGE block will be executed. A small number of OPAL attributes that belong to the JOB context, are now available for use. These attributes include JOBNUMBER, MIXNUMBER, JOBMSGTYPE and JOBTEXT e.g.

TT DEFINE + ODTSEQUENCE JOB_EX:
#JOB:= WFL("START MYJOB ON DEV");
SHOW("Job started ",#JOB);
ON JOBMESSAGE DO
BEGIN
SHOW(JOBNUMBER,,JOBMSGTYPE,">", JOBTEXT);
END;

JOBMSGTYPE has various integer mnemonic values which reflect the state of the job and are self-explanatory: queued (WFLQD), BOJ (WFLBOJ, BOT (WFLBOT), EOJ (WFLEOJ), EOT (WFLEOT), Message (WFLMSG), Going (WFLGOING), Scheduled (WFLSCHEDULED). There is, however, no indicator that a job is currently waiting but these can be detected by examining messages of type WFLMSG. The JOBTEXT attribute returns the actual text of each message as would be seen normally.

So, output from the above OPAL might be (note that SHOW is scrolling):

TT DO JOB_EX

27796 WFLEOJ>P-DS JOB TESTJOB
27796 WFLMSG>DISPLAY:TEST MESSAGE.
27796 WFLBOJ>BOJ JOB TESTJOB
27796 WFLQD>JOB IN QUEUE 0
Job started 27796

If an ON JOBMESSAGE block is executed, the block code is executed until the all WFL activities have terminated (i.e. all EOJs for the jobs invoked by this slot have been received). It is fine to initiate other jobs using the WFL function inside an ON JOBMESSAGE block and any job messages generated will then also be processed in the same code. Note that at least one WFL function must have been used prior to any ON JOBMESSAGE block or the block will be exited immediately.

Note that using the TEST command instead of DO will cause any WFL functions inside the ODTSequence to be executed but for SYNTAX only. To assist testing, SUPERVISOR will generate a dummy 'EOJ' notice so that the script can tested top some degree. For example:
TT TEST JOB_EX

1000000 WFLEOJ>EOJ START MYJOB ON DEV
Job started 1000000

SUPERVISOR supplies an internal job number (starting from 1000000) and incrementing for each subsequent WFL job. The JOBTEXT attribute will hold the original command text passed to that WFL function call e.g.
'START MYJOB ON DEV'.

It is possible to exit the block early by using a new OPAL statement called CONTINUE.

------- CONTINUE ------------------------------------------|

CONTINUE may only be used inside an ON JOBMESSAGE block and when encountered, will force the OAPL machine to exit to the next executable statement outside the block. Note that WFL job messages will continue to be collected for the slot and can be processed in any subsequent ON
JOBMESSAGE block:

DEFINE + ODTSEQUENCE STARTER:
#JOB:= WFL("START MYJOB ON DEV","MYJOB");
SHOW("Job started ",#JOB);
ON JOBMESSAGE DO
BEGIN
SHOW(JOBID,,JOBNUMBER,,JOBMSGTYPE,, JOBTEXT);
IF JOBMSGTYPE = WFLMSG AND JOBNUMBER=#JOB THEN
BEGIN
#J1:=WFL("START NEXTJOB ON DISK(""MYPARAM"")");
EXIT;
END;
END;
%DO OTHER ACTIONS HERE
ON JOBMESSAGE DO
BEGIN
% Process remaining message from jobs #JOB and #J1
...
END;

TT DO STARTER

Whilst processing a WFL function or waiting for job messages to arrive for ON JOBMESSAGE processing, the DO will appear as '(WAIT WFL)' in a TT EV ? response. A TT DO - will terminate the ODTS as normal and discard any pending job messages.

Further, a new attribute subset within the SYSTEM context supports access to WFL job information for the calling ODTSequence. These attributes all require a previously assigned job identity and allows retrieval of various job info. The attributes include WFLELAPSED, WFLJOBNO, WFLTIMESTAMP and WFLEOJREASON. For example:

DEFINE + ODTSEQUENCE STARTER:
#JOBA:= WFL("(META)J ON DEV", "JOB_A");
#JOBB:= WFL("(META)J1 ON DEV", "JOB_B");
ON JOBMESSAGE DO
....
END;
SHOW("JOB_A:#",WFLJOBNO("JOB_A")," ELAPSED=",,WFLELAPSED("JOB_A"));

WFLJOBNO("JOB_A") returns the real job number of '(META)J ON DEV' and WFLELAPSED("JOB_A") returns the elapsed time in seconds of the same job; WFLTIMESTAMP("JOB_A") would return the time that the WFL was executed as a string e.g. "09:12:03,02/08/03".

WFLEOJREASON returns a string representing the termination status of the job e.g. GOODEOJ, BADEOJ, SYNTAX, COMPILED, P-DS, F-DS, O-DS etc.

These attributes remain active until the calling ODTSequence has terminated.

480.88 PREVENT DOUBLE EMAIL AFTER DEBUG
Fri, July 25 2003

After activating SUPERVISORs' DEBUG (option 24) for tracking MAIL function calls, SUPERVISOR would unconditionally initiate a second copy of the mail. This behaviour has now been corrected.

480.87 INVALID OP STARTING USERCODED JOB AFTER RESTART
Fri, July 25 2003

If any scheduled WFL jobs, locked by a FOR clause, were marked in an AF RESTART or AF HL activity, SUPERVISOR would fault with an INVALID OP and may not have restarted successfully. This problem has been fixed and recovery procedures have been improved.

480.86 DBS FAMILY FIX AND PREVENT GRINDER DUMP
Fri, July 25 2003

The DBS function could fail with the error UNABLE TO LINK TO DMSUPPORT if the DMSUPPORT library was on DISK and the CONTROL file and ACCESSROUTINES families were the same. This problem is now fixed.

Also, the GRINDER process would unconditionally force a programdump each time SUPERVISOR was QUIT; this behaviour now does not occur.

480.85 FIX FOR WHENID(SITUATION) FOR TT TEST
Thu, July 24 2003

For a TT DO <odts> the attribute WHENID(SITUATION) returned "DO".
For TT TEST <odts> the attribute WHENID(SITUATION) also returned "DO".
WHENID(SITUATION) will now return "TEST" if used in an ODTS started using TT TEST.

480.84 FIX TT DO - WHEN INPUT PENDING
Tue, July 15 2003

This change corrects a problem which would happen when entering a TT DO - command for an ODTS which was waiting for screen input. The next message entered from the window where the 'killed' ODTS had been started was lost.

480.83 SUPPORT NEW OPALS FUNCTION:INPUT
Mon, July 14 2003

This change supports the new opal function: Input.

When the Input function is called in an ODTs then any input from the Supervisor Window is passed directly to the ODTS.

Preceding input with a ? character will cause any text not recognised by Coms as a command to be passed to Supervisor as normal.

Preceding input with ?? with cause the text to be sent directly to Supervisor with the exception of ??END ??WRU and ??CLOSE. ??END and ??CLOSE will kill the waiting ODTS and free the screen for normal use.

The response to an EV ? command reports (WAIT Input) for any ODTS which is waiting for screen input.

Ex.

----- SUPERVISOR WHEN STATUS (Limit = 40, Active = 25, Queued = 0) -----
W 251 23896 DO MENU (WAIT Input)

While testing this change some inconsistencies were found when returning data which spanned more than one screen. The original Supervisor command was not refreshed on the screen at the end of a series of TT + commands.

This problem is now corrected.

480.82 ALLOW ENTER FROM A FILE WHICH IS OPEN
Mon, July 14 2003

It is now possible to ENTER from a file which is still open in an editor.

480.81 MAJOR BUG USING KEYIN FOR TM COMMANDS
Wed, June 25 2003

Version 480.65 made the KEYIN function much more robust in general but had the unfortunate side effect that any keyin of a TM command killed Supervisor.

This bug has been corrected.

480.80 FIX TTINTERFACE TIMEOUT BUG
Wed, June 11 2003

Previously, If SUPERVISOR received a TT DO or TT EVAL command from the TTINTERFACE library using a user-program interface, it was possible for SUPERVISOR to neglect to send a completion signal to TTINTERFACE leaving the action to timeout after 60 seconds even though it may have finished much earlier.
The circumstances for this situation were unusual:

1. The DO or EVAL command must have been sent using the EXTERNALCOMMAND entrypoint in the TTINTERFACE library.

2. The program using EXTERNALCOMMAND must have an originating source station of 0 (e.g. by running the program from a SUPERVISOR window).

3. The DO or EVAL must have had a WAIT statement or use an OPAL function that causes SUPERVISOR to 'wait' whilst the action completed.

Typically, some commands would take a minute to complete, even though, they might be really actioned in a few seconds, because TTINTERFACE was not told of its' termination. This problem is now fixed.

480.79 PROTECT CONFIG SWITCH DURING INIT
Fri, May 30 2003

If a NAP config switch was initiated by a USE FAMILY .. FOR CONFIG command whilst SUPERVISOR was processing one or more WHEN or DO commands, it was very likely that the NAP switch would not complete. If the timing of the commands was very close, SUPERVISOR's requirement to terminate all active WHENS, prior to the switch, could fail because, the new WHEN/DO activity was not being detected.

SUPERVISOR will now detect if any WHEN or DO actions are still to be processed and will mark the config switch as "pending". When the outstanding WHENs and DOs have been actioned, all WHEN slots will then be deactivated and the switch will automatically continue.

480.78 ENSURE LOCAL DISPLAY OF CALL DO ERRORS
Fri, May 30 2003

Under certain circumstances, the display of CALL DO errors back to the user's station (as documented in Dnote 480.77) did not always work unless a SHOW had previously been emitted. Also, a problem where the DELINK FLEXLIB command did not always work correctly has been fixed.

480.77 ALLOW TT OK BY SLOT NUMBER
Thu, May 8 2003

Similar to the feature discussed in Dnote 480.76, SUPERVISOR will now permit the OK-ing of a waiting ODTS by slot number e.g.

OK #4

The ODTSequence must be waiting for an OK and any original FOR usercode setting must also be provided with the OK command if the action is to work correctly.

SUPERVISOR will now show failed CALL DO messages correctly on the local terminal as well as appearing in system messages.

480.76 ALLOW DO TERMINATION BY SLOT
Tue, April 29 2003

The conventional method for terminating an active DO is by using the command 'DO - ODTSNAME' where ODTSNAME is the name of the OPAL program being terminated. This command also has the effect of terminating ALL DO slots with the same name.

To allow only selected DO slots with the same name to be terminated, the DO - command will now permit a slot number. Instead of a name:

DO - #7
DO - #32

where #7 and #32 are the WHEN 'slot' numbers (as seen on the right in a WHEN ? response). Only DO slots can be deactivated with this mechanism.

In conjunction with the above, for DOs whose context is MESSAGE, SUPERVISOR will display the first 60 characters of any user-provided TEXT parameter in the response to a WHEN ? command.

480.75 TRIM CALL DO NAMES/LINE INSERT FOR SINGLE MSG
Tue, April 29 2003

SUPERVISOR will now automatically remove any leading or trailing spaces from the string passed to a CALL DO command; previously, this would have caused the CALL to fail.

Also, SUPERVISOR will now perform a line-insert prior to displaying certain single-line messages or responses. This change in behaviour helps preserve any existing information already on the screen, for example provided by SHOWs, and prevents their overwrite by unsolicited SUPERVISOR messages.

480.74 IMPLEMENT SILENT ABORT
Tue, April 29 2003

If an EMPTY string is passed to the OPAL ABORT statement, SUPERVISOR will not emit the usual ABORT display message seen prior to the termination of the WHEN or DO. This feature allows a WHEN or EVAL to gracefully terminate without having to issue an internal 'TT WHEN <situ> DO' command.

480.73 PREVENT TAPERECORD INVALID INDEX AFTER MAIL
Mon, March 31 2003

Under certain circumstances, it was possible for an ODTS executing an OPAL TAPERECORD statement to fault if this immediately followed a MAIL statement. This problem, which may not necessarily have happened within the same ODTS, is now fixed.

480.72 SUPPORT FOR TP NET COMMAND
Mon, March 31 2003

This patch supports the implementation of the TP NET command now available for fast configuration of a master-slave TRIM environment. More information on this command can be found in TAPELIBUPDATER Dnote 480.05.

480.71 HANDLE ZERO-LENGTH USERFN RESPONSES
Wed, March 26 2003

SUPERVISOR was not correctly handling zero-length string values returned by theUSERFN Opal function, erroneously returning the value USERFN GRIND ERROR. This problem is now fixed; zero-length strings will now be returned correctly.

480.70 SUPPORT FOR MAIL MESSAGES GTR THEN 9000 CHARS
Tue, March 18 2003

Previously, the MAIL function would truncate the body of any generated email if the total characters, summed from the message headers plus the text body, exceeded 9000 characters. This restriction has been removed; Supervisor will now permit both the message headers and body parameters to be a maximum of 393,210 characters each.

The amount of text held in the message body has now been increased from 999 to 3000 lines; note that this limit will override the previously mentioned character limit.

480.69 FIX FOR..ACCESS HANDLING AND LIMIT SEC VIOLS
Tue, March 18 2003

Previously, SUPERVISOR would have generated a SECURITY VIOLATION when applying a FOR USER..ACCESS, without passwords, when applied by the ODTSECURITY usercode or a NODEFAULTUSE password validation environment. The violation appeared in the log but did not stop Supervisor from applying the usercode and access code to the activity or job. Also, using a FOR with an invalid or suspended usercode would have generated 4 separate SECURITY VIOLATION entries in the SUMLOG.

Both these problems are now fixed. Supervisor will also now verify that the given access code is valid in the usercode's ACCESSCODELIST entry in such circumstances.

480.68 STOP SUP USERCODE FROM WFL ASSIGNMENT
Thu, March 13 2003

The recent change discussed in Dnote 480.62 allowed the GRINDER task to run under the SUPERVISOR usercode. This change caused an unexpected security issue which is closed by this patch.

480.67 ALLOW WFL STARTTIME WITH AF COMMAND
Wed, March 12 2003

Use of the WFL STARTTIME modifier with a scheduled START command would give a "SYNTAX EROR IN WFL" error.

Use of a FOR modifier before BEGIN JOB would give the same error.

Both of these problems have been corrected.

480.66 DONT GIVE GRIND ERROR FOR DBS AUDIT CLOSE
Thu, March 6 2003

SUPERVISOR will now correctly handle an empty response returned by a DBS call from an OPAL program. Previously, although the DBS command did work, SUPERVISOR would return the error message 'DBS GRIND ERRO'. Now, where DBS receives an empty reply from the visible DBMS, the default text 'NULL RESPONSE' will be returned to the caller.

480.65 HANDLE LARGE COMS, DBS AND USERFN RESPONSES
Tue, March 4 2003

Previously, the COMS, DBS, KEYIN and USERFN functions would return a maximum response of 16,416 characters. In particular, this limit was far too small for visible DBMS commands, sent by the DBS function, where the displays could be many thousands of lines long. This limitation has now been relaxed and all these functions will handle returned messages up to 393,210 characters. It should be noted that, due to MCP restrictions, a KEYIN call can only return a maximum of 255 lines or 393210 characters.

The DBS function can now handle 'STATUS STRUCTURE *' commands for databases with a high number of structures; currently, this has been successfully tested for databases with 1000 structures.

SUPERVISOR will now correctly print data longer than 8400 bytes passed to a single PRINT statement; this limit is now 393,210. Note that any individual 'line' greater than 132 characters will be truncated.

Lastly, it was possible to cause Supervisor to unconditionally fault terminate with a fatal MSG SIZE ERROR by issuing a RECORD passing more than 16343 characters. This problem is now fixed.

480.64 ALLOW DELINK OF OPALTAPELIB IF SUP NOT LINKED
Tue, March 4 2003

The TT DELINK OPALTAPELIB command would not be correctly applied if Supervisor was not currently linked to the Metalogic OPALTAPELIB library. This caused both TAPEMANAGER and TAPELIBUPDATER delinking to subsequently fail and could have caused confusion during Metalogic software installations since the OPALTAPELIB library would not go to EOJ. This problem is now fixed.

480.63 SUPPORT FOR OPAL DBS FUNCTION
Wed, February 19 2003

A new OPAL function for Supervisor called DBS, allows OPAL programs to retrieve database information via the visible DBMS. DBS currently has the following syntax:
---- DBS ( <mixno>, <VBDMS command> ) -------------------------

where <mixno> is the mix number of a valid DMSII database. For example:

DBS(12345,"STATUS")
DBS(MIXNO,"ALLOWEDCORE=40000")

would return the response from an operator SM STATUS command to the database stack. Like the COMS function, DBS will return any response with each line terminated by a '/', allowing each line to be easily parsed in an OPAL routine. DBS will accept any Visible DBMS command though it is intended to extend the functionality to include other features.

Because DBS causes Supervisor's GRINDER task to temporarily go to the database's DMSUPPORT library, there are overheads associated with its usage though these are kept to a minimum. Note that SUPERVISOR will only link to databases whose DMSUPPORT library actually have a level called 'DMSUPPORT' somewhere in the file title.

Lastly, the GRINDER task will now run under Supervisor's own usercode, allowing OPALUSERLIB callers to inherit Supervisor's privilege status. Previously, GRINDER always tun with no usercode assigned.

480.62 FIX COMSSUPPORT LINK/DELINK OVERHEADS
Tue, February 4 2003

Previously, use of the OPAL COMS function involved a library link and delink to the Unisys COMSSUPPORT library. If the function is used heavily, this would cause significant overhead particularly in the system logging of library linkage actions. This problem has now been addressed.

As a consequence of the previous fix, a TT DELINK COMS command has been added to force the immediate delinkage of SUPERVISOR from the COMSSUPPORT library.

480.61 CLEANUP SILO SUPPORT
Tue, February 4 2003

Various unimplemented tape robot attributes belonging to the TAPEDB context have been removed because they are not supported by the Unisys CSC software. These attributes all begin with a prefix of 'CART'; the remaining attributes CARTINSILO, CARTLIBRARYID, CARTSLOT and CARTSCARTCH are still valid.

480.60 FIX EVAL LOG MIXNO AND JOBNO CONFLICT
Tue, February 4 2003

The LOGTEXT attribute, available to all LOG contexts, was erroneously showing the job number in the text instead of the mix number, where relevant. This problem was seen with both WHEN and EVAL and is now fixed.

480.59 SUPPORT OPAL CHANGE 480.19
Tue, January 28 2003

This change is to support Opal version 480.19 which changes the limits on the size of Opal strings and variables.

It also corrects a bug where a full screen transmit to a TT DO of a MSG type ODTS could cause Supervisor to fault.

480.58 FIX TAPELABEL NOTICE CORRUPTION
Thu, January 9 2003

Depending on MCP levels, SUPERVISOR patch 480.57 could have caused OPALTAPELIB to fault with a SEG ARRAY ERROR when handling certain tape events. This was caused by SUPERVISOR corruption of the notice received from the MCP and is now fixed.

480.57 SUPPORT FOR FOREIGN LOGREADER SUMLOGS
Tue, December 17 2002

SUPERVISOR will now correctly handle tape notices generated from 'foreign' SUMLOGS by the LOGREADER utility when run stand-alone. Previously, all notices were assigned the local system serial number and hostname regardless of source.

SUPERVISOR now invokes LOGREADER without an usercode parameter as discussed in LOGREADER Dnote 480.02.

480.56 VALIDATE LOG MAJOR TYPES
Tue, December 17 2002

SUPERVISOR will now disallow execution of SITUATIONs of type LOG=x,y where Major Type x and Minor Type y are not valid. Previously, using rogue Major types greater than 47 caused the OPAL execution to fault. On MCP 48.1, the maximum supported Major type is currently 37 (FTP).

480.55 AUTOBINDING
Mon, December 9 2002

Add AutoBinding Compiler Control Option. Internal change only.

480.54 BL
Wed, December 4 2002

For a PDT MT <unit> if the Tape is not a Library/Maintenance Tape, CopyWrite is called to check if it is a BLPack Tape. If it is not a BLPack Tape, then Supervisor checks if it is a MEMORY/DUMP Tape.

480.53 FIX LONG 5-DIGIT LIBUSERLIST ENTRIES
Thu, November 28 2002

If the OPAL MX attribute LIBUSERLIST was referenced for a library with a large number of users, it was possible for the OPAL program to fault with STRING PROTECT at 95695850. This problem would only occur if many of the returned mix numbers were 5-digits (i.e. OP+MAXTASKS was set) and is now fixed.

480.52 FIX LU COMMAND
Tue, November 26 2002

The protection provided for ENTER commands discussed in DNote 480.49 had the side-effect of causing the LU command to stop working correctly. This problem, which caused various error responses, is now fixed.

480.51 FIX HUNG USERFN ON MULTI CPU SYSTEMS
Fri, November 22 2002

On multi-processor systems with high mix and message activity, it was possible for EVALs which use the USERFN function to occasionally hang indefinitely. This case is known to occur with TAPEBD EVALs where SUPERVISOR is also busy retrieving data from the METATAPELIB database as well as actioning USERFN calls. The EVAL would appear in a WHEN ? response as 'WAIT USERFN' requiring operator termination.

This problem was caused by a timing issue where the GRINDER task and the SUPERVISOR stack were overwriting WHEN state information at the same time and has now been resolved.

480.50 FIX INVALID INDEX IN WHEN ?
Tue, November 12 2002

The WHEN ? command could cause a program dump by Invalid Index. This would happen if a Situation linked to an ODTs or Display was waiting for a COMS or USERFN response when the command was entered.

480.49 PROTECT COMMANDS FROM ENTER FROM CORRUPTION
Tue, November 12 2002

On multiprocessor systems it was possible for command being processed from an ENTER file to be corrupted. Supervisor is now protected against this.

480.48 INCORRECT WORKDAY ATT HANDLING
Thu, October 31 2002

If today's date was specified as a holiday using the HOLIDAY command, the Opal WORKDAY attribute (with no date parameter reflecting today) would still return TRUE. Since HOLIDAYS settings should override WORKDAYS settings, this behaviour is incorrect and is now fixed.
Also, SUPERVISOR was erroneously rejecting WORKDAYS dates which were in the past believing that the date was not a weekend even though this was not the case. This anomaly has been fixed.

480.47 PREVENT LOOP IN SAVE SCHEDULE AS..
Tue, October 29 2002

If a line feed character was added to the end of an AFTER command, possibly by a faulty copy&paste, a subsequent TT SAVE SCHEDULE AS.. command would loop until it failed with a IO error writing to the savefile.

This problem has now been corrected.

480.46 FIX USERFN DISPLAY CALLS
Tue, October 22 2002

SUPERVISOR Dnote 480.44 discussed a change in the handling of the OPAL USERFN function using GRINDER. However, if USERFN was executed from a simple OPAL DISPLAY program (by TT /), SUPERVISOR could have entered a tight processor loop requiring manual DS. This problem is now fixed.

480.45 SUPPORT OPAL VARIABLES IN INLINE OPALS
Tue, October 22 2002

This change supports the use of Opal variables as described in OPAL Dnote 480.14 in inline Opal routines.

480.44 NEW WINDOWS PROCESS AND COMS SUPPORT
Tue, October 22 2002

A new OPAL function, COMS, has been implemented. This function allows Supervisor OPALs to pass control or utility commands to COMS and analyze any response. Previously, the only way to process a COMS command was to issue an SM to COMS/INPUT and use a MSG WHEN to detect the display responses. The COMS function calls a freely available, documented entrypoint in the COMSSUPPORT library called PA_REQUEST.

COMS is similar to KEYIN and has the following syntax:

---- COMS ( <OPAL string>) ------------------------------------!

For example:

TT DO (SHOW(COMS("STATUS PROGRAM MARC"))

Program status for MARC
Codefile: MARC
Queue depth: 0, Response time: 0.06 secs, Messages processed: 35
Input Queue memory in use for this Program: 907 words
This program is currently ENABLED.
Associated window is MARC (ENABLED).
The following copies are active:
Copy 2: Mix 300: idle
Message from station for dialog ,
Task Queue Depth = 0
Copy 1: Mix 299: processing for 1:51:51.5118643641
Message from station IP101 for dialog MARC/1,
Task Queue Depth = 0

And:

TT DO (SHOW(COMS("DISABLE PROGRAM STATISTICS"))

The following were processed:
Program STATISTICS Disabled

As with KEYIN, each line of output is delimited by carriage return and can be SPLIT using the '/' modifier e.g.:

$RES:= COMS("STATUS PROGRAM MARC");
WHILE $LINE:= $RES.SPLIT(/) NEQ EMPTY DO
SHOW("LINE #",#L:=#L+1,$LINE)

As with KEYIN, the COMS function is actually handled by the Supervisor GRINDER task and any active WHEN using COMS will be marked as 'WAITING COMS' in a TT EV ? response.
The range of control and utility commands that are supported is documented in the Unisys Transaction Server for Clearpath MCP Programming guide, Section 10 Program Agent Facility; please note that not all of these commands may work on MCP 46.1 or 47.1. On MCP 48.1, the following example COMS commands are supported:

ATTACH, CLEAR, DATABASE, DISABLE, ENABLE, QUIT, READY, STATUS
CREATE, DELETE, LOAD, INQUIRE etc

USERFN changes:
--------------------
Also, processing of any OPAL USERFN function call has now been moved from the main Supervisor stack to the GRINDER task. Previously, a failure or extended delay when calling a local USERFN function could have caused Supervisor to appear hung or even abort. Any OPAL programs executing a USERFN may appears as 'WAIT USERFN' in the response to a TT EV ?.
New WINDOWS process
---------------------------
To help protect Supervisor against problems with any USERFN, COMS or KEYIN problems, a new process called SUPERVISOR/WINDOWS is now present during normal Supervisor operation. This task is responsible for the handling of all Supervisor windows messaging activity which was previously handled by GRINDER and has been migrated, providing a more resilient interface.

480.43 RECOVER FROM CORRUPTED HOLIDAY RECORD
Wed, August 7 2002

Despite the changes applied by Dnote 480.26, which fixed several problems with the way SUPERVISOR handles the HOLIDAYS list, it was still possible for a HOLIDAYS interrogation command to return NO HOLIDAYS DEFINED even though a valid holiday list existed. This problem, which occurred if SUPERVISOR encountered an old corrupted holidays entry in the SCHEDULE file, is now fixed.

480.42 BETTER LOADING OF REC NAMES INFO
Thu, July 25 2002

When Supervisor was restarted it was possible for ODTs which used Record Mnemonics to fail with an invalid Recorder mnemonic error. This was because the Rec name Info table was not always loaded in time for the restarting ODTs. This problem has been corrected.

480.41 FATAL SORT DISK ERROR ON HO
Wed, July 24 2002

If a TT HO command was performed on a disk family which had more than 2220 files open, the following fatal SORT error would occur:

SORT ERROR # 4 : SORT DISK EXHAUSTED DURING STRINGING

Since this error occurred in the main SUPERVISOR stack, the fault caused SUPERVISOR to abort. This problem has now been addressed by increasing the size parameters in the SORT and protecting its usage from killing SUPERVISOR.

480.40 FIX EVREADER SEG ARRAY FOR LARGE LOG RECORD
Wed, July 24 2002

Previously, when a MSG EVAL encountered a SUMLOG record greater than 180 words in length, the EVALREADER process would fault with a SEG ARRAY ERROR @ 24912850. This problem has now been fixed.

480.39 EMBEDDED NULS IN MAIL MSG CAUSES LOOP
Mon, July 8 2002

Using the MAIL function from a LOG-based WHEN or EVAL could return spurious MAIL results and possible WHEN termination problems, depending on circumstances. These problems are now resolved.

If the text of the message body used in by an OPAL MAIL function had any embedded null characters, then the MAILHANDLER task could have entered a processor loop displaying the error message MAX MESSAGE LINE COUNT EXCEEDED. This problem is now fixed and Supervisor will now insert the warning message in the last available line of the message instead of displaying it.

SUPERVISOR 480.38 VARIOUS MINOR FIXES
Mon, July 8 2002

The response to a TT HELP ATTR <pattern> will now be correctly displayed; previously, an extraneous blank line was inserted in the page with some attributes being moved to the next page. Also, this command will now display a heading on each response page.

The AFTER command is now a printable command i.e. it may be used with a TT PRINT command, For example:

TT PRINT AF 0-2359 ON TUESDAY

SUPERVISOR will now suppress the automatic printing of headings, for certain commands prefixed by the PRINT modifier, if the TT USE DESTINATION has an assignment which starts with the text "MAIL". Typically, such destinations signify a mail server of some type and only one simple heading will be inserted at the beginning of the text.

Lastly, under certain circumstances, it was possible for a Supervisor ENTER to fail with a STACK OVERFLOW. This situation has now been protected.

480.37 SUPPORT FOR WHENID(STATION)
Wed, June 19 2002

The WHENID attribute has been extended with a new parameter called STATION. This will return the full station name, where possible, of the originator assigned to the current WHEN slot. Both COMS windows and REMOTESPOs will return the full station name; system ODTs will return 'ODT n'.

Note that this value may not be retrievable for WHEN slots that have been activated remotely since origin information is cleared after a Supervisor restart. In such cases, an origin of SLOT # will be returned.

480.36 SUPPRESS GRINDER DUMP AFTER DS AND MORE DIAG
Wed, June 19 2002

When DS-ing GRINDER because of a hanging KEYIN call, Supervisor will now suppress any program dump generated by GRINDER and display an appropriate error message in the SUMLOG.

480.35 FIX USE OF 'IF WORKDAYS'
Wed, June 19 2002

The changes to the use of EXCEPT HOLIDAYS described by Dnote 480.29 had the effect of causing a subsequent SAVE to change this clause to IF WORKDAYS. Unfortunately, if any activities were set on Saturday or Sunday as well then a re-ENTER into a new SCHEDULE would cause these activities to be excluded. This problem is now fixed; SUPERVISOR will now correctly show and save activities with EXCEPT HOLIDAYS if that is how they were originally established.

480.34 ALLOW SECADMIN USERS ACCESS TO USER CONTEXT
Thu, June 6 2002

Previously, only the ODTSECURITYUSER usercode (specifed by TT USE USER .. FOR ODTSECURITY) was allowed access to the USER context via EVAL or WHEN. All other usercodes would get a NOT ALLOWED response. This feature is now permitted if the usercode has SECADMIN status - PU status will not provide sufficient security.

480.33 FIX REPEATING INVALID INDEX AT 5294000
Sat, June 1 2002

Version 480.31 introduced a bug which could cause Supervisor to repeatedly get an invalid index at line number 52940000. This could happen if any change was made to the schedule after a SAVE SCHEDULE was done. This problem has been corrected.

The failure message if schedule validation failed when checking the WORKDAYS section of the schedule has been corrected.

480.32 FIX FOR KEYIN(TT....) AND RESIZE PROBLEMS
Wed, May 29 2002

The OPAL KEYIN function would not give a valid response for some TT commands. Ex. TT HS or TT USE. This problem has been corrected.

In rare circumstances Supervisor would fault if it attempted to resize an array above the system value for Maximum Long Array Size as seen in the response to the ODT command SEGARRAYSTART.

Support was added for the new attributes MaxWhens and ScheduleHeld.

Support was added for the MODE BACKTRACK extension to the USE attribute.

480.31 FIX DUAL OLDTODAY ALLOC CHECK
Mon, May 27 2002

During a validation of the SCHEDULE file because of a SUPERVISOR restart or a TT SAVE SCHEDULE< it was possible for SUPERVISOR to fault with a SCHEDULE INCONSISTENCY ERROR #25. This fault would only occur if the schedule had been held (via TTT HS+ command) more than 24 hours earlier; any subsequent QUIT or SAVE SCHEDULE would then fail. This problem is now fixed.

480.30 CORRECT WAIT() HANDLING FOR EVALS
Thu, May 23 2002

Previously, it was possible for SUPERVISOR to fail to terminate a LOG EVAL if a WAIT statement was executed inside the associated ODTSequence. This could have occurred since SUPERVISOR unconditionally flushes any queued EVALREADER notices after finishing the WAIT, one of which might be the termination signal for the EVAL to complete. Now, SUPERVISOR will never flush the message queue for any EVAL which uses WAITs.

480.29 TT FAILURE AFTER 48.1 RJ
Thu, May 23 2002

If a new JOBDESC file was created on a 48.1 MCP system, subsequent TT commands issued from any ODT would be handled OK but any generated responses would not be returned to the originating ODT. This problem, caused by MCP changes in the JOBDESC file accessed by SUPERVISOR, is now resolved.

480.28 PROVIDE DEBUG TRACING FOR TT COMMANDS
Thu, May 9 2002

On a recent release of MCP 48.1, it has been reported that TT commands have not been generating responses when issued from system ODTs. This patch introduces a new DEBUG option (16) which, when activated, will generate additional tracing of all TT commands from ODTs.

When displaying the language type in a TT USE command response, SUPERVISOR was truncating the information text describing the current language. This has now been fixed.

480.27 SPURIOUS FILEID ON NEW TRIM TAPE VOLUMES
Thu, May 9 2002

For new data tapes created with a single-level volume name i.e. not Library Maintenance tapes, SUPERVISOR was marking the tape entry in the TRIM database as having a valid FILEID. This meant that such tapes appeared in the Tapelog as, for example:

12:26:35 Evt: NEW VOL [HP0002] (IPP)MF.DUMMY/

This problem, which is now fixed, only occurred with NEW VOL tapes; normal tape creation notices are always correct.

480.26 SUPPORT FOR SUP WORKDAYS EXTENSIONS
Thu, May 9 2002

A new SUPERVISOR command, WORKDAYS, has been implemented. This allows a site to specify certain Saturday or Sundays as additional working days, behaving as Monday-Friday. Any such dates will be considered for activities scheduled by any variant of the AFTER.. WORKDAYS command subset.

The WORKDAYS command is similar to HOLIDAYS and has identical syntax:

   ---- WORKDAYS ----+------------------ ? -----------------+---!              
                     +-------+---+----- <gregorian date> ---+                  
                     +-- - --+   +<<<<<----  ,  ------------+                  
                     +-- + --+                               
All reference to activities using the clause 'ON WORKDAYS' will include any additional weekend working days that have been assigned by the WORKDAYS command. Only dates that map onto Saturday and Sunday can be assigned by the WORKDAYS command; other days will generate a syntax error. Also, Supervisor will automatically add the current year if a date is given with only day and month values. For adding new WORKDAYs, the '+' is not required but is now allowed for both the HOLIDAYS and WORKDAYS commands.

Some examples:

WORKDAYS + 21/4/02, 8/6, 17/8
WORKDAYS 13/7/2002

To support this change, a SCHEDULE conversion(16) will be automatically performed by SUPERVISOR.

Accompanying the WORKDAYS feature, a new AFTER modifier, WEEKLY, is now available. This modifier is, however, totally different from the WEEK AFTER;
    --- AFTER -- <Time Specs> ---+-- IN  WEEK ---- <integer> ----+---!
                                 +-- IN  WEEKS --- <week list> --+
                                 +-- WEEKLY ---------------------+  

These variants have the following meanings:

1. 'IN WEEK 23' filter activity to week 23 of year (up to 52) WEEK is defined in 7-day sections from month start

2. 'IN WEEKS 1,2' filter activity for weeks 1-2 only of each month 'IN WEEKS 1' as above but week 1 of each month only WEEKS is defined in 7-day sections from month start

3. 'WEEKLY' filter activity for each week of the month WEEKLY is defined as Sunday->Saturday and is
independent of month start.

The WEEKLY modifier can *ONLY* be used after a WORKDAYS clause; all other usage will give an INVALID OPTION error.

For example:

AFTER +1100 ON 3RD WORKDAY WEEKLY:TT DO WORKODTS

For June 2002, the above AFTER would be executed on the second workday of each 7-day week, spanning Sunday->Saturday. For example:

3RD WORKDAY WEEKLY for June 2002 -> would be Wednesday 1st,8th,15th etc.

Note that these date calculations will take account of any specific workdays or holidays. Therefore, a Sunday marked as a workday with the WORKDAYS command will become the first working day for an activity that uses the WEEKLY clause.

Please note:
------------
As a consequence of this change, the clause 'EXCEPT HOLIDAYS' and 'IF WORKDAY' are now synonymous and have the same effect; the major difference the user will see is that, in a decompiled SCHEDULE, all 'EXCEPT HOLIDAYS' clauses will now appear as 'IF WORKDAY'.

AFTER + 1000 ON MONDAYS EXCEPT HOLIDAYS:TT DO TEST

will now appear on a AF ? and in a decompiled schedule as:

AFTER + 1000 ON MONDAYS IF WORKDAY: TT DO TEST

Further, when using any 'ON WORKDAYS' clause in an AFTER, Supervisor will now make additional schedule entries for both Saturday and Sunday. This means that the response will show 7 or 8 activities scheduled instead of 5 or 6 (depending if the AFTER was valid for today).

OPAL changes:
------------
A new boolean OPAL attribute, WORKDAY, will return TRUE if today is a working day i.e. not a HOLIDAY, a normal week day or a Saturday or Sunday marked by the WORKDAYS command. Also, the NEXTWORKDAY function will now include Saturday and Sunday dates assigned as working days.

480.25 USE LANGUAGE FIX AND ALIGN LANG ERROR MESSAGES
Fri, April 5 2002

When displaying the language type in a TT USE command response, SUPERVISOR was truncating the information text describing the current language. This has now been fixed.
Also, if the language specified was German or Afrikaans, SUPERVISOR would often display an incorrect response to many of the commands. This problem has also been addressed.

480.24 DELINK PRINTSUPPORT WHEN NOT NEEDED
Fri, April 5 2002

Previously, if an OPAL PRINTS context program was executed via an EVAL or DO, SUPERVISOR would remain linked to the Unisys PRINTSUPPORT library until a TT DELINK PRINTSUPPORT command was issued or SUPERVISOR was restarted. This could cause problems when a PS QUIT command was issued and PRINTSUPPORT would not terminate until SUPERVISOR had
delinked.

Now, SUPERVISOR will automatically delink PRINTSUPPORT after the termination of any PRINTS programs, if there are no other such OPALs currently active. Although this procedure means that SUPERVISOR will perform more library servicing, system commands like PS QUIT/RESTART should now be protected.

480.23 FIX DOLR INTEGER OVERFLOW
Fri, April 5 2002

When processing the 'TL & SAVE LOG' task after a Supervisor TL, it was possible for the task to occasionally fault with INTEGER OVERFLOW @ 59354000,though other variations do exist. This problem is now fixed.

480.22 PRESENT FP FAM INDICES>99 CORRECTLY
Wed, March 13 2002

The SUPERVISOR FP command will now show family index values greater than 99 correctly in the response. Previously, families of this size would show familyindices indented by one less character, disrupting the column presentation.

480.21 USE DATE NOT DAYLOADED FOR LOAD SCHEDULED CHECK
Mon., March 11 2002

Previously, after a restart or H/L, SUPERVISOR used the stored day of the week (1=Sunday, 7=Saturday) in the SCHEDULE file to determine if that SCHEDULE should be Backtracked or to build a new "today" schedule. However, this mechanism would fail if a SCHEDULE file was loaded that had been active from an earlier or later date but had the same day of the week marker. This behaviour was noticeable after the manual overload of live *SCHEDULE files, for example, from another system. If SUPERVISOR was subsequently restarted on the same day of the week as that held in that old SCHEDULE, regardless of its date, then no Backtracking or new "today" schedule would be loaded.

SUPERVISOR now uses the date the live SCHEDULE was last loaded to perform any necessary backtracking or initiating the load of a new days schedule. Also, the "LOADING SCHEDULE.." message has been altered to include the date this SCHEDULE was last loaded.

480.20 CORRECTION FOR VERSION
Wed, March 6 2002

Version 480.19 introduced a bug which caused limits added to inline Evals to fail. Ex EV (MSG:TRUE) [4] DISP (TEXT) would fail.


This change fixes the following minor bugs:

Allow the use of {} in inline Opals.

Set the Supervisor usercode to SUPERVISOR is the config variable SUP_USCODE is not present.
Allow a "left paren" as the first character of an inline Opal. Ex. TT / ((WM))

480.19 MINOR FIXES FOR COURSE EXAMPLES
Wed, February 27 2002

This change fixes the following minor bugs:
Allow the use of {} in inline Opals.
Set the Supervisor usercode to SUPERVISOR if the config variable SUP_UCODE is not present.
Allow a paren as the first character of an inline Opal.
Ex. TT / ((WM))

480.18 UNABLE TO RUN RECORDER ON 48.1A9 MCP
Thu, January 31 2002

On recent levels of MCP 48.1 (IC 1A9 for example), SUPERVISOR would not be able to process the RECORDER utility. Any OPAL RECORD statements or TT REC commands would appear to be ignored. This problem is now resolved.

480.17 CORRECTIONS TO TERM USERCODE ENTRY
Wed, January 30 2002

It has been found that in some circumstances the Usercode entered via the 'formed' screens was not being stored. This has now been corrected.

In addition the entered Usercode is now made 'Active' immediately as was previously the case when simple command line input was used. The TT TERM response has also been enhanced and will now indicate whether the Usercode associated with a Station was passed by COMS at log-on time or has subsequently been changed by the User.

480.16 ALLOW USERCODE/ACCESSCODE IN LOWER CASE
Fri, January 25 2002

The initial implementation of 'Forms' screens for TT TERM USER input did not allow input of the Usercode or Accesscode in lower case. This has now been corrected and either upper or lower case will be accepted

480.15 ALLOW XMIT TO CURSOR ON TERM USER FORMS
Thu, January 24 2002

The initial release of 'Forms' screens for TT TERM USER input did not work correctly when the input terminal had 'Forms Xmit to Cursor' set. This has now been corrected.

480.14 FORM INPUT FOR TT TERM USER
Thu, January 24 2002

Entry of Usercode and possible Accesscode for Supervisor Window stations has now been enhanced to use 'Forms' screens. Access to these screens is via the existing 'TT TERM USER' command although it should be noted that any further input on this command line eg. a Usercode will be ignored and must be re-input on the form screens.

The 'TT TERM USER +/-' commands remain unchanged.

480.13 CORRECT POSSIBLE MONITORING FAULT
Thu, January 24 2002

When running with the MONITORING option set it was possible for Supervisor to fault when attempting to log a message with a large text size. This problem has now been corrected.

480.12 FIX EVAL LOGNO CONTINUATION
Mon, December 10 2001

The change described by Dnote 480.08 caused a problem with the LOGNO modifier such that EVALREADER would continue to scan backwards searching all remaining earlier logs. Also, the limit of 10000 evals has now been restored for any EVAL that uses a BEFORE modifier without any accompanying AFTER condition. Both these isses have ben addressed.

480.11 FIX HO INCONSISTENCIES AND OMISSIONS
Thu, December 6 2001

Previously, SUPERVISOR was not correctly adding supplementary file information, especially for codefiles, when processing the users of a specific file in a TT HO command. Also, SUPERVISOR will now add the caveat, where appropriate, that user mix information for temporary files cannot be provided. Similarly, an HO command for a specific file that is currently temporary, but is also empty, may be unable to return valid user mix information.

These issues and some other minor formatting problems have been resolved.

480.10 IMPROVE REPORT PRINTING
Wed, November 28 2001

Many of the reports generated by Supervisor did not allow for 132 character line width, this generated minor issues such as truncation and unnecessary line wrapping e.g. as shown by a PRINT SCHEDULE. Now, Supervisor will always generate 132-character printing.

480.09 FIX LOGICAL ASSERT WITH MSG EVAL
Wed, November 28 2001

If any MSG EVAL was active at the time a TT DO or TT WHEN was executed, it was possible for SUPERVISOR to fail the initiate the action and issue a LOGICAL ASSERTION error. This problem, which could manifest itself as other errors, was caused by the EVAL_READER task sharing global arrays with the main Supervisor stack. This problem is now fixed.

480.08 RELAX 10000 LOG EVAL LIMIT IF SEARCH CONTROLS SPECIFIED
Wed, November 28 2001

Previously, LOG EVALs would unconditionally have a 10,000 evaluation limit associated with the EVAL regardless of the user search parameters that were specified. This restriction has been relaxed; if the EVAL has any date or time controls, specifies a log number or a range of logs, then the EVAL limit will not be assigned.

480.07 BETTER ENTER LOGGING AND HANDLING OF AFTERS
Wed, November 28 2001

SUPERVISOR will now provide better logging when processing any ENTER command especially for commands such as WHEN, DO and AFTER. Previously, any command errors were written into the TASKFILE generated by ENTER but it was not always possible to see which command generated the response. Further, failed AFTER commands were not even logged.

Now, SUPERVISOR unconditionally writes all ENTER commands into the taskfile along with associated errors. For all AFTER commands, both successful and failure responses are also included.

480.06 FIX LIBUSERLIST
Thu, November 1 2001

The LIBUSERLIST attribute in Supervisor was incorrectly returning stack numbers instead of mix numbers. This has been corrected.

480.05 PROTECT AGAINST BAD NOTICES
Date: Tue., October 9 2001

In some versions of MCP 4.7 tape notices for unlabelled tapes have a corrupt value in the title index field. This would cause Supervisor to fault but recover. The tape would not be entered in the database. If a subsequent similar fault occurred Supervisor could enter a permanent loop.

Both problems have been corrected.

480.04 PASS WINDOW USERCODE FOR TP COMMANDS
Date: Tue., September 25 2001

SUPERVISOR will now include the logged-on usercode for any TP command that originates from a Supervisor COMS window. For those sites that run with additional TRIM command security using SYS_METAUSERDATA, this allows users under the Tape Librarian usercode complete read-write access to the database. Previously, users would have to use the TERM USER command to change the current user or prefix the TP command with a TT FOR.

480.03 BETTER GEN HANDLING FOR NFT COPIES
Date: Thu, September 13 2001

The generation calculations used in the Tape Library are based on the Job number of the task which created the tape. Two tapes with the same rule Id and same job number are considered the same generation. This causes a problem for tapes created using NFT, since they all have the Job number of *SYSTEM/DSSSUPPORT which is normally constant between Halt Loads. To overcome this problem Supervisor now checks to see if the JobId of a tape notice matches the title associated with the DSSSUPPORT SL. If it is, then the Jobnumber is set to the same value as the Mix number.

480.02 IMPLEMENT 'STRICT' OPTION FOR ODTSEQUENCES
Date: Tue., September 11 2001

This note should be read in conjunction with OPAL Dnote 470.21.

This change enables the User to impose some control over the use of String Expressions as Statements within an ODT Sequence. Opal treats isolated or 'dangling' Strings as ODT commands that are to be input to the System. While it is possible to code an ODTSEQUENCE using isolated Strings to generate the required System input message it is far better to avoid this practice and use the ODT Statement to generate input messages. It has often been the case that erroneous input messages have been generated by inadvertently coding isolated Strings usually by using a String Expression as a Statement. The following ODTSequences provide an examples of isolated String Expressions that will generate System ODT commands:-
   TT DEFINE + ODTS ONE: 
     "1234DS0"  
   TT DEFINE + ODTS TWO: 
     PUTSTR("A","1234DS0"); 

both of which would generate the ODT command '1234DS0'.

The first example shows the non-preferred method of generating an ODT command but the second is less obvious as the intention was probably to use the value now stored in Variable 'A' i.e. '1234DS0' at a later stage of a more complex ODTSEQUENCE. The preferred implementations of the above examples would be:-

   TT DEFINE + ODTS ONE: 
     ODT("1234DS0")

Here the ODT Statement is used to generate the ODT command rather than just an isolated String.

   TT DEFINE + ODTS TWO: 
     STORE("A","1234DS0");

In this case the PUTSTR has been changed to STORE which itself returns a NULL String after storing the String '1234DS0' in Variable 'A'.

This change provides a Supervisor option STRICTODTS to control the compilation and execution of ODTSEQUENCE code using String Expressions as Statements as illustrated in the first set of examples.

When an ODTSEQUENCE is defined either directly by terminal input or from an ENTER file Opal will now detect and report any String Expressions used as Statements as 'Unsafe constructs'. If the STRICTODTS option is not set the compiled code will be stored but marked as 'Unsafe'. If the STRICTODTS option is set the construct will be reported as a Syntax Error and no code will be stored.

When an ODTSEQUENCE is invoked either directly via a TT DO or as the target of a TT WHEN ..... DO the 'Unsafe' marker is examined. If the code is marked as 'Unsafe' and the STRICTODTS option is set the DO or the WHEN will not be started and an error message indicating that an attempt has been made to execute 'Unsafe' code will be displayed.

The option, which is reset by default, can be set by entering:-

   TT SO + STRICTODTS 
 or 
   TT SO + 8

The TT DEF ? response has been extended to show a 'U' (Unsafe) marker against any ODTSequences held in the Supervisor Schedule that contain Unsafe constructs.

When this level of Supervisor is first run all existing ODTSequences will be marked as 'Safe' as it is not possible to detect 'Unsafe' code without re-compiling an ODTSEQUENCE. Sites wishing to take advantage of this new feature are advised in the first instant to carry out a review of existing ODTSEQUENCE code by saving all ODTSequences to a file and then test compiling them from the file using the Stand Alone Opal Compiler. All existing ODTSequences can be written to a file as follows:-

   TT SAVE ODTS = AS (MyUser)<MyFileName> ON <MyPackName>

The code sequences in the output file can then be re-compiled using the Stand Alone Opal Compiler as detailed in the accompanying Opal Dnote.

Alternatively, the STRICTODTS option should be RESET and then the file should be reloaded into Supervisor as follows:-

   TT ENTER = FROM (MyUser)<MyFileName> ON <MyPackName>

This will cause all the ODTSequences previously SAVEd to be loaded and re-compiled. The TT DEF ? ODTS = response will then indicate which if any of the ODTSEQUENCES contain 'Unsafe' constructs that may require correction.

480.01 INHIBIT TYPE 48 STATUS CHANGE REQUEST
Date: Fri., August 31 2001

Changes on MCP 48.1 introduced a new STATUS_CHANGE_REQUEST type (48) which tracks the capture of application programdumps. This new type was inadvertently being captured by Supervisor during normal running, causing numerous faults. So, for the time being, this new type will not be supported as significant work is required in re-organizing the SCHEDULE file. This problem has been resolved