Logo
Dnote

Supervisor Notes

Mar 2024 630.06 And ODTS using TT

A Situ linked to an ODTS using a TT function could miss a waiting entry if the wating entry arrived while in the TT code.

Jan 2024 630.05 Better first eval for mx=w when TT in ODTS

Version 630.04 left a window where some waiting entries could be missed

Nov 2023 630.04 Fix for mx odts free eval with tt

If a MX ODTS used the TT function, the first 'free eval' when it started could miss some entries.

Aug 2023 630.03 Correction to previous patch

When removing debug lines in version 630.02 a critical line was also removed. This has been restored. Pdumps from Supervisor are almost useless if the version of Supervisor is not the latest. Supervisor will now override the PDTODISK system option and produce a taskfile for programdumps.

Aug 2023 630.02 Fixes for TT function in Afters

A TT TRIGGER command scheduled in the same minute as a normal command would cause the normal command to be ignored unless the TT TRIGGER was later in the list.

Two EV(METALOG:... commands scheduled in the same minute would cause both to fail with LOGICAL ASSERTION errors.

Using EXTRAENTRY (or LASTEVAL) in a METALOG ODTS would fail with a LOGICAL ASSERTION error. Lasteval will now process the last METALOG entry scanned. This will be the last entry seen by the SITU not necessarily the most recent processed by the ODTS

Jul 2023 630.01 Update for MCP 63

Update for MCP 63

May 2022 620.11 Bad readschedule if ODTS is changed while running

If an ODTS which preformed a TT("DO...) was redefined while it was running, a read schedule error could occur.

TT FLEX LC CLOSE may now be used to close the Flex Log.

Mar 2022 620.10 Report if a PD context eval stops due to the limit reached

For a PD context do or eval with no Flex options, the scan stops after 255 files. This is now logged as PD LIMIT reached.

Mar 2022 620.09 Allow PDT for long container names

If the first level of a non usercoded container was longer than 17 charcters, Supervisor would truncate the level and PDT would not find the container.

Mar 2022 620.08 Supervisor will no longer upcase passwords

When using the TERM USER command to switch usercodes on a Supervisor window, passwords will no longer be upcased.

Jan 2022 620.07 SetMeUp STRING PROTECT

If a Fault in SetMeUp of a Custom Context was trapped by a Try Exception, a STRING PROTECT occurred at 23239000 in SMErr because the Error Message was not in the correct format.

Jan 2022 620.06 Protect against duplicate eoj notice

In rare cases it was possible to receive a duplicate eoj notice for a job started using the WFL funtion. If this happend it could cause a subsequent string protect failure. A warning will now be logged and the duplicate ignored.

Aug 2021 620.05 Support new NameID function

Supports the new Opal function NAMEID.

Corrects a problem that when SO MONITORRING was OFF logging to the Supervisor log for slots starting or finishing was disabled.

Aug 2021 620.04 Discard extra colon after FOR ...

If stopping an active when locked by a Usercode it was easy to have an extra colon in the command. Espec Ex FOR MYUSER/<pw> :WHEN MYSITU DO This would give no obvious error but would treat :WHEN SIDU DO as if is was valid WFL syntax which would fail with a sytax error. In this situation the colon will now be ignored.

May 2021 620.03 Fix bug in CALL DO LOGCONTEXT

Version 620.01 left a bug which could cause Supervisor to fail when updating the use time of a Logcontext ODTS used in a CALL DO.

May 2021 620.02 Prevent schedule read error related to call do statements

Frequent Call DO statements for one ODTS could occasionally cause a spurious schedule read error.

Accessing FI attributes via a .MX method in a loop with a wait statement could cause an invalid index.

Apr 2021 620.01 Better CALL DO for log contexts

A General LOG ODTS may now CallDO an odts of any other log context, as long as the LogMajor and LogMinor attributes are valid for the new context.

A new system attribute LOGCONTEXT is available to identify contexts matching particular logmajor and logminor values. Ex

   LOGCONTEXT(1,2) or LOGCONTEXT (1,4) would both return LOGEOJ.

If a call do is executed with the wrong major and minor types, it will be terminated with an error: "Invalid log record for this Call DO"

Oct 2020 610.08 Prevent spurious schedule validation error

In rare circumstances Supervisor could hang with a spurious schedule validation error. This would happen if an ODTS, which waited for any reason, was redefined while it was waiting. The attribute Term(LogonStation), if called from an ODTS run via Externalcommand, will now return the mix number of the program which called externalcommand.

Oct 2020 610.07 Prevent blocked slot on EV of PD situ

An Eval of a PD context situ requires a parameter of a Title or Directory If none was provided, an error was displayed but a slot was left in use in a queued state.

Oct 2020 610.06 Allow text to be passed with the Trigger command

Additional text may now be passed with the trigger command.

If there is a trigger which does a DO of a message ODTS:

AF TRIGGER LESH TT DO TRIGGER_PARAM

Then TRIGGER LESH 123456789

will do TRIGGER_PARAM with the TEXT 123456789

The online help for SO MONITORING has been improved.

Jun 2020 610.05 TT Custom MSG SIZE ERROR
Jun 2020 610.04 Correct the user used for Coms function

Version 610.03 Incorrectly used the Supervisor usercode instead of the ODTS usercode for Coms functions.

Jun 2020 610.03 Coms function will run with ODTS user

In some cases the COMS function could produce non fatal security violations, depending on Coms secuity options. The Coms function will now run under the usercode of the calling ODTS. This allows any ODTS hitting the problem to be run USING TT FOR <user>/<password> to avoid the problem. A descriptions of the MON log category has been added to HELP LOG.

Apr 2020 610.02 Better logging when an error on INPUT

When an ODTS faulted while executing an Input statement it was hard to determine exactly what the problem was. More information is now logged to help determine the problem.

Mar 2020 610.01 Log active slots if max whens exceeded

When the maximum number of Supervisor slots has been exceeded it can be difficult, after the fact, to determine what caused the problem. Now a slight variant of the EV ? response is logged when this occurs. It will only be logged the first time the error happens unless the waiting entry warning of the error has been AXed.

Mar 2020 600.07 Support myself(country)

MYSELF(COUNTRY) Returns the country identifier associated with the Supervisor task, which is normally the same as SYSOPS COUNTRY.

Jan 2020 600.06 GetStringAttValue Invalid Index

An Invalid Index fault occurred in GetStringAttValue at 16819000 when more than 96 attributes were referenced within the same Custom Context ODTS.

Nov 2019 600.05 Better error when trying to stop ODTS

If a when slot had been started For a usercode and an attempt was made to stop it without specifying a prefix, the error mesage was not very helpful. Instead of reporting that the slot was not active, a message indicating that the slot is running under a usercode is returned.

Sep 2019 600.04 Better tracking of external command

Input from Externalcommand occasionally fails with a "WHEN CANCELLED" error. This change logs Externalcommand input and adds an extra debug display when the error happens.

Jun 2019 600.03 Custom Context MAXWAIT

When a Custom Context is linked, a dependent asynchronous task is initiated to perform the LINKLIBRARY, to avoid hanging SUPERVISOR. If the LINKLIBRARY is not completed within 1 second, the task is DSED. To allow that wait timeout to be modified, the syntax for invoking a Custom Context has been enhanced. The syntax currently allows a "... ,<eval limit>]" after the library specification. The new syntax is "... ,<modifier list>]", which includes that syntax.

<modifier list> ::=<modifier> | <modifier list> , <modifier>
<modifier> ::= <eval limit> | <wait limit>
<eval limit> ::= <integer> | MAXEVAL = <integer>
<wait limit> ::= MAXWAIT = <integer>

Apr 2019 600.02 Fix occasional random CALL DO Faults

A call DO from a Custom context would sometimes fail. The was most likely if a TT("DO ... had been done.

Mar 2019 600.01 Update for MCP60

Update for MCP 60 Some preparation for 2035 changes to time(6) format

Dec 2018 590.12 Better reporting of dynamic variable errors

Dynamic variable errors are now reported as DYNAMIC VARIABLES instead of 'FUNCTION VARIABLES'. A DYNAMIC VARIABLE longer than 17 characters will now produce a slot dump.

Oct 2018 590.11 Fix bad truncation on MCP 59 : MSG command

On mcp59 the formatting of messages returned to Supervisor from the MSG command changed. This meant that if TT TERM TRUNCATE was TRUE , a message with one word followed by a long string of characters with no spaces, would be truncated after the first word.

Aug 2018 590.10 Protect against bad SLOT command

A SLOT command for a slot which had never been used would cause Supervisor to fault with an 'illegal stackswap' error.

Now an error of ODT SEQUENCE NOT RUNNING will be returned.

Jun 2018 590.09 Better checking for AF TRIGGER START commands

If the AF trigger command was used to schedule a START command, the job was not correctely checked for Syntax. Valid jobs could be flagged as having syntax errors and jobs with syntax errors allowd. Both problems have been corrected

Mar 2018 590.08 Suppress password in log for ODT prefix command

In most cases passwords are suppressed in the Supervisor Log. An exception, which is now fixed, was for commands entered from a Supervisor window with an ODT prefix.

Ex. ODT USER=USER/PASSWORD;COPY .....

Mar 2018 590.07 Clear inuse flag for CALL DO ODTS

The inuse flag for an ODTS (as seen as a * in a DEF ? ...= response) was left on for an ODTS Called from another ODTS. It is now only on for a Called ODTS which is active and not cached.

Feb 2018 590.06 Protect againt fault on .PD when many rows

Protects against a possible string protect error when using a .PD method on a file with a large number of rows.

Feb 2018 590.05 Term + when logging could cause an invalid index

Logging of the TERM + command would show a corruped prefix and could fault with an invalid index.

Jan 2018 590.04 Fix truncation of monitor log entries

The log entries of type Mon (Monitor) could have the first 16 characters deleted. This would happen for ODT statements where the parent ODTS was not running from a Usercode.

Apr 2017 590.03 Fault if too many concurrent WFL jobs started

A WHEN context WHEN slot could fault if too many concurrent WFL jobs were started from an ODTS.

Jan 2017 590.02 Bug when evaluating PD context with no Flex Key

An eval of a PD context situation which required Flex support, when no Flex key was present would correctly return the error FLEX REQUIRED, but would leave an entry in the wheN slots, marked QUEUED. Ex

 EV (PD:SEGMENTS>1000) DISP (TITLE,,SEGMENTS) (BOB)= on DEV:FL
          

The when Slot is now correctly cleared out in this situation. In some cases an attempt to stop the slot could cause Supervisor to fault with an 'illegal stackswap' error. The only way to clear such a 'Queued' slot is to quit and restart Supervisor.

Dec 2016 590.01 Avoid string protect error when writing log

A particularly long Supervisor Log entry could cause a string protect error. The string passed to the WFL function could cause a string protect error for some lengths.

Nov 2016 580.20 Prevent invalid index on spurious log commands

Version 580.10 introduced a bug where a Log command of more than 252 characters would cause an invalid index. Spurious log commands may now be entered with impunity

May 2016 580.19 Fix the WHEN CONTEXT attribute CONTEXT

Version 560.15 introduced a bug which prevented the CONTEXT attribute from returning consistent values.

May 2016 580.18 Avoid Flex Fault using PD context

A DO,DISP or EVAL of a PD context Opal which used Flex options could fail with an invalid index in Flex. This would happen if the total number of such calls since Supervisor Started was > 32767.

Apr 2016 580.17 Remove debug code

Version 580.16 contained some code which wrote unnecessary messages to the Supervisor log file.

Apr 2016 580.16 Prevent dup logging for 'for user' commands

Previously a command prefixed with a 'FOR Clause' was logged twice.

Ex 11:08:26 Odt:WIN(22)FOR BOB TT DO BOB 11:08:26 Odt:WIN(22)FOR BOB TT DO BOB

This is no longer the case.

It is now possible to delete an entry in todays schedule without specifying and workday or holiday qualifiers.

Ex. AF -1000 START WFL Instead of AF - 1000 TODAY IF WORKDAY START WFL

This change support the Opal patch which corrects the fault.

Mar 2016 580.15 Fix bug in userdata(RU)

Version 580.01 of Opal introduced a bug which would cause Supervisor to fault if the USERDATA(RU) attribute was used. This change support the Opal patch which corrects the fault.

Mar 2016 580.14 Move logging of rebuilds to Supervisor log

Previously messages reporting opals in use during a rebuild were written to the system log. Now, if the Supervisor logging option (SO + 47) is set, they are written to the Supervisor log with a category of ENT.

If SO 47 is not set, logging is still done to the System log. Also fixed a bug introduced in 580.05 which suppressed some rebuild messages. They were displayed as messages but not written to the screen.

Jan 2016 580.13 Fix nextactivityday attribute for ordinal after entries

The after context attribute, nextactivityday, now returns the correct value for after entries scheduled on a specific day of the month.

Ex

  AF 2300 ON 5th Day .............................
          

Oct 2015 580.12 Retry for DBS function when DMSUPPORT not found

If a call on the DBS function was made on a database which was just starting the call might fail with an 'UNABLE TO FIND DMSUPPORT' error. The function will now try three times to link to DMSUPPORT. Any failures will be logged with a category of Dbs.

Ex. 09:18:29 Dbs:ERROR 1:UNABLE TO FIND DMSUPPORT:DBS #3388

The number following ERROR is the count of the tries.

Oct 2015 580.11 Fix bug in DBS function

If the user reported in the TT USE command for 'USER for TAPELIB' did not exist then the DBS function would fail, generating a Security violation. This has been corrected.

The Copy generated by the TT SAVE USERDATA or TT RELOAD USERDATA would fail if the Supervisor usercode did not have Secadmin privilege. Supervisor now checks this and does not allow the command if the secadmin privilege is not set.

The help for TT SAVE and TT RELOAD has been brought up to date.

Oct 2015 580.10 Enhanced LOG command

If the response to a LOG command is truncated, due to the record limit, the record limit is now reported along with the date and time of the last record scanned.

A new 'time spec' option MORE has been added which allows a new log command to continue from where the previous one stopped.

Ex.

LOG MSG + will stop after 500 entries have been found. LOG MSG MORE will continue from the minute where the previous command stopped.

Oct 2015 580.09 Fix Help for USE FAMILY

Fixes a minor formatting problem in TT HELP USE FAMILY

Sep 2015 580.08 Better check for past times

This change corrects a bug introduced in Version 570.11. The check to ensure AF entries did not go into past times, only worked when there was already something scheduled for that time.

Sep 2015 580.07 Warn when SECADMIN privilege needed

If the TT TL command is used and the log files should be moved (DL LOGS Neq Supervisor's Family for Logs) the Supervisor usedcode must have SECADMIN privilege to be able to copy the Secuitylog. If this is not the case then the copy will abort with a security violation.

Although it would be possible for Supervisor to give the Usercode Secadmin privilege, it was decided that this was best left in control of a human secadmin.

Supervisor will now return an error on a TT TL command and TT USE Family command if it would mean moving log files when the Supervisor usercode does not have Secadmin privilege.

Ex Usercode SUPERVISOR must have SECADMIN privilege when Logs are to be moved

Also fixes a bug introduced in version 54.021 which prevented and OBJECTS call with a limit parameter from truncating the result.

Ex OBJECTS(PRINTS:TRUE,1) would return all print request numbers not just the first one.

Aug 2015 580.06 Better usercode checking for users on ODTS

Version 560.05 introduced a bug which would occur in quite rare situations.

If an ExternalCommand of TT FOR USER1 DO ODTS1 was entered and ODTS1 included a command of ODT("TT FOR USER2 DO ODTS2") then if USER1 was not the ODT security user an 'invalid user USER2' error would occur. If USER1 was privileged and User2 was not privlieged this should have been allowed. It is again allowed. The problem could be detoured by changing the ODT("TT FOR USER2.. to TT("FOR USER2 DO ...

Jul 2015 580.05 Fix occasional missing ODT command responses

If the number of usable lines on a Supervisor window was changed after the first AA, A, or PER command was entered then no continuation screen would be offered for subsequent responses to these commands. The usable lines are determined by TERM LINES - TERM FIRST. Any other Supervisor window with a differnt number of usable lines than on the original window at the time of the first command would have the same problem.

Ex. On a Window with TERM FIRST 2 and LINEs 47 Enter an AA command (it will have continuation pages) TERM FIRST 3 A subsequent AA command will have no continuation.

An AA command on a Window where TERM LINES-TERM FIRST is not 45 will have no continuation

Jun 2015 580.04 Protect Save AS.. from long parameters

If a DO with a very long parameter was running at the time a SAVE AS was executed, DECOMPILE/SCHEDULE would fault. This change also corrects a bug where the save parameter would have been incorrectly upcased.

Apr 2015 580.03 Protect against dynamic variables > 17 chars

If a dynamic variable key was > 17 characters for a non .perm variable the internal variable tables would be corrupted and unexpected values could be returned. In particular if a long name was used for a global variable then a SHOW GLOBAL command would fault. This change will kill any ODTS using a dynamic variable > 17 chars with the error: Function variable key cannot be > 17 chars in ODTSEQUENCE. This restriction does not apply to .perm variables.

Ex. DO($S:="123456789012345678";$$S:="TEST") would get the new error DO($S:="123456789012345678";$$S.Perm:="TEST") would be fine

Mar 2015 580.02 Fix the PING function.

Version 560.18 introduced a bug in the Ping function. Any ODTS which executed a ping would not finish. It would stay in the state Wait(Switch). This change corrects the problem.

Dec 2014 580.01 Fix bug when scanning multiple logs

Fixes a bug which caused the first log in the *Sumlog directory to be processed last when running LOG based eval. If any of the *Sumlogs before it were outside the range specified in the eval then it was never processed.

Nov 2014 570.18 FIx fetch on eta systems

The MX attribute FETCH now works on ETA systems.

Oct 2014 570.17 Don't quit TapeLibUpdater on TT DELINK DSILIB

If USE SILO was set to DSI+UNISYS and a SEND TM QUIT was done, it was possible that Supervisor/Tapelibupdater would quit. This could cause problems on Slave systems (OPALTAPELIB:NO MATCHING PORT TLPORT [1]). A TT DELINK DSILIB could cause the same problem. Supervisor/Tapelibupdater will no longer quit in those situations.

Oct 2014 570.16 Better formatting of Help Attributes

The Help Attributes command when passed a pattern, lists the attributes in two columns. Depending on the length of the longest attribute name to be displayed and the width of the screen, some data could be truncated. Now if either an entry in the first column or the second column would be truncated, only the entry in the first column is show.

Previously PRINT ATTRIBUTES would indent each entry by the length of the longest attribute name. Now only entries with a name longer than 15 characters are indented more than 15 characters and then only by one character more than the attribute length.

Oct 2014 570.15 Fix invalid index in FP command

This fixes a bug where FP could fail with an invalid index. The problem would only happen if the number of units scanned by FP was 1024 + a multiple of 100. Ex. 1124,1224,1324 etc

Oct 2014 570.14 Extend HELP TK

The Help TK command has been updated.

Sep 2014 570.13 Fix corrupted AFter entries in the schedule.

When converting schedules older than version 19 to later versions it was possible that some corruption of AFter entries could occur. �This would cause Supervisor to fault when interrogating these entries or when using the SAVE SCHDULE AS command. This version checks for such corruption and corrects it.

Sep 2014 570.12 Handle sumlog wrapping from 65535 to 1

This change fixes a problem when the sumlog index (the last level of old sumlog titles) wrapped from 65535 to 1.

Supervisor would not 'see' sumlogs with an index higher than the current log. �This caused problem in the SHOW LOGS command and in an EVAL which scanned the log with a time range in one of those logs.

It also protects against an MCP bug which could cause a System DUMP on multi processor systems when AN ODTS executed a WFL("CHANGE or WFL("REMOVE statement and did not use the ON JOBMESSAGE DO; statement to wait for the remove to finish. �The dump would happen when the ODTS finished at exactly the same time as the Remove or Change finished. This is a very rare occurrence.

Aug 2014 570.11 Fix AF LOAD TT AF - bug

A convenient way to skip a scheduled entry on a specific day is to use the AF LOAD syntax to schedule a particular entry to be skipped.

Ex. If there is a scheduled entry TT DO TEST set to run a 0700 every Friday then we could skip Friday August 8 by entering: AF LOAD ON DATE 8/8/14 TT AF - 0700 TT DO TEST.

As soon as the schedule is loaded on Friday Aug 8 the 'TODAY' entry for 0700 TT DO TEST would be deleted.

This mechanism is used the the Advanced Scheduling Opals to skip a specific scheduled entry.

Unfortunately the mechanism did not work for a time of 0000, it now does.

Jul 2014 570.10 Suppress DBSHANDLER program dump

The Supervisor DBSHANDLER task is used to handle requests for DMSII attributes. On occasion the DMS call will hang and the only option to get things going again is to DE the DBSHANLER. When the DS of DBSHANDLER is done by Supervisor for a suspected hang, a program dump is no longer taken.

Jul 2014 570.09 Recognise FMTLTO5 density when a Tape is SNed

When a tape was SNed on an FMTLT05 drive the density set in the notice passed to the Tape Library Database was set to 0. This caused such tapes to appear as BPI800 tapes in the Database.

Jul 2014 570.08 SSE CORS

Allow HTTP Headers to be set before upgrading to an EVENTSTREAM.

Jun 2014 570.07 Protect against seg array in TL_DEBUG code

Version 570.06 introduced an error when the TL_DEBUG config was set. Any TM command returning a response longer than about 225 characters would cause a seg array error.

Detours a problem where DSI COMMANDER unexpectedly returns an error when the command seems to complete normally. We now return the expected response but log that an error was returned.

Fixed a bug where after a restart TM did not report that silo was set.

Related Tapemanager changes. Corrected a bug where output tapes with a DSIPOOL were not passed to DDI to be mounted. If an INSILO tape is requested then SCNONE is assigned as a serial number. Requests to load this tape are no longer passed to Unisys or DSI. Added new debug code controlled by TL_DEBUG config variable.

Jun 2014 570.06 Allow linkage to alternate CSCLIB

Detours a problem when calling DSI Commander entry point where TM CONFIG HOST messages seemed to be ignored.

Added a Config option to allow an alternative to DSI CSCLIB to be called

TT ($TL_DSISUPPORT.Config:="DSISUPPORT")

to change from CSCLIB to DSISUPPORT
          
TT ($TL_DSISUPPORT.Config:=Empty)
To return to CSCLIB

Added new debug capabilities controlled by Config variable TL_DEBUG. Turn on debug with TT / ($TL_DEBUG.CONFIG:="TRUE") Turn off debug with TT / ($TL_DEBUG.CONFIG:=Empty) Test debug with TT / ('"',$TL_DEBUG.CONFIG,'"')

An empty response means OFF
If TL_DEBUG is set:
Extra information is logged when calling DSI entry point COMMANDER

Related Tapemanager changes:

Tapemanager will now pass input tape requests to DSI when appropriate. If a tape mount is to be handled by DSI, a flag is now set to prevent TapeServer from handling the same request.

May 2014 570.05 Allow TM DSIQUIT and TMDSISTART

When TAPEMANAGER receive a SEND TM QUIT when DSI libraries are active Supervisor will delink from DSI Libraries.

New TM DSIQUIT and TM DSISTART commands allow stopping and starting DSI without quitting TapeManager. Useful in a mixed DSI,UNISYS environment. See HELP TM for details.

Apr 2014 570.04 Add new options to TM command

Adds some features to the TM command. This command is only valid when METALOGIC/TAPEMANAGER is SLed as TAPEMANAGER. See HELP TM for details.

Fixes a bug in the VDBS context, where on a multi processor system with many active databases the DBSHANDLER task was sometimes incorrectly identified as being frozen and was subsequently DSed.

Apr 2014 570.03 Fix a bug when the first action after midnight

Fixes an infrequent problem where the change of day at midnight could be missed if Supervisor was very busy with running Opal code in the minutes before and after midnight.

Also adds the missing help to the SO NOTTLOGGING option.

A new Version of Metalogic/Tapemanager has been released at this time. It is now possible to have Metalogic/Tapemanager call the entrypoint Check_Tape_Assignment in a local copy of Tapemanager before calling the Metalogic Check_Tape_Assignment. This is controlled by a config variable TL_LocalTM. If this variable is set to the SLed name of a library then we will call the entrypoint in that library first. The variable can be easily set from Supervisor.

Ex TT / ($TL_LOCALTM.Config:="MYMANAGER")

The Getscratch call in Tapemanager may now be suppressed for selected scratchpools even if TT USE GETSCRATCH is set. This is controlled by the config variable TL_EXPOOLS which should be set to a list of pools to be excluded from Getscratch calls. Ex TT / ($TL_EXPOOLS.COnfig:="NONSILO,"AUTOLOADER")

Dec 2013 570.02 Fix AF ON nth .....

Corrects a bug introduced by Version 541.55. It prevented the 'ON nth' variant of the AFTER command from working correctly. Ex AF 1000 ON 5th DAY ..... would appear in the schedule as expected but would not run.

This change also relaxes the restriction that a colon is not allowed in a time in the After command.

AF 10:20 ....... is now valid. It has a potential problem in very unlikely cases.

If an attempt is made to schedule the command 59OK at a time before 00:12 then the syntax AF 12:59OK will schedule the command OK at 12:59 For the desired command to work enter 0012:59OK or 00:12:59 OK

Dec 2013 570.01 When Log AllTypes

A WHEN (LOG:TRUE) DO (SHOW(LOGTEXT)) [20] which failed with the message 'Major 255 is out of range 0..38' should now work.

Nov 2013 560.20 SSE

Implement RESPOND(EVENTSTREAM,<mimetype>,<text>,<url>) function.

Sep 2013 560.19 Fix af ? ON DATE for nth workday

Ex.

AF 0900 on 1st workday: TT DO TEST

AF ? ON DATE 2/12/13 (or 12/2/13 with US dates)

Would not show the scheduled entry.

Only scheduled entries which fell on the 1st of any month would be correctly reported.

Sep 2013 560.18 New USE GETSCRATCH

A new option , GetScratch, has been added to the USE command.

+- GETSCRATCH -+- NONE -----+--+--------+------+
|              |- REPORTED -|  +- SILO -+      |
|              |- CREATED --|                  |
|              +- USED -----+                  |
          
HELP USE GETSCRATCH
---------- SUPERVISOR HELP ----------
USE GETSCRATCH variant of the USE Command:
---- USE --- GETSCRATCH -+- NONE -----+----------+----------|
|- REPORTED -+-- SILO --+
|- CREATED --|
+- USED -----+

This variant is only valid on Trim systems and will only have an effect on Systems using the Metalogic Tapemanager. If set to a value other that NONE then TAPEMANAGER will attempt to assign scratch tapes to tasks requesting output tapes. If SILO is set then only tapes in the tape silo will be assigned. If no tapes are available in the silo the serial 'SCNONE' will be assigned. If SILO is not specified then if a Silo is available and contains scratchable tapes then a tape will be assigned from the silo, otherwise any scratchable tape will be assigned. The main parameter determines how scratchable tapes are selected. REPORTED means select the tape with the oldest SendDate. CREATED means select the tape with the oldest creation date. USED means select the tape with the lowest use count.

Fixed a problem where messages could be incorrectly queued for an ODTS which was waiting for the result of a WFL function call. The ODTS would run as normal but an EV ? could eventually report queued messages.

Sep 2013 560.17 WebSockets

Implement RESPOND(WEBSOCKET,<mimetype>,<text>,<url>) function.

Aug 2013 560.16 Internal change only

Minor changes to correct previous patch not being saved before release.

Aug 2013 560.15 Improvements to WFL function

This change improves the WFL function and related attributes.
If an optional ID is passed to the WFL function it it may now be the same ID as used with a previous WFL call as long as the previous Job has terminated.

There are four WHEN context attributes related to the WFL function.

WFLFREE (WHEN)
Returns INTEGER
Semantics : Returns the number of slots available to start jobs via
                  the WFL function.

WFLIDS (WHEN)
Returns STRING
Semantics : Returns an identity list, delimited by comma, of all
                  jobs with a WFL identity.  This is a parallel list that
                  matches WFLS. Job entries without an identity will be
                  shown as '*'.

WFLS (WHEN)
Returns STRING


Semantics : Returns a list of all active jobs or jobs started with
                  an Id, as a jobnumber list, invoked by the WFL function from
                  this slot.  Inactive Jobs return -ve Job Numbers.  The list
                  returned is parallel to the list from WFLIDs


WFLSACTIVE (WHEN)
Returns INTEGER
Semantics : Returns the number of active jobs processed by this
                  slot using the WFL function.

 

Four matching options have been added to the MYSELF/WHENID attribute.

MySelf(WFLS)
String - A list of all active jobs or jobs started with an Id, as a
            jobnumber list, invoked by the WFL function from this slot.
            Inactive Jobs return -ve Job Numbers.  The list returned is
            parallel to the list from WFLIDs.

Myself(WFLSACTIVE)
Integer - The number of active jobs or jobs with an id
              processed by this slot using the WFL function.

Myself(WFLIDS)
String - an identity list, delimited by comma,of all jobs
            with a WFL identity.  This is a parallel list that matches WFLS.
            Job entries without an identity will be shown as '*'

Myself(WFLFREE)
Integer - The number of slots avilable to start jobs via
              the WFL function.

 

A new system attribute has been added:

WFLERRORTEXT (SYSTEM)
Returns STRING
Parameters : 1. INTEGER
Semantics : The parameter is the value returned by the WFL
                  function.  Returns the error text for that value.  Returns
                  the empty string if there is no error (Value Geq 0).

Aug 2013 560.14 TEXTINFO

Internal change to VALIDSCHEDULE to use a local TEXTINFO array.

Jul 2013 560.13 Fix SAVE USERDATA

This change reinstates the SAVE USERDATA command broken by version 550.23.

Jun 2013 560.12 INVMAJ

Previously, an attempt to define an OPAL Log Program would fail if the Major or Minor Type were not valid. This protected both WHENs and EVALs, but meant that an EVAL of a Log from a newer MCP might not be accessible. Now, an OPAL Log Program may define any Major and Minor Type, and the check for validity is only done when attempting to initiate a WHEN. An EVAL can select any Log Record Type which exists in the Log.

Jun 2013 560.11New DBACCESS Context

Allows monitoring of DBACCESS Log Entries (Major type 1 Minor type 35).
See HELP ATT =:DBACCESS for details of available attributes

May 2013 560.10 Support new Define attribute OpalId

The new Define attribute OpalId returns a identifier which can be used to link to this define.

Apr 2013 560.09 Fix Invalid index in FP command

This change corrects an invalid index fault which could occur if an FP command was entered on a system with more than 1023 packs.

Mar 2013 560.08 UsableBNAHost

Add USECOPYWRITE Option as SO(45). This option can only be set when there is a valid CopyWrite Key. When set, SUPERVISOR will use CopyWrite to access files that are at a Remote Host, instead of BNA.

Feb 2013 560.07 ReleaseID

Add the ReleaseID from the PRODUCT attribute of the codefile to the WS page.

Jan 2013 560.06 Fix the '>' total in the FP command

The totals in the '>' column for multiple families and all packs showed the maximum available space value. Conversely when using the :Max option the max available space summary colums showed totals.

Jan 2013 560.05 ExtCommand UserCode

A SEG ARRAY error could occur with an EXTERNALCOMMAND because INPUTMESSAGE thought it had found a USERCODE in the message, but it should not have been looking for one, since the USERCODE was stored in the TERM tables by EXTERNALCOMMAND. What it thought was a USERCODE was not in fact a USERCODE but some left over rubbish, which made the formatting procedure fault.

Jan 2013 560.04 InvInxTlRec

Accessing a Tape Library attribute such as TLVOLUMEID(SERIALNO) on a SLAVE system could cause an Invalid Index fault if SERIALNO was not valid, for example the Tape was unlabelled or rewinding.

Nov 2012 560.03 DONTWAIT

If a Connection Library Procedure faulted, the attempt to delink the Library in the ANYFAULT block hung SUPERVISOR. DelinkLibrary is now called with DONTWAIT set for an SMTP DO.

Nov 2012 560.02 SetUpDo

If an SMTP DO was done with no parameter, it faulted and left the slot hung.

Nov 2012 560.01 Allow for large number of commands

It was possible for Supervisor to fail on start up if too many Command Opals had been defined.

Nov 2012 550.24 SMTP

First release of the SMTP context.

The SMTP Context may be used to process RFC822 messages from several sources.

An SMTP WHEN processes RFC822 messages received by the SMTP Server from the network using the SMTP Protocol.

An SMTP DO processes RFC822 messages received from the POP Server using the POP3 Protocol, or by scanning a directory on disk for files with a MIMETYPE (FORMID) of "message/rfc822".

SMTP Server - WHEN <smtp situ> DO <smtp odts>

The SMTP Server is implemented by SL SMTP = *METALOGIC/SMTP. It is a DSS and it is initiated by the MCP when a connection is made on Port 25. It may be installed by RUN *METALOGIC/SMTP.

When an SMTP connection is opened, the SMTP Server attempts to link to a SUPERVISOR SMTP Context WHEN. If there are no SMTP WHENs running, the linkage fails, and the incoming mail is rejected.

If there is an SMTP WHEN running, the SMTP Server receives the incoming mail, in the (QUARANTINE) area, but before finally accepting it, sends an SMTP Object to the WHEN. The SMTP Object contains the attributes of the RFC822 message (HELP ATT = : SMTP), which includes the Envelope, the Headers and a reference to the Mail Body.

If the SMTP OPAL code decides to accept the mail, it is responsible for delivering it to the recipients, or forwarding it using MAIL if relaying, and then issuing a RESPOND(SMTP,"OK") command.

The SMTP OPAL is also responsible for delivering a failure notification to any recipients for whom mail was not able to be delivered.

The SMTP OPAL can reject the Mail using a RESPOND(SMTP,"ERR"), or RESPOND(SMTP,"<statusCode> <status message>"). In this case, no delivery failure notification is needed.

POP Client - DO <smtp odts> [<limits>] pop://<popserver>

The POP Client is implemented by SL POPCLIENT = *METALOGIC/POPCLIENT.

When a DO is done, the POP Client uses the pop: URL to open a connection to a POP Server.

An RFC822 message retrieved from the POP Server is sent to the DO as an SMTP Object, as described above. The <limits> may be used to request that the messages be deleted from the POP Server (DELETE), and to limit the number of lines of each message retrieved (TOP=<lines>).

POP Directory - DO <smtp odts> <flex specification>

The POP Client also provides the capability to search for RFC822 messages on disk. The <flex specification> is provided to FLEX in the same way as a SUPERVISOR PD context. Each RFC822 message selected is returned to the DO as an SMTP Object.

RFC822 Message

An RFC822 message may be thought of as a type of file container. It contains the mail headers (*"headers.txt") and the mail body (*"body.txt"), which may be structured with additional attached files according to MIME.

MAILIOH

Access to an RFC822 message is provided by the CopyWrite MAIL I/O Handler, SL MAILIOH = *METALOGIC/COPYWRITE/MAILIOH. This library is used by CopyWrite, but may also be used by programs or OPALs using normal File I/O. File "#0." is a file which contains the Directory as for other IOHs.

FLEX

          

The RFC822 message may be explored using the FILES command of *OBJECT/FLEX, or using a SUPERVISOR PD context. There are always at least two files, one called *"headers.txt" and the other *"body.txt", and there may be other files which represent the MIME attachments. For Example:

U Flex
Files (*)= IN Mail/20120818/230904/4726904811 on Nucleus
*"headers.txt" : DATA >3<
*"body.txt" : DATA >1<
#Found 2 files [from 2 files]
          

File Attributes

An RFC822 message is contained within a file, and these MCP file attributes are used to store information which may be useful when searching.

PRODUCT   - Contains the From:
NOTE      - Contains the Subject:
RELEASEID - Contains a UUID which uniquely identifies the message.
This is used by POP Clients to detect duplicate
messages.
USERINFO  - Set to 0 by SMTP. It is set to a TIME(6) TimeStamp
when the file has been retrieved by a POP Client,
to indicate that it is no longer a candidate for
download by the POP Server.
          

CopyWrite

Files may be copied out of an RFC822 message using the LIBRARY/MAINTENANCE extensions provided by CopyWrite. For Example:

WFL Task T;T(File Mail(
Title=Mail/20120818/230904/4726904811 on NUCLEUS));
COPY *"headers.txt" As H From Mail(CD,HostName=Local,LockedFile)[T]
#4850 <1> *"headers.txt" copied as (NFT)H to NUCLEUS
          

OBI

          

The RFC822 messages can be explored using OBI, providing Browser access to the headers and attached files.

POP Server

The POP Server is implemented by SL POPSERVER = *METALOGIC/POPSERVER. It is a DSS and it is initiated by the MCP when a connection is made on Port 110. It may be installed by RUN *METALOGIC/POPSERVER.

The POPSERVER is independent from SUPERVISOR.

A client logs onto the POP Server using their MCP UserCode/Password. The POP Server scans their MAIL/= directory for any files which have not been downloaded (FILES MAIL/= ON <family> WHERE USERINFO = 0) and builds a list of the files in the mail drop. The POP Client may then retrieve the RFC822 messages or information about them and it may also delete them using the POP3 protocol.

File Naming Conventions

RFC822 messages received from the SMTP Server are stored under the MAIL/= directory.

RFC822 messages retrieved by an OPAL POP Client are stored under the POP/= directory, unless only a sample was retrieved using the TOP=<lines> limit, in which case they are stored under the TOP/= directory.

SMTP Server MAGUS Configuration Options

SMTP_USERCODE

The SMTP_USERCODE is the name of the usercode which is where
incoming mail is quarantined before being rejected or delivered
to the recipients.
          
If not specified the default is QUARANTINE.
          
The FAMILY statement of the usercode defines where the files
will be stored. If the usercode is not defined, the files are
stored on the same family as the SL SMTP.
          

SMTP_AUTH

If SMTP_AUTH is set to "NONE", then no authentication will be
required. This means that mail from any source will be received,
and passed to the SMTP OPAL context, which can decide what to
do with it.
          

SMTP_GATEKEEPER

If SMTP_GATEKEEPER is set to "ON", then a USERDATA RU check will
be performed before a MAIL FROM command is accepted. If
SMTP_AUTH = NONE, then the SMTP_USERCODE is used as the
Remote UserName, otherwise the authenticated UserName is used.
For Example:
+ RU QUARANTINE OF *ANYHOST
          

Security

This first release is intended only for use on a private network since only AUTH LOGIN,PLAIN are fully implemented.

AUTH CRAM-MD5 is implemented but no secure method of keeping the shared secret has been implemented.

The intention is for a later release to provide a secure connection using SSL/TLS.

Operations

-  The default Port for the SMTP Server is 25, but this may be
changed by modifying the TARGET attribute of METALOGIC/SMTP
to a value > 1024.
          
-  The default Port for the POP Server is 110, but this may be
changed by modifying the TARGET attribute of METALOGIC/POPSERVER
to a value > 1024.
          
-  The POPSERVER, POPCLIENT and SMTP processes will terminate
if sent a HI 99 and there are no open connections.
          

SUPERVISOR DEBUG

TT DEBUG + 38 will set SMTP debugging which is written into the SUPERVISOR Log.

Mail Clients

These Mail Clients have been used in testing,

ThunderBird (12.0) Mail (5.2 OS X 10.7.4) OutLook Express 6 (Windows 2000)

Nov 2012 550.23 Fix selective Enter when FOR entries in file

If an enter file contained entries with a FOR prefix and a selective enter was done from that file then all of the FOR prefixed entries would be processed, even if they did not match the selection.

Examples of selective enters: ENTER DEF BOB= FROM .... ENTER ODTS BOB_TEST FROM .....

This change also fixes a bug where if a SAVE SCHEDULE AS command was entered from a TT function then only SYSTEM context Opals would be saved.

EX. In an ODTS

TT("SAVE SCHEDULE AS *SYMBOL/SCHEDULE ON SAVES")
would not save any Opals which were not of type system.
          

Oct 2012 550.22 Add TK INVENTORY command

Add TK INVENTORY command for sites using Unisys tape silos.

The TK <serialno> Eject command only queues a volume to be ejected.

A new command TK EJECTNOW has been added to tell the ACSLS to process the eject queue.

If Supervisor was started with a config setting for the Schedule Family pointing to a non resident Family it would hang. It will now warn that the family is not available and try to use the DL Jobs family.

The USE FAMILY <fam> for SCHEDULE command fails if *SCHEDULE is already on the new Family. It now gives a clearer error message.

Help for USE FAMILY has been updated to warn that the command will fail if *SCHEDULE is resident on the new Family.

The after command now accepts the IF WOrkday,IF Holiday,EXCEPT HOLIDAY phrases for TODAY. EX.

AF 0900 TODAY IF WORKDAY:.....
AF - 0900 TODAY IF WORKDAY: .....
          

Supervisor Logging is now turned on during Initalisation until the Supervisor Options are loaded from the schedule, where it will turn off if SO LOGGING is not set.

Oct 2012 550.21 CEQ

Internal change.

Jul 2012 550.20 Fix occasional Fault in window_handler

This change fixes a bug where WINDOW_HANDLER would fault on messages send to a Supervisor window which were exact multiples of 6 characters long.

Jul 2012 550.19 Better DBS handling

This change makes some improvements to the DBS function. DBS will now link to databases with non standard DMSUPPORT titles. If a DBS call has not responded within 5 seconds it is assumed to be blocked and will return an error. This 5 second time limit may be altered by setting a config variable SUP_DBSTIMEOUT. This may be set using an inline Opal. Ex. /($SUP_DBSTIMEOUT.CONFIG:="10") This change also fixes a problem where Supervisor would hang on: NO FILE *SYSTEM/BACKUPFILELIST if DLBACK was changed without a Halt/Load.

Jul 2012 550.18 RSTContext

The RSTCONTEXT is a SUPERVISOR Custom Context for processing the MCP RESIZE TRACE Diagnostic Information.

When the ODT Command DO + RST is entered, the MCP initializes its Resize Trace Tables. When a program does a RESIZE, diagnostic information is stored in the tables. The RSTCONTEXT provides access to this information.

The DO - RST ODT Command disables the RESIZE Trace and deallocates the Resize Trace Tables.

An RSTCONTEXT ODTS is a Custom Context ODTS.

Define + ODTS RST(CUSTOM):

Display(ToString);
          

An RSTCONTEXT ODTS is initiated as a DO or an EVAL, and the Object returned is an entry from the RESIZE Trace Table.

DO <odts>[RST ( {path} ) IN SL RSTCONTEXT] {pattern}

The optional <path> may be used to specify the family substitution which will be used to find any codefile which does not have a family name. For Example, DO <odts>[RST(DISK = NUCLEUS ONLY) IN SL ...

The optional <pattern> may be used to filter the CodeFile of the caller of RESIZE. It behaves the same way as the EQW (WildCard Equals) Operator in OPAL.

These attributes are defined for the RSTCONTEXT:

ATTLIST

Returns a list of the Attributes in the RST Context.
          

CALLERCODE

Returns the CodeFileName that contains the code of the
caller of the function that did the RESIZE.
          

CALLERCODETS

Returns the CREATIONTIMESTAMP of the CALLERCODE file.
          

CALLERLINE

If available, it returns the LINEINFO for the CALLERRCW.
          

CALLERRCW

Returns the RCW to the caller of the function that
did the RESIZE.
          

HELP

Returns Attribute Information for the RST Context.
          

RESIZECODE

Returns the CodeFileName that contains the code that
called the RESIZE function.
          

RESIZECODETS

Returns the CREATIONTIMESTAMP of the RESIZECODE.
          

RESIZECOUNT

The count of the times that the RESIZE function was
called from the same code sequence.
          

RESIZELINE

If available, it returns the LINEINFO for the RESIZERCW.
          

RESIZERCW

Returns the RCW to the call on the RESIZE function.
          

TOTALRESIZES

The total number of calls on RESIZE since the last Halt/Load.
          

TOSTRING

Returns a summary of the RESIZE information.
          

Note: The Resize Trace Tables do not contain the FAMILYNAME of

the CodeFiles associated with a RESIZE, so the <path>
and <pattern> may be used to locate a specific codefile.
          

Jun 2012 550.17 VTContext

The VTContext is intended for use with the SUPERVISOR Remote File Scripting capability, which is implemented by the OPAL WFL function.

When a program writes to a Remote File, the message is interpreted by the TD830 Terminal Emulator and presented on the Screen. When Scripting, the Terminal Emulator function is provided by the VTContext.

A message sent to a Terminal through a Remote File is received within the SUPERVISOR JOB Context as a WFLOUT message. This message can be sent to the VTContext to be interpreted.

There are 2 Interfaces to the VTContext.

DO | EVAL <odts>[EDIT IN SL VTCONTEXT] '<td830 message>'

The EDIT interface interprets a message destined for a TD830 Terminal Emulator. The text and control codes are interpreted to create a Virtual Screen.

The <td830 message> must be enclosed in single quotes (') or double quotes ("), and may be preceded by a <string code>, either 7 for ASCII or 8 for EBCDIC.

When the VTCONTEXT has loaded the <td830 message> it sends Message Objects to the ODTS. The type of Message Object is given by the MSGTYPE attribute. %

These MSGTYPEs may be received.

"LOADED" - The <td830 message> was loaded and the Virtual Screen

and its attributes are available.
          

"STARTFORM" - Only sent if the <td830 message> contains a valid

formed screen and the ODTS was started by an EVAL.
          

"FIELD" - If a STARTFORM was received, it is followed by a FIELD

message for each field in the form. The index of the
first field is 0.
          

"ENDFORM" - Indicates the end of FIELD messages.

"TRANSMIT" - This message indicates that an ESC ( (Transmit Page)

command was embedded in the <td830 message>. The
MSGTEXT contains the text that would have been
transmitted at that time.
          

"READSCRATCHPAD" - This message indicates that an ESC RTaaaann

(Read ScratchPad Memory) command was embedded
in the <td830 message>. The MSGTEXT contains
the scratchpad memory read from the configuration.
          

"WRITESTATUSLINE" - This message indicates that the <td830 message>

wrote to the Status Line, the text of which is
in MSGTEXT. The STATUSLINE attribute can be read
at any time to retrieve the current Statue Line
text.
          

"VERSION" - This message indicates that an ESC sp V (Transmit Version)

command was found in the <td830 message>. The MSGTEXT
contains the version information, so that it may be
transmitted using the OPAL Transmit Function.
          

"ASTERISKS" - This message indicates that an ESC RC

(Transmit Asterisks) command was found. The MSGTEXT
contains the uniquely crafted asterisks.
          

This is an example of a VTContext ODTS using the MSGTYPE.

Define + ODTSequence VTF_HELP(CUSTOM):
%  Called for each Field in the Instructions Form
Case MsgType Of
Begin
"STARTFORM":
$S:=FillIn("0","FILES");
Display(SaveAs("FLEXFILESHELP","20"));
"FIELD":
Display("[",FieldIndex,"] ",LocationOf(FieldStart),"..",
LocationOf(FieldEnd)," (",FieldWidth,") ",
FieldType,,",Text=",FieldText);
"ENDFORM":
$FormData:=FormData;
Else:;
End;
          

These attributes are defined for the EDIT Interface of the VTContext.

ATTLIST
Returns a list of the Attributes in the EDIT Interface.
COLUMNOF
COLUMNOF(Index) returns the COLUMN (1..COLUMNS) of the
character at Index.
COLUMNS
The number of Columns 1..COLUMNS in the Virtual Screen.
COPY
The COPY(START,END) copies the data beginning at the
index given by START up to and including the index
specified by END.
CURSOR
The index 0..PAGESIZE-1 of the Cursor.
FIELDEND
The index 0..PAGESIZE-1 of the last data character
in the current or specified Field.
FIELDINDEX
The Index of the Field in the Form -1..FIELDS-1.
FIELDS
The number of Fields 0..FIELDS.
FIELDSTART
The index 0..PAGESIZE-1 of the last data character
in the current or specified Field.
FIELDTEXT
The text in the current or specified Field.
FIELDTYPE
The type of the current or specified Field.
LEFT - Left Justified Unprotected,
RIGHT - Right Justified Unprotected,
PROTECTED - Transmittable Protected
FIELDWIDTH
The width in characters of the current or specified Field.
FILLIN
FILLIN(FIELDINDEX,TEXT) fills in the specified field
with the TEXT supplied.
FIND
The FIND(TARGET,START) Method searches the Virtual
Screen, starting at the index given by START for the
specified TARGET. It returns the Index 0..PAGESIZE-1
of the TARGET or -1 if Not Found. It searches for
an exact match.
FORM
Returns TRUE if the Virtual Screen is in Forms Mode,
otherwise EMPTY.
FORMDATA
Returns the Form data that would be sent to the Host
were the Transmit Key pressed with the Cursor at
the Home Position.
HELP
Returns Attribute Information for the VTContext.
LOCATIONOF
LOCATION(Index) returns the location of the character
at Index as a Co-ordinate (ROW,COLUMN).
MSGTEXT
The Object Message types TRANSMIT,READSCRATCHPAD,WRITESTATUSLINE,
VERSION and ASTERISKS have associated text, which is returned
as EBCDIC.
MSGTYPE
The Type of Object Message is one of
LOADED,STARTFORM,FIELD,ENDFORM,TRANSMIT,READSCRATCHPAD,
WRITESTATUSLINE,VERSION,ASTERISKS.
PAGES
The number of Pages configured.
PAGESIZE
The page size (ROWS x COLUMNS) of the Virtual Screen.
ROWOF
ROWOF(Index) returns the ROW (1..ROWS) of the
character at Index.
ROWS
The number of rows 1..ROWS in the Virtual Screen.
SAVEAS
SAVEAS(TITLE). The current page is formatted as HTML
and saved in a file with the specified TITLE. If any
error occurs, the function returns ERROR:<reason>
otherwise EMPTY.
SPCFY
Location. SPCFY(INDEX) moves the Cursor to Index,
returns the escape sequence for that location. The
escape sequence is returned in EBCDIC.
STATUSLINE
STATUSLINE returns the text of the Status Line.
          

The 2nd VTContext Interface is BUILD.

DO <odts>[BUILD IN SL VTCONTEXT]
          

The BUILD interface may be used to create a Virtual Screen, using Text and TD830 Control Codes.

When the VTCONTEXT has loaded the <td830 message> it sends a LOADED object (MSGTYPE="LOADED").

These attributes are defined,

ATTLIST
Returns a list of the Attributes in the BUILD Interface.
BLINK
BRIGHT
CLEAREOL
CLEAREOP
Return Control Codes.
COLUMNS
The number of Columns 1..COLUMNS in the Virtual Screen.
CR
DELETE
DELETELINE
DOWN
Return Control Codes.
EDIT
Take the TD830 formatted message in P1, translate it to ASCII
and send it to the EDIT Interface. Return the Virtual Screen
created in EBCDIC.
ENDFIELD or EFIELD
ENDHIGHLIGHT
ENTERFORM
ESC
EXITFORM
FF
Return Control Codes.
GOTO
GOTO(ROW,COLUMN) returns the Control Codes for moving the
Cursor to the specified location.
HELP
Returns Attribute Information for the VTContext.
HOME
HOMECLEAR
INSERT
INSERTLINE
LEFT
LF
LEFTFIELD or LFIELD
MOVELINEDOWN
MOVELINEUP
Return Control Codes.
MSGTYPE
The Type of Object Message is LOADED.
PROTECTEDFIELD or PFIELD
REVERSE
RIGHTFIELD or RFIELD
RIGHT
ROLLDOWN
ROLLUP
SECURE
UNDERLINE
UP
Return Control Codes.
WRITE
Returns the text provided in P1.
          

There is an example of using the EDIT Interface to script *OBJECT/FLEX in the file *SUPERVISOR/VTCONTEXT/EXAMPLE, which is available from Metalogic on request.

Jun 2012 550.16 Protect against very big userdata entries

If Supervisor encountered a very big entry (>2100 words)in the Userdata file when evaluating a USER context it would fault with a string protect error. Big entries are usually the result of very long accesscode lists.

Jun 2012 550.15 INPUTMESSAGE Cr

CONTROLLER allows multiple commands, separated by CR to be entered. This is disallowed for the TT function, so that a parameter for an ODTS that contains a CR is not truncated. The TT function is meant to be used for a single activity, with a result being returned in the function value.

Jun 2012 550.14 LSN and FRSN Corrupted

The FILEHANDLE attribute was corrupted if a TT function was used within an ON JOBMESSAGE block and A was modified.

Jun 2012 550.13 WFL Station LogOff

WFL Stations were incorrectly deleted from the Station Table when any Slot terminated.

Use the PrepareForDetach Station Detach Variant when the Station is being used by a Remote File.

Jun 2012 550.12 Protect agains string protect fault

If a big log record was being processed it was possible that Supervisor would get a recoverable String Protect error @79174500

Change to use new MetaLogHelp procedure.

Jun 2012 550.11 Library Link -5

A timing problem could cause the HTTP library to fail while linking to Supervisor. This problem has been corrected.

May 2012 550.10 Silo Bounds

A Bounds Error occurred in SiloHandler because the calculation of the Tape Manager message size was incorrect, and the message ended on a word boundary, so there was no null terminator, the other condition for terminating the scan.

May 2012 550.09 GS36

GET/SET STATUS ERROR #36 229:0009:0

May 2012 550.08 Avoid LicenseKey warning DS

If a LicenseKey warning waiting entry is present at midnight it was possible in rare circumstances for supervisor to DS and restart.

May 2012 550.07 CustUser

CUSTOM Context removed the UserCode from SUPERVISOR instead of assuming the SUPERVISOR MyUserCode value.

Apr 2012 550.06 Custom SetUp Error

If a CUSTOM Context failed linkage, the assumed UserCode was not removed from SUPERVISOR.

Apr 2012 550.05 Support new WHEN context attribute CONTEXT

As well as supporting the new WHEN context attribute CONTEXT, this change also enhances the SITUCONTEXT attribute to also returns the sub context.

Apr 2012 550.04 WaitAndGoCustom

A Custom Context Slot executes code in the Custom Library, which should run under the Usercode of the Slot. When a Custom Context Slot is reactivated by WaitAndGo, the UserCode is Assumed by Supervisor, and when the Slot is swapped out, the UserCode is removed.

Apr 2012 550.03 POST

The POST(<slotno>,<text>) function may be used to post a message to a CUSTOM Context Slot.

Apr 2012 550.02 Fix the USE(SESSION) attribute

The USE(SESSION) attribute would sometimes return the wrong value.

Apr 2012 550.01 Support new WHEN context attributes

Two new WHEN context attribtes have been added. SITUATION gives the name of the situation with a prefix of the command used to invoke it. Ex EVAL MY_SITU. ACTIVITY give the name of the ODTS,COMMAND or DISPLAY with a prefix of the command used to invoke it. Ex DO MY_ODTS.

ODTSequences of type DEFINE now require a type before the name and wildcards are no longer allowed. EX DO MYDEF ODTS MY_ODT. In order to be able to accept input derived from the new attributes above DO MYDEF DO MY_ODT is also allowed. DO is a synonym for ODTS WHEN or EVAL are synonyms for situ. If the parameter passed refers to an Inline Opal then a skeleton entry is returned with only the TYPE,Name and Source attribues valid. Defines with long sources no longer return an empty source attribute.

A bug where stand alone evals would fail when the STRICTODT supervisor option was set has been corrected

Mar 2012 541.93 Allow delink from HWERRORSUPPORT

TT DELINK HWERRORSUPPORT will now delink Supervisor from the SLed HWERRORSUPPORT library.

Feb 2012 541.92 Don't add slot info for Log command

The Opal LOG statement will now not include originating SLOT(n) information in the the text of the log entry. To retain the original behaviour, ADD #("Slot(",Myself(slot),"):") to the beginning of the text to be logged.

Feb 2012 541.91 Prevent loop on TL command

If the family specified to be 'Used for Logs' was no the same as DLLog and was not available then a TL coming from the Schedule would loop repeatedly releasing logs. This problem has been corrected.

The same problem would have happened with SAVE SCHEDULE in the schedule if the 'Family for Saves' was not available.

Feb 2012 541.90 Log TM,TK,TP and MAIL

The TM,TK,TP and MAIL commands are now logged in the Supervisor log.

Jan 2012 541.89 Recognise CLASS= and QUEUE= as WFL commands

If a string passed to the ODT statement or WFL function is intended to be treated as a WFL command it is always safest if it starts with "BEGIN JOB;" This tells the ODTS statement that this is a WFL Job. Without BEGIN JOB Supervisor has to guess if the command is for CONTROLLER or for a JOB.

If sent to controller the usercode is not passed. Controller recognises some commands as being WFL commands and adds a "BEGIN JOB;" to the front and passes the message to controlcard. The reserved words recognised by controller as of MCP 54.1 are: RESTORE,ADD,PASSWORD,SECURITY,STARTJOB,EXECUTE,COMPILE,PROCESS,DISPLAY, ARCHIVE,CATALOG,REMOVE,CHANGE,UNWRAP,ACCESS,VOLUME,MODIFY,BEGIN,RERUN, ABORT,PRINT,ALTER,MKDIR,CLASS,QUEUE,BIND,COPY,USER,END,PTD

Supervisor uses this same list to determine WFL commands.

This change corrects a small bug in Supervisor. When checking for WFL reserved words it expected the word to be terminated by a space so class =2 would have worked but not class=2.

Dec 2011 541.88 Fix deletion of old 'ON DATE' Entries

The special syntax used to delete old 'ON DATE' entries from the schedule was broken by version 540.96. It now works again:

AF - 0-2359 ON DATE < <dd/mm/yy> @=

A new warning message has been added to report the number of entries skipped because they are locked under a usercode.

The HELP for the PRINT modifier has been improved.

Nov 2011 541.87 Avoid MESSER(0 ... Msgs)

Fix some oddities with long EV MSG searches.

Nov 2011 541.86 KeysContext

The KEYSCONTEXT is a SUPERVISOR Custom Context which allows an OPAL script to process a KEYSFILE.

DEFINE + ODTS KEYS(CUSTOM):

If Expired="TRUE" then
Show(Name,,ExpiryDate);
          

DO KEYS[KEYS IN SL KEYSCONTEXT] { <filetitle> }

If a <filetitle> is not provided, then *SYSTEM/KEYSFILE ON <hlfamily> is assumed.

Both EVAL and DO are supported for the Keys Context.

The KeysFile must have a FILEKIND of KEYSFILE.

The Object for the KEYSCONTEXT is a Key Record from a KEYSFILE.

The attributes defined include,

ALLOWREKEY,ALLOWRELICENSE,EXPIRED,EXPIRYDATE,HEXKEY,INSTALLTYPE,
LICENSEID,NAME,PASSWORD,VERSION.
          

A Keys Item has been added to the Operating System Group in OBI. It can be used to produce a report on the SYSTEM/KEYSFILE.

The EXPLORE Action in a PD Report on a KEYSFILE produces a Keys Report using the selected Keys File.

Nov 2011 541.85 Allow assume usercode on supervisor window

This change extends the facility described in dnote 541.67. If the ODTS defined the the installation data String1 field is preceeded by () then the ODTS will run under the usercode of the window. Without a () prefix the ODTS run with no usercode.

Nov 2011 541.84 Better responses from ODTS with wait via TTInterface

If an ODTS is invoked via the Marc TTINTERFACE then any output is returned when the ODTS waits or ends. If the ODTS waits then no further output will be sent.

Ex. WAIT(.1);SHOW("Test");

if in an ODTS started via TTInterface would not return "TEST" to
the MARC station.
          

This restriction has been relaxed slightly. If a wait is for time and the total time waited is less than 10 seconds then the output will not be sent until the end of the ODTS, any non timed wait or a timed wait which takes the total waited time above 10 seconds.

Ex. SHOW("ONE");WAIT(5);SHOW("TWO");WAIT(6);SHOW("THREE")

if in an ODTS started via TT Interface would return
ONE
TWO
          

Nov 2011 541.83 Custom CALL DO

Allow Custom Attributes in a CALL DO.

Nov 2011 541.82 Fix ExtraEntry code when sorting

This change fixes a bug introduced in Version 541.74 which stopped code protected by IF ExtraEntry from working on an Eval with a SORT clause.

Oct 2011 541.81 Raw

Internal Change.

Oct 2011 541.80 Larger SORT Keys

This change allows Sort keys up to 512 chars (from 256).

Oct 2011 541.79 Allow 42 days in range passed to AFTER eval

The number of days in a date range specified in the eval specs of an eval of and AFTER context Situation was previously restricted to 40. This has been increased to 42 to allow scanning up to 6 weeks. Ex. EVAL (AFTER:TRUE) [@25/9/2011-5/11/2011] DO AF is now valid.

Oct 2011 541.78 Detour DSI bug and avoid dump on long commands

This change detours a bug in DSI's DSISUPPORT library which prevented the TM command from working.

It also corrects a bug which cased a program dump out of Supervisor/Windows if an ODT command longer than 255 characters (when multiple embedded spaces had been deleted) was entered.

Sep 2011 541.77 Fix in-line OPAL handling of MX context

If the SITU and ODTS/DISP specifications of a MX-based EVAL or WHEN were both in-line (i.e. not previously DEFINEd) then the MX context was not automatically assumed by the DISP or ODTS and had to be manually supplied. No other contexts were affected. This problem, introduced by SUPERVISOR 541.74, has been corrected.

Further, using the TITLE modifier with a LOG-based EVAL command to specify an individual SUMLOG did not always work correctly, causing SUPERVISOR to continue processing other SUMLOGs in the same directory, if they were present. This problem has also been fixed.

Sep 2011 541.76 Allow alternate catalogs for VL context EVAL

It is now possible to pass the name of an alternate CATALOG file to an EVAL context script using the same syntax as LOG EVALs:

EVAL (VL:TRUE) [TITLE=(TEST)SYSTEM/CAT210711 ON DEV] DO VL
          

In this case, SUPERVISOR will extract the Volume Library from the non-live CATALOG and process all volumes found. Further, if a FLEX STATISTICS file is available with the same directory as the alternate CATALOG then that STATISTICS file will be used. In the above case, the STATISTICS file would have to be named:

(TEST)SYSTEM/CAT210711/STATISTICS ON DEV
          

Sep 2011 541.75 Optional DEFINE compression and enable ZIP array

A new SUPERVISOR Option called COMPRESSDEFINE has been implemented. If this option is set (SO+COMPRESSDEFINE) then SUPERVISOR will use Metalogic's MZIP technology to compress Opal DEFINE sources as they are written into the SCHEDULE file. Although there is a CPU overhead associated with deflation (DEFINE +) and inflation (DEFINE ? and SAVE DEFINE), most DEFINE sources can compress to 20-25% of the original size or better for larger Opals.

Since the SO COMPRESSDEFINE setting applies to all DEFINE + or ENTER actions, it is possible to override the default action by using the SET or RESET COMPRESS directive with an individual DEFINE:

DEFINE + ODTSSEQUENCE TEST(MX) SET COMPRESS:
          
DEFINE + ODTSEQUENCE TEST2(PER) RESET COMPRESS:
          

Note that SUPERVISOR does not compress Opal sources that are less than 2 segments (360 chars) in length.

With the recent increase in the size of OPAL scripts that can be stored in the SCHEDULE from 255 to 2184 segments (see SUPERVISOR DNote 541.74) then even larger scripts can be stored if they are compressed with MZIP.

Sep 2011 541.74 Allow bigger Opals/Compress DEFINE source

Previously, the combined size (source+generated code lengths) of an Opal program held in the SCHEDULE file could not exceed 255 30-word segments. Although this could be detoured by using ENTER REFERENCE or DEFINE FROM (both of which store the original source file title and not OPAL source), this meant that the original source file would always have to be present to recreate the DEFINE.

This 255-segment restriction has now been removed and combined Opal source+code now has a maximum value of 2184 segments, allowing very large Opal scripts to be stored (8x the previous limit). A SCHEDULE conversion to Version 22 will be performed on the site SCHEDULE file when this SUPERVISOR is installed.

Sep 2011 541.73 C74Context

The C74CONTEXT is a SUPERVISOR Custom Context which allows an OPAL script to process a COBOL74 Data Definition.

DEFINE + ODTS C74(CUSTOM):

If (ELEMENTARY="TRUE" AND FILLER="FALSE") then
Display(LEVEL,,NAME,,PICTURE,,USAGE);
          

DO C74[C74(TITLE="*SUPERVISOR/C74CONTEXT/TESTDATA ON DEV")

IN SL C74CONTEXT]
          

The Object for the C74CONTEXT is a Data Item Definition.

These attributes are defined:

BLANKWHENZERO,BYCONTENT,BYREFERENCE,COLUMNSPECIFIED,
ELEMENTARY,FILLER,JUSTIFIED,LEADINGSIGN,LEVEL,NAME,OCCURS,
OCCURSMAX,OCCURSMIN,OFFSET,PICTURE,REDEFINE,SCOPE,SEPARATESIGN,
SIGN,SIZE,SYNCHRONIZE,USAGE,WITHLOWERBOUNDS.
          

The OFFSET attribute gives the offset in 4-Bit Digits.

The SIZE attribute gives the size in Bits.

Sep 2011 541.72 LinkPDEF

Apply UserData Attributes when Linking to Custom Context.

Sep 2011 541.71 LInkTask

Assume Slot UserCode before Linking to Custom Context.

Sep 2011 541.70 XMLCONTEXT/2

Notes omitted EventType of "ENDDOCUMENT".

Sep 2011 541.69 XMLContext

The XMLCONTEXT is a SUPERVISOR Custom Context which allows an OPAL script to process an XML Data File.

Define + ODTS RSS_Test(Custom):

If (EVENTTYPE = "STARTELEMENT") AND (LOCALNAME="link") then
#Link:=1;
If (EVENTTYPE = "ENDELEMENT") AND (LOCALNAME="link") then
#Link:=0;
If (EVENTTYPE = "CHARACTERS") AND (#Link = 1) then
Display(TEXT);
          

DO RSS_Test[XML IN SL XMLCONTEXT] (TEST)RSSTEST ON NUCLEUS

In this example, an RSS feed was downloaded into the file (TEST)RSSTEST using an HTTP(XHR) OPAL, and then processed using the XML OPAL RSS_Test, defined above.

The XML Context only supports a DO or an EVAL.

The Parameter to the XML DO or EVAL may be either a file which contains an XML Document, or an XML Document which begins with <?xml..., however in this case the XML Document is restricted to fewer than MAX_DCMESSAGE_SIZE bytes.

The XML Context interface is based on the SAX ContentHandler Interface.

The EVENTTYPE attribute specifies the type of Object, and it corresponds to a method of the SAX ContentHandler interface.

The EVENTTYPEs and their associated attributes are,

"STARTDOCUMENT"           -
"STARTELEMENT"            - (NamespaceURI,LocalName,QualifiedName,
Prefix,Attributes)
"ENDELEMENT"              - (NamespaceURI,LocalName,QualifiedName,
Prefix)
"CHARACTERS"              - (Text)
"PROCESSINGINSTRUCTION"   - (Text)
          

Non-SAX EVENTTYPEs

"PARSEERROR"              - (Text)
          

These attributes are defined,

EVENTTYPE  - The type of object being processed by the OPAL code.
LEVEL - The hierarchical level of the element being processed.
The Document is Level 0, and the Root Tag is Level 1.
NAMESPACEURI - The NameSpace URI either on the element, or
inherited by the element, if specified.
LOCALNAME - The local name of the Tag, without any NameSpace Prefix.
QUALIFIEDNAME - The local name of the tag, with a NameSpace Prefix,
if specified.
PREFIX - The NameSpace Prefix if specified.
ATTRIBUTES - The list of attributes and their values if specified
on a Tag. It is returned in JSON Format, suitable for
use with the Distribute(",",JSONObject) OPAL Function.
TEXT - For "CHARACTERS" it is the text content of the tag, including
any WhiteSpace. For a "PROCESSINGINSTRUCTION" it is the
content of the Processing Instruction. For a "PARSEERROR"
it gives the reason.
          

DTD Entities are not decoded. The Translate(EntityDecode) OPAL Function may be used for intrinsic entities such as ampersand.

Sep 2011 541.68 Better WHEN limit exceeded monitoring

SUPERVISOR will now display a waiting entry whenever an attempted WHEN or DO command causes the maximum number of WHEN slots to be exceeded. The waiting entry shown below will persist until manually acknowledged or SUPERVISOR is restarted.

ACCEPT:WARNING!!No slots available, WHEN Limit[40] has been exceeded!!
          

The waiting tasks is called:

(SUPERVISOR)SUPERVISOR/WHENLIMIT/EXCEEDED
          

Also, an EVAL of a WHEN context script will now respect the use of the LASTEVAL/EXTRAENTRY attribute instead of ignoring it.

Sep 2011 541.67 Add INPUTONLY facility for Supervisor Windows

A new feature has been added to Supervisor to allow restricted access to Supervisor Windows.

First define an Installation Data item where String1 is set to the ODTS you will use to process input from the window. EX.

ID - INSTALLATION DATA ACTIVITY                          COMS
Action:  INQUIRE
CReate  MOdify  INquire  DElete  GO  HOme       (Press ..
SEarch  FIrst   LAst     NExt    PRevious  DUmp
Installation Data Name  . . . .  SCHED
Valid Window Name                ALL
Integer1  . . . . . . . . . . .  0
Integer2                         0
Integer3  . . . . . . . . . . .  0
Integer4                         0
Hexadecimal1  . . . . . . . . .  NONE
Hexadecimal2                     NONE
String1 . . . . . . . . . . . .  ASMN_MENU
String2                          NONE
String3 . . . . . . . . . . . .  NONE
String4                          NONE
Installation Data Link Name . .  NONE
          

Then DEfine a new MCS window with Supervisor as the MCS and your new Installation Data.

EX.

W - WINDOW ACTIVITY (MCS)                                 COMS
Action: INQUIRE
CReate  MOdify  INquire  DElete  GO  HOme       (Press SPCFY for help)
SEarch  FIrst   LAst     NExt    PRevious  DUmp
Window Name. . . . . . . . SCHED
Subaddress
Window Type. . . . . . . . M   D - Direct  R - Remote-File  M - MCS
Virtual Terminal Name      DEFAULT
Maximum Users. . . . . . . 0              Maximum Dialogs. . . . . . 1
Notify Open (Y/N) and Text N
Notify On (Y/N) and Text . Y     REFRESH
Installation Data Name     SCHED
MCS Window specific fields:
Truncated Results (Y/N). N
Hostname or Domain Name  NONE
MCS Title                METALOGIC/SUPERVISOR
Remote Window Name . . .               Single Window (Y/N). . . . N
          

With this setup ?ON SCHED will open a Supervisor window (without checking Supervisor Window Security). It will then DO ASMN_MENU (or whatever ODTS you specified in the Installation Data). The ODTS will communicate using SHOW and INPUT. Any data entered when there is no Input function waiting will be ignored and "Station busy" will be sent to the last line of the window.

The intent of this change is to give more precisely controlled access to Supervisor by allowing the defined ODTS to filter the commands allowed.

Sep 2011 541.66 Offload METALOG evals to EVALREADER

Previously, a maximum of 4000 entries was enforced for any EVAL of a METALOG context script, regardless of time range. This restriction has been removed but, as a consequence, all METALOG EVAL calls will now use the EVALREADER mechanism (as with LOG context EVALs). This change means that there is effectively no limit to the number of log records scanned so very long time-range EVALS can be performed if the relevant log files are present.

If no time specification is provided then a mandatory maximum of 500 evaluated log records is applied.

Aug 2011 541.65 Show EXCLUSIVE file marker in HO response

The HO command will now highlight files that have been opened by an application with EXCLUSIVE=TRUE. From a normal HO interrogation, such file entries appear with 'x' following the user count:

HO DEV SCHED=
          
-Tmp--Users----Size----------------- Name -------------------
1x     57600  *SCHEDULE
          

Or for an individual file:

HO DEV SCHEDULE
          
--------------------- File is in *Exclusive* use by 1 User ------
35707\35707 *METALOGIC/SUPERVISOR
          

Aug 2011 541.64 Allow multiple METALOG categories

For EVALs of the METALOG context, it is now possible to pass a list of categories in the time specification parameter by using the CATEGORY modifier:

-- CATEGORY  -+-----+---+-- <Category> --+----------------
+- = -+   +<<---  ,  ------+
          

Only log entries that have match categories in this list are returned to the caller. Each category must be 3-characters in length using commas to separate individual types in the list. The use of CATEGORY is only available to the METALOG context. Some examples:

EVAL (METALOG=TRIM:TRUE) [CAT MSG] DO TRIM_LOG
EVAL (METALOG:TRUE) [@BACK 20 CAT=MSG,WHN,ODT] DO SUPER_LOG
          

Aug 2011 541.63 Fix occasional window UNRECOGNISED REQUEST

With certain T27 emulators on faster systems, users going onto new SUPERVISOR windows would occasionally see the message UNRECOGNISED REQUEST appear. This change attempts to resolve this problem.

Aug 2011 541.62 Fix problems with same context use of TT

If a TT function was called from an AFTER, SL, METALOG or SESSIONS Opal script and TT executed a script of the same context then indeterminate results would occur, causing the calling Opal to use corrupted attribute information. This behaviour has been corrected.

Aug 2011 541.61 DCO

Deny File Assignment if a program attempts to open a Remote File to a non WFL Function Supervisor Station.

Jul 2011 541.60 Resolve FOR CHARGE usage problems

Previously, usage of the CHARGE modifier with commands that used multiple FORs could have caused those commands to fail to inherit the appropriate CHARGECODE. Note that this would only happen if both FORs specified a CHARGE. For example:

FOR META/PW CHARGE FRED DO (TT("FOR TEST CHARGE BERT DO ZZ"))
          

The above would have intended the ZZ ODTSequence to be run with a CHARGE of BERT but, in reality, it would have executed with no CHARGECODE. The activity would then have failed if CHARGECODENEEDED was set on the TEST usercode. These inconsistencies have been corrected.

WFL requests that are handled by SUPERVISOR will now correctly log any CHARGE usage into the SUPERVISOR log whereas it was omitted before.

Jul 2011 541.59 Dnote not in use

Dnote not in use.

Jul 2011 541.58 CZ

Internal Change.

Jul 2011 541.57 Fix AF entries for today when hol and workday

This change fixes a bug where adding a new AF entry using AFTER +, for Workdays , would not go into today's schedule if an existing matching entry for 'ON HOLIDAYS' was already present. Deletion of an entry 'ON WORKDAYS' could incorrectly delete an entry in TODAY for 'ON HOLIDAYS'.

Jul 2011 541.56 Provide key expiry warnings at midnight

SUPERVISOR will now issue a waiting entry after initialisation, or the load of a new day's Schedule at midnight, if the Metalogic licence keys for any of its modules have expired or are due to expire within the next 30 days. Keys for Supervisor, Trim and Advanced Scheduling are all checked.

The following waiting entry shows that the Advanced Scheduling module will expire in 6 days:

---Job--Task-Pri---Elapsed------ 1 WAITING ENTRY --------------------
          
*60353/60362 95 :04 (SUPERVISOR) (SUPERVISOR)SUPERVISOR/
LICENCEKEY/WARNING
SUPERVISOR:ACCEPT:Metalogic Keys:ADVSCHED:6 days left.

Note that even if a module appears as EXPIRED, it will continue to operate normally until the MAGUS library is restarted.

Jul 2011 541.55 Improve NEXTACTIVITYDAY processing

The AFTER attribute NEXTACTIVITYDAY will now return correct values for AFTER activities that use modifiers such as 'ON nTH DAY' and its been processing overhead has been reduced.

Also, activities such as 'ON nTH DAY EXCEPT HOLIDAYS' would not have been displayed correctly by an AF ? or written by a 'SAVE SCHEDULE AS..' command.

Jul 2011 541.54 Implement VALIDMAIL attribute

A new attribute, VALIDEMAIL, is available to SUPERVISOR allowing the caller to validate an email address passed in as a parameter. VALIDEMAIL is implemented using an entrypoint in the MAILLIB library. An address without a hostname (i.e. no '@' part) is accepted and VALIDEMAIL will automatically use the default domain set from MAILLIB. The guidelines referred to in RFC 822 are used in the address check and VALIDEMAIL will return a mnemonic value if an error is found. Various error conditions are returned to the caller. Please see HELP ATTR VALIDEMAIL for more information.

Jul 2011 541.53 Don't track scheduled entries for WFL function

Previously, an ON JOBMESSAGE block would have used a scheduled entry notification to store information about a new job invoked from an active job (instead of the actual BOJ) triggered by the Opal WFL function.

If the scheduled entry was actually a library invocation then SUPERVISOR would erroneously record the library as a new job entry for which it would subsequently never see an EOJ. This caused the slot calling the WFL function to hang indefinitely. This behaviour has been corrected.

Jul 2011 541.52 Graceful close on ?close on INPUT

Entering ?CLose on a supervisor window will no longer cause an ODTS, waiting on Input via the INPUT function, to fault. The ODTS will terminate normally.

When a Supervisor window is closed using the WINDOW - command a simple "Window closed" message is shown instead of "SUPERVISOR: Your Window Session has been terminated".

Jul 2011 541.51 Fix TL COPY of SECURITYLOG from non-DISK family

After a release of the system SUMLOG, SUPERVISOR will now automatically find and copy the associated SECURITYLOG regardless of the location of DL LOG. Previously, only DL LOG set to DISK was guaranteed to work.

Jul 2011 541.50 Fix RELOAD vs.SHOW UTIL/FLEXLIB error

A variety of fixes have been provided with this change:

1. Interrogating a SHOW UTIL command after any RELOAD SCHEDULE command

would cause an INTEGER OVERFLOW at 49866000 and the command to fail.
A SUPERVISOR restart would be required to fix this issue.
          

2. If an in-line WHEN or EVAL was locked under a usercode, then any

attempt to disable the slot by its name (with a FOR modifier) would
fault with an INVALID INDEX at 66003000. A SUPERVISOR restart would
be required to clear the slot.
          

3. Attempting to DO or EVAL a PD Opal script without a valid FLEXLIB in

the SL function table would cause a SEG ARRAY at 23235000 instead of
generating an error message.
          

4. When an OPAL script faulted because of an programmatic issue,

SUPERVISOR showed an incorrect message to all SUPERVISOR sessions
instead of the expected 'SUPERVISOR <fault details>, RECOVERY
INITIATED' message.
          

Jul 2011 541.49 Custom AttInfo

Internal Change.

Jul 2011 541.48 Fix wildcard ENTER and FOR..DEFINE

Previously, the ENTER command which used wild-cards to select DEFINE names from an external file would have failed to compile any DEFINEs that were locked with a FOR usercode. For example, if the following DEFINE was held in a file:

FOR META DEFINE + ODTSEQUENCE TEST_DEF:
          

The command 'FOR META/pw ENTER DEF T= FROM <file>' would have failed to find and compile the DEFINE. This problem is now fixed.

Jun 2011 541.47 Resolve further EXCEPT HOLIDAY n issues

The change described in DNote 541.45 still did not totally resolve all issues with the use of the 'EXCEPT HOLIDAYS n' modifier with the AFTER command. In particular, certain combinations of ON CUSTOM and EXCEPT caused some activities to not be activated on the appropriate date. These issues have been corrected.

Jun 2011 541.46 Fix Show fir lines=Term width

The show statement now correctly handles lines exactly the length of the output terminal.

Ex If A terminal was 80 characters wide the following would give the expected answer:

TT / (REPEAT("1",80),/,Repeat("2",80))

But

TT DO (SHOW(REPEAT("1",80),/,Repeat("2",80)))  
would display an extra blank line and would not push down the correct number of lines

Jun 2011 541.45 Fix ON CUSTOM..EXCEPT HOLIDAYS offset problems

The use of ON CUSTOM with EXCEPT HOLIDAYS n DAYS AFTER modifiers did not correctly schedule activities that should have been executed on days that were not holidays. Further, multiple custom activities that were scheduled using 'ON <dayofweek> IF CUSTOM...EXCEPT HOLIDAYS n' would cause the activities to be unexpectedly executed on days that they should not have run. Both these problems have been fixed.

Jun 2011 541.44 Restore AF LOAD entries in AFTER EVAL

AFTER LOAD entries were not being returned by an AFTER context EVAL if a specific date or date range was provided. This problem has been corrected.

Jun 2011 541.43 CCAI

Fix EVAL and SORT of Custom Contexts.

Jun 2011 541.42 Save input param in save schedule as..

The DO commands in the symbolic schedule file created by

SAVE SCHEDULE AS .... 

will now include the original parameter passed to the ODTS.

Jun 2011 541.41 Fix STRING PROTECT when logging REMOTESPO comma

Previously, the logging of TT commands from a MCP REMOTESPO station would have generated a STRING PROTECT fault at 88680400 if the originating station name was longer than 18 characters. This problem has been fixed.

Jun 2011 541.40 Support for CUSTOM implementation

A new dates command called CUSTOM has been implemented. Similar to WORKDAYS and HOLIDAYS, CUSTOM allows multiple special dates to be assigned for regular site usage throughout the year. These dates are available for AFTER scheduling activities and OPAL scripting.

---- CUSTOM ------+--------- ? -------------------------+----I --
+----+-----+-- <gregorian date> ------+
+<<---------- , ----------------------+
          

Similar to ON HOLIDAY and ON WORKDAY, a new AFTER modifier called ON CUSTOM has been implemented. Similar to ON HOLIDAY and ON WORKDAY, AFTER activities armed with ON CUSTOM are only executed on dates that are in the CUSTOM days list. For example:

AFTER + 0001 ON CUSTOM:TT DO CUSTOM_SCRIPT
          

The above AFTER will cause activity entries written into the SCHEDULE file for today (if the time is in the future) and for all 7 days of the week, SUNDAY to SATURDAY.

A major change with ON CUSTOM is the ability to offset a CUSTOM by a value of 15 days in the future. This allows a site to perform special actions on specified days later than a CUSTOM date. The ON CUSTOM syntax has been modified to allow an optional '+' clause.

AFTER + 0001 ON CUSTOM+2:TT DO CUSTOM_SCRIPT
          

In the above case, this AFTER will only be triggered two days after any CUSTOM date. The same feature has been extended for the ON HOLIDAY modifier:

AFTER + 0030 ON HOLIDAY+3:TT DO HOL_3DAYS_AFTER
          

Here, this AFTER will be executed 3 days after any HOLIDAY specified in SUPERVISOR's holidays list.

More complex handling has been implemented with both ON CUSTOM and ON HOLIDAY combinations and also permit AND HOLIDAY or EXCEPT HOLIDAY clauses:

AFTER + 0001 ON CUSTOM+2 AND HOLIDAY+1:TT DO CUST_HOL
          

For the above, if two days after a CUSTOM date is NOT a holiday then this activity will be executed. If CUSTOM+2 is, however, a holiday then the activity will be shifted a further day forward i.e. effectively CUSTOM+3.

AFTER + 0001 ON CUSTOM+1 EXCEPT HOLIDAY 2:TT DO CUST_HOL
          

EXCEPT HOLIDAYS, when following ON CUSTOM or ON HOLIDAY, now allows an optional numeric value. If the CUSTOM+1 date is not a HOLIDAY, then the activity will be executed; if, however, CUSTOM+1 maps to a SUPERVISOR holiday then the activity is postponed 2 days into the future. So, where CUSTOM+1 is a holiday, the activity is effectively scheduled as CUSTOM+3.

Similarly, EXCEPT HOLIDAYS can be used with ON HOLIDAY+n:

AFTER + 0030 ON HOLIDAY+1 EXCEPT HOLIDAYS:TT DO HOL2
AFTER + 0030 ON HOLIDAY+1 EXCEPT HOLIDAYS 2:TT DO HOL2
          

In the first case, the activity will be actioned one day after any holiday UNLESS that day is also a holiday in which case the activity will not be done. It should be noted that EXCEPT HOLIDAY n is only permitted where 'ON HOLIDAY+n' has a non-zero offset.

In case two, the activity will be performed one day after any holiday UNLESS that day is a holiday in which case the activity will be performed 2 days later i.e. effectively ON HOLIDAY+3.

Optionally, the 'EXCEPT HOLIDAYS n' clause will accept 'DAYS' or 'DAYS AFTER' following the number. This will automatically be appended by a 'SAVE SCHEDULE AS' command.

AFTER + 0030 ON HOLIDAY+1 EXCEPT HOLIDAYS 2 DAYS AFTER:TT DO HOL2
          

The syntactical enhancements to the ON CUSTOM and ON HOLIDAY clauses are shown below:

-- ON -+- CUSTOM  -+-+---------+--+-----------------------------+--|
+- HOLIDAY -+ +- + <n> -+  +--- AND HOLIDAY --+----------+
|                  +-  + <n> -+
+--- <except holidays> -------+
          

<except holidays>

-- EXCEPT --- HOLIDAYS --+------------------------------+----|
+-- n --+----------------------+
+-- DAYS - +-----------+
+-- AFTER --+
          

Similarly, 'EXCEPT HOLIDAYS + n' is also permitted with other AFTER day modifiers such as 'ON MONDAY', 'ON THURSDAY', 'ON WEEKENDS' etc.

Previously, using the '@=' modifier for deleting AFTER activities (permitted only with a privileged usercode) would previously have just shown the message ALL ACTIVITIES FOR THE SPECIFIED MINUTE HAVE BEEN DELETED'. Since time ranges can be included in the command, this message was misleading and has been changed:

FOR PU/PRIV AF - 1900-2000: @=
          
96 activities deleted from 28 time slots
          

May 2011 541.39 Free restriction on METALOG context

The METALOG context is no longer restricted to Full Supervisor.

May 2011 541.38 Don't wrap AFTERS when saving

When saving the SCHEDULE or AFTERS to a symbol file, After statements longer than 80 characters would be wrapped at the nearest 'splitable' character to the end of a record. 'Splitable' characters are space,;:/() This could cause problems on reinput where extra spaces, the padding added to lines when wrapping, could be added to the command. Lines are now wrapped at exactly 80 characters.

Apr 2011 541.37 FTPCONTEXT

The FTPCONTEXT is a SUPERVISOR Custom Context which allows an OPAL script to send commands and receive replies from an FTP Server.

An FTP context OPAL ODTS and SITU are defined in the example below,

DEF + SITU IC(CUSTOM):
TRUE
          
DEF + ODTS IC(CUSTOM):
Show(ToString);
          

In this example, the only attribute referenced is the TOSTRING Custom Context attribute which returns a description of the current FTP response.

A Directory Scan can be initiated with an EVAL.

EVAL IC[DIRECTORY IN SL FTPCONTEXT]
DO IC ftp://user:pass@192.168.1.31/DO/
          
- The usercode and password may need to be supplied, depending on
the FTP Server. If the FTP Server allows anonymous access, the
usercode should be anonymous. The FTP context puts in the
user@hostname as the password if a password is required.
          
- The port defaults to 21, but may be specified after the
hostname, for example 192.168.1.1:1234
          
- If the ftp url ends with a /, then by default a list of the
filenames is returned using the NLST command. Each file name
is returned in a separate response with a message type of FILE.
          
- If the ftp url does not end with a /, then the STAT verb is
used which returns either the details of a single file,
or all the files in the directory, in a single response,
with logical lines separated by a CRLF.
          
- The FTPCONTEXT only supports IMAGE Mode, and all responses are
returned in EBCDIC. Data provided to FTP interface attributes
are treated as binary.
          
- An EVAL will terminate at the end of the directory scan.
An FTP dialog can be scripted using a DO.
          
- The initial command used by the DIRECTORY interface may be
specified as a Library Parameter, and may be either LIST,NLST
or STAT, as in this example,
EVAL IC[DIRECTORY(STAT) IN SL FTPCONTEXT]...
A LIST command returns a formatted directory listing suitable
for people to read.
An NLST command returns only the names of the files or
directories, suitable for a computer to read.
The STAT command, when used with a directory returns a formatted
directory listing, over the control port.
          

A Directory Scan can be initiated with a DO in which case the FTPCONTEXT is in scripting mode. As FTP responses are received from the FTP Server, the OPAL script can issue further FTP commands.

DO IC[DIRECTORY IN SL FTPCONTEXT]
DO IC ftp://user:pass@192.168.1.31/DO/
          
- As for an EVAL, if a directory is specified (a trailing /) then
an NLST command is executed, otherwise a STAT command.
          
- A DO will not terminate at the end of the directory scan.
The FTPAPI sends NOOP commands to the FTP Server while it
awaits further  FTP commands. The OPAL receives the response
to the NOOP commands, until the slot terminates, either by
using the CLOSE method, or by DO-#<slotid>.
          

The initial url is used to navigate to some level within the directory structure. The names of files give in a path parameter should therefore be relative to the initial directory.

The current path is requested during the LOGON sequence, and whenever the SETPATH request is made. The command is PWD (Print Working Directory), and the response is received by the script.

These methods are provided for a dialog with an FTP Server. A method is an attribute with parameters, which returns a result. These methods queue requests to the FTPCONTEXT. All methods return a string value, which is either ERROR:<text> to indicate an error, or <integer> which is the REQUESTID, and may be used to identify responses returned by the FTP Server.

CLOSE()
Sends an end of objects indication to the slot, so that
the LASTEVAL, if defined, should occur.
          
DELETEFILE(Path)
Requests the deletion of the file with the specified path.
          
FTPHELP(Key)
If Key is empty, general help is request from the FTP Server,
otherwise specific help for the Key.
          
FTPSITE(Command)
Sends a site specific command to the FTP Server.
          
FTPSTATUS(Path)
If the path is empty, the current path is used, otherwise
the file information for the specified path is requested.
          
GETBYTES(Path)
Requests the file specified by path as a byte string. This is
limited by the Algol string size of 65535 bytes (MCP 54).
          
GETDIRECTORY(Path,AsFile)
Requests the directory listing in a file if an AsFile title
is specified, otherwise as a string.
          
GETFILE(Path,AsFile)
Requests the file specified by the path. If an AsFile title
is not specified, then a unique MCP TITLE is created.
          
MAKEDIRECTORY(Path)
Requests that the specified directory, with reference to the
current path, be created.
          
PUTBYTES(Data,AsPath)
Stores the Data with the given AsPath. The Data is only
limited by the size of an OPAL string, which is currently
2 MB.
          
PUTFILE(Title,AsPath)
Stores the file specified by the Title with the AsPath.
Only Byte Stream Files are accepted.
          
REMOVEDIRECTORY(Path)
Requests removal of the specified directory, with reference to
current path.
          
RENAMEFILE(FromPath,ToPath)
Requests the renaming of the file FromPath to ToPath.
          
SETPATH(Path)
Changes the current path to an absolute or relative pathname.
          

When a method is invoked, one or more FTP Commands are sent to the FTP Server. These commands make up a Request, which is bounded by a BOT and an EOT or ERROR message.

Requests are stored and executed in the order they are received. A new Request may be queued at any time within the OPAL script.

These are the attributes which are available each time the OPAL script is entered, because of a response from the FTP Server.

COMMANDNAME
The actual FTP command name which generated the response,
in UPPER case.
          
COPIEDDATA
Returns the string TRUE if there is data associated with this
request, for example after a GETBYTES request. Otherwise it
returns EMPTY.
          
COPIEDFILE
Returns the string TRUE if a file was created to contain
the data returned from the FTP Server, for example after
a GETFILE request. Otherwise it returns EMPTY.
          
COPYDATA
If COPIEDDATA, then this attribute returns the data from the
FTP server.
          
FILENO
Returns the File Number of the file in the original request
if a / directory NLST request was performed.
          
FILESTATE
Returns the Port FILESTATE of the Data Transfer PortFile (DTP).
          
LASTFILE
Returns the string TRUE if this is the last file in an NLST
of a directory request.
          
MSGSIZE
Returns the length in bytes of the response message.
          
MORETEXT
If the response is longer than a DCALGOL MESSAGE, it is
segmented and this attribute returns the string TRUE, to
indicate that more text follows. Apart from the MSGSIZE and
MSGTEXT attributes, all other attributes for each segment
are identical. If the response is not segmented, the
attribute returns EMPTY.
          
MSGTYPE
Returns the name of the type of this response message.
BOT - Indicates the start of a request.
CONNECTED - The FTP Server has accepted the logon.
REPLY - An FTP command reply.
EOT - Indicates the end of the request.
ERROR - Indicates the end of the request, which failed due
to an error.
PROGRESS - A progress response giving the amount of data
sent or received so far.
FILE - For an NLST directory request, this is a File Name.
USER - This is a message generated by a User application
such as FTPCONTEXT.
          
REPLYCODE
The numeric reply code as a string, for the associated
FTP command.
          
REQUESTID
The name of the original request. It is one of
LOGON, GETDIRECTORY, GETFILE, PUTFILE, GETBYTES, PUTBYTES,
SETPATH, DELETEFILE, REMOVEDIRECTORY, MAKEDIRECTORY,
RENAMEFILE, HELP, SITE or STATUS. It is in upper case.
          
REQUESTNO
The request number for this request, which corresponds to the
number returned from the request method.
          
TAG
A tag associated with the request.
          

If there is a collision with OPAL attributes, then all the FTP attributes above have a synonym of FTP_<attname>.

These custom attributes are also available,

TOSTRING
Returns a string which gives a general description of the
response from the FTP Server.
          
MYSELF(INPUTPARAM)
This provides the original url provided with the DO or EVAL.
          
LIBPARAMETER
This returns the library parameter provided with the DO
or EVAL (Empty,NLST,STAT or LIST).
          

When storing or retrieving files from an FTP Server, the FTPAPI attempts to use MODE-Z, which provides for ZLib (Deflate) compression. Some FTP Servers such as FileZilla implement MODE-Z, however many do not. In this case, the FTPAPI will revert to MODE-I.

The SL FTPCONTEXT = *METALOGIC/SUPERVISOR/FTPCONTEXT requires the SL FTPAPI = *METALOGIC/COPYWRITE/FTPAPI and the SL TELNETAPI = *METALOGIC/COPYWRITE/TELNETAPI Libraries.

There is an example of a custom FTPCONTEXT Script called IC in,

*EXAMPLES/SUPERVISOR/IC
          
This example scans the Unisys FTP Server for new ICs (Interim
Corrections), which are then downloaded and unzipped and
unwrapped to release the component files.
          
It uses the scripting features of the FTPCONTEXT so it is started
as a DO,
          
FOR USER/PASS
DO IC[DIRECTORY(STAT) IN SL FTPCONTEXT]
ftp://anonymous@ftp.support.unisys.com/pub/aseries/CONTAINER/054.1A
          

Apr 2011 541.36 Fix TRIGGER problem with START

The use of the AF TRIGGER command, as described in SUPERVISOR Dnote 540.96, now works correctly where the associated command is a WFL action e.g. 'AF + TRIGGER (META)TEST: START J' would have previously failed with a WFL syntax error. Trigger identities will now always be held in upper case when created, deleted or actioned.

Apr 2011 541.35 Support for NEXTACTIVITYDAY attribute in AFTER

This changes documents the addition of the NEXTACTIVITYDAY attribute to the AFTER context. This attribute returns the date of the next scheduled occurrence of the selected AF activity allowing for holiday exceptions etc. For scheduled activities already processed in TODAY's schedule, a value of zero will be returned.

Apr 2011 541.34 Fix lowercase WFL command handling

If the initial keyword of the text passed to the WFL function (such as 'START','FOR', 'RUN' etc.) contained any lower case characters then SUPERVISOR would not recognise the keyword and would prefix the text with 'START' causing the job or WFL command to fail syntax. This problem has been corrected.

Some changes have been made to improve the logging of WFL requests in the SUPEERVISOR log file.

Apr 2011 541.33 Grinder loops if invalid char in COMS fn

If a command passed to the Coms function contained an non graphic character the the Grinder stack which processes Coms request would go into a processor intensive loop. Supervisor would eventually DS the looping grinder stack and the Coms function would return a Grinder fault. This could easily happen when using FIRST/NEXT commands to parse all of the items of one type.

EX. COMS("FIRST PROCESSING_ITEM_LIST") could return FIRST PROCESSING_ITEM_LIST UTILITYITEMLIST =UTILITYITEM If this response was used to generate a NEXT command without stripping off the second line , grinder would fault.

With this version installed the response would be.

Invalid element name format, scanning UTILITYITEMLIST4"0D"

The non graphic <carriage return> character is shown in hexadecimal encoding 4"0D".

Apr 2011 541.32 COMS("FIRST DEVICE TYPE_LIST") would cause a Coms error

Certain calls on the Coms Function (Ex. COMS("FIRST DEVICE TYPE_LIST")) would cause a Coms resize error and return "Grinder Faulted". This problem has been corrected.

Apr 2011 541.31 Correct wildcard ENTER logging/WFL vs. WAIT

Using a wildcard filter with the ENTER command to restrict the DEFINES that are compiled, SUPERVISOR will now only log the compilation of those DEFINEs that were successfully filtered. Previously, all DEFINES processed from the ENTER file were logged regardless of the filter.

Due to problems caused by SUPERVISOR change 540.29, certain DEFINE actions caused DEFINER faults when logging messages into SUPERVISOR's log file. These problems have been resolved.

The use of a WAIT statement after Opal WFL function calls that used the REMOVE, CHANGE or REMOVE statements will now pause for the correct delay instead of ignoring the wait.

Apr 2011 541.30 Fix extra comma in COMS 'STATS FULL' call

The COMS window information returned by the 'STATS FULL' request could return some window entries with an extra comma appearing in the CSV data. This problem has been fixed.

Apr 2011 541.29 Correct DEFINE delete message handling from ENT

Messages generated by the ENTER are now better logged in the SUPERVISOR log. In particular, error messages are consistently logged with a prefix of 'RB' and the ENTER task number.

The following is an extract from the SUPERVISOR log:

15:58:05 Msg:RB(43329):Rebuild:4 Defines Found,2 Compiled,

1 did not compile
          
15:58:05 Msg:RB(43329):Rebuild:Processed, 13 records, 4 commands 15:58:05 Odt:RB(43329):DEFINE + ODTSEQUENCE X2 15:58:05 Err:RB(43329):NAME OF AN ODT SEQUENCE EXPECTED:MSG_SUPPRESS 15:58:05 Odt:RB(43329):DEFINE - ODTSEQUENCE MSG_SUPPRESS 15:58:05 Msg:RB(43329):ODT SEQUENCE DEFINITION DELETED 15:58:05 Odt:RB(43329):DEFINE - ODTSEQUENCE X 15:58:05 Msg:RB(43329):Rebuild:Amending schedule from (IPP)EX ON DEV 15:58:05 Msg:SUPERVISOR:INITIATING ENTER FROM (IPP)EX ON DEV

If the SUPERVISOR option NOENTERLIST is set then no TASKFILE from the ENTER process will ever be produced, regardless of errors. This is because the error will also logged in the SUPERVISOR log.

Mar 2011 541.28 Allow access to FLEX logging

SUPERVISOR is now permitted to access the FLEX logging system by using the FLEX LOG command. As with the MAIL and TP equivalents, the full range of LOG modifiers is available. However, the FLEX LC command is not permitted from a SUPERVISOR environment.

Mar 2011 541.27 CustEval

A Custom EVAL would finish when the WhenEvQ became empty instead of waiting until the End Message had been received.

Mar 2011 541.26 Correct LOG EVAL loop problem

Previously, EVALS of the LOG context could have failed to process correctly if the request forced SUPERVISOR to access more than one SUMLOG. The problme caused the EVALs to continually reprocess the same log file and required manual termination. This problem is now fixed.

Internal DNote OPAL/BINDLIB 540.12.

Mar 2011 541.25 Take a program dump is the heap is exceeded

Internal change only.

Mar 2011 541.24 Fix Count after limited OBJECTS call

A Count Function which followed an OBJECTS function which had specified limits would inherit those limits.

Ex OBJECTS(MX:true,1); %returns one mixnumber

COUNT(MX:TRUE) %will now return 1
          

This problem has been corrected

Mar 2011 541.23 More consistent bad key messages

Messages displayed when commands are rejected due to missing software key have been improved.

An eval limit of 0 used to test When and Eval commands now works for the Custom context.

Mar 2011 541.22 Remove all restrictions when deleting

This change extends 541.21 to remove all key restrictions when deleting Opal Programs.

Mar 2011 541.21 Fix a bug when deleting SITUs with no SUP key

Situations may now be deleted when running without a full Supervisor key.

Mar 2011 541.20 Allow LOGEOJ context with SCHED key

Remove LOGCONTEXT key checking.

Mar 2011 541.19 Fix premature EXTERNALCOMMAND exit

Previously, executing a COMMAND via the programmatic EXTERNALCOMMAND library entrypoint could terminate early after the execution of the first CALL DO within the COMMAND script. This meant that EXTERNALCOMMAND could exit before the COMMAND had terminated. This behaviour has been corrected.

For DO or COMMAND requests issued from an EXTERNALCOMMAND call, the TERM(LOGONUSER) Opal attribute will now return the usercode of the program calling this entrypoint.

Feb 2011 541.18 XHRLink

Internal Change.

Feb 2011 541.17 Correct Advanced Scheduling conflict with LogCo

This change corrects a problem with SUPERVISOR DNote 541.13 when defining and using LOGEOJ Opals when only an Advanced Scheduling key is present.

Feb 2011 541.16 Allow MEMO in Trim and Sched

Memos are no longer restricted to Full Supervisor.

Feb 2011 541.15 Better handling of multiple BOJ/EOJ for WFL

Improvements have been made to the tracking of jobs using the Opal WFL function. Previously, if WFL identities were not used, tracking would cease inside an ON JOBMESSAGE block upon receipt of any EOJ regardless of job number. This could occur if other jobs were spawned and completed before the parent job had terminated. Now ON JOBMESSAGE will wait until all detected BOJs have matched EOJs.

By default, any slot can run a maximum of 100 WFL jobs, including active and completed jobs (with WFL identities). If attempts are made to exceed this limit, SUPERVISOR will still process messages in an ON JOBMESSAGE block but its activity will be ignored when the time comes to exit because all other monitored jobs have completed.

The SLOT command will now show how many WFL jobs are being tracked by a particular WHEN slot.

This change also supports the new WHEN attributes which provide slot information about active or completed jobs (with WFL identities) that have been processed by the WFL function. See OPAL GSTABLEGEN DNote 540.33 for more information.

Feb 2011 541.14 Fix For WHEN command and Restore InputParam

The WHEN statement could randomly fail depending on the previous WHEN DO or EVAL command processed.

Myself(InputParam) and the When context attribute are now valid after a restart.

Feb 2011 541.13 Allow Advanced Scheduling key to use LOGEOJ

If an Advanced Scheduling licence key is active but no full SUPERVISOR licence is present then SUPERVISOR is now permitted to DEFINE and execute (via EVAL and WHEN) LOGEOJ-context Opal scripts.

If an empty string is passed to the Opal WAIT(<text>, OK) statement, then SUPERVISOR will not issue any of the usual "ENTER 'TT OK ....' TO <text>" messages nor will a RSVP task appear if SO WAITOKTASK is set. This special behaviour is intended for internal OPAL scripting purposes only.

Lastly, the OK #<n> command, where <n> is a WHEN slot number, does not now need a FOR command modifier if the referenced slot is running under a usercode and is waiting on WAIT(..,OK).

Jan 2011 541.12 Fix 23:59 scheduling issues

Previously, activities such as TT DO commands that were scheduled by an AFTER to be executed at 23:59 were not executed until after midnight, when the next days schedule had been loaded. This was caused by an enforced delay that required SUPERVISOR to wait until midnight instead of completing the command processing. Other AF activities such as SAVE SCHEDULE and PRINT SCHEDULE were unaffected. This problem has now been fixed.

The Opal LOG statement when used with the SITE modifier will now not include originating SLOT(n) information in the the text of the log entry.

Jan 2011 541.11 Advanced Scheduling support

Internal change for Advanced Scheduling support.

Jan 2011 541.10 Deactivate

Remove THE WHEN WILL BE DEACTIVATED message from Custom Contexts.

Jan 2011 541.09 MaxObjects

The Interface for the Custom Context SetUp Function has been changed to add a new parameter called MaxObjects. This corresponds to the Eval Limit of an EVAL or the Do Limit of a standalone DO.

Boolean PROCEDURE SetUp(SlotNo,WhenType,UserName,

Situation,ODTSequence,
LibParameter,WhenParameter,
MaxObjects,Options,Reason);
          

Jan 2011 541.08 StringAttIndex

Change to the GetStringAtt function semantics in the Custom Context.

The AttInfo parameter of the GetStringAtt function is now set to the AttIndex returned by the BindStringAtt function, so that the Procedure associated with the Attribute can know its own Index. This parameter was previously set to 0.

Jan 2011 541.07 StrAtt

Internal Change.

Jan 2011 541.06 Allow EXTERNALCOMMAND callers with SECADMIN

The SUPERVISOR library entrypoint, EXTERNALCOMMAND, may now be called by programs which have MP SECADMIN capability. If set, SUPERVISOR does not require the usercode of the caller to be PU or SYSTEMUSER, allowing callers which have no associated usercode. If MP PU or MP TASKING is set and SECADMIN is reset, EXTERNALCOMMAND will continue to require a usercode with the appropriate privilege.

Jan 2011 541.05 Allow SHOW redirection to printer with DO

The DO command has been modified to allow a following '& PRINT' variant which forces all SHOW statements to be redirected to printer backup instead of the source station or ODT. The change applies to both the DO and WHEN..DO commands and is preserved after SUPERVISOR restarts and to decompiled SCHEDULE files.

DO & PRINT (SHOW("This is a test"))
WHEN SITU DO&PRINT ODTS
          

Jan 2011 541.04 Custom Context

Initial release of Custom Context.

A Custom Context is a Context which is implemented by a customized Library external to Supervisor. There may be many Custom Contexts, each Context being selected by an Interface in an SL Library.

For example, a Custom Context WHEN might wait for some event which is triggered from another computer. A Custom Context EVAL or DO might process a proprietary file or database and return selected records.

A Custom Context SITUATION, ODTS or DISPLAY is defined using the DEFINE command,

DEFINE + SITU TESTSITU(CUSTOM) : TRUE
DEFINE + ODTS TESTODTS(CUSTOM) : Display(ToString);
DEFINE + DISPLAY TESTDISP(CUSTOM) : ToString;
          

A Custom Specification is used to define the INTERFACENAME and the Library FUNCTIONNAME of a Custom Context Library, as well as a string parameter which may be used for initialization.

A Custom Specification has the syntax,

<interfacename> ( <parameter> ) IN SL <functionname>
          

The <interfacename> is used to connect to a Connection Library referenced by the SL <functionname>.

The <parameter> may contain any text, except a <right parenthesis>. If a <right parenthesis> is required, the item of which it is part must be enclosed in double quotes. For example FILE="(A)B ON C".

The only required item is <interfacename>. The ( <parameter> ) may be omitted. If the IN SL <functionname> is omitted, then the <functionname> defaults to the reserved functionname, METACONTEXTS.

The Custom Specification is provided when the WHEN, EVAL or DO is initiated.

WHEN TESTSITU [TEST IN SL TESTCONTEXT] DO TESTODTS <text>
WHEN TESTSITU [TEST IN SL TESTCONTEXT] DISPLAY TESTDISP <text>
EVAL TESTSITU [TEST IN SL TESTCONTEXT] DO TESTODTS <text>
DO TESTODTS [TEST IN SL TESTCONTEXT] <text>
DISPLAY TESTDISP [TEST IN SL TESTCONTEXT] <text>
          

The <text> is passed to the Custom Context Library during the setup of the slot.

There are currently 7 predefined attributes in the Custom Context.

TOSTRING - Implemented by the Custom Context, it returns the current

object as text.
          

LASTERRORTEXT - If an attribute which was accessed was not valid,

this attribute may contain the reason.
          

HELP - Binds to an attribute called HELP in the Custom Context

Library and by convention, returns information about the
Custom Context.
          

ATTLIST - Binds to an attribute called ATTLIST in the Custom Context

Library and by convention, returns a list of attributes
either comma separated, HTML or JSON, depending on an
optional parameter.
          

FUNCTIONNAME - The SL FUNCTIONNAME for the Context Library.

INTERFACENAME - The INTERFACENAME for the Context.

LIBPARAMETER - The parameter passed with the Custom Specification.

The MYSELF(INPUTPARAM) function returns the WHEN,EVAL,DO or DISPLAY parameter. The MYSELF(USER) function returns the associated UserCode.

The capability to reference dynamically defined attributes in Custom Context OPALs will be released later.

The DEBUG + 34 Option may be used to assist in debugging Custom Contexts, with the messages being stored in the SUPERVISOR Log.

The Custom Context Library must implement a Connection Library which exports the following entrypoints,

Boolean PROCEDURE SetUp(SlotNo,WhenType,UserName,

Situation,ODTSequence,
LibParameter,WhenParameter,
Options,Reason);
If the SetUp function returns TRUE, then the Custom Context
Library may start inserting objects into the WhenEvQ.
SetUp MUST NOT wait on anything as this will hang SUPERVISOR.
          

String PROCEDURE ToString(A);

Returns a string text representation of the current object (A).
          

String PROCEDURE Reference Array GetStringAtt[0:MaxAttributes]

(A,ID,AttInfo,P1,P2,P3,P4,P5);
Called to return a string attribute value. A is the current Object,
originally provided by the Custom Context. ID is the uppercase
name of the attribute. P1 through P5 are parameters to the
attribute or EMPTY.
          

Integer PROCEDURE BindStringAtt(ID,AttInfo,Semantics,Reason);

Called to return the Index in GetStringAtt of the Procedure which
implements the code for the string attribute called ID. If the
Index < 0 then the Reason is logged to the SUPERVISOR Log and
the attribute returns EMPTY.
          

PROCEDURE LogOff(WhenType,Why);

Called to notify the Custom Context Library that its all over
and no further messages should be inserted into the WhenEvQ.
          

The Custom Context Library generates Objects (DCALGOL Messages) and inserts them in the WhenEvQ of the OPAL Slot. The layout of the Object is defined by the Custom Context Library, with the restriction that it must be more than 1 WORD.

If SUPERVISOR receives an Object which is 1 WORD in size, then it indicates the End of Objects. The convention is that if the 1 WORD IS 0, the OPAL finished successfully, otherwise there was an error and the contents of the 1 WORD are logged to the SUPERVISOR Log.

There is an example Custom Context Library called

*TESTCONTEXT/LIBRARY/NEWTAPE
          

Jan 2011 541.03 Increase Call Depth to 10

The limit on the number of nested CALL DO statements where the called ODTS includes a WAIT has been increased to 10.

Dec 2010 541.02 Fix CLEAR when using max variables

This change fixes a problem where linking a situation to an inline ODTS would occasionally give an invalid 'type mismatch' error.

Dec 2010 541.01 Better Schedule Validation

Previously, it was possible to cause SCHEDULE file corruption under the following conditions:

1. An active OPAL script running as a WHEN was updated with the

DEFINE command. The WHEN is marked with a 't' (Temporary) in a WHEN ? response.
2. SUPERVISOR was then abnormally terminated by a DS or H/L within 1
minute of the DEFINE update.

When SUPERVISOR restarts, any temporary WHEN that satisfies the above condition causes a SCHEDULE CHECKSUM ERROR or SCHEDULE TEXT VALIDITY ERROR and SUPERVISOR halts with a waiting entry.

The above SCHEDULE corruption is now fixed; it is believed that other circumstances can cause the above problem but these are not known for definite. Because of this, SUPERVISOR now detects faulty entries in the list of WHENs and will discard them during its initialisation instead of forcing the corrupt SCHEDULE wait. Messages are displayed and written into the SUPERVISOR log:

SCHEDULE TEXT VALIDITY ERROR:ADDRESS=1122 FOR 15
DISCARDING SLOT #6 DUE TO BAD SITU DESC

SUPERVISOR will continue normally: any of the discarded WHENs must be manually restarted.

Dec 2010 540.99 Consolidate HELP LOG information

SUPERVISOR's HELP LOG command will now use the revised HELP information held locally by the MAGUS library instead of using its own help data. This change allows future MAGUS changes to the logging mechanism to be transparent (and thus the HELP content) to SUPERVISOR. Please see MAGUS DNote 540.35 for more details.

Dec 2010 540.98 Fix SHOW PERM for long entries

If the SHOW PERM command was used to view a Permanent string variable which contained more than 255 characters then the output was truncated.

SHOW Perm with wildcards worked correctly.

Dec 2010 540.97 No longer require spcfy when Input window close

When a Supervisor window is forced to close the message

'Press Spcfy to return to MARC' will no longer be displayed.

Dec 2010 540.96 Extend AFTER command with WHERE and TRIGGER

AFTER changes: New Pseudo time 'TRIGGER' added. Trigger is followed by an identifier with an optional usercode. Ex. FOR LIVE/PW AF TRIGGER (BOB)TEST DAILY:START BOB/TEST Once this is in the schedule, entering TT TRIGGER (BOB)TEST will cause BOB/TEST to be started under the usercode LIVE. The intent of this change is to allow jobs to be stored in the schedule with appropriate Usecode and accesscode and then be 'Triggered' by a subsequent event, perhaps the successful completion of another Job. A now modifier WHERE has been added. WHERE is followed by the name of a system situation. If all other conditions for the after are true then the situation is evaluated. If it returns true the AFTER will run. Ex. AF 1000 ON WORKDAYS WHERE Hol_Yesterday START MY/JOB If Hol_Yesterday is defined as: TT DEFINE + SITUATION Hol_YESTERDAY: Holiday(NewdateTStoday,-1))

Then the above AF would only run on Workdays where yesterday was a holiday.

SHOW PERM has be improved to allow better wild card matching.

There were some cases where AF- @ <num> would not find the correct entry to delete. This problem has been corrected.

Nov 2010 540.95 Don't let LOAD or INPUT hang on NO FILE

Previously, the INPUT process, invoked by the SUPERVISOR LOAD command, would hang on a NO FILE if the file to be loaded was unavailable. This in turn caused SUPERVISOR to wait indefinitely until the waiting entry had been handled.

This behaviour has been changed: SUPERVISOR will now terminate the LOAD with the error message:

'LOAD file is unavailable (OPEN error=n)'
          

Also, the HELP ATTR command, filtered by context, would previously have returned incomplete information for contexts that were subtypes. For example, both LOGBOJ and FILECLOSE are subtypes of the LOG context so HELP ATTR =:LOGBOJ and HELP ATTR =:FILECLOSE only returned basic LOG attributes. This problem has been corrected.

Nov 2010 540.94 Support for new MAIL event context

A new OPAL context, MAIL, has been implemented. This is an event-only context that captures notices generated by the Metalogic MAILLIB library. These notices essentially reflect the information that appears in the MAILLIB log file but are much more detailed. The event notices are subdivided into a number of categories denoted by the EVENT and EVENTTYPE attributes. These types are:

SND, RCV, ERR, MSG, FLT, QUE, ATT, INC
          

Available attributes are dictated by the various event types and can be checked by using the VALID function. For example, the SMTPFILENAME attribute is only valid for EVENTTYPE=QUE. Email-specific attributes such as TO, FROM, CC, FROM and MESSAGESIZE are only relevant for notices whose EVENTTYPE is SND, QUE or RCV.

Example:

DEFINE + SITUATION MAILQ(MAIL):
EVENTTYPE=QUE
          
DEFINE + ODTSEQUENCE MAILQ(MAIL):
RECORD[SNMP] ("Warning! EMAIL queued, Error=",ERRORNO,":",TEXT);
          

In this simple case, the TEXT attribute returns the message entry that is written into the MAILLIB log file.

The WHEN is invoked by:

WHEN MAILQ DO MAILQ
          

Note that MAIL Opal scripts may only be used by the WHEN command. The METALOG context should be used to retrieve retrospective MAILLIB information but this is not as detailed as event-based info.

Each MAIL notice, regardless of EVENTYPE, contains a subset of MAILLIB configuration attributes that can be used in a MAIL script. Originally, these attributes were generally available in the SYSTEM ML attribute group but this set has now been renamed and each attribute name is now prefixed by 'MAIL'. For example the SYSTEM ML attribute 'POSTMASTER' is now called 'MAILPOSTMASTER' so any scripts that use these attributes will have to be recompiled with corrected names, though existing compiled code will continue to run.

If MAILLIB is terminated whilst any MAIL WHENs are active, SUPERVISOR will be forcibly delinked from the MAILLIB library but the WHENs will continue to remain active. When MAILLIB is restarted (by whatever means), MAILLIB will send a notice to SUPERVISOR to cause automatic re-linkage to the MAILLIB library to continue notice processing. If no WHENs are active, the request is ignored.

In addition, the logging of several MAILLIB commands such as UNLOAD was previously omitted; this oversight has been corrected.

Nov 2010 540.93 New SLOT command variant and fix non-email PRINT

Previously, printed SLOT dumps to non-email print destinations did not show the correct headings in the output; this problem has been fixed.

The SLOT command will now accept a '+' modifier; this option suppresses the display of the contents of the variable heap and shows 'WHEN STATE INFO' environment information normally only seen in a PRINT SLOT n report. An example of the command for WHEN slot 3 would be 'SLOT 3 +'.

The '+' modifier is not significant for printed SLOT requests.

Nov 2010 540.92 Busy

Select least busy slot, if all slots are busy, when trying to decide into which HTTP slot to queue a request.

Nov 2010 540.91 Support DFHBINARY familyname assign

Internal Metalogic change.

Nov 2010 540.90 JobRestart

See OPAL D-Note 540.54 "WFL Restart".

Nov 2010 540.89 Allow TERM window email override

From SUPERVISOR windows only, it is now possible to override the USERDATA-assigned email default normally retrieved by SUPERVISOR from the usercode PRINTDEFAULTS or EMAIL attributes.

This override uses an extension to the TERM command:

TERM EMAIL support@metalogic.eu.com
TERM EMAIL *
          

In the first example, the provided email address temporarily overrides the usual default usercode email. The assignment remains in force until the window is closed by the user or a SUPERVISOR restart. No validation is performed on the email address and it must be less than 60 characters in length. Both the usual and override email addresses are shown in a TERM response.

The temporary email address can be removed by using the TERM EMAIL * command.

Nov 2010 540.88 Fix untyped ENTER handling

Previously, any ENTER command using a specific program name or wildcard selection without a program type modifier, such as DEF, ODTS, SITU etc, would cause SUPERVISOR to enter all commands and DEFINES from the source file. For example:

ENTER MYOPAL FROM *SCHEDULE/SOURCE ON DEV
          

This problem has been addressed by changing the way ENTER handles such requests. If the program keyword (i.e. DEF, ODTS, SITU) is absent and SUPERVISOR detects a valid ENTER command with a name or wildcard and followed by a FROM clause, SUPERVISOR will automatically assign the DEFINE program type. The following commands are now identical:

ENTER MYOPAL= FROM SCHED
ENTER DEF MYOPAL= FROM SCHED
          

Also, ENTER will now permit an AFTER command group to be entered alone from an external file:

ENTER AFTER FROM *SCHEDULE/SOURCE
          

The generated ENTER command summary will show how many AFTER commands were successfully entered or those that failed.

Oct 2010 540.87 Changes to ASAP logging

The ASAP LOG command has been deimplemented; all Advanced Scheduling logging will now be handled using the SITE LOG and SITE LC commands.

Sep 2010 540.86 Fix INVALID OP when logging HS+ command

Previously, use of the HS+ command would cause an INVALID OPERAND fault @ 57759500 if the Supervisor LOGGING option was set.

Also, changes to the log-in usercode for a WINDOWS stations using the TERM USER command were not being logged in the SUPERVISOR log. Now, all successful log-ins are recorded along with error messages for any security violations that may occur during the log-in process.

12:48:36 Msg:User FLEX & Access RULES logged in to LSN 183
12:48:32 Err:LSN 183 User FLEX Access RULES log-in failure
12:48:26 Err:LSN 183 User FLEX log-in failure
12:48:22 Odt:WIN(183):TERM USER
          

Sep 2010 540.85 Reinstate DEFINE context DO handling

Passing a wild-card pattern to a DO of type DEFINE will now again return all matching OPAL defines instead of just the last one. This feature was inadvertently broken by SUPERVISOR change 540.70.

Sep 2010 540.84 Correct TT cleanup after parent termination

Previously, if a DO was waiting for a TT function to terminate (marked as 'WAIT TT'), SUPERVISOR could subsequently fault with an INVALID INDEX at 94299000 if this slot was manually terminated by a 'DO -' command. The fault would only occur when the slot executing the TT subsequently terminated and would be followed by repeated fault messages requiring a QUIT of SUPERVISOR to clear. These problems have now been fixed.

Sep 2010 540.83 Clean up TERM messages

With NOTTLOGGING set, some TERM USER commands issued from TT functions caused corrupted messages to be recorded in SUPERVISOR's log. This problem has been fixed.

Sep 2010 540.82 Minimise logging of TT operations

A new SUPERVISOR option, NOTTLOGGING, has been implemented to control the logging of commands issued from the Opal TT function. If the option is set (SO+NOTTLOGGING) then all command and response logging is suppressed from any TT function call.

Sep 2010 540.81 Restore TERM USER + behaviour

The TERM USER + command will again correctly assign the current station usercode to any usercode-sensitive SUPERVISOR command such as DEFINE, WHEN or DO. This resolves a problem introduced by SUPERVISOR change 540.77.

If an HTTP DO is executed without a FOR, SUPERVISOR will automatically assign the current TERm usercode and accesscode to the slot, if available. This allows HTTP DOs to be considered authorised.

Sep 2010 540.80 XHR User

An HTTP ODTS which is initiated by a DO must have an associated USERCODE. The USERCODE can be associated by starting the ODTS with a FOR <usercode/<password>, or by starting the ODTS from a SUPERVISOR Window (whether or not it is logged in). This is the Initiator's USERCODE and it dictates where files which have been retrieved are stored and where files that are to be sent can be found.

The parameter to an HTTP ODTS DO may need to specify a <usercode>/ <password> to access a remote system's resource, for example a web site that uses Basic Authentication.

The Metalogic HTTP Server provides an MCP based authentication called RU Authentication, which uses the MCP's UserDataFile RU mechanism.

If the parameter to an HTTP ODTS DO does not provide both a <usercode> and <password>, so either nothing or just a <usercode>, and the remote host supports RU Authentication then the <usercode> is checked against the RU tables in the UserDataFile for the IP address and Domain Name.

Sep 2010 540.79 XHR

DO of an HTTP ODTS has been implemented. It can be used to fetch resources from remote HTTP Servers.

It requires the SL XHR = *METALOGIC/XHR Library, which implements the XMLHttpRequest Object defined by the W3C at http://www.w3.org/TR/XMLHttpRequest.

The parameter to the HTTP ODTS defines the XMLHttpRequest, and has this syntax.

<method> <url> <user> <sync> [ <header>\<header...]  ;<body>
<method> ::= <text>
<url> ::= "<http url>" | <http url>
<sync> ::= SYNC | ASYNC | <empty>
<user> ::= FOR <usercode>/<password> | <empty>
<header> ::= <headerid> : <header value>
<body> ::= <bytes>
Example:
GET http://192.168.1.31:80/main.htm?type=test FOR NFT/NFT sync
[Content-type:plain/text\accept:gzip]
          

Sep 2010 540.78 Text Overflow with ENTER Command

The internal change applied by DNote 540.76 caused ENTER commands to fail with 'Text overflow' errors if issued from screens with column widths greater than 80 characters, This behaviour has been corrected.

Sep 2010 540.77 Better FOR checking

A FOR modifier used in the TT or Keyin function can now inherit privilege from Usercode and Accesscode of the initiating Window.

Error messages for bad FOR syntax are now more descriptive.

Sep 2010 540.76 Common NOTES defines

Internal Metalogic change only.

Aug 2010 540.75 Fix Asgard and Infoconnect T27 paging

The change applied by DNote 540.67 caused the Asgard and Infoconnect T27 emulators to fail to detect terminal page dimensions and to display a confusing error message. This problem has been corrected.

Aug 2010 540.74 Correct accounting of DO loop times

Previously, the CPU and elapsed times recorded for a standalone DO that was terminated because of an OPAL processor loop would be incorrect when seen in the SUPERVISOR log. This behaviour has been corrected.

The WS display has been changed to show the Advanced Scheduling key information correctly.

Lastly, an issue with the specification of ACCESSCODEs with multiple FOR modifiers used with AF commands has been corrected.

Aug 2010 540.73 Show colon in AF ?

In order to make it make it easier to distinguish between any qualifiers and the action in an AF ? response a colon is now added after any qualifier. Ex. 1: BEGIN JOB TEST;DISPLAY "TEST" 2: FOR (PRIV0000) :TT DO ASMN_BASIC (PRIV0000)ASAPMIDNIGHT 3: ON 1ST DAY :TT DO ASMN_BASIC (SYSW0000) ABLOGIT_PTODB1

Using a colon in an AF command is optional but if used will now ensure that the time specification is valid. Previously it was possible for a bad entry in the time spec to be mistaken for an action.

Conditional Adds and Deletes using AFTER now check time qualifications more rigorously.

Aug 2010 540.72 Fix INVALID INDEX at 89019000

In some circumstances an AF+ or AF- command which did not find a matching entry could cause an invalid index fault at 89019000. This problem has been corrected.

Aug 2010 540.71 Fix incorrect PINGAVGTIME values

The attribute PINGAVGTIME will now return valid timings for all PING requests that issue only one message. This change addresses a bug that caused very large time values to be returned for some hostnames.

Also, if a PING was issued from a DO with a context of MSG then SUPERVISOR did not forget the SCHEDULE space used to hold the MSG parameter passed to the DO. This caused subsequent SUPERVISOR restarts or SAVE SCHEDULE commands to show 'SCHEDULE UNMARKED AVAIL' warning messages.

Aug 2010 540.70 Fix SOURCE attribute fault

Previously, the SOURCE attribute returned for very large OPAL DEFINEs (greater than 180 lines) would be truncated and could subsequently cause a STRING PROTECT fault at 95330000. This problem is now fixed.

Aug 2010 540.69 Fix UNMARKED AVAIL areas after conversion

The update to SCHEDULE version 19 described by DNote 540.68 could have caused 'SCHEDULE UNMARKED AVAIL AT nnnnn THROUGH nnnnn' errors during the next SAVE SCHEDULE command procedure. This issue has been fixed.

Aug 2010 540.68 Conversion to SCHEDULE version 19

The version of the SCHEDULE file has been updated to 19; this change allows for future enhancements to the management of AFTER activities.

Aug 2010 540.67 Correct COMS window text handling

SUPERVISOR will now correctly handle COMS transferred stations which have Notify Text associated with the SUPERVISOR window. Previously, the command could have been lost. Further, the handling of older terminal emulators, as described by SUPERVISOR DNote 540.62, has been much improved and no residual screen messages will now be seen.

Aug 2010 540.66 Correct inconsistent FOR handling

Previously, use of the FOR modifier for SUPERVISOR commands from MARC did not always work correctly. In particular, non-privileged MARC users, allowed access to SUPERVISOR commands via the TTINTERFACE directive, would not be able to use FOR commands for their own usercode giving the error 'ONLY ONE USERCODE ALLOWED'.

Jul 2010 540.65 CrackICM

Internal Change.

Jul 2010 540.64 Do not force WFL remove or change through queue

Previously, the REMOVE and CHANGE WFL functions, when called by the Opal WFL statement, were always forced through the system queues to enable better tracking of job messages otherwise WFL always returned a job number of zero. This is because single REMOVE or CHANGE requests do not generate a WFL job.

This behaviour has been changed: SUPERVISOR now does not force REMOVE or CHANGE through a queue but will generate a pseudo EOJ to signal that the action is complete. The WFL function result will always return the job number of METALOGIC/SUPERVISOR and the task number of the calling CONTROLCARD.

The pseudo station allocated to the METALOGIC/SUPERVISOR MCS is now given the name 'SUPERVISOR' instead of "PSEUDOnnnnn".

Jul 2010 540.63 Clean up slot environment and remove Zip diagnostic

Previously, some memory components of a terminated WHEN slot environment were not being deallocated correctly causing problems when the slot was subsequently re-used. This issue has been corrected.

Some diagnostic code used to debug the ZIPFILE and UNZIPFILE functions has been removed.

Jul 2010 540.62 Correct Windows handling with older emulators

SUPERVISOR's handling of older T27 emulators has been change to avoid problems where the emulator is unable to respond to a request for the terminal page layout (columns and rows numbers). This would cause the station to return the text "008402" and then unresponsive. Although the user still sees this text when using the window for the first time, the station will thereafter perform normally.

Jul 2010 540.61 Fix IK SHOW response handling

Previously, on certain MCP 53.1 levels, responses to the IK SHOW command would be truncated (typically limited to 2 screens) and would show an additional heading line on each page. This behaviour is due to MCP returning less lines than expected per page and is now detoured by SUPERVISOR.

Jul 2010 540.60 Implement MYSELF(PROGRESS) for Zip and Unzip

The Metalogic compression routines initially implemented by MAGUS Dnote 540.05 are now formally documented in OPAL DNote 540.37. Please refer to this change for more detailed information.

Jul 2010 540.59 Add AFTER LOAD command

The AFTER command has been extended to allow AFTER LOAD. Anything scheduled at this 'pseudo time' will be done whenever the new day's schedule is loaded.

Jun 2010 540.58 Transmit

The WFL function and the ON JOBMESSAGE context now allow an ODTS to participate in Remote File I/O.

Example:

#JobNo:=WFL('BEGIN JOB;STATIONNAME=A;RUN OBJECT/REM',
'MYID(STATIONNAME=A,MYUSE=OUT)');
          

If the <id> part of the WFL function is followed by an open parenthesis, then a comma separated list of attributes is expected, followed by a closing parenthesis. These attributes define how the ODTS will participate in Remote File I/O.

The attributes are,

STATIONNAME=<filename>  (Required)
PAGE=<integer>          (Optional,Default 24)
WIDTH=<integer>         (Optional,Default 80)
MYUSE=IN|OUT|IO         (Optional,Default OUT)
          

The STATIONNAME specified in the attribute list must match the STATIONNAME attribute in the WFL Job ,for participation in Remote File I/O.

If MYUSE is OUT, then a Pseudo Station with the specified STATIONNAME is allocated.

The ON JOBMESSAGE context receives a WFLOPEN message when the Remote File is opened, a WFLOUT message when the programs writes to the Remote File, and a WFLCLOSE message when the Remote File is closed.

The JOBTEXT attribute contains information about the Remote File, or the data written, depending on the JOBMSGTYPE.

If MYUSE is IN or IO, then a Schedule Station is allocated, and the STATIONNAME attribute in the Job is changed to be a STATION attribute with the LSN of the Schedule Station.

When the Program Reads from the Remote File a WFLIN message is received by the ODTS and the Program waits for Input.

Input can be sent to the Remote File using the OPAL Transmit Function. This function requires an FRSN, which is available from the FRSN attribute of the JOB Context Object.

The LSN and FRSN attributes have been added to the JOB Context, and are valid for WFLOPEN, WFLOUT, WFLIN and WFLCLOSE messages.

Jun 2010 540.57 Remote

Browser Interface to Remote Files.

Jun 2010 540.56 Allow ON HOLIDAYS in AFTER specification

The syntax AF <time> ON HOLIDAYS may now be used to schedule activities which should only be run on holidays.

This change also fixes a bug in the AFTER context where entries with the verb attribute = QUALIFIED returned some attributes from the previous entry.

Jun 2010 540.55 Correct multi-page LOG handling

The changes described by DNOte 540.54 caused multi-page LOG command responses to be handled correctly, only showing the first page. This problem has been corrected.

The LC CLOSE command now works correctly for the ASAP and SITE log files.

Log entries returned by the METALOG context now respect lower-case text and will deblank multi-line records.

Jun 2010 540.54 Support MYSELF(TRANSNO) for MAIL usage

This change supports several new attributes relevant for the MAILLIB environment:

MYSELF(TRANSNO) is a system attribute returning the transaction number of the last MAIL function call from this slot.

NICKLNAMELIST is a new SYSTEM ML attribute returning MAILLIB nickname information as a delimited list of entities, terminated by a semi-colon. Each entry has the nickname, mapped to a 'friendly name' followed by an email address list e.g:

:STIRLING=Local Metalogic Mail:Test1@metalog.com,Test2@metalog.com;"
          

The TRANSNO attribute in the METALOG context returns the relevant MAILLIB transaction number, if applicable, for the MAIL subcontext.

Jun 2010 540.53 Another ASAP key fix

Internal change.

Jun 2010 540.52 Minimise excess LOGTEXT pbitting

Previously, the generation of the LOGTEXT attribute by LOG-based EVALs caused significant initial pbit overhead for the SUPERVISOR stack. This overhead has now been eliminated allowing improved EVAL elapsed and CPU times.

Jun 2010 540.51 Allow ZIP/UNZIP requests own process

All ZIP, UNZIP, ZIPFILE and UNZIPFILE requests will now be serviced by a new SUPERVISOR process called ZIPHANDLER instead of using the GRINDER task. This avoids GRINDER from being delayed by large ZIP requests.

Jun 2010 540.50 Fix SHOW PERM for long permanent variables

By using indirect variables is is possible to create permanent variables with names longer than 17 characters. If any such variables existed then a SHOW PERM would cause supervisor to fault and restart. This problem has been corrected.

Jun 2010 540.49 Surrender_CPED_Priority

Grinder runs as a background process with normal PRIORITY.

May 2010 540.48 Respect TERM ACCESS setting

IF FOR <user1> FOR <USER 2> was entered and <User1> was the log on user for the Supervisor window and <user1> has accesscode needed then and ACCESS CODE required error was reported. The log on accesscode will now be correctly used.

May 2010 540.47 Meta_Zip STR

Internal Change.

May 2010 540.46 ExtraEntry vs Sort

The ExtraEntry mechanism now works after a SORT.

May 2010 540.45 Myself(Entries) Works In Sorts

Myself(Entries) now works in Actions entered from a SORT.

May 2010 540.44 Allow FOR <USER> in WFL FN with ASAP Key

Recent changes to allow the new 'ASAP' mode in Supervisor did not allow the use of the FOR modifier in a WFL function. This restriction has been relaxed.

Although FOR <priv user> FOR <Non priv user> allowed the <non priv user> to be entered with no password, accesscodes still required passswords. This restriction has been relaxed.

May 2010 540.43 Minor ASAP changes

Internal change only.

May 2010 540.42 Support MYSELF(CALLDEPTH)

Support for the CALLDEPTH value of the MYSELF attribute.

May 2010 540.41 Replace ASAP by LOG

Internal change to support SUPERVISOR logging facilities to ASAP and SITE log files.

May 2010 540.40 Internal change only

In is now possible to enter from a symbol file which is in a container. In fact even from a container in a container.

Ex ENTER FROM OPALS/TEST IN "OPALS.CON" IN "META.CON" ON MYFAM ENTER REF OPALS/TEST IN "REF.CON" ENTER ODTS BOB_TEST FROM OPALS/BOB IN "BOB.CON"

May 2010 540.39 Support for ASAP

Internal change only.

May 2010 540.38 TEST

The change described in SUPERVISOR DNote 540.35 did not allow dictionary names that were reserved words such as FROM, AS, FP or wild-card requests that started with such text e.g AS_=, FROM= etc. This problem is now fixed.

May 2010 540.37 ZIP fix

Further changes to the ZIPFILE and UNZIPFILE functions. Documentation as yet unavailable.

May 2010 540.36 Support ZIP and UNZIP

Preliminary support for ZIP and UNZIP functions, ZIPFILE and UNZIPFILE methods in both SUPERVISOR and FLEX.

May 2010 540.35 Allow wildcard with DO of DEFINE

A parametrised DO of the DEFINE context has been changed in two ways to allow faster and enhanced searches of the DEFINE dictionary.

1. The definition name passed to the DO may now be a wild-card,

allowing multiple DEFINE names to be processed in a single request.
          

2. An optional modifier of ODTS, SITU, DISP, MEMO, COMMAND or DEFINE

can be used as a filter for the dictionary search.  The filter
prefixes the definition name.
          

Some examples:

DO (DEFINE:SHOW(NAME))    OPALNAME
DO (DEFINE:SHOW(NAME))    ODTS OPALNAME
DO (DEFINE:SHOW(NAME))    ODTS OP=
DO (DEFINE:SHOW(NAME))    SITU =
          

Apr 2010 540.34 Fix SAVE APPEND for WHENs and AFTERs

SAVE WHENS APPEND ... SAVE AFTERS ... AND SAVE DEF APPEND.... would overwrite the specified file instead of appending to it. The more commonly used SAVE DEF <pattern> APPEND.... worked correctly.

Apr 2010 540.33 Allow Trusted as a modifier for ENTER

A new variant of the ENTER command is available. ENTER TRUSTED FROM ... will enter all commands from the specified file but any WFL command in AFTERs will not be checked. This allows the saved schedule from another system to be added even if some families specified in After commands are not yet available.

Apr 2010 540.32 Prevent automatic LOGREADER if TAPELIB reset

SUPERVISOR will no longer always automatically run the LOGREADER utility after a QUIT or restart. This used to occur unconditionally even if the SO TAPELIB was reset or the TRIM key was absent/expired.

Apr 2010 540.31 Protection for long LOG CONFIG records

Previously, long LOG CONFIG records greater than 1500 words received by a LOG-based WHEN could have caused SUPERVISOR to fault with a variety of errors including PROCESSOR LOOP. EVAL-based LOG requests were not affected by this problem which has now been fixed.

Apr 2010 540.30 Fix LOG=N context problem

The change described by DNote 540.26 had the inadvertent side-effect of generic LOG-based WHENs or EVALs that used filtering by Major and Minor Types to ignore that filtering. For example, a SITUATION defined as LOG=27,6 would have received all LOG records instead of just Major Type 27,Minor Type 6.

It was also possible for certain LOG-based WHENs to stop receiving log events once the associated ODTS executed any WAIT statement. This was caused by SUPERVISOR failing to reinstate REPORT_LOG_ENTRIES capabilities for the slot after the WAIT had been satisfied.

Further, any PD EVALs that passed a very long directory request (or a corrupted request) would have caused SUPERVISOR to fault with a STRING PROTECT at 72092850. This problem also caused the attempted EVAL to appear in a WHEN ? response marked as 'Pending'.

All the above problems are now fixed.

Processor loop detection within the OPAL machine now provides extra information for determining the causes of unusual loop detection and generates both a programdump and timing information in the SUPERVISOR log. As part of the change, SUPERVISOR logging of various errors and displays generated out of the OPAL machine has been improved.

Apr 2010 540.29 Less restrictive security for ExternalCommand

The ExternalCommand interface to Supervisor requires the caller to be running from a privileged or system user and for the codefile calling ExternalCommand to be MPed PU or Taking. The checks for codefile privilege were done in the ExternalCommand procedure but the checks for User privilege were done by Supervisor when processing the command. This had the unfortunate side effect that if an ODTS had been started via external command using a FOR prefix then any Supervisor commands issued by that ODTS would be checked as if they had been entered from External command. If the 'For Usercode' was neither System nor PU the command would be rejected with a 'Not Allowed' message.

All security checking has now been moved into ExternalCommand. If the calling task is not MPed PU or Tasking or if the calling usercode is not PU or SYSTEMUSER then the task will be dsed with no error message. If the Supervisor logging option is enabled then an 'Err' entry will be made in the Supervisor log giving the mix number of the task which attempted an unauthorised call on ExternalCommand with the reason that it failed.

Apr 2010 540.28 Fix SESSIONS context bounds error at 92403600

If a DO of an individual SESSIONS context request was invoked after an earlier EVAL of a DEFINE context, then SUPERVISOR would give a STRING PROTECT fault at 92403600. This problem is now fixed.

Additional protection has been provided to ensure that failures in the contexts such as SL, SESSIONS and STATIONS are properly terminated and that resulting SLOT dumps do not fault too.

Apr 2010 540.27 Correct LOGICAL ASSERTION at 97062000

The change described in DNote 540.26 caused LOGICAL ASSERTION errors at sequence 97062000 for various EVAL contexts such as PER and MX.

Apr 2010 540.26 Correct SORT mask handling

Previously, EVAL/SORT requests for the PD context would fail to sort correctly if the attributes used to define the SORT were not used in either the associated Situation or Odtsequence. This problem is now fixed.

The ODTSCONTEXT attribute in the WHEN context now returns correct values after being broken by the change applied by SUPERVISOR DNote 540.24.

Apr 2010 540.25 SHIFT BEGIN session time/Minor fixes

The SHIFT BEGIN command will now assign a default shift period of 8 hours if the command is not qualified by time. Previously, a SHIFT END command would have been scheduled for the same time as the SHIFT BEGIN and may have caused the shift to terminate immediately.

The SHOW GLOBALS command would have missed displaying a variable if it was a real and its name sorted alphabetically first.

Previously, TT function calls executed by Opal code from another TT were not logged in the SUPERVISOR log. This behaviour has been changed: it should be note that TT functions can still only be nested to one level.

Apr 2010 540.24 Fix myself(inputparam) for non flex PD Dos

The MYSELF(INPUTPARAM) or WHENID(INPUTPARAM) attributes now return the correct parameter when used in a PD context where the command is not passed to Flex.

HELP ATT :<Context> will now be treated as HElP ATT =:<context>

MYSELF and WHENID are now Synonyms.

When changing usercodes using the TERM USER command the most common next action was to enter TERM USER - to prevent the new usercode being used on all commands. This allowed the use of FOR <user> to be used selectively. The default behaviour for TERM USER has now been changed so that the new usercode is not active. To get the old behaviour a TERM USER + is required after a TERM USER.

Apr 2010 540.23 Tighter restrictions on changing USE ..ODTSECURITY

If a system is running with the security option 'SECADMIN Authorized' then Supervisor now requires a SECADMIN usercode to set the USER for ODTSECURITY. As before to change or delete the USER for ODTSECURITY the current user must be used.

Error messages associated with the USE command are now more descriptive than the previous "Not Allowed".

Mar 2010 540.22 LOGTEXT and PRODUCT in METALOG context

The LOGTEXT and PRODUCT attributes in all variants of the METALOG context now return correct values.

Use of the LC command will now cause only one entry to be written into the SUPERVISOR log instead of two. The log record will include source information:

11:55:56 Lgc:Via ODT(1):Logged from the ODT
          

The original case and spacing of any LC text is now preserved though LC commands from an ODT are always upcased by the MCP unless quoted. Also, all SUPERVISOR commands issued from the ODT will now be logged without the 'TT' prefix into the log.

Mar 2010 540.21 Relax SEND_ARY slot checks

Occurrences of various 'SEND_ARY' messages seen during PD EVAL requests and instances of hung PD slots, marked as 'WAIT (FLEX)', have been corrected.

Mar 2010 540.20 Fiix 'bounds error' in DO of MX ,Prints, or WHEN

An unfortunate side effect of the changes in version 540.19 was that A DO of an ODTS where a parameter was passed would fail for some contexts. The contexts affected were MX,PRINTS and WHEN.

Mar 2010 540.19 Fix random Whenid(Inputparameter) bug

This change fixes a bug when using WHENID(INPUTPARAM) in a PD context.

Mar 2010 540.18 Fixes for WHENID(INPUTPARAM)

WHENID(INPUTPARAM) now works correctly in the PD and After contexts. A 'bounds error' when entering a DO of an ODTS with context AFter has been corrected;

Mar 2010 540.17 Fix security violation with WFL("FOR * ...

The use of FOR * in the WFL function would cause a security violation to be logged. The WFL function would proceed correctly. This problem has been corrected

Mar 2010 540.16 Improve 'IN' container error handling for PD

The handling and reporting of errors for 'IN' files searches has been improved to provide more information about the failure. In particular, failed Supervisor PD searches did not always get an error returned in a timely manner.

An internal change has been made to prevent SUPERVISOR from overriding any external program STACK assignment.

Mar 2010 540.15 Fix TT NS handling from ODT

The change documented in SUPERVISOR DNote 540.05 caused all TT commands used from an ODT to be subsequently ignored if an earlier TT command had generated a TT NS (because the output exceeded a page). This problem has been fixed.

Also with this change, the MAILERROR attribute will now return correct MAILLIB messages, causing the MAILLIB library to be invoked if needed. Previously, if the library was inactive, the text 'Unknown message error' would have been returned.

Mar 2010 540.14 Protect TT calls from FLEX failures

If a PD EVAL or DO request uses a ':' options modifier then FLEX utility will always be invoked. If the PD request is then called from a TT function and the ':' option is invalid, FLEX will return an error and the TT call is terminated.

Unfortunately, two error messages were returned to the TT - these were '<SITU> returned FALSE' and 'FLEX Option expected' - where only one was expected. The second message caused SUPERVISOR to handle it as an event notice and caused several possible subsequent failures. These were either INVALID OPERATOR at 91619520 or SUPERVISOR could hang indefinitely waiting for further message fragments for what it believed an incomplete notice. The only resolution in the latter case was to manually DS Supervisor.

The above problem has been resolved. SUPERVISOR will now return and log errors such as 'FLEX Option expected' without queuing a second message. The handling of incomplete notices has been improved to timeout after 10 seconds if no further message fragments are received. In such case, the following message will be displayed: 'Warning! Slot #nn time-out waiting for last message chunk'.

Mar 2010 540.13 Disable CALL DO flag after SUPERVISOR fault

Previously, it was possible for SUPERVISOR to fault with an INVALID INDEX at 93704000 under the following unusual circumstances.

1. SUPERVISOR had been DS-ed or fault terminated whilst executing a TT function from within a CALL DO executed from a WHEN.

2. On SUPERVISOR restart, the WHEN too was restarted and the main ODTSequence was then recompiled and reloaded whilst running.

This sequence of events caused Supervisors' internal ODTS caching tables to become corrupted and attempted to execute new OPAL code from the wrong location. This problem is now fixed.

Mar 2010 540.12 Resolve empty TERM(EMAIL) and TERM(PRINTDEFAULT

The TERM(EMAIL) and TERM(PRINTDEFAULTS) attributes now respectively return an empty string when neither EMAIL or PRINTDEFAULTS are set for the referenced usercode instead of a string of NULs.

Feb 2010 540.11 Correct when status for MSG ODTS

Version540.08 corrected the When status display for active system ODTS nut not MSG ODTS. This change corrects that omission.

Feb 2010 540.10 Fix USERFN function handling

The change described by DNote 540.09 caused the Opal USERFN function to fault in the GRINDER process leaving the calling slot waiting on 'WAIT USERFN'. This fault has been corrected.

Feb 2010 540.09 Move ENVIRONMENT memory data to global

This changes moves heap data areas from the local slot environment to globally within Supervisors' stack. Opal functions such as KEYIN and DUMAP now run with improved performance especially where large data content is returned. This change is also necessary to support the forthcoming ZIP and UNZIP Opal functions.

Feb 2010 540.08 Correct WHEN ? display if entered in a TT function

The information returned by the WHEN ? command was invalid if entered from an ODTSeqence using the Keyin or TT functions. The ODTS which executed the command would be marked as "Waiting on time". It will now be marked as Active.

Feb 2010 540.07 Remove superfluous NOT DELETED msg for AF-

Previously, when using the AF - command to delete scheduled activities that were either WFL or operator commands, an extraneous message would always be displayed:

AF - 1100 ON TUESDAY:PER PK
          
DELETED FROM 1 TODAY SLOT, 1 TUESDAY SLOT
NOT DELETED FROM 1 TODAY SLOT, 1 TUESDAY SLOT:ACTIVITY NOT FOUND
          

The above behaviour has been corrected.

Jan 2010 540.06 Unconditional logging of all FOR errors

Previously, any errors incurred by failed FOR commands were not being logged in the Metalogic LOG file because they were regarded as interrogatory. This behaviour has been corrected and all FOR modifier usage is now logged regardless of the command.

Jan 2010 540.05 Support new WHENID Mnemonic INPUTPARAM

This change supports an extension to the OPAL WHENID attribute. A new mnemonic INPUTPARAM has been added.

WHENID(INPUTPARAM) returns the text of any parameter passed to this
          
Slot. EX. TT DO MIX_ODTS 1234,5678 WHENID (INPUTPARAM) would return '1234,5678'

TT EV PD_SITU DO PD_ODTS (*)=AX= IN "XYZ.CON" WHENID(INPUTPARAM) would return '(*)=AX= IN "XYZ.CON"'

MYSELF(FIRST) Returns the value of the TERM FIRST setting

The ODT COMPILERTARGET command was rejected when entered from a Supervisor window. It was treated as a Supervisor COM command. This problem has been corrected.

The Opal statement SHOW did not properly honour the terminals TERM FIRST setting. The last line of the first setting would be cleared. i.e. If TERM FIRST was 2 line 2 would be cleared.

Dec 2009 540.04 Fix MAIL LOG paging problem

The MAIL LOG will no longer return a multi-page response if the 'LOG' modifier was provided in lower case.

Dec 2009 540.03 Fix lost PD entry timing window

Previously, on busy systems, it was possible for a PD context DO to skip the first file returned by the requested search. This behaviour has been observed to occur particularly with file searches in wrapped containers and caused by a timing issue between the FLEX utility and the DO being ready to receive file information. This timing hole has been closed.

Also, a diagnostic change has been applied to SUPERVISOR's WINDOWS task to capture possible empty messages destined for a COMS SUPERVISOR window. If such a message is captured, the display "WINDOWS discarded empty type 14 message" will be seen and, on the first occurrence, a programdump will be taken.

Dec 2009 540.02 Fix AF- for ON DATE entries

This change fixes a bug seen when using AF - with the ON DATE modifier. If there were two or more entries which were identical apart from the date then the first ON DATE entry would be deleted no matter what date was specified.

Dec 2009 540.01 Fix selective HO of MCP 13.0

Previously, on 54.1 Field Test MCP, a HO command request for a specific file would be unable to return the list of mixnumbers currently using that file. Instead, SUPERVISOR would return the error 'In use by MCP or unknown program'. This problem is now resolved and file user information will be correctly returned.

Nov 2009 531.71 Fix NSL request fault messaging

SUPERVISOR will now provide the correct diagnostic messages when a NAP Statistics Library problem is encountered: previously, an unhelpful UNKNON(32768) message would have been shown instead of the real reason. The undocumented NSL error 0 will now cause the calling script to be terminated and a library delink forced between the Metalogic NAPINTERFACE library and NSL.

Oct 2009 531.70 Force QUIT after SUPERVISOR library THAW

Previously, if a <mixno>THAW was applied to SUPERVISOR, any attempt to then use any of its library entrypoints, such as those used by FLEX for PD requests, would fail. Because it is not possible for SUPERVISOR to re-FREEZE itself in its current incarnation, , SUPERVISOR will now automatically forcibly restart itself displaying the message:

SUPERVISOR RESTARTING DUE TO LIBRARY THAW
          

It is recommended that THAW commands are never passed to SUPERVISOR.

Oct 2009 531.69 Allow local LOG command override

A new MAGUS configuration variable called SYS_LOGALL has been implemented to support a customer enhancement. This variable, supported by INSTALL's SYSTEM CONFIG menu, expects a usercode list (separated by commas) that is checked each time a LOG command is used from a logged-on remote station, typically a SUPERVISOR window.

If the logged-on usercode is in the list, SUPERVISOR appends '+' to all LOG commands (unless '+' is already present) so that each command can return more than one page of information. Any changes to the usercode list assigned to SYS_LOGALL will require a SUPERVISOR restart. This feature applies for all LOG commands for SUPERVISOR, TRIM and MAILLIB.

Oct 2009 531.68 Ensure 'NOT DELETED' messages are always generated

The change to the generation of NOT DELETED messages when deleting activities with the AF- command, as described in DNote 531.67, did not handle all situations. In particular, deleting an activity for a time that had no other activities scheduled would have not included all those inactive days in the 'NOT DELETED' counts.

Sep 2009 531.67 Better 'not deleted' messages

The format of messages returned when attempting to delete items from the schedule when the item does not exist on all of the days specified has been improved.

Ex.

If TT DO TEST is only scheduled on Mondays at 1700 then
AF - 1700 DAILY:TT DO TEST
will return a better message.
          

Sep 2009 531.66 Fix on nTH WORKDAY for n>5

Version 530.30 of Supervisor stopped the AF syntax ON nTH DAY or ON nTH WORKDAY from working if n was greater than 5. This problem has been corrected.

Sep 2009 531.65 Shorthand TERM TRUNCATE

A quick way of changing TERM TRUNCATE settings for a SUPERVISOR COMS window or remotespo is now available. It is now possible to use 'TERM -' to perform 'TERM TRUNCATE FALSE' or 'TERM +' instead of 'TERM TRUNCATE TRUE'. It is still possible to provided additional TERM modifiers after the '-' or '+'.

Also, SUPERVISOR will no longer use its local unit tables to try and retrieve unit information for a tape that was created from a foreign SUMLOG. This could have caused an incorrect owner to be assigned or various run-time problems for SUPERVISOR.

Aug 2009 531.64 Remove SUP_USEDUMP warning

SUPERVISOR will no longer display confusing configuration warning messages during its initialisation phase if the USE FAMILY .. FOR DUMP did not have a current setting. An unnecessary display message when LOGREADER is run with a specific SUMLOG has been removed.

Aug 2009 531.63 Fix LOGICAL ASSERTION for OPAL function statement

The change described by DNote 531.60 caused OPAL functions such as PING, WFL and TT, when used as standalone statements, to generate the error message 'LOGICAL ASSERTION UNTRUE AT SEQUENCE 94231000' and a slot dump. This problem has been fixed.

Aug 2009 531.62 Implement USE FAMILY for TASKFILE

A new USE FAMILY variant has been implemented to allow sites to change the location of SUPERVISOR's taskfiles (used for programdumps, debug tracing and ENTER listings) to a family other than DL BACKUP. This provides a mechanism for preserving Supervisor fault information which otherwise might have been missed and removed from normal housekeeping of the DL BACKUP family.

---- USE ---- FAMILY ---+-- <FamilyName> --+-- FOR --- DUMPs -----|
          

The setting is not applied immediately and a SUPERVISOR restart is required. Any pending status can be seen in the usual USE screen response. The '-' modifer can be used to cancel the current DUMPS setting (restart required) or a current pending assignment.

Although the location of the taskfile has been changed, there are no other effects on print request generation.

Aug 2009 531.61 Stricter usage of EXTERNALCOMMAND

The EXTERNALCOMMAND library entrypoint is available for external programs to send commands to SUPERVISOR and wait for responses, including SHOW output from DO commands. This change enforces stricter controls on its usage.

SUPERVISOR now requires that not only must the invoking usercode be marked PU in the USERDATAFILE but also the codefile must be marked MP + PU or MP + TASKING. Any other caller will be DS-ed.

Aug 2009 531.60 Allow TT function to inherit logon usercode

The TT function will now correctly inherit the 'LOG-ON' USERCODE. Therefore if a supervisor window is logged on as BOB then and ODTS started from that window could use TT("FOR BOB .....). i.e. with no password supplied.

This change also detours an MCP bug which stopped some IK IPSHOW METER commands from working from Supervisor Windows.

Jul 2009 531.59 Detect PING authorisation failure by TCPIP

Previously, the PING function was not tracked correctly if it failed because of a TCPIP negative message response because of a semantic or syntax error. Because these responses were not detected, the slot executing the PING would then hang indefinitely. These failures are now detected correctly.

SUPERVISOR now requests its GRINDER process to handle the DCKEYIN of the NW TCPIP PING instead of being executed on the main stack. This was problematic because Supervisor's own usercode was associated with the PING request and could have failed NW AUTHORISE restrictions that caused a SEMANTIC ERROR: SECURITY VIOLATION. Issuing the NW TCPIP PING via GRINDER means that no usercode will be associated with the command (unless the PING function is executed from a slot which has a FOR usercode).

Two new PINGRESULT categories have been added to reflect the above changes: these are PINGSECURITYERROR and PINGCOMMANDERROR. The former is the special SEMANTIC ERROR/SECURITY VIOLATION case. The PINGTEXT attribute has been modified to incorporate these two error conditions and will show if PINGCOMMANDERROR is a semantic or syntactic error.

Jul 2009 531.58 Enable Unsafe Define attribute for Commands

The Define context attribute Unsafe did not return correct values for Command programs. This has been corrected.

TT EV META_FIXCOM DO META_FIXCOM

will recompile all Commands marked as unsafe.

Where META_FIXCOM is define as

TT DEFINE + SITUATION META_FIXCOM(DEFINE): TYPE=COMMAND AND UNSAFE TT DEFINE + ODTSEQUENCE META_FIXCOM(DEFINE): IF NOT EXTRAENTRY THEN

ODT("TT SAVE COM ",NAME," APPEND OPALS/UNSAFE/COMMANDS")
          
ELSE
ODT("TT ENTER FROM OPALS/UNSAFE/COMMANDS")

Jul 2009 531.57 Better handling of 'Open' Input from Supervisor

If a Supervisor window was defined in Utility to have 'Notify Open Text' then the text sent on Open was sometimes discarded. This would happen depending on the speed of the system and how busy it was. This timing problem has been resolved.

If an ODTS is waiting for input (i.e. using the INPUT function) and the user enters ?END then the Supervisor window will now be closed in addition to the ODTS being terminated.

Jul 2009 531.56 All commands marked as unsafe

Any Supervisor command Opal with a context other than System was incorrectly flagged as unsafe. This problem has been corrected but any 'unsafe' commands will need to be recompiled to remove the flag.

Jul 2009 531.55 Allow PER DEFINES at TRIM-only sites

At TRIM-only sites, the capability to DEFINE PER scripts had been inadvertently disabled. This feature has been reinstated.

Jul 2009 531.54 Try to limit WAITANDGO fault handling

Previously, certain very rare SUPERVISOR faults could have caused multiple continuous 'PROGRAMDUMP #N .. NOT TAKEN' messages to be generated requiring SUPERVISOR, in one case, to be manually DS-ed. Now, if SUPERVISOR is able to trace such faults to an active WHEN slot then the slot will be immediately terminated stopping the flood of programdump messages.

Jul 2009 531.53 LOG command error when SO 47 is off and #[LFA]

Previously, the LOG command would be interpreted as the ODT LOG command, causing SYSTEM/LOGANALYZER to be run, when SO 47 (Logging) was reset. This behaviour has been changed; SUPERVISOR will now display the message "LOGGING (SO 47) is currently disabled" in the above circumstances. Note that SUPERVISOR allows LOGANALYZER to be executed from any remote station using the SYSLOG command.

Also, the special lookup string '#[LFA]' will now be translated to the hex string 48"0A" (Ascii LF) in Opal string expressions.

Jul 2009 531.52 Fixes a bug when window user > 5 characters

Version 520.93 introduced a change which allowed the use of a prefix of FOR <user> without a password, if the <user> matched the logged on usercode or if the logged on usercode is the ODT Security usercode.

Unfortunately this only worked for usercodes of 5 characters or less. This problem has been corrected.

Jul 2009 531.51 Use term access when required

This change relates to commands entered from a Supervisor window with both a user code and access code specified. If the command entered would invoke the WFL compiler and was not BEGIN JOB or START (ex COPY,ADD,ARCHIVE) then the resultant job would not inherit the access code and if ACCESSCODENEEDED was set for the user the job would fail syntax. This problem has been corrected.

If the Logon user was not active (TERM USER -) and the short cut prefix FOR <user> was used, where <user> is the log on user, the accesscode was not passed to any command. This caused similar problems as described above. This problem has been corrected.

When the log on user is active (Term User +) some system commands behave differently. Ex PD will only show files for the log on user. This can be overridden by prefixing the command with FOR *.

Ex FOR * PD BD/=

Jun 2009 531.50 Support for new Volume attributes

Supports new attributes VSVER,VSORIGINALREFS and ORIGINALREFS.

Jun 2009 531.49 Fix STRING PROTECT@ 80018000 handling INLINE

SUPERVISOR could have faulted with a STRING PROTECT at 80018000 when attempting to remove spaces from an in-line OPAL command causing the script to fail. This problem, which depended on the length of the command entry and previous usage in the requested WHEN slot, is now fixed.

Jun 2009 531.48 Minor logging fixes and enhancements

The LC command will now be correctly logged in SUPERVISOR's log file with the correct category ('Lgc') instead of 'Odt'.

Regarding SLOT command responses or dumps, in-line OPALs will now show the size of the code currently used by the slot. Also, string variables dumped by a non-printing SLOT command will now only show the first 500 characters of each string.

After termination of all EVAL or WHEN scripts, the number of SITU and ODTS entries will be written into the SUPERVISOR log. For example:

Jun 2009 531.47 Trap illegal Opal INTEGER calls

OPAL scripts that attempt to use integer functions with numbers greater than 2**38-1 would fail with an INTEGER OVERFLOW fault. The OPAL machine will now give the fatal error:

"Value greater than 2**39-1 passed to INTEGER function"
          

May 2009 531.46 Fix PING function

The change applied by SUPERVISOR Dnote 531.18 caused the Opal PING function to stop working causing the executing slot to be marked as 'WAIT PING' even though the PING had completed. This problem has been fixed.

May 2009 531.45 Add new WHEN context attributes

Two new attributes, SLOTMEMORY and VARIABLES, have been added to the WHEN context. These return, respectively, the amount of memory used by the slot for heap variable data, its internal data structures plus code size and the number of OPAL variables used.

In addition, SUPERVISOR will now record the SLOTMEMORY used into its log file when the slot has completed (if SO LOGGING is set). A typical log entry might be:

14:12:07 Whn:SLOT#9[64627] CP=0.09,IO=0.01,ET=55:32.80,MEM=20.5 Kb
14:12:07 Whn:OBI_HTTP+OBI_HTTP[64627] COMPLETED
          

SUPERVISOR will now unconditionally log the above information for any terminated WHEN; previously, this was not done.

May 2009 531.44 support for PD reference attribute

OPAL now supports several ways to get attribute information for a specific file (using the PD context) from any contexts. The mechanisms are described below:

Firstly, the VIA function has been extended to allow attributes that are defined as 'LINK to PD' or 'LINK to USER' in other semantics to be used as references to the PD and USER contexts respectively.

HELP ATTR CODEFILETITLE
          
---- HELP ATTRIBUTES ----
CODEFILETITLE (SL) Returns STRING Link to PD in the form of File title
Semantics : Returns the active codefile name for this SL.
          

For example, the CODETITLE attribute in the MX context returns the title of the codefile used by this process. Because this attribute is linked to the PD context, it is possible to easily return information about the file:

DEFINE + ODTSEQUENCE MXPD(MX):
#SEG:= VIA(CODETITLE:SEGMENTS)
          

The SEGMENTS attribute is a member of the PD context and, if the codefile is resident, VIA allows the file size to be retrieved. Multiple attributes can be returned by using the #(..) function with VIA; in this example, the USERCODE attribute in the LOGBOJ context allows Userdata information about the job usercode to be retrieved:

DEFINE + ODTSEQUENCE BOJUSER(LOGBOJ):
$UINFO:=VIA(USERCODE:#(FAMILY,,MAXPW,,MINPW))
          

To return the file size of the CM-ed MCP codefile:

DO (SHOW("MCP FILE SIZE: ",VIA(WM:SEGMENTS)))
          

Since there is only a small subset of LINK or reference attributes, a list of eligible attributes for SUPERVISOR can be viewed using the a HELP variant which uses the keyword REF instead of ATTR:

HELP REF =:MX
HELP REF CODE=
          

The other two methods may be used from any context and do not use LINK attributes.

A new string variable method called PD has been implemented. Similar to the MX, PER, TAPEDB methods, a string expression can be used instead of a reference attribute and means that its usage is unrestricted. For example:

DEFINE + ODTSEQUENCE PDTEST:
$FILE:= "*SYSTEM/FILEDATA ON DISK";
SHOW("INFO = ",$FILE.PD(#(RELEASEID,,CREATIONDATE)))
          

Alternatively, the PDKEY attribute, used with VIA, similarly allows a file title to be specified by a string expression. This has been provided to be compatible with the current VIA implementation but the PD method is preferred. The above example is shown below using PDKEY:

DEFINE + ODTSEQUENCE PDTEST:
$FILE:= "*SYSTEM/FILEDATA ON DISK";
SHOW("INFO = ",VIA(PDKEY($FILE):#(RELEASEID,,CREATIONDATE)))
          

Reference attributes that LINK to the VL context now work correctly.

Apr 2009 531.43 Add Help for REC VER and REC WHO

This change updates the help for the REC command to include details for the VER and WHO modifiers.

Apr 2009 531.42 Restrict TT call nesting

Previously, use of an Opal TT function from within another TT function, either directly or indirectly, had unpredictable results and caused any referenced heap data to be unreliable. SUPERVISOR will now correctly handle such calls but only to allow a nesting of one additional TT call.

Any attempts to use more than 1 nested TT call will cause the calling slot to fail with the error "Only one nested TT call allowed". Also, any DO commands executed from a nested TT function call will not be logged in the SUPERVISOR log or the SUMLOG, regardless of the setting of LOGMINIMAL and MONITORING, to aid performance.

Lastly, if a stand-alone DO of a PD Opal was attempted for for a non-existent file or directory, the failed DO slot would be marked as in-use and not reusable until the next SUPERVISOR restart. This problem has been fixed.

Apr 2009 531.41 Allow year in Holiday ?

The Holiday ? and Workdays ? commands have been extended to accept an optional year parameter. If a year is specified, only holidays in that year are reported and a total of the holidays for that year is shown. This is intended to make it easier to confirm that all of the holidays for the year supplied have been specified.

Ex. HOLIDAYS ? 2009

JANUARY       1
JANUARY       2
APRIL        10, 2009
APRIL        13, 2009
MAY           4, 2009
DECEMBER     25
DECEMBER     26
Total Holidays :7
          

WORKDAYS ? 09

MARCH        21, 2009
APRIL        12, 2009
Total Workdays :2
          

Apr 2009 531.40 Implement STATIONS context

This change supports a new SUPERVISOR context called STATIONS. The STATIONS context allows access to all active and inactive MCP datacom station information similar to that returned by the SYSTEM/DCSTATUS utility. These MCP datacom tables include both pseudo and physical stations and, where a station is in-use by a MCS, additional session information is provided.

STATIONS context scripts may only be used with the EVAL or DO commands. Information returned to the script includes detailed information about physical stations (as declared in the NIF) and MCP pseudo stations used to provide sessions for all MCS activity such as CANDE and COMS.

The STATIONS context accepts two subcontexts called NIF and PSEUDO allowing an EVAL to search either datacom station subset. In reality, the PSEUDO subcontext is of more interest since these stations are generally used by COMS and CANDE sessions. By default, if no subcontext is present, EVAL will return all station information.

Examples:

EVAL(STATIONS=PSEUDO:TRUE) DO (SHOW(LSN 5,,STATIONNAME 40,,MCSNAME))
EVAL(STATIONS:VALID(CURRENTWINDOW)) DO (SHOW(LSN,,CURRENTWINDOW))
DO (STATION:SHOW(LSN,,LASTLOGONDAY)) 16384
          

Note that the MCP allocates pseudo stations in two different LSN ranges; the first range appears immediately after NIF-declared physical stations and is used by DATACOMSUPPORT for its own station allocation. The second range is an expanded pool of pseudostations, allocated in blocks of 100 stations and starting at LSN 16384, which is controlled by the MCP.

The EXTERNALSTATUS attribute, if valid, provides additional information provided by Protocol Specific Handlers (PSH), such as CCF and TELNET, and will show connection details, IP address etc.

If the station is active with COMS, additional information such as current COMS window and MCS name plus usercode, accesscode and chargecode if present. Please see HELP ATTR =:STATIONS for a complete list of available attributes.

Apr 2009 531.39 Do not run FLEX with MCS session

OBJECT/FLEX runs, invoked by :FLAT requests from PD scripts, will now not use a MCS session created by SUPERVISOR. SUPERVISOR will now write additional information into its own log file for any in-line OPAL that has been compiled from a TT function and has failed syntax. This change, in association with that described by MAGUS DNote 530.22, allows better diagnostics for in-line compiles that unexpectedly syntax.

Further, resource utilisation figures are now available in the SUPERVISOR log file at completion time for all WHENs, DOs or EVALs. For example:

12:09:49 Whn:SLOT#5 [49283] CPU=0.01,IO=0.00,ET=1:39.02
12:09:49 Whn:DO INLINE_5[49283] COMPLETED
12:08:10 Whn:DO INLINE_5[49283] RUNNING (SLOT 5)
          

Mar 2009 531.38 Implement SESSIONS context

This change supports another new SUPERVISOR context called SESSIONS. The SESSIONS context allows access to information about all MCP job and MCS sessions currently active in the system. This feature is made possible due to the new SESSIONS ODT command now available in MCP 53.1 and later versions of 52.1.

SESSIONS context scripts may only be used with the EVAL or DO commands. Information about the session include LSN, MCS number and name, Station name and log-on time.

Examples:

EVAL (SESSIONS:TRUE) DO (SHOW(SESSION 5,,STATIONNAME 40,,MCSNO))
          
DO (SESSIONS:SHOW(SESSION,,LSN)) 240,255,256
          

The latter would show session information for sessions 240,255 and 256 assuming that they are valid.

IN addition, SUPERVISOR now shows meaningful station names for all of its own MCS sessions. Any WHEN, EVAL or DO slot that is active will include slot information e.g. SUPERVISOR/SLOT_3/WHEN would indicate a WHEN run in slot 3. Previously, all SUPERVISOR session station names were indistinguishable with the name SUPERVISOR/SESSION.

A problem where some SUPERVISOR sessions, used to run the OBJECT/FLEX utility for PD context scripts, were not being released after FLEX has terminated has been resolved.

A complete list of SESSIONS attributes may be viewed by using the HELP ATTR =:SESSIONS command.

Mar 2009 531.37 Minor Fixes

A bug introduced in version 510.66 meant that only the last holiday specified in a list to the HOLIDAY command was entered. The correct behaviour has been restored.

The commands DISP and HOLIDAY were not recognised as Supervisor commands from a Supervisor window and therefore required a TT prefix. This has been corrected.

Note that this correction means that where DISPLAY "TEST" could be entered from a Supervisor window to generate a test message, it now must be entered as ODT DISPLAY "TEST".

Mar 2009 531.36 Add STATS variant to COMS function

A new modifier has been added to the COMS function STATS will return statistical information for WINDOWS and PROGRAMS. For Direct Windows and REMOTE FILE Windows the information returned is for the associated Program. For MCS windows the information is for the Window. Cumulative information is maintained for subsequent calls from the same slot. COMS("STATS") return basic data, COMS("STATS FULL") more complete data. The data are returned in a comma separated list for each Program/Window with the Program/Window name as the First item. Each list is separated by a new line.

The items returned are as follows with an X indicating if the value is returned for STATS or STATS FULL.

Field          "STATS" "STATS FULL"
Name              X          X
Type                         X
Trans             X          X
TotTrans                     X
QDepth            X          X
LastResp                     X
RespTime          X          X
TotResp                      X  

The Fields above return the following:

Name      Program name for Direct or Remote windows, Window name for MCS windows.
Type      DIRECT,MCS or REMOTE
Trans     Number of transactions since last call in this slot, blank if first call
TotTrans  Number of transactions since Coms started.
Qdepth    Blank for non Direct windows. QDepth at time of call
LastResp  Blank for non Direct windows. Last response time in milli seconds.
Blank if no transaction in this period.
RespTime  Blank for non Direct windows. Total response time in milli seconds since
the last call in this slot.
Blank if first call.
TotResp   Blank for non Direct windows. Total response time in milli seconds  since Coms started.

We are working on example ODTseqences to collect Coms stats in a .CSV file which could be opened by EXCELL. If you are interested in monitoring COMS in this way please contact METALOGIC for an example.

Mar 2009 531.35 Fix INVALID SESSION NUMBER with RESTRICT

On later releases of MCP 52.1 and 53.1 ICs, the Metalogic RESTRICT command mechanism caused all operator commands issued from SUPERVISOR sources associated with the ODTSECURITY usercode to fail with the error 'INVALID SESSION NUMBER NNNN'(where NNNNN is SUPERVISOR's mix number).

These sources include:

- SUPERVISOR window with a TERM USER logged-in to the ODTSECURITY user
- Any commands issued from an active WHEN or DO running with a FOR
modifier set to the ODTSECURITY usercode
          

This problem is now fixed. Note that only SUPERVISOR installations with a valid ODTCONTROL key may use the RESTRICT implementation.

Mar 2009 531.34 More informative messages for TT('DO..' calls)

The string result values returned by DO calls that now fail or return missed results, when invoked by the TT function, will now return more informative messages and new TTLASTERROR values. This is true where a list of entities is passed to the DO and one or more of the calls fails e.g. invalid mix number or unit number.

'All Do parameters invalid'           TTLASTERROR -> TTDONONEFOUND
'Warning: 2 DO parameter(s) invalid'  TTLASTERROR -> TTDOWARNING
          

In the event that a standalone DO called from a TT is successful, the TT result will now be an empty string.

Mar 2009 531.33 Implement SHOWOPEN context

This changes supports a new SUPERVISOR context called SHOWOPEN. The SHOWOPEN context allow the retrieval of information about all open, in-use files on a specified disk family and includes both temporary and permanent files. If the family is the DL JOBS family, then Job File header information will additionally be returned.

SHOWOPEN context scripts may only be used by the EVAL command; there is no support for the DO or WHEN commands. Any EVAL command can be passed a valid disk family name, with optional familyindex, after the full EVAL command. The familyindex should be preceded by the '#' character e.g. DISK #3

Some EVAL examples are shown below:

EVAL (SHOWOPEN:TRUE) DO (SHOW(TITLE 50,,SECTORS)) [20]  CDIMAGE
EVAL (SHOPWOPEN:TEMPORARY) DO SHOW_TEMP  DISK #3
          

If no family name is provided then SUPERVISOR assumes the systems file family that it uses (as assigned by USE FAMILY..FOR SYSTEM).

If the DL JOBS family is selected then SHOWOPEN will information about any Job Files that are active. Typically, in the MCP SHOWOPEN response, these appear as 'Job File for NNNNN' entries; for these entries, SUPERVISOR sets the JOBFILE attribute to TRUE and assigns the job number to the JOBNUMBER attribute. This can then be used to return additional information about the job file owner:

EVAL(SHOWOPEN:JOBFILE) DISP (#J:=JOBNUMBER 5,,#J.MX(NAME)) DEV #1
          

Mar 2009 531.32 Fix SLOT response in TT

Previously, if the SLOT command was invoked from a TT function call, the response constructed by SUPERVISOR was not correctly returned to the caller, usually returning an earlier TT or KEYIN response. This behaviour occurred because the SLOT command was executed much later by the individual slot causing the caller to miss the response.

A formatting issue with SLOT responses generated by TT functions has been fixed;some minor enhancements have been made to the printed reports generated by a DUMP or PRINT SLOT command.

Mar 2009 531.31 Don't assign default chargecodes to SUPERVISOR

The deimplementation of default SUPERVISOR-assigned CHARGECODEs, first described by DNote 520.16, was intended to remove any CHARGECODEs from internal SUPERVISOR processes such as SAVE SCHEDULE etc. if no default USE CHARGE setting applied. This was unfortunately not the case and this behaviour has been corrected; SUPERVISOR processes will now run without a CHARGECODE if USE CHARGE is not set.

The USE command will now show 'Not assigned' if no default CHARGE has been applied.

The ASSIGNCHARGE subprogram is now not automatically bound into the METALOGIC/SUPERVISOR codefile. In the unlikely event that a site may wish to use its own scheme for SUPERVISOR billing, then this can still be performed by compiling a tailored version of the SUPERVISOR/ASSIGNCHARGE source and rebinding SUPERVISOR with the supplied SUPERVISOR/BIND job file.

Mar 2009 531.30 Prevent mistaken DS of Grinder

In rare circumstances on multi processor system Supervisor could mistakenly treat the Grinder stack as being hung and DS it. Any task being performed by grinder would already have completed, so no work would be lost. This loophole has been closed.

Mar 2009 531.29 Support better julian date attributes

Supports the changes made in Opal Gstablegen 530.40.

Mar 2009 531.28 Allow Supervisor commands longer than 15 Chars

There was an unintended restriction when processing Supervisor defined commands. (i.e. Created using TT DEFIME COMMAND ...) If the total length of the name of the command and any mixnumber prefix was greater than 15 characters the command was not recognised. This restriction has been removed.

Feb 2009 531.27 INVALID INDEX at 24945020 with generic LOG WHEN

Previously, running a generic LOG-based WHEN could have faulted with an INVALID INDEX at 24945020 depending on the nature of other active WHENs. This problem is now fixed.

Feb 2009 531.26 Fix WHEN disable after QUIT and RESTART

The change described by DNote 531.25 had the unintended side-effect of suppressing the restart of all WHENs after any SUPERVISOR restart. This problem has been corrected.

Feb 2009 531.25 Fix pending PD slot after FLEX error

Previously, various errors returned by an EVAL of a PD context scripts were not handled correctly when invalid directory requests were passed. Illegal directory names passed to a PD EVAL caused SUPERVISOR to fail to report the error and would leave the EVAL frozen for some time, with zero evaluations instead of immediate termination.

If a PD context DO was passed a file or directory request that did not exist and the search was not :FLAT, the error 'File/Dir Not Found' would be correctly returned but the affected DO slot would not be terminated but remain in the WHEN list marked as 'Pending' and 'Queued'. These slots could only be cleared by a SUPERVISOR restart.

Both of these problems have been fixed.

Feb 2009 531.24 Include SECURITYLOG processing after TL

After a TL, SUPERVISOR will now automatically copy the associated *SECURITYLOG file that is released as well as the SUMLOG. Upon successful completion of the COPY, the SECURITY will be removed from the DL family. This mechanism also applies if SO+AUTOTL is set and the SUMLOG is released manually by an ODT TL command or due to log size.

The example WFL job file *METALOGIC/JOB/ANALYSE/LOG, supplied with every SUPERVISOR release, has been changed to show optional processing of any SECURITYLOG file.

Feb 2009 531.23 Fix GRINDER fault after TT function

Previously, the GRINDER process could have faulted with a BOUNDS ERROR @ 41498600 under the following circumstances:

1. An OPAL DO executes a TT function call that performs a PD search

on a selected directory and returns 'NO FILES'.
          
2. A subsequent OPAL executes in the same slot as the above TT call and
issues a WFL statement via an ODT statement.

The TT failure to find any files causes an internal WHEN slot array to be corrupted which remains until the slot is reused. The second OPAL references the corrupt value and causes GRINDER, which is attempting to execute the WFL request, to fault.

GRINDER faults will now display more detailed history information in the SUPERVISOR log as well as system messages when a fault occurs.

Feb 2009 531.22 Revised LOGREADER handling

This change introduces a new mechanism for the handling of the LOGREADER utility. A new SUPERVISOR command called LR has been implemented which has the following syntax:

---- LR ----- +--  UPDATE -------+----------------------------|
+-- <Log No> ------+
+-- <File title> --+
          

The UPDATE modifier allows SUPERVISOR to request processing of the relevant SUMLOG(s) since the last known update of the TRIM database. This is implicitly performed after every SUPERVISOR restart due to a QUIT SUPERVISOR command or H/L. The latest TRIM update timestamp can always be seen in a SHOW command response.

The LR command also allows the simple processing of any resident SUMLOG file. An individual SUMLOG can be specified by using the MCP log sequence number or its full title, including family name. If a log number is specified, LOGREADER will search for the first available SUMLOG, matching the log number with the last level of the title. Both the DL family and SUPERVISOR's USE FAMILY FOR LOGS setting are searched.

If the SO LOGGING option is set, LOGREADER will write log entries with a category of 'Lgr' into SUPERVISOR's log file. This includes any error and progress messages generated by LOGREADER.

As part of this change, the restart time for SUPERVISOR after a QUIT has been reduced though the observed reduction is affected by various factors including the AF RESTART schedule, number of active WHENs etc.

Support for the SUPERVISOR-FPORT port file interface, used primarily by LOGREADER but also available for external program agents, , has been deimplemented. Other mechanisms now exist to allow external commands to be passed to SUPERVISOR such as the library entrypoint EXTERNALCOMMAND. Further, support for older MCPs (pre-45.1) and Metalogic MCP METAPATCH files have also been deimplemented.

Jan 2009 531.21 Implement METALOG context

A new SUPERVISOR context, METALOG, has been implemented. This context allows retrieval of log entries from Metalogic's internal log files maintained by SUPERVISOR, MAILLIB and TRIM. Unlike SUMLOG-based scripts, METALOG Opals can only be used with the EVAL command as no event support is available.

The context has three subcontexts: SUPERVISOR, MAILLIB or TRIM. If no subcontext if given, SUPERVISOR is assumed by default; only one subcontext may be assigned. A small subset of attributes is available, similar to those available to the LOG context. The attributes can be viewed with the command HELP ATTR =:METALOG.

The implementation of METALOG log file browsing uses the same EVAL mechanism adopted by all LOG contexts. This allows start and end timestamps to be passed to the EVAL to filter the data returned. The EVENT attribute is particularly useful since this string value maps to the log entry category e.g. 'Err', 'Flt', 'Msg', Odt' etc.

For example:

EVAL (METALOG:EVENT="Err") DO (SHOW(LOGTEXT)) [12]
          
EVAL (METALOG=SUPERVISOR:TRUE) [@BACK 12 HRS FOR 20 MINS] DO META
          

However, it is not yet possible to use TITLE or LOGNO in the EVAL specification nor are some log-based MYSELF attributes (such as LASTLOGNO,LASTLOGTIME or LOGRECORDS) currently available.

Jan 2009 531.20 Implement SL context

This changes supports a new SUPERVISOR context called SL. The SL context allow the retrieval of information for all MCP SL functions from OPAL scripts using EVAL. The collection of SL attributes currently available can be seen in the response to a HELP ATTR =:SL command.

SL context scripts may only be used with the EVAL or DO commands; in the latter case, the SL function name must be passed as a parameter. For example, a simple scan of all SL functions whose name begins with the letter 'E':

EV (SL:FUNCTION Hdis "E") DO (SHOW(FUNCTION 17,,CODEFILETITLE))
          

To show which SL-ed functions have non-resident codefiles:

EV (SL:NOT PD(CODEFILETITLE)) DO (SHOW(FUNCTION 17,,CODEFILETITLE))
          
ONCRPCSUPPORT     *SYSTEM/ONC/RPCSUPPORT ON DISK
NCSDBSUPPORT      (NAU)SYSTEM/NCSDB/LIBRARY ON DISK
METAWEBLINK       *METALOGIC/WEBLINK ON DEV
MCPSUPPORT        ">> CURRENT MCP <<"
LANPRTSUPPORT     *SYSTEM/LANPRT/SUPPORT ON DISK
JAVACOMSSUPPORT   *SYSTEM/JAVACOMSSUPPORT ON DISK
HLCNTLISUPPORT    *SYSTEM/HLCN/TLISUPPORT ON DISK
          

MCPSUPPORT can be excluded from the EVAL by changing the in-line:

EV (SL:NOT MCPLIB And Not PD(CODEFILETITLE) ...
          

For a standalone DO:

DO (SL:(SHOW(FUNCTION 17,,LIBRARYMIXLIST))) TADSSUPPORT
          
TADSUPPORT      12345,12444
          

Where LIBRARYMIXLIST returns the mix number(s) of the SL-ed library. This can then be used to determine all SL-users of the codefile. Note that the same codefile instance can be assigned to multiple SL-ed functions or the library may be SHARING=PRIVATE; either condition means that LIBRARYMIXLIST can return multiple mix numbers.

Jan 2009 531.19 More DEFINE context attributes and NOLOOK lookup

Some new attributes for the DEFINE context have been added to provide additional information concerning the method used to compile an individual DEFINE. These attributes include REFERENCE, REMOTESOURCE, SOURCEKIND and SOURCEHOSTNAME. Note that EXTERNAL is TRUE if an OPAL has been compiled from either DEFINE..FROM or ENTER REFERENCE.

These attributes allow a useful method for determining if an external OPAL files used with DEFINE...FROM or compiled from an ENTER REFERENCE is not resident. These external files are necessary to recreate a SCHEDULE from its saved symbolic.

For example:

EVAL (DEFINE:EXTERNAL AND NOT PD(FILENAME)) DO (SHOW(TYPE,,NAME))
          

The above EVAL would find all missing external symbolic files used to compile OPALs currently in the SCHEDULE.

A new lookup function, #[NOLOOK], allows text strings that have embedded lookups to be displayed to the screen or printed without SUPERVISOR or FLEX performing substitution. This is particularly useful for displaying or printing the SOURCE attribute in the DEFINE context.

For example:

SHOW("#[NOLOOK] #[SUB] #[MX=MARC]")   would show
          
#[SUB] #[MX=MARC]   instead of screen highlight and MARC mixnumbers.
          

Jan 2009 531.18 Fix INPUT and MESSAGE DO conflict

Changes described in SUPERVISOR DNote 530.97 caused problems for MSG based Opal scripts that used the INPUT function. While the DO was waiting for user response to INPUT, it was possible for INPUT to return an empty string result because SUPERVISOR would also send any system message notices to the waiting slot (as if it was a WHEN). This caused the INPUT response to be added to the end of the message queue and subsequently ignored.

An interrogation of the WHEN slot using the SLOT command might then show:

Entered by : DO ABORT
Handled 0 Restarts
Times: CPU= 0:00:00.07, IO= 0:00:00.01, Elapsed= 0:00:43.40
Depth: 0
Originated from WINDOW 334 Session 4671
25 messages in WHENEVQ
Grinder state is INPUT waiting for 0:00:07.45
          

In the above example, the ABORT script of type MESSAGE is waiting for user INPUT but has 25 messages already queued ahead of any INPUT response. This problem is now fixed.

Dec 2008 531.17 Add more attributes to the WHEN context

Support new When context attributes TIMEDPER,SOURCE,WAITSECS.

Dec 2008 531.16 Insert_UserType

Internal Change.

Dec 2008 531.15 Implement DEFINE context

A new OPAL context, called DEFINE, is now available for use. The DEFINE contexts enables access to the SUPERVISOR Opal program dictionary and detailed information about all DEFINEs and MEMOs held in the SCHEDULE file. Opal scripts that use DEFINE may only be executed by the EVAL or DO command and no WHEN variant is permitted. A complete list of the attributes can be seen:

HELP ATTR =:DEFINE
          

The DEFINE context may use subcontexts to filter the dictionary; these subcontexts are SITU,ODTS,DISP,COMMAND and MEMO. If one or more subcontexts are specified, only those DEFINES of the correct type will be returned. These program types also map to the TYPE attribute.

EVAL (DEFINE=ODTS,DISP:NAME HDIS "A")
          

The above EVAL will examine all ODTSEQUENCE and DISPLAY programs in the dictionary additionally filtering them by using the NAME attribute to those whose id starts with 'A'. Note that, in the present implementation, the list of DEFINES returned is unsorted and reflects the order in which they were entered into the SCHEDULE dictionary.

Useful attributes include information about the program context (CONTEXT), the source of the DEFINE (SOURCE), whether it is currently in-use by a WHEN slot (INUSE, CALLED) and creation and access timestamp information.

When a DEFINE script is executed by a DO, SUPERVISOR expects a single level identifier that denotes the name of a DEFINE. All instances of that DEFINE will be returned and executed by the script and no filtering by program type is performed. For example:

DO (DEFINE:SHOW(TYPE,,NAME 17,,CACHEDSLOTS) OBI_EXAMPLE
          
SITU OBI_EXAMPLE      0
ODTS OBI_EXAMPLE      2
DISP OBI_EXAMPLE      0
          

In the above case, OBI_EXAMPLE has three occurrences in the SCHEDULE and the ODTS is currently active and cached by 2 WHEN slots. Note that SITU and MEMO program types can never be cached.

By default, all privileged users can view the entire DEFIEN dictionary but non-privileged users may only view DEFINES locked under their own usercode or normal, unprotected DEFINES.

Dec 2008 531.14 Remove GRINDER CHARGECODE assignment and fix FP

The GRINDER process will no longer have a default CHARGECODE assigned automatically by SUPERVISOR. Previously, the value "GRINDER" caused problems when GRINDER was used to start certain jobs or run MCS programs.

The SUPERVISOR BNALINKER process will no longer occasionally suspend with a "NO FILE FPORT" condition after a restart, prior to the running of the LOGREADER utility.

Nov 2008 531.13 Fix screen refresh after tt +

For commands entered from a Supervisor window where the response need more than one page Supervisor adds a TT + command to the home position of the screen. After the last page is displayed Supervisor restores the original command, overwritten by the TT +. If a TT prefix was used in the original command or a number of spaces preceeded the original command then the original command was not correctly restored.

Nov 2008 531.12 Fix intermittent WFL function failures

Previously, SUPERVISOR would occasionally fail with a variety of faults during the execution of multiple Opal WFL function calls that used FOR clauses, typically using an Accesscodes as well as Usercodes. These faults included jobs failing incorrectly with errors such as 'INV CHARGE' or 'ONLY ONE USERCODE ALLOWED' and faults such as 'STRING PROTECT AT 76353000'. This problem is now fixed.

Nov 2008 531.11 Fix bugs in Eval of SQ context

This change fixes bugs which could cause problems in an ODTS attached to a Situ of type SQ in an Eval.

If the ODTS included a Wait statement or an implied wait caused by a DCKeyIn or TT function, Supervisor would fault with an illegal swap.

If the ODTS performed an ODT command the ODTS would occasionally fault with an invalid index.

Nov 2008 531.10 Delete Att Table Include

The 1200 card 1984 Attablegen output with its large Value Arrays will no longer be included in Supervisor.

Nov 2008 531.09 Provide SORT CANCEL error if DISPLAY key invali

If the DISPLAY program or inline OPAL used as a SORT clause generates a key that exceeds 255 bytes then the associated EVAL will now be automatically cancelled; previously, any sorting was disabled and the EVAL would have run. The error message is shown below:

"SORT clause key is invalid or exceeds 255 characters""

The TTLASTERROR attribute will return the new mnemonic TTSORTCANCEL if an EVAL with a SORT clause fails because of an invalid key inside a TT function.

Nov 2008 531.08 JSON No Atts

Return [] if JSON and no attributes selected.

Nov 2008 531.07 Correct multiple SORT EVAL handling

If multiple SORT-based PD or LOG EVALs were run in parallel then it was likely that only the first EVAL to complete would have had the SORT criteria applied; other SORT clauses would be discarded. This problem is now fixed.

A WHEN ? will now correctly show the status of any EVAL run with a SORT clause.

Nov 2008 531.06 Fix default MAIL destination printing

If SUPERVISOR's USE DESTINATION is set to a MAIL server, SUPERVISOR will now automatically assign that destination to all printfile reports generated by users who have an EMAIL attribute associated with their usercode. Previously, no DESTINATION would have been assigned.

Nov 2008 531.05 Sort Boundary Condition

Fix Invalid Index boundary problem

Oct 2008 531.04 Help ALL

TT HELP ATT = : SYSTEM selects basic SYSTEM attributes only. TT HELP ATT = : SYSTEM ALL selects basic SYSTEM attributes and

extended SYSTEM attributes for PD, VL,
NAP, METER and MAIL.
          
TT HELP ATT = : ALL selects attributes for all contexts.

TT HELP ATT = : <context or ALL> (DETAIL) returns full attribute information for the selected attributes.

Oct 2008 531.03 Time based situations were evaluated twice when first started

Time based MX and Per situations were evaluated twice when first started. This problem has been corrected.

If the WFLJOBREASON attribute was used in the same expression as any of the attributes WFLJobStatus,WflTimeStamp, WFLJobNo or WFLElapsed then the retuned value would be truncated to the length of the identity passed as a parameter to the attribute.

EV ...[@back..] [@After...] and [@Before...] now work with the MSG context.

Oct 2008 531.02 Contexts JSON

Add JSON option to HELP CONTEXTS.

Oct 2008 531.01 Fix COMS VALIDATION_FILE error during restart

The change described in DNote 530.98 occasionally caused a COMS VALIDATION_FILE error when attempting to send messages to stations that were active prior to a restart. This problem also caused the generated status message to occasionally have corrupt text appended. Both these problems have been addressed.

Oct 2008 530.99 Sort Modifier in EV Command

The objects found by a Situation in an EV command can now be sorted before being passed to the Display or ODTSequence. A <Sort Clause> is added to the command, where:

<Sort Clause>:
          
------- SORT ----+-----+--+------- <Display id> -----------+--!
+- + -+  +-- ( -- <Inline Display> -- ) --+
          
Examples: EV ALLMX DISP (MIXNO,,TIME(PROCTIME)) SORT - (PROCTIME)
EV (PD:TRUE) DISP (SEGMENTS 8,,TITLE) [24] SORT (SEGMENTS) (*)= ON =:FL

SORT - means "sort descendinh", SORT + "sort ascending". If neither "+" or "-" is specified, it defaults to 'descending". By using the new OPAL function, COMPLEMENT, multiple keys can be sorted in different directions. The Display given in the <Sort Clause> returns a String, which is used as a key for the sort.

There is a slight difference in the way the Display is evaluated, compared with normal use. In a Sort, an <OPAL String> element has a fixed width. If none is specified, then for a String, it is assumed to be 64, and for an arithmetic or mnemonic, it is assumed to be 12. The Display may not contain a new line (/) delimiter or have a key length of more than 256 chars. Literal strings and the ",," delimiter are allowed, but are unlikely to be useful.

If an entry limit is specified, this is only applied after the Sort, so all of the objects will be passed to the Situation. However, to keep the overheads in control, an entry limit of 256 is imposed, even if a greater value is specified.

Oct 2008 530.98 Improve SUPERVISOR restart time

Significant improvements have been made to the time taken for SUPERVISOR to restart and allow access to a COMS window. Previously, delays were caused by the following:

- cancellation of pending I/Os to unavailable ODTs
- unnecessary QUIT and restart of the RECORDER library
- delayed release of MCS privilege to the new instance of SUPERVISOR
          

During a restart, SUPERVISOR will now send a COMS message to the status line of all SUPERVISOR COMS windows, that were active at the time of the QUIT, indicating that the restart is complete.

Oct 2008 530.97 More OPAL Init Cleanup

This 50-card negative patch removes another unnecessary IO for EV/WHEN commands, and simplifies the code to prepare for sorting.

Oct 2008 530.96 Support Volume Purge status checks

Previously, it was possible for TRIM to scratch a tape in the database even though the Volume Purge had actually failed because of a media or hardware error. This caused a discrepancy between the physical tape label (now not purged) and the database, causing problems if the tape was to be purged in the future. This occurred because SUPERVISOR was not checking the status flags of the attempted tape volume purge provided in the log entry.

This problem is now fixed; any failed Volume Purge will be detected and logged in the TRIM log as an error:

12:16:06 Err:MT 180 Volume [001302] UNLABELLED error during Vol Purge
          

Oct 2008 530.95 Fix Eval and Count in Prints context on MCP 53.

Version 53.189.8008 of SYSTEM/PRINT/SUPPORT changed the interface to one of the Procedures used by Eval, Count and Objects to retrieve print requests. This change caused Supervisor to get a request number of zero in these commands.

Supervisor will now handle all current versions of printsupport correctly.

Oct 2008 530.94 Fix Count(SQ:......)

Version 530.03 broke the Count function. Version 530.07 corrected the bug for all Counts except Count(SQ:... This change fixes the problem.

Oct 2008 530.93 Internal change only

No longer copy heap when calling SOPTT.

Oct 2008 530.92 Internal change only

Move MEMORY (used for heap) out of Environment as precursor to improving handling of TT function.

Oct 2008 530.91 Resolve BOJ vs. EOJ conflicts

The optimisation referred to by DNote 530.87 caused an intermittent problem where LOGEOJ WHENs could stop receiving EOJ notices, usually seen after a SUPERVISOR restart. The problem depended on the presence of a LOGBOJ WHEN and the order in which they were invoked after the restart. This problem is now fixed.

Oct 2008 530.90 More fixes for CALL DO of MSG type ODTS

This change fixes WAIT(<msg boolean expression>) when in a message ODTS called with a parameter where the length of the parameter is less than the length of the message waited on. Previously random results could occur.

Oct 2008 530.89 Fix INVALID INDEX for delinked HTTP dialog

During periods of intense browser client activity, it wass possible for an HTTP WHEN to fault with an INVALID INDEX @ 95280000 when handling requests for a HTTP dialog that had already been delinked. This problem has been fixed and improved tracing of HTTP requests has been applied.

Sep 2008 530.88 Fix for wait in Call DO of type MSG

Version 530.58 allowed an ODTS of type MSG to be the subject of a call of a non MSG type. It was possible that if the called ODTS performed as WAIT based on a message attribute (ex. WAIT("BOB" IsIn TEXT) that an invalid index error could occur. This problem has been corrected.

Sep 2008 530.87 Fix LOGBOJ tracking problem and optimise notice

Previously, it was possible for LOGBOJ WHENs to stop receiving BOJ or BOT notices from the MCP if other previously active Log Major Type=1 WHENs had all been subsequently deactivated. This behaviour has been corrected.

An issue where SUPERVISOR incurred additional CPU overhead during the handling of MCP events has been addressed.

Sep 2008 530.86 Fix random CALL DO failure when run with PD con

Previously, it was possible for possible for valid CALL DOs to randomly fail with a 'NON EXECUTABLE CALL OR WHEN STATEMENT' error whilst a PD context script, that was linked to FLEX utility, was running in parallel. This problem could also have caused such PD scripts to generate spurious SEND_ARY displays at the same time and has now been resolved.

Opal programs with a context of VL will now return a KIND of TAPE for volumes that were originally entered into the Volume Library with a KIND of TAPEPE, TAPE9 or TAPE7. These old KIND mnemonics are no longer supported by most MCP levels.

Sep 2008 530.85 Allow multiple SUMLOG searching if using limits

SUPERVISOR will now automatically search multiple SUMLOGs when handling log-based EVALs if non-zero EVAL or DO limits have been applied. Previously in these circumstances, only the current SUMLOG would have been searched.

A new DEBUG option (31) is now available. If set, this option will unconditionally generate a compile printer listing for all in-line OPAL expressions compilations, invoked by any TT function, that fail to compile. This can helps in the diagnostics of large OPAL in-line compilations that are otherwise difficult to check for syntax errors. The generated print file will be automatically released to the Print System.

The TT function will now not return an EVAL response message to the originating station as this is already included in the TT function result and therefore under the control of the caller.

Sep 2008 530.84 Protect SAVE commands during multiple AFTERs

Previously, it was possible for SUPERVISOR to fault with a BUFFER IN USE error, reading or writing the *SCHEDULE file, when handling WFL jobs invoked via AFTER concurrently with a SAVE SCHEDULE command. This timing problem was observed with multiple WFL jobs all scheduled in the same AFTER minute as a SAVE AS command and now has been fixed.

Sep 2008 530.83 Fix MEMORY RESIZE errors after MAIL LOG call

Previously, SUPERVISOR would have faulted with REQUESTED MEMORY SIZE GREATER THAN 65535 WORDS at 25544000 or 95892500 when handling a very large KEYIN response from a MAIL LOG interrogation. This change, in conjunction with MAILLIB change 530.07, now fixes this problem.

Sep 2008 530.82 Default Limit on FLEX PD Evals

PD context EV commands which implicitly use FLEX will no longer be limited to 256 evaluations.

Sep 2008 530.81 Fix BACKUPSCHEDULE processor loop

For a certain combination of usercoded and non-usercoded activities specified in the same minute of SUPERVISOR's AFTER schedule, it was possible for BACKUPSCHEDULE to go into a processor loop when backtracking the schedule. The problem could have also occurred to SUPERVISOR when handling the same minute during its normal scheduling operations. This problem has been fixed.

Sep 2008 530.80 Fix CALL DO with empty parameter

Version 530.58 introduced a bug in CALL DO. A Call DO of a message type ODTS would fault if an empty parameter was passed.

Ex. CALL DO "TEST" ""

This problem has been corrected.

Sep 2008 530.79 Fix INVALID INDEX after FOR AF WFL check

SUPERVISOR could have faulted with an INVALID INDEX @ 63103000 during the check of an AFTER command that was scheduling a START job with a FOR modifier. In such circumstances, the problem occurred when SUPERVISOR's check failed with an error such as WFL NOT AVAILABLE or SYNTAX ERROR. This fault has now been corrected.

Sep 2008 530.78 Fix SAVE program corruption

Previously, it was possible for certain DEFINES with comments that extended to column 80 to become corrupted when written to a source file by the SAVE .. AS command. The corruption, caused by incorrect line wrapping, could then cause the DEFINE to fail to compile when it was re-ENTERED. This problem is now fixed.

Very old compiled MX=BOT SITUATIONs would not decompile correctly when written to disk by the SAVE.. AS command or displayed by a DEFINE ? command. The context and subcontext for these OPALs would have shown as empty. When executed, any WHEN or EVAL attempting to use an old MX=BOT SITU will now fail with 'MX=BOT SITU CODE TOO OLD: RECOMPILE NEEDED'. Both DEFINE ? and SAVE will now show the correct context.

SUPERVISOR will now not give a command error when entering a SO+ option list from an ENTER file should any of the option numbers be invalid. The offending options will be ignored.

The LC CLOSE command will now correctly close the current SUPERVISOR log file; previously no action was taken.

Aug 2008 530.77 SO command changes

The behaviour of the SUPERVISOR SO command has been changed. SUPERVISOR will now automatically reset any options that were set on an earlier release but have since been deimplemented. Secondly, changes using SO+ or SO- will now return only those options that have been altered by the command. This makes SO identical in behaviour to the MCP's OP command.

Various minor fixes concerning the logging of commands by SUPERVISOR have also been applied.

Aug 2008 530.76 Implement PING function

This change supports the new Opal PING function as described in OPAL DNote 530.25.

Aug 2008 530.75 Extend SUPERVISOR restart capabilities

Previously, SUPERVISOR did not restart correctly after certain HISTORYCAUSE reasons such as fatal I/O or datacom errors. In the case of an OPAL script receiving a fatal I/O error using the OPAL WRITE method, SUPERVISOR did not disable the slot prior to termination and did not restart. This bahaviour has been fixed: SUPERVISOR will now automatically terminate the faulting slot and restart in such circumstances. The handling of fatal WRITE failures has been made more resilient by the change described in OPAL Dnote 530.26.

Jul 2008 530.74 Implement USE NOPASSWORDS

The mechanism using the NODEFAULTUSE setting on the Supervisor usercode to control password validation on the FOR command has been changed. This feature is now controlled by a new USE variant called NOPASSWORDS which can only be set by a FOR usercode that has both PU and SECADMIN privilege. The setting of the NODEFAULTUSE attribute on Supervisor's usercode now has no effect.

A modifier of '+' or '-' must be specified with the command:

FOR META/PW USE NOPASSWORDS +
          

If this NOPASSWORDS has been set, additional text will appear in the USE response:

PASSWORD VALIDATION: NOT ACTIVE
          

SUPERVISOR's utility commands such as JAM will now not generate an unnecessary Userdata security violation when executed from a SUPERVISOR window.

Jul 2008 530.73 Disallow multiple WHENS and fix WHEN cancel

The changes applied by SUPERVISOR DNote 530.68 had several further side-effects, First, multiple WHEN <Situ> DO <Odts> combinations using the same <Situ> were now unintentionally permitted and, secondly, it was not possible to cancel an active WHEN using the WHEN <Situ> DO command unless the WHEN had been invoked by a SUPERVISOR restart. These problems have now been resolved.

A long-standing issue where a LOG context EVAL or WHEN command would give the error TYPE OF ODT SEQUENCE MUST MATCH TYPE OF SITUATION has been fixed. This always occurred when the linked ODTS or DISPLAY was an in-line OPAL without any context.

Lastly, a DO of a VL context Opal will now not fault with an INVALID INDEX @ 93667900 when processing a list of volume serial numbers.

Jul 2008 530.72 Drop a further un-needed IO

More minor cleanups in OPAL initiates.

Jul 2008 530.71 Support for SYSTEM MAIL attribute subset

A subset of attributes called SYSTEM MAIL is now available; these attributes provide run-time and configuration information for the Metalogic MAILLIB library. Only available to SUPERVISOR, information may be obtained by the command:

HELP ATTR =:SYSTEM MAIL
          

Jul 2008 530.70 Fix inline Opal SEG ARRAY ERROR

The changes applied by SUPERVISOR DNote 530.68 caused all in-line OPAL commands to fault with a SEG ARRAY error at 72667800. This problem has been resolved.

Jul 2008 530.69 Correct page headings in SHOW PERM

For multi-page responses to the SHOW PERM command, the correct relevant heading will now be shown on page numbers greater than 1.

Jul 2008 530.68 ODTS/DISP Init Load

An old optimization in Supervisor delayed loading the ODTS or DISPLAY in a WHEN/ONCE/EVAL until the first entry. But info was needed from the record in the Schedule, so an I/O had to be done anyway. Even worse, the info is also needed for both the Situation and the action at slot set up time, so another read resulted. Now, the code is always loaded at initiation and kept in overlayable memory, even if it is never called. The trade-off of memory and CPU/IO resources has changed significantly since this was first programmed.

The running of different types of OPAL has been standardized, with a reasonable reduction in source size, and allowing new types in the future with minimal extra coding.

Jul 2008 530.67 Correct FP formatting

The FP command will now display the text 'DU INFORMATION UNAVAILABLE' if SUPERVISOR is unable to retrieve family DU information for a specific disk unit. Previously, values of 'NONE' would be shown and tabulation of individual lines would be incorrect. Typically, such behaviour would be shown if duplicate pack families were present on the system.

Jul 2008 530.66 Changes for OPAL resequence

Internal Metalogic change.

Jun 2008 530.65 Change LC command logging

Usage of the LC command will now be recorded in SUPERVISOR's log file with the 'Lgc' category instead of 'Odt'. This change means that only one entry is logged instead of two ('Odt' and 'Lgc') as in previous versions. The 'Lgc' entry retains command origin information.

Jun 2008 530.64 Identify When slots started from schedule

Previously a WHEN slot which had been started from the schedule (i.e via an AFTER command) would appear to have been started from an ODT.

With this release, an EV ? will show "After" in the first column if it was started from the schedule. An Opal program dump will show "Originated from Schedule." and the WHENID(STATION) attribute will return "After".

Jun 2008 530.63 Improved SILO support

TRIM now supports separate scratch pools for both the DSI and UNISYS settings of the USE SILO environment. Previously, scratch pools could only be assigned for DSI environments.

The two scratchpool lists are maintained independently depending on the setting of USE SILO so it possible to switch between them. However, in a mixed DSI+UNISYS SILO enivironment, only the DSI pool list will be active.

Jun 2008 530.62 Reinstate command on screen after a TT +

If a supervisor Opal of type command was executed from a Supervisor window and the response was longer than one screen, there was a problem. At the end of the response the original command was not correctly restored to the first line of the screen, instead TT COM was written to the first line.

A bug was also corrected where the TERM FIRST setting was not respected on continuation screens.

Jun 2008 530.61 Fix ENTER COMMAND ... FROM..

ENTER COMMAND <pattern> FROM <file> now works correctly.

Jun 2008 530.60 Revamp of SILO support

The implementation of the USE SILO interface for SUPERVISOR has been rewritten to allow future TAPEMANAGER library development to perform its own checks on tape assignments. The functionality of USE SILO is unaffected by this change.

Jun 2008 530.59 Correct JOBCODE filekinds

DUCHECKERBOARD will now return a FILEKIND of JOBCODE for 'Job file' and 'Obsolete Job' areas instead of JOBDESCFILE.

This change supports the new attribute DFHIMAGE for both FLEX and SUPERVISOR, as described in OPAL DNote 530.19.

Some minor issues with the handling of large output from the SHOW statement, introduced by change 530.55, have been addressed.

Jun 2008 530.58 Allow CALL DO of MSG odts from any other context

It is now possible to 'CALL DO' and ODTS of context MSG from any other context. This is particularly useful since it is possible to pass a string parameter to such an ODTS. Ex. CALL DO "PARSE_INPUT" $S; would be valid from any ODTS.

There is a limit of 15 for the depth of such CALL DOs where each passes a parameter. ie. If A1 calls A2 which calls A3 ....A14 which calls A15 and all pass parameters then if A15 call A16 with a parameter it will abort with an 'environment depth exceeded' error.

Any statement which requires a change of environment also temporally increments this limit so a .TAPEDB method or OBJECTS call in A15 above, would also abort.

This change also fixes a bug in the .TAPEDB method when used on a slave system. When used with an integer variable no attributes were returned if the variable contained less than 6 digits. If used with a string variable when the contents of the string were numeric, less than six characters and not zero filled, no attributes were returned.

A very unlikely bug which could cause a 'bounds error' if a .TAPEDB method was used on a slave system soon after the first access to a Prints context.

Previously the use of the methods .WHEN, .TAPEDB or .PRINTS in ODTS of context MSG, LOG, TAPEDB, WHEN, PRINTS, could corrupt any subsequent access to the attributes of the context.

Jun 2008 530.57 DUCHECKERBOARD formatting changes

The JS format of the DUCHECKERBOARD attribute would return an extra comma after the first '[' if the sector start address provided by the caller did not coincide with the beginning of a row boundary. This problem has been fixed.

Further, the Fixed, Temp and Open flags provided in DUCHECKERBOARD output (see DNote 530.55) will appear as values of 0 or 1 instead of the literals 'true' and 'false'.

Jun 2008 530.56 Include FILEKIND in DUCHECKERBOARD maps

The DUCHECKERBOARD attribute now includes a FiLEKIND mnemonic for each file area that is mapped and appears after the file title. For example, the CSV variant will appear as:

[Start sector,Sector count,Title,Filekind,Fixed,InUse,Temp]

4028,227796,41,*DEV/PI0017M2007301A,PROMBURNERDATA,FALSE,FALSE,FALSE
          

Similarly, the web JS format includes the FILEKIND as a quoted string. Special areas such as 'Label','Unavailable' , 'Olay Row' and 'MCP Info' return empty strings.

The DUCHECKERBOARD attribute can only return a resultant string of 2,000,000 characters so, if a continuation call is required to return the rest of the map, this can be detected by using the DUNEXTADDRESS attribute which returns the last address handled in the previous call plus 1. When DUNEXTADDRESS returns 0, the scan is complete.

An example OPAL script to return a complete map of the family DEV Familyindex #1 in CSV format:

#CAP:= DUCAPACITY("DEV",1);
#START:=0;
Do
Begin
$MAP:= DUCHECKBOARD("DEV",1,#START,#CAP-#START);
%Code to process $MAP goes here
End Until #START:=DUNEXTADDRESS Eql 0 Or $MAP Hdis "ERR";
          

May 2008 530.55 No SHOW truncation

Previously, the Opal SHOW statement would output any line of text up to a new line marker (/) or the width of the screen (typically 80 characters). This behaviour could be changed by setting TERM TRUNCATE FALSE from the station causing each long line to be split into multiple 80-character lines but its use is inconvenient and has other effects.

The processing of SHOW output has now been modified to behave as though TRUNCATE is always TRUE (the setting will actually be ignored). All data provided within a SHOW statement will now be visible regardless of line length; as before, any SHOW output will cause Insert-Line actions for each line of output sent to the station. Note that the SHOW statement in FLEX already exhibits this behaviour.

May 2008 530.54 Support for DUCHECKERBOARD

A new OPAL attribute called DUCHECKERBOARD is now available which can provide a detailed file analysis of any sector range on a selected disk family index, similar to that performed by SYSTEM/FILEDATA, allowing access to such information from OPAL and particularly the Metalogic Web system.

DUCHECKERBOARD returns a Checkerboard Map of the family specified by the first string parameter. Other parameters specify a family index, a sector start address and the number for sectors to be mapped from that start address. For example:

$MAP:=DUCHECKERBOARD("DEV",1,0,40000)
          

The above will perform a checkerboard address map of the family DEV, family index #1, starting from sector 0 for 40,000 sectors.

The result is an array of file mappings which detail start address, number of sectors, row count, file name and several row status flags (Fixed, Inuse, Temporary). By default, the information is returned in JS format suitable for web usage but making the family index negative presents the same information in CSV format. Special areas such as 'Label','MCP Info' or 'Olay Row' will appear where appropriate instead of the file title.

Please see HELP ATTR CHECKERBOARD and JAMPACK DNote 530.03 which describes the implementation in greater detail.

May 2008 530.53 Increase WFL use to 65500 characters

The OPAL function WFL will now allow up to the maximum limit for a CONTROLCARD call of 65,500 characters. Previously, the WFL function only permitted 16,398 characters. It is not possible to pass a WFL command string longer than 65,500 characters; such a request will cause the WFL function to return an error value of -10 (WFL TOO LONG).

May 2008 530.52 Fix MESSER fault and erroneous mix numbers

Previously, passing strings longer than 1940 characters using the OPAL DISPLAY statement would have caused a MESSER FAULT: CASE 7 SUBCASE 34 entry in the system log and the message would not be displayed. Because this is a MCP limit, SUPERVISOR display messages are now truncated to 1940 characters to prevent this problem.

Should certain OPAL functions such as DBS, COMS, WFL and KEYIN fail due to programmatic errors or external influences, SUPERVISOR will now record the problem in its own log and better report such failed requests to the calling OPAL.

May 2008 530.51 Protect slot re-usage for various contexts

Previously, SUPERVISOR could have faulted with a SEG ARRAY ERROR @ 77057900 if the same WHEN slot was used first by a MSG-based DO and subsequently by a USER-based DO that had not been passed a usercode by the caller. This minor bug is now fixed.

May 2008 530.50 Fix AFTER DO problem

The execution of standalone AFTER context ODTSEQUENCEs with the DO command expects a user-provided SCHEDULE file key to retrieve AFTER record information. However, if the DO Was executed inside a TT function, it was possible for SUPERVISOR to fault in the procedure GETAFTERINFORMATION when building the key or to return information for the correct SCHEDULE record. This problem is now fixed.

The FORTEXT attribute in the AFTER context will now return the string value 'FOR *' if the calling EVAL/DO slot is running under a usercode but the selected activity is NOTlocked with a usercode. Previously, FORTEXT would have returned an empty string in these circumstances.

May 2008 530.49 Activate SO LOGGING option

A new SUPERVISOR SO option called LOGGING (47) has been implemented. When this option is activated (off by default), SUPERVISOR will log all user activity, unsolicited messages and error reports into its own private log file. when active, these log files can be accessed by the LOG command; please see HELP LOG for more detailed information.

Further, OPAL compiler faults are now logged correctly in SUPERVISOR's log file; previously these were ignored.

May 2008 530.48 Allow WFL tracking of CHANGE and REMOVE

Previously, usage of a single statement REMOVE or CHANGE statement within a WFL function was not handled correctly by SUPERVISOR. No valid BOJ or EOJ notices would be detected and any generated messages would be assigned the wrong mix number.

This occurs because of the way that the MCP optimises such simple WFL statements by suppressing a job stack; SUPERVISOR now jackets such statements with a BEGIN JOB..END JOB pair to ensure that valid job notices are provided.

Apr 2008 530.47 Fix WHENID(STATION) when run from Marc

WHENID(STATION) would cause an integer overflow fault if run via the Marc TTInterface. It will now return "Marc".

Apr 2008 530.46 Fix AFTER EVAL date range handling

The change described by DNote 530.42 caused a problem if any of the days referenced in a date range was the current date. In this case, although the current date would be correctly handled, later dates in the range would use an incorrect schedule day. For example:

EVAL (AFTER:TRUE) [@21/4/2008-23/4/2008] DO AF
          

If todays date was the Tuesday 22nd April, then the first two days of the range would be handled correctly but the 23rd would have erroneously loaded SUNDAY's schedule instead of WEDNESDAY. This problem has been corrected.

Previously, an 'AF ? ON DATE < dd/mm/yyyy' command where dd/mm/yyyy was todays date, would have returned all daily activities instead of filtering by the specified 'ON DATE' modifier. This problem has been fixed.

This changes supports the new DAY attribute in the AFTER context, as described in OPAL GSTABLEGEN DNote 530.14.

Apr 2008 530.45 New AFTER handling messages

The formatting of AFTER response messages has been improved to provide detailed information about the processing of the command including which times slots were activated, deleted or ignored. Previously, the messages generally returned simple counts.

Some examples of the message changes for a new AFTER insertion:

SCHEDULED IN 5 TODAY SLOTS
SCHEDULED IN 28 SUNDAY-WEDNESDAY,FRIDAY SLOTS
NOT SCHEDULED IN 5 TODAY SLOTS: PAST TIME(S) IGNORED
NOT SCHEDULED IN 3 SUNDAY SLOTS:ALREADY PRESENT
SCHEDULED IN 1 COLDSTART SLOT
          

For an AFTER deletion:

DELETED FROM 3 TODAY SLOTS, 16 TUESDAY SLOTS
NOT DELETED:1 TODAY SLOT IN PAST
NOT DELETED:NO ACTIVITY FOUND
          

To assist the Metalogic web browser interface for schedule maintenance, the AFTER command has been modified to allow requests to be verified without updating the live schedule. Prefixing the '*' character prior to the AFTER keyword causes this simulation to be enforced and, if requested, commands are processed as usual but no physical I/O update is performed on the SCHEDULE file. In addition, any generated messages will be prefixed by the text 'WOULD BE' or 'WOULD NOT BE'.

Some examples:

AF * 1300:TT DO TEST
WOULD BE SCHEDULED IN 1 TODAY SLOT
          
AF *+ 1500:TT DO TEST2
WOULD NOT BE SCHEDULED IN 1 TODAY SLOT:ALREADY PRESENT
          
AF *- 1000-1100(20):@1
WOULD NOT BE DELETED FROM 3 TODAY SLOTS
WOULD NOT BE DELETED FROM 1 TODAY SLOT:PAST TIME(S) IGNORED
          

Lastly, the HOLD modifier (a variant of DELAY) for the WHEN command has now been deimplemented.

Apr 2008 530.44 Fix DEF + ... INLINE

Version 521.13 introduced a bug in saving InLine Opals.

I.E. TT DEF + ODTS MYINLINE INLINE would no longer work.

This problem has been corrected.

Apr 2008 530.43 Omit FOR spec in ADDTEXT and DELETETEXT attribu

The FOR specification, used to lock AFTER activities under a usercode, will now not be included in the ADDTEXT and DELETEXT attributes of the AFTER context. Any FOR assignment can still be determined using the FORTEXT attribute.

Apr 2008 530.42 Allow AFTER commands with TT function

Previously, invoking AFTER commands with the Opal TT function would generally fail with the error 'MORE INPUT REQUIRED SCANNING :'. This problem only affected AFTER command usage in TT and is now fixed.

The AF ? ON DATE command will now use the live loaded days schedule for TODAY if the ON DATE provided matches the current date. This means that the AFTER command response will now exactly match that of an unqualified AF ? interrogation. This behaviour change allows manual AFTER modifications for the TODAY schedule to be correctly shown.

Similarly, AFTER context EVALs which have a date range assigned will now recognise if any date in that range is TODAY. If so, the ONTODAY attribute will return TRUE, SCHEDULEDAY will return the current julian date and all activities for TODAY's schedule will be returned.

Apr 2008 530.41 No compile task for inline Opals

SUPERVISOR will now compile in-line OPALs inside its main stack instead of invoking a separate compilation process. This is a performance improvement allowing in-line requests to be processed rapidly without tasking overheads.

Mar 2008 530.40 Add help for USE USER FOR MAIL

Help has been added for the MAIL option of the USE USER command.

Mar 2008 530.39 Fix AFTER KEY for specific julian date

Previously, the AFTER context KEY attribute would return a key string with an extraneous comma if a specific date was requested in the calling EVAL date/time specification. For example, requests such as 'EVAL AF [@25/3/08] DO AF' would generate typical KEY attribute values such as '2008085,175,,1'. This problem has been fixed.

Mar 2008 530.38 Allow trailing blanks in PDT with wildcards

Version 530.36 did not strip tailing blanks from a wildcard pattern. This has been corrected.

Mar 2008 530.37 Fix AFTER subcontexts and relax ADDTEXT

Subcontexts for AFTER SITUATIONS will now be shown correctly in a DEF ? response. Further, restrictions on the ADDTEXT attribute have been relaxed - this will now always return an AFTER command string but may not be valid for certain complex entries in the schedule for TODAY.

For some time now, SUPERVISOR has not been writing flagged activities such as SAVE SCHEDULE, PRINT SCHEDULE etc. into the decompiled symbol file created by the SAVE SCHEDULE AS.. or SAVE AFTERS AS.. commands. This oversight has been corrected.

Scheduling SUPERVISOR activities at 2359, other than a PRINT SCHEDULE, is not generally recommended. This is because SUPERVISOR, to ensure that the new days schedule is loaded promptly at midnight, may wait for up to 60 seconds to ensure that MCP date and time are properly synchronised on certain machine styles. Because of this, scheduled commands may result in being processed after the schedule has loaded.

Mar 2008 530.36 Allow ON part in PDT pattern

Tape directories and LibmaintDir directories my now include ON <familyname>. PDT will now accept an ON part in the pattern.

Ex PDT MT 80 =/TEST ON =

Note that if an ON <familyname> is in the directory an ON = or ON <familyname> may be requred in the pattern.

Mar 2008 530.35 Provide WFL jobno for AFTER-invoked DO

Previously, all DO commands executed by an AFTER would only be marked with a 'postscript' of 'OK' or 'COMMANDERROR' as seen in an AF ? response. In the event that a scheduled DO command invokes a WFL job via the ODT statement then the postscript of the activity will now get updated with the job number and status of the WFL job (as seen with a WFL activity explicitly scheduled by an AFTER) at run time.

Note that this update only occurs for the first WFL job that is processed by the DO since it is not feasible to hold information for more than one WFL entity in an AFTER record.

For example, consider the ODTSEQUENCE DOJOB defined as:

DEFINE ODTSEQUENCE DOJOB:
ODT("START *TEST/JOB ON DEV");
          

If the ODTSEQUENCE had been successfully invoked at 12:40 by an AFTER:

----- SCHEDULE after 12:40 TODAY @ 12:40:00 19/03/2008 -----
1: TT DO DOJOB :(JOB OK,#34390)
2: TT DO DOCOPY :(OK)
          

The job number 34390 refers to the successful initiation of *TEST/JOB.

The change described by SUPERVISOR DNote 530.26caused some scheduled AF activities to be processed up to a minute later than their intended times. This behaviour has been corrected.

Also, a problem where SUPERVISOR emitted erroneous GET/SET STATUS ERROR #0 messages when returning certain command scan errors has been fixed.

Mar 2008 530.34 Correct PDT handling from MARC

The change described in DNote 530.28 caused problems with the PDT command. From SUPERVISOR's MARC Directive interface, the command would consistently return 'ok' instead of a file list; from a Supervisor window a file list would be correctly returned but certain error messages would be corrupted. These problems have been resolved.

For DO commands initiated from a Supervisor-COMS windows, the change described in SUPERVISOR DNote 530.31 had the side effect of forcing the station log-on usercode to be unconditionally assigned to the DO. This behaviour has been corrected.

Also, the optional use of ":" to separate hours and minutes in EVAL time-ranges has been restored after being inadvertently disabled by changes applied for the AFTER context.

Mar 2008 530.33 AFTER timestamp attributes corrections

The AFTER attributes ACCESSTIME, AMENDTIME and CREATETIME will now return the correct time of day and therefore matching the time shown in the ACCESSTIMESTAMP, CREATETIMESTAMP and AMENDTIMESTAMP values.

Mar 2008 530.32 Resolve DBS function vs.VDBS method conflict

Usage of the Opal DBS function and the VDBS method in series within the same ODTSEQUENCE and referencing the same mixnumber for both calls caused the second call to return invalid data. This occurred because SUPERVISOR incorrectly tried to optimise the second call, believing that he already had cached the data despite DBS and VDBS being incompatible. This problem has now been fixed.

Mar 2008 530.31 Better SYSTEM/OPAL auto enter

Support for using C WITH OPAL AS $AUTO/ENTER

Fixed a problem when "NOT ALLOWED' was returned on a busy Supervisor.

Rebuld messages were only returned for the first compile after a Supervisor restart.

Mar 2008 530.30 Support for ORDINALWEEKDAY and DAYMASK attribute

The ORDINALWEEKDAY and DAYMASK attributes have implemented for the AFTER context allowing better identification of AF activities constructed with modifiers such as 'ON Nth MONDAY' etc. The ONWEEKDAYS, ONWEEKENDS and ONWORKDAY will now work correctly for all activities which use these modifiers.

A problem where SUPERVISOR could fault with an INVALID INDEX at 66172000, when parsing unusual AFTER requests with invalid day ranges such as 'AFTER+0100 ON SATURDAY-SUNDAY', has been fixed.

Mar 2008 530.29 Remove erroneous messages from non-log EVALs

Previously, it was possible for some EVAL commands to append incorrect error messages such as 'Max LOG limit reached" even though the EVAL was not a LOG context variant. This occurred if the EVAL had used the same slot as an earlier LOG-based EVAL that been stopped with the max LOG limit condition. This behaviour has been corrected.

Previously, the USERCODE and ACCESSCODE attributes in the AFTER context returned corrupted strings if their values were exactly six or twelve characters in length. This problem has also been corrected.

Mar 2008 530.28 Correct AFTER WFL jobs with assigned ACCESSCODE

The changes described in DNote 530.26 caused any WFL jobs invoked from a scheduled TT DO and run with a valid usercode and accesscode, to fail with an INV ACCESS error. Further, SUPERVISOR was not correctly handling notifications for jobs that had been invoked from WHENs using an ODT statement to run the WFL job. Depending on the Opal code and context being used, the calling slot could unexpectedly fault or be triggered by a second, corrupt notice. Both these problems are now fixed.

The SLOTFAULT attribute from the WHEN context will now be set to TRUE when processing a termination notice for a slot that has died to an internal SUPERVISOR 'ON ANYFAULT' handling.

Some minor logging format problems handling AF errors have been corrected.

Mar 2008 530.27 Protect task checking hangs

During SUPERVISOR BackTrack schedule recovery, it was sometimes possible for the BACKUPSCHEDULE process to become hung waiting for certain backtracked processes, such as SAVE SCHEDULE, to complete. Even though the SAVE had completed, BACKUPSCHEDULE could have failed to detect the EOJ and would then wait indefinitely; this, in turn, caused the main SUPERVISOR program to stop responding until BACKUPSCHEDULE was manually terminated. These problems have been resolved.

Mar 2008 530.26 Implement WFL postscripts for TODAY AF

The handling of SUPERVISOR's AFTER postscripts has been significantly enhanced particularly in the tracking of WFL activities such as STARTJOB. Previously, SUPERVISOR would simply mark all such WFL activities as 'PASSED TO GRINDER' and was unable to report if the WFL had failed because of syntax errors, missing job file, bad usercode etc.

Now, SUPERVISOR can now provide status information about the success or failure of a WFL job initiation processed by an AFTER command. Completion status information will appear in an AF ? response for TODAY's schedule and also in a PRINT SCHEDULE listing. Typical values include JOB OK, JOB SYNTAX, BAD USERCODE, INVALID ACCESS etc. There is also an additional value, COMMANDERROR, which identifies if an AF TT command has failed e.g. a TT DO might fail because the ODTSEQUENCE might be absent.

AF ? 1930-1934

----- SCHEDULE after 19:30 TODAY @ 19:30:54 28/02/2008 -----
          
1: STARTJOB (IPP)TEST/JOB ON DEV :(JOB OK,#54131)
----- SCHEDULE after 19:31 TODAY @ 19:31:48 28/02/2008 -----
1: FOR (TEST) STARTJOB (IPP)TEST/JOB ON DEV :(INVALID USERCODE)
----- SCHEDULE after 19:32 TODAY @ 19:32:36 28/02/2008 -----
1: FOR (TEST1) ACCESS IPP STARTJOB (IPP)TEST/JOB :(INVALID ACCESS)
----- SCHEDULE after 19:33 TODAY @ 19:33:12 28/02/2008 -----
1: FOR (TEST2) CHARGE IPP STARTJOB (IPP)TEST/JOB :(INVALID CHARGE)
----- SCHEDULE after 19:34 TODAY @ 19:34:06 28/02/2008 -----
1: TT DO ZZ :(OK)

When SUPERVISOR logging is active, the LOG command will show all AFTER commands being processed at the activity time and report each success or failure.

The AFTER context has been extended to provide these AFTER results when used with the EVAL command. The POSTSCRIPT and JOBNUMBER attributes provide for WFL jobs whether it started sucesssfully and, if so, the associated job number. Note that JOBNUMBER is also available if the WFL activity fails with syntax errors.

The AFTER response for for the daily schedule will now show WFL job numbers where appropriate for both AF ? and PRINT SCHEDULE commands.

This facility could, for example, allow SUPERVISOR Opal programs to report AFTER failures on a daily basis and email any exceptions.

EV(AFTER:VALID(POSTSCRIPT)) DO (SHOW(ADDTEXT 50,,POSTSCRIPT 12,,JOBNO))
FOR TEST2 CHARGE IPP AFTER + 1933:STARTJOB (IPP)TE INVCHARGE    0
FOR TEST1 ACCESS IPP AFTER + 1932:STARTJOB (IPP)TE INVACCESS    0
FOR TEST AFTER + 1931:STARTJOB (IPP)TEST/JOB ON DE BADUSERCODE  0
AFTER + 1930:STARTJOB (IPP)TEST/JOB ON DEV         JOBSYNTAX    60356
FOR IPP AFTER + 1929:STARTJOB (IPP)MK/JOBDEL ON DE JOBOK        60348
AFTER + 1929:PRINT SCHEDULE                        JOBOK        60348
AFTER + 1929:SAVE SCHEDULE                         JOBOK        60348
FOR TEST2 CHARGE IPP AFTER + 1928:STARTJOB (IPP)TE JOBOK        60341
FOR TEST1 ACCESS IPP AFTER + 1927:STARTJOB (IPP)TE JOBOK        60339
FOR TEST AFTER + 1926:STARTJOB (IPP)TEST/JOB ON DE JOBOK        60335
AFTER + 1925:STARTJOB (IPP)TEST/JOB ON DEV         JOBOK        60333
FOR IPP AFTER + 1924:STARTJOB (IPP)MK/JOBADD ON DE JOBOK        60327
AFTER + 1923:TT DO NOSUCHACTIVITY                  COMMANDERROR 0
AFTER + 1922:SAVE SCHEDULE                         AFDONE       0
AFTER + 1921:DISPLAY("SIMPLE WFL TEST")            AFDONE       0
INLINE_AFTER_14+INLINE_14 WILL BE EVALUATED  

The above EVAL could be easily changed to allow failed jobs to be collected and emailed at 2359 each night. See HELP ATTR POSTSCRIPT for details of all the possible values for this attribute.

The ADDTEXT attribute will now be marked as not VALID if the schedule day is TODAY and the activity was specified with an ON Nth DAY, IN WEEKS or uses a LAST modifier. This occurs because such activities can only be established with an ON <day of week> or DAILY modifier and therefore have no relevance for Today's schedule. In contrast, the DELETETEXT attribute is VALID in such cases but is constructed with ':@n' modifier to identify the activity instead of the its text.

SUPERVISOR-invoked commands such as JAM, SYSDIR and SYSLOG will now return JOBOK postscripts if successfully run and the associated job number will be available. This also applies to any RUN commands because such AFTER activities are jacketed by a BEGIN JOB..END JOB. Note that ??RUN entries that are successfully executed are exempt and cannot show a job number.

The WITHIN modifier, used by an AF command to control the max number of seconds that an activity can be started after its time slot, is now supported by the similarly named WITHIN attribute in the AFTER context.

Also in this change, SUPERVISOR now better handles AF commands that have been entered into TODAY's schedule with a time that is the current time of day or slightly later. Under certain conditions, it was then possible for SUPERVISOR to incur significant I/O and CPU resource, appearing to be unresponsive for a period up to 1 minute. This occasional long-standing behaviour has now been corrected.

Feb 2008 530.25 Further AFTER context fixes

The TIMESPECS and ADDTEXT attributes in the AFTER context will now NOT include an 'ON <day' specification if an ON clause such as 'ON LAST MONDAY','ON 1ST DAY' etc. is already present. For example, TIMESPECS might have returned the following invalid date specifications:

ON SUNDAY ON 1ST DAY
ON TUESDAY ON LAST WORKDAY
          

Also, for activities with certain complex date specifications (such as 'ON..DAY'), a scan of the schedule with any AFTER EVAL may have omitted these from each week day analysis (ON SUNDAY, ON MONDAY etc).

The change applied in SUPERVISOR 530.24 inadvertently broke the use of the AFTER key mechanism (as described by DNote 530.22) used to process individual AFTER records by a standalone DO. Each DO would have failed with the error 'Invalid AFTER key'.

Lastly, SUPERVISOR would consistently have rejected week of year numbers 5, 47, 50 and 53 when used in AFTER commands that used the 'IN WEEK nn' clause.

These problems have now been fixed.

Feb 2008 530.24 Correct LOG evals date ranges

The AFTER implementation described in DNote 530.23 had the unintended side-effect of causing certain EVAL date and time specifications (used for log-based access) to fail with the error 'RIGHT BRACKET REQUIRED'.

Also, using a time range within the EVAL specifications for the new AFTER context would always fail to find any matching schedule entries, with or without a specified date. Both of these problems have been addressed.

Feb 2008 530.23 Correct multiple TT KEYIN problem

Previously, SUPERVISOR could have faulted with an INVALID INDEX at 76348000 when processing multiple TT commands in sequence using the KEYIN function. This problem has been resolved.

Several minor logging issues have been addressed in this change.

Feb 2008 530.22 Implement AFTER context

A new context, called AFTER, is now available for use by OPAL programmers. This context permits access to SUPERVISOR's AFTER schedule and has many attributes that map information related to an individual activity. This access is only available to the EVAL command.

The AFTER context allows the activity schedule to be filtered by the day of the week (SUNDAY=>SATURDAY) or by the special keywords TODAY and COLDSTART. For example:

EVAL (AFTER=SUNDAY,TUESDAY:TRUE)
          

The above example would only examine activities that normally appear in the schedule for ON SUNDAY and ON TUESDAY.

Various attributes allow the caller to filter by many different characteristics. For example, boolean attributes such as ONHALTLOAD, ONRESTART, ONSUNDAY etc. allow the user to filter individual activities by a variety of different conditions. String attributes such as ACTIVITY, FORTEXT, ADDTEXT and DELETETEXT allow information about the schedule entry text content content to be retrieved. Please see HELP ATTR =:AFTER for a complete list of the attributes in this context.

Similar to the syntax used for LOG-based EVALS, it is also possible to control access to schedule records by using time of day and/or date ranges filters. The syntax is slightly different from that used by LOG and both time and date ranges can be used; the specific AfTER syntax for the AFTER <Eval Specs> is shown below:

<Eval Specs>

+--<hhmm> -+            |  +--<ddmmyy> -+              |
+- - <hhmm> -+               +- - <ddmmyy> -+
          

If <Eval Specs> is not used then the general daily schedule (or parts of the schedule if a subcontext is specified), will be processed. However, using <Eval Specs> causes this behaviour to change if a specific date or date range is specified. This forces SUPERVISOR to return all activities that are scheduled to be executed on all days in that range. In particular, activities that have EXCEPT HOLIDAYS or ON WORKDAYS or ON DATE will only be displayed if they are to be processed on that day. The list of activities will be identical to that seen using the command AF ? ON DATE.

For example:

EV (AFTER:TRUE) [@1000-1300 20/2/08] DO (SHOW(ADDTEXT))
EV AFSITU [@21/02/08-23/02/08] DO AFODTS
          

Using a time range without a date or date range will cause the general schedule to be filtered by time only. In the event a date is specified, the SCHEDULEDAY and SCHEDULEDATE attributes will be automatically set to the appropriate date.

AFTER context programs may also be executed standalone with the DO command. To retrieve information for an unique record in the schedule, the DO command must be given the schedule day or specific julian ON DATE, the minute of day and the activity number. The Opal KEY attribute provides this access but its use is not intended for general use.

This interface has been provided to support new functionality in the new Metalogic Web interface, which operates with a variety of internet browsers, and offers direct access into the SUPERVISOR schedule.

Feb 2008 530.21 Permit SYSTEM-based ODTS with LOG SITU

The change described by SUPERVISOR DNote 530.04 had the unintended side-effect of prohibiting the use of SYSTEM-based ODTSEQUENCEs or DISPLAYS with all LOG context SITUATIONS linked by the WHEN, ONCE or EVAL commands. This restriction, not previously in use before the 530.04 change, has now been relaxed.

Feb 2008 530.20 Inherit usercode for TT KEYINS

Previously, passing SUPERVISOR (TT) commands via the OPAL KEYIN function did not inherit the usercode of the WHEN slot. This caused problems, in particular, when using the DEFINE command as interrogation or compilations would access the system dictionary and not the DEFINES belonging to the calling usercode. This behaviour has been corrected.

Also, KEYINs called from OPAL programs running under a usercode will now be logged correctly in SUPERVISOR's log file.

Feb 2008 530.19 Correct TK error message logging

Previously, SUPERVISOR logged all error messages returned by the Unisys TAPESERVER library (when run with 'USE SILO UNISYS') as type 'Msg' in the Metatapelib TAPELOG file instead of the expected 'Err'. This error has been corrected.

Also, SUPERVISOR will now log all usage of the FOR modifier with any command into its log file (if enabled). Previously, the original command would not have been logged if the FOR failed for security reasons.

Feb 2008 530.18 More WHENCONTEXT and TIME inline Opal fix

Several problems with the new WHEN context have been addressed: the CHARGECODE attribute, if valid, now returns the correct string value. Also, passing a slot number greater than the maximum absolute WHEN number (by default 40) to the .WHEN method, as described in OPAL Dnote 530.05, will now not cause an INVALID INDEX @ 10712220 in SUPERVISOR.

Also, a MX context inline OPAL that additionally specified TIME in the SITUATION did not correctly pass the context to an associated in-line OPAL. For example:

WHEN (TIME,MX:TRUE) DO (SHOW(MIXNO))
          

The above would have failed syntax when scanning the MIXNO attribute because the OPAL compiler would not know the context was MX. This problem is now fixed.

Feb 2008 530.17 Allow TIME-based WHEN context

The WHEN context may now take a TIME modifier as part of a subcontext assignment (as with MX and PER) allowing such OPAL programs to poll the current WHEN list using an user-specified DELAY. However, unlike MX and PER, a time-based WHEN slot will still also be triggered by normal WHEN events created when a slot is activated, faulted or terminated. For a timed poll, the information for each slot passed to the WHEN has a special EVENTTYPE category called WTIMEOUT.

A new attribute, TIMELASTEVAL, has been added to the WHEN context. This returns a value signifying the elapsed time, in seconds, since the SITUATION belonging to the slot was triggered because of an event. However, for slots with a zero EVAL count, TIMELASTEVAL will return the time since the WHEN was first started. TIMELASTEVAL has also been added to the MYSELF attribute, allowing access to this info from all contexts.

Example:

DEFINE + SITUATION W(TIME,WHEN):
SITUCONTEXT="HTTP"
          

Feb 2008 530.16 Fix ENTER processor accounting

The fix described in DNote 521.45 did not resolve all the CPU accounting issues with the ENTER command. If an ENTER generated any informational messages, which are then logged by SUPERVISOR, it was possible for the accounting of 'Controller Queue handling' to be distorted by the CPU time incurred by the ENTER process. This problem has now been corrected.

Jan 2008 530.15 Support .WHEN method for variable

This change supports the new .WHEN method for Opal variables.

Jan 2008 530.14 Speed up EVALREADER processing

Previously, to control CPU usage, certain SUPERVISOR EVALs that invoked EVREADER subtasks to process LOG and TAPEDB contexts, would have continually released the processor after processing only 20 records. This minimum value has now been increased to a new default of 200 records allowing the faster completion of these EVAL requests. Note that the limit can be controlled by changing the Supervisor configuration variable SUP_TIMERSLICE using the INSTALL utility's CONFIG menu.

Jan 2008 530.13 Support for WHEN context

A new context called WHEN has been implemented for SUPERVISOR. This is primarily an event-based context that allows SUPERVISOR to monitor all WHEN and DO activities such as sessions starting and terminating, with reporting for those that have faulted. The full set of attributes can be viewed using HELP ATTR =:WHEN.

WHEN context OPAL programs may be used with the WHEN command (the type of event is designated by the EVENTTYPE attribute) and also with EVAL. For HTTP WHEN programs, a special EVENTTYPE with the mnemonic WHTTPBUSY has been added; this allows SUPERVISOR to detect a browser HTTP client request that has become queued because all the active HTTP WHENs are currently busy.

Both the COUNT and OBJECTS functions in OPAL will accept WHEN context calls, returning a list of slot numbers in the latter case. WHEN programs may also be executed standalone, using the DO command, by passing a valid slot number as parameter.

WHEN (WHEN:TRUE) DO WHENODTS
DO WHENODTS 1,22,23
EVAL (WHEN:ODTSNAME INCL "META") DO (SHOW(SLOT,,SITUNAME,,ODTSNAME))
          

Jan 2008 530.12 FindWHEN

Internal Change.

Jan 2008 530.11 Limit COPYWRITE library linkages

This change helps to limit the number of COPYWRITE library link and delink operations when accessing LibMaintdIr attribute information for FLEX disk farms and CD images in a TAPEDB EVAL. Previously, there would have been a link/delink pair for each tape access.

Jan 2008 530.10 Correct EVAL MX vs. COUNT PRINTS conflict

If a COUNT(PRINTS:..) function was executed inside a MX-based EVAL, SUPERVISOR could fault with INTEGER OVERFLOW @ 93650000 because of corruption in the mix number list returned. This problem would only occur if SUPERVISOR had not already earlier processed any PRINTS request (via COUNT or EVAL).

Jan 2008 530.09 Allow multiple HTTP client WHENs

SUPERVISOR will now permit multiple WHENS with the same name to run concurrently as long as the WHENs are of the HTTP context. This change assists SUPERVISOR's web server performance by allowing multiple HTTP WHENS to handle more than one client request concurrently.

Note that each WHEN can be deactivated using WHEN <situ> DO or the DO - #<slot> command.

Jan 2008 530.08 Provide warning message for long MARC responses

SUPERVISOR will now append a single-line warning message to output generated for MARC station responses which are greater than the MARC-enforced limit of 30,000 lines:

-- WARNING:THIS MARC RESPONSE HAS BEEN TRUNCATED --
          

This only occurs for MARC output generated by Metalogic's TTINTERFACE MARC Directive and no other SUPERVISOR interfaces are affected.

Jan 2008 530.07 Fix OBJECTS and COUNT handling

The recent limits enhancement to the EVAL command described in DNote 530.03 caused all COUNT function calls (regardless of context) to return zero if used in any standalone DO or DISPLAY program. Similarly, all OBJECTS calls would always return empty string values. This problem is now fixed.

Dec 2007 530.06 Fix WAIT(MSG) bug

The change described by DNote 530.02 caused problems with ODTSEQUENCES that used the WAIT function waiting for specific message e.g. WAIT("TEST" ISIN TEXT). This feature, which would have only worked if other MSG WHENs were already active, will now work correctly.

Dec 2007 530.05 DUMAP implementation

This change supports the new OPAL attribute called DUMAP which returns a Disk Map of a specified disk family using a user-specified number of chunks. DUMAP returns an array of elements signifying the type of area for an individual chunk i.e. A (Available), M (Moveable) and F (Fixed). This attribute is meant for use with the Metalogic Web Server implementation.

Dec 2007 530.04 Correct Log context mismatch checking

Previously, SUPERVISOR did not check the SITU and ODTS types for all Log-based contexts when used with the EVAL and WHEN commands. This meant it was possible, for example, to link a FILECLOSE SITU with a LOGBOJ ODTS which caused a NOT YET IMPLEMENTED error when the ODTS was first executed. Now, SUPERVISOR will verify that the contexts match during command validation giving the following error if there is a mismatch:

TYPE OF ODT SEQUENCE MUST MATCH TYPE OF SITUATION
          

Dec 2007 530.03 Allow ranges as well as limits for Evals

The Eval and When commands will now accept ranges as well as limits for evals and entries.

Ex. Eval Mysitu [100-200] Do Myodts

Will skip the first 99 objects which would have bee passed to the situation and only evaluate from 100 to 200.

Eval Mysitu DO Myodts[50-100]

Will ignore the first 49 objects passed by the Situ.

The range will always equate to at least one object. So [100-10] will be treated as [100-100]

For Odts of PD context a range can now be specified.

Ex. DO BOB [5-9] MYFILES/=

or
DO BOB [100] (*)=LISTING=:FLat
          

Dec 2007 530.02 Increase maximum number of OPAL contexts

This internal change offers no customer enhancements to Metalogic software. However, its effect is to permit more OPAL program contexts to be implemented for SUPERVISOR up to a new maximum of 47 (the current limit is 31) and will cause the SCHEDULE version to be incremented to 17 even though no actual conversion will occur. This means that earlier versions of SUPERVISOR will not be able to use SCHEDULE files touched by this current release.

This change requires all HTTP context programs to be recompiled or re-entered. If this is not done, any active HTTP Opals will fail with ' a 'BAD WAIT 0' error.

Dec 2007 530.01SHOW PERM/GLOBAL enhancements

The SHOW PERM and SHOW GLOBALS commands have been enhanced to allow a wild-card pattern to filter the list of variables returned. If a normal identifier is used instead of a wild-card in the SHOW PERM command, SUPERVISOR will attempt to retrieve both the real and string values for that specific variable name.

The modified syntax for both SHOW variants is shown below:

--- SHOW --+-- GLOBAL ---+--------+---------------+--------------|
+-- PERM -----+        +-- <Pattern> --+
          

The response to a SHOW PERM command will now sort the real and string lists by variable name in ascending order.

For example:

SHOW GLOBAL META=
SHOW PERM  =TEST=
SHOW PERM  SPECIFICPERM