When there were very many volumes in the volume library and the tape library was running as a slave, mergetape could fault with a bounds error. This would happen when calling TP_STORE in Opaltapelib.
Installing OpalTapeLib on systems with COMPILERTARGET set to 6 or higher. Caused the compile to fail. This was due to binding from a code file compiled with compilertarget of 5. The need to bind has now been removed.
If a Unisys tape silo was active but returned 0 volumes when an inventory was requested then the following errors would be reported:
Err:TAPELIBUPDATER fault 4 at 097:0019:1 (44281700),......
and
MSRHI3:OPALTAPELIB: INVALID INDEX @ (44281700)
Now if this situation occurs an error message will be logged:
Err:Silo inventory request returned no volumesand the cartinsilo attribute for all volumes will return false.
The attribute error below, seen when processing a TP DUMP command has been corrected:
MSRATTERR189:OPALTAPELIB: ATTRIBUTE ERROR:FUT.TITLE INVALID CHARACTER @ (43606600)
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 OFFIf TL_DEBUG is set: Extra information is logged when calling DSI entry points SLOT_FROM_SN and LibraryName.
New exported procedure NotDSISerial to support Tapemanager changes described in Supervisor D Note 570.06
Supports the new TM commands DSIQUIT and DSISTART. See HELP TM for details.
If the USE SILO option was any DSI + UNISYS then the +UNISYS was lost after Supervisor restart.
TT USES GETSCRATCH ..... may now be used on slave systems.
Allows the TP APPLY command to see scratch tapes. Supports the new USE GETSCRATCH command in Supervisor. Supports the new sort options in the TP scratch command.
Version 560.01 introduced a bug causing CARTINSILO or
GETSCRATCH(INSILO) to fail on Unisys Silos containing exactly 550
This change is intended to eliminate occasional significant delays when checking the CARTINSILO attribute when using Unisys Silos.
Errors encountered when calling the Unisys TapeServer Library (Used when USE SILO = UNISYS) are now logged in the Trim Log.
Synchronised calls to TAPESERVER with the latest CSC documentation.
Logging in the TP LOG for the GetScratch Opal function has been improved.
Extra debug information may now be logged to the TP LOG when calling the UNISYS CALLTAPESEVER procedure. To turn on Debug enter the following from a Supervisor or TRIM window. TT / ($TP_DEBUG.CONFIG:="TRUE") To turn off Debug enter: TT / ($TP_DEBUG.CONFIG:=EMPTY) OPALTAPELIB must restart for the change to take effect.
Typically this can be done by TP CLOSE TT DELINK OPALTAPELIB SEND TM QUIT
check that *METALOGIC/OPALTAPELIB4 has completed
TP OPEN SEND TM START to bring Opaltapelib back up.
Command input passed to TapeManager via SEND TM is now logged in the Trim log with a category of "Mgr"
This internal changes supports the new TP CLONE command described by TAPELIBUPDATER DNote 540.03.
Attempts by Mergetape to release tapes which have been appended will no longer fail with the error: Cannot MODIFY Tape <serial>: Creation date has changed
This change supports the new TP PV and logical reel handling that is fully described in TAPELIBUPDATER DNote 530.08. Improved LOGREADER handling of COPYAUDIT tape notices is also implemented here and is described in LOGREADER DNote 530.02. Please refer to these notes for more information.
If the CHECK option is used with a COPYAUDIT 'QUICKCOPY' command, the MCP may erroneously believe that COPYAUDIT is performing APPEND operations to the destination tape (additional info is written because of the CHECK) even though this is not the case. The MCP then sends these LOG VOL APPEND entries to SUPERVISOR as each AUDIT file is copied.
The above behaviour has no effect on a master system since these notices are discarded but, on slave systems, the appends are believed to be legal and notices are despatched to the master. The database entry is then updated, now incorrectly logging the tape as appended, and a TAPEDB notice is returned to the slave causing confusion.
This problem has now been detoured and the problem will be reported to Unisys.
Previously, the Magus config variable COPYWRITE_COPYCATSN was used to control the allocation of Disk Farm volume serial numbers for FLEX. This variable has now been renamed to FLEX_DFSERIALNO for clarity reasons and COPYWRITE_COPYCATSN is now not used by FLEX.
This change supports a new OPAL attribute called GETDISKFARMSERIAL available only to FLEX. Please refer to OPAL DNote 530.30 for more information.
Various entries could have appeared garbled in the TRIM Tapelog with text from earlier entries appended to the record. Also, Volume Online log entries detected for tapes that were not in the TRIM database caused an uninformative '(Not in DB)' message in the log. Both these issues have been corrected.
Previously, changing the Supervisor USE SILO setting to values such as DSI_NOTM and DSI_SERIALNO was not subsequently recognised correctly by the TAPEMANAGER library. This was because OPALTAPELIB did not pass the correct silo setting when requested by TAPEMANAGER. This problem is now fixed.
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.
This change will allow Metalogic's TAPEMANAGER implementation to intercept output tape requests and automatically assign eligible scratch tapes retrieved directly by the GETSCRATCH function. This was only possible previously from SUPERVISOR Opal scripts.
All requests passed to the Opal GETSCRATCH attribute are now logged in the TRIM log file. For example:
12:22:39 Msg:56572 GETSCRATCH Den=DLT35,Pool=DLT35POOL=>DLT002
The above GETSCRATCH request was performed on behalf of mix no 56572, for the depicted density and scratchpool and returned tape serial DLT002. Any detected errors will also be shown in the TRIM log text:
12:24:15 Err:56572 GETSCRATCH Den=DLT35,Pool=NOSUCHPOOL:NO SERIALS
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.
Various database access errors that are normally written into the TRIM log were previously identified with a category of 'Msg' instead of 'Err'. This behaviour has been corrected.
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.
This change supports the new TP FIND ALL command described by TAPELIBUPDATER DNote 530.02; please refer to this note for more information.
Version 520.10 introduced a dependency on a file which is not available to META/INSTALL. This would have resuled in the compile of OPALTAPELIB hanging on a no file condition. This dependency has bee removed.
Internal Metalogic change in preparation for the new Supervisor DUMAP attribute.
This change supports the new TRIM log file implementation described in TAPELIBUPDATER DNote 520.05.
The SENDDATE attribute will now be set to zero when a tape scratch is recorded in the METATAPELIB database. Previously, the value was set to null causing such tapes to be potentially ignored during certain usages of the GETSCRATCH function. These problems have now been fixed.
This changes supports the new TP <serialno> KIND modfier described by TAPELIBUPDATER DNote 520.04.
This change supports the hybrid USE SILO environment for Unisys and DSI tape robots, as described in SUPERVISOR DNote 520.43.
Changing the VOLID using TT TP VOLID will now set the Scratch attribute based on the new Volid. A Volid of SCRATCH will set the Scratch attribute to True. Any other Volid will set the Scratch attribute to False.
Using TP APPLY on a rule family with no tapes would generate a complex TP_GENUPDATE DMSII error message instead of a simple 'No tapes' error. This has been corrected.
Also, after successfully creating or modifying a rule using the TRIM utility, an implicit APPLY will be performed on the modified rule to update all members of the family.
This change provides enhancements in the way that TRIM handles tapes created by the Unisys TAPESTACKER utility. Although TRIM will not track the contents of a stacked volume, both APPEND and UNSTACK operations will be recorded in the METATAPELIB database.
SUPERVISOR now limits the logging of tape usage by a task to its first use. Previously, activities such as TAPESTACK append operations caused excessive logging to the TAPELOG and unnecessary updates to the tape's usage count.
When TAPESTACK unstacks a tape volume, the unstacked tape is an exact copy of the original volume, except for the destination tape serial number. Because of this, these tapes are written as UNLABELLED tapes and will appear as such in the METATAPELIB4 database. There is no additional notice provided by the MCP to help TRIM to detect the new tape so SUPERVISOR has been changed to detect all tape VOLUME ONLINE records.
If a VOLUME ONLINE entry is seen for a tape that is marked as UNLABELLED in the database, the tape record will be updated with the correct volume id and file id and the UNLABELLED status is turned off. The ACCESSTIME and ACCESSDATE attributes of the tape are changed to reflect the timestamp of the VOLUME ONLINE. Please note that, at this time, because the created tape is potentially very old, no TRIM rules will be applied unless a manual SR is performed. We may change this behaviour in future releases of the software.
Typically, if AUTOUNLOAD is OFF for the unit, the VOL ONLINE is detected immediately. If AUTOUNLOAD is ON, the database will only be updated when the tape is reloaded.
The tape log entries appear as:
12:38:00 Evt: Unlabelled update [HP3009] STACK1/FILE000 12:38:00 Evt: Created [HP3009] UNLABELLED by #159 12:35:19 Evt: New Vol [HP3009] UNLABELLED by #159OPALTAPELIB and SUPERVISOR also support DMUTILITY appended dumps to existing tapesets. These will be logged as APPEND operations in the database; a secondary APPEND operation which writes to a directory file at the end of the tape (called MDUMPMAKER) is ignored.
Significant protection has been provided to ensure that the LOGREADER utility cannot overwrite new unstacked tape volumes which have old creation dates assigned.
The TP FIND command subset will now return display LOCATION values that are null as a string of 12 spaces; previously FIND would have shown the field as null characters in printed reports.
For tapes imported from other vendor databases such as B&L LIB, it is possible for some tape job and task numbers to be assigned incorrect values during the import. These values exceed the maximum mix number of 99999 and may appear as decimal values with an exponent in the daily reports OPALs. If incorrect values are detected, OPALTAPELIB will automatically set these values to the maximum allowed of 99999.
The change in DNote 510.17 caused unnecessary error messages to be written to the TAPELOG when interrogating tapes which were scratch or did not have LIBMAINTDIR files.
In certain circumstances, it was possible for TAPELIBUPDATER to fault retrieving statistics from an associated LIBMAINTDIR file in the response to a TP interrogation. This code has now been made more resilient to prevent future problems and error information will be added to the TAPELOG to add diagnosis.
A change to protect tapes on a slave system being marked as PGOK when they had local backup references had an unfortunate side effect. The attributes LOST,DAMAGED,LOCK and PGNEVER could not be set if a tape had backup references.
The restriction now only applies to PGOK.
The change described in DNote 510.13 caused MERGETAPE to return incorrect error messages when verifying hostnames for a LOCKED FLEX tape that was eligible for release on a TRIM master system. This problem has been corrected.
Previously, the TAPENAMESERIALS attribute would cause a SEG ARRAY error in TAPELIBUPDATER if a volume id of more than 17 characters was passed in the target tape name. This problem is now fixed; any user-supplied volume id will be truncated to 17 characters.
This change supports the new TP <serial> LOCK command, discussed in detail in TAPELIBUPDATER DNote 510.12, which adds enhanced protection of FLEX tapes in a master-slave TRIM environment. This functionality controls PGOK assignment from both Supervisor's TP commands and also FLEX's MERGETAPE utility. Please see the TAPELIBUPDATER DNote for more details.
This change supports the new LMDTITLE attribute and the display of Volume Usage information in a standard TP command response. Please refer to TAPELIBUPDATER DNote 511.11 for more information.
Previously, it was possible for an appended tape volume entry to lose its appended status if the tape notice had been processed by the LOGREADER utility. This problem, which would also cause the matching TRIM retention to be errorneously reapplied, has been fixed.
The TAPEDB attributes, LMDFILECOUNT, LMDBYTES and LMDEXISTS will now return appropriate values for Flex/CopyWrite CD image files, as well as tapes and Disk Farms, even though CD Images do not have associated LibMaintDirs. The Metalogic Copywrite software must be installed on the system and this feature will only operate correctly for FLEX-generated images.
Previously, if the Tape Library system was initiated on a new system without having been correctly installed, the OPALTAPELIB library would assign the system as a MASTER network entity. This behaviour caused various problems if no METATAPELIB database existed and it would not be possible to easily change the TP NET configuration to a SLAVE.
This behaviour has been changed; where the appropriate config variables are absent, OPALATPELIB will now assign the syatem SLAVE status. Also, OPALTAPELIB will assign a default TAPELOG title is one had not been allocated by the customer during an INSTALL. These changes allow the TRIM subsystem to start without problem on a new system and allow subsequent easy configuration.
This change support the new TAPEDB attributes and TP command extensions described in TAPELIBUPDATER DNote 510.07. The new attributes allow additional functionality for LIBMAINTDIR handling.
This changes supports the new TAPEDB EVAL capability from TRIM slave systems, as described in SUPERVISOR DNote 510.61.
Two new attributes, LMDFILECOUNT and LMDBYTES, have been added to the TAPEDB context. If a tape volume has an associated LIBMAINTDIR file, SUPERVISOR may retrieve the number of files and the disk space occupied on the tape by using these attributes. This information is particularly useful for appended tapes.
If any scratch tapes with density of BPI800 existed in the TRIM database, an unqualified TP SCR command would fail with TAPELIBUPATER FAULT 8 at 52090450. This problem has been corrected.
The GETSCRATCH function will now use MCP entrypoints to automatically determine the correct attribute value of the tape density requested by the caller. This change allows all current and future tape densities to be supported without having to apply software changes to the OPALTAPELIB library.
The changes discussed in DNote 510.01 for soft lock protection did not handle all fault conditions, potentially causing OPALTAPELIB callers to periodically display the message 'Lock LIBLOCK not owned but not Liberated'. This problem is now resolved.
The checks performed by TRIM when setting the PGOK flag on a tape volume, via a slave system TP command, have been tightened. When a PGOK+ command is requested, TRIM checks to see if the volume is in use by Metalogic's FLEX package and, if so, ensures that the volume has non-zero backup references before allowing the PGOK. These checks are now performed BOTH on the slave and master systems unconditionally - the check was previously only performed on the slave system.
Also, if a TP <serial> PGOK command was issued from a slave system, the command could have failed with a 'Not found in Tape Library' error. This problem is now fixed.
The internal soft lock mechanisms inside OPALTAPELIB, used to control concurrent access to METATAPELIB data and functions, may not have worked correctly if the caller was manually DS-ed or faulted. This problem caused any subsequent callers to hang and display various recurring messages such as:
OPALTAPELIB:Lock LibLock Not owned but Not liberated
OPALTAPELIB:TASK #NNNN TERMINATED WITHOUT CLEARING LOCK LibLock
Due to the severity of this problem, a restart of the OPALTAPELIB library and, therefore SUPERVISOR and TAPEMANAGER, would be required. This problem has now been resolved and OPALTAPELIB's soft lock handling is much more resilient.
Previously, library maintenance tape append events detected by TRIM caused the FILEID attribute to change to a value other than 'FILE000' and possible the OWNER, if the append occurred under a different job usercode. These changes would affect the auto-loading of tapes from robot silos since the FILEID information in METATAPELIB4 did not match the actual tape label.
Now, TRIM preserves the original OWNER and FILEID attributes, when processing an append, as long as the append volumeid matches the original entry in the database. Tape expiration and generation information will be automatically applied after the append.
This change fixes a problem with the TP FIND RULES command. If there were more than 1023 rules the command failed with the error: OPALTAPELIB:REQUESTED MEMORY SIZE GREATER THAN 65535 WORDS.
The TAPENAMESERIALS function, if called with a cycle:version pattern, would not find a matching tape if the correct version was NOT the first tape in matching subset. For example, two tapes called TESTTAPe with genealogy of 1:1 and 2:1
The GETSCRATCH function will now accept all known current tape densities, as of MCP 5.0, in its first parameter; these include ST9940, DLT160 and LTO.
Previously, the FILECOUNT attribute of a CD or CD image volume in the METATAPELIB4 database would have been reset to 0 after a SR (Set Rule) command. This behaviour has been corrected.
During OPALTAPELIB initialization, the library would fail if the TL_MASTER config variable was not present. This gave no opportunity for the setting to be changed by the TP NET command. This change will now permit TRIM to initialize with a default MASTER configuration which can then be easily modified by TP NET.
All variants of the TP LOG command will now search back through the past 7 days (or 3000 matched entries); previously, the search would have stopped after scanning back 2 days or 100 entries.
Also, OPALTAPELIB will now automatically close the current TAPELOG file if more than 5000 records. This change allows TAPELOGs to be kept to a reasonable size and to be easily archived.
The LOAD_DATA procedure, used by the INSTALL command NEWDMS RESTORE, will now check the Magus config variable TL_HISTLIMIT to determine how many history records should be preserved for each tape. By default, this value is 5 but can be changed to any value between 0 (i.e. no history) and a maximum of 5. This value may be easily changed by the INSTALL utility (see INSTALL DNote 500.02).
Support for Log volume appends see Tapelibupdater Dnote 500.02
This change supports the EI attribute subset implemented for the JOBREJECT context. Please see OPAL Dnote 490.18 for more information.
The 'TP SHOW <serialno>' command has been added to provide an alternate method to the usual TP <serialno> command. SHOW allows access to serial numbers such as 'LOG','QUIT' etc and is effectively regarded as noise.
The check made by OPALTAPELIB, performed during initialisation to determine if the local host is a TRIM master or slave, was too strict and would only assume that the host was a slave if TL_MASTER exactly matched a string value of "FALSE". These checks are now less rigorous e.g. allowing spaces to follow the string value.
This patch supports a new TP SCR modifier, 'CD', which allows scratch CD volumes to be reported. Such volumes are only applicable to CDs created by FAMILYMANAGER and MERGETAPE.
TRIM slave connections using BNA or TCPIP will now provide more status information if the host connection to the master system has been blocked or broken by a network failure. More details on this feature can be found in TAPELIBUPDATER Dnote 480.08.
The OPALTAPELIB library and TAPELIBUPDATER tasks will now show the current network settings after a restart of a TP NET APPLY command.
This patch supports the implementation of the TP NET command now available for fast configuration of a master-slave TRIM environment.
More information on this command can be found in TAPELIBUPDATER Dnote 480.05.
Internal change to support OPAL DBS function for SUPERVISOR.
If an attempt was made to purge a tape which had been created with the lockedfile attribute set, and Tapemanager was running, then the MCP would create a waiting entry requiring an OK to complete the purge. The result passed to Tapemanager now prevents this waiting entry.
If running Tapemanager, Libmaintdir directories will be removed when the matching tape is purged.
OPALTAPELIB patch 480.10 had the inadvertent side-effect of breaking INSTALL's NEWDMS and NEWDMS RESTORE functions. During the RESTORE phase of both these actions the INSTALL utility would die with AUDITERROR 1#2. This problem is now fixed.
When applying TRIM rules, OPALTAPELIB was not checking for the validity of certain fields in the tape label notice which have caused the find rule process to fault e.g. SEG ARRAY ERROR at 32620000. This was caused by the passing of corrupted notice information from SUPERVISOR and is now protected.
Previously, on TRIM master-slave systems, it was possible for certain TP commands to cause MSG SIZE ERROR failures on the slave and INTEGER OVERFLOW faults on the master, when using the TCPIP transport protocol.
This problem was caused by the failure of TAPELIBUPDATER on the master system to handle any short command network reads from the slave. This problem, which caused potential loss of tape notices and also disrupted the master-slave connection, is now fixed.
Use of the TP_STORE entrypoint in the OPALTAPELIB library has been enhanced to allow Metalogic programs access to METATAPELIB data from slave systems. In particular, for cataloging sites using FLEX/3 the MERGETAPE utility will now be able to update tape purge information directly from a slave system.
Support for the TP modifiers, TASKID and TASKNO, has been provided.
Previously, OPALTAPELIB would not correctly report DMSII STORE errors when the DATA_ENTRY library entrypoint was called. This problem could have caused programs, other than the TRIM utility, to fail to update the database when calling DATA_ENTRY.
During an INSTALL 'NEWDMS RESTORE' run, OPALTAPELIB will now report numbers of tapes loaded into MEDIA in cycles of 500 instead of 100.
This patch supports a new OPAL function, COMS, which allows the passing of COMS commands and inquiries to the COMSSUPPORT library and receiving responses. Please refer to Supervisor Dnote 480.44 for more information.
The changes described in Dnote 480.06 could cause the TAPELIBUPDATER task on slave systems to fault with an INVALID INDEX when sending tape information to the master system. This problem is now resolved.
When running a TCPIP master-slave environment where the maximum network message size between hosts was less than 800 characters, it was possible for message fragmentation to occur when passing TP commands from the slave to the master. This could cause various problems such as MSG SIZE ERROR and INTEGER OVERFLOW faults.
This problem was caused by the TLPORT interface incorrectly handling the additional message fragments and is now fixed.
Previously, when releasing Flex Familymanager/Mergetape tapes, it was possible for TRIM to miss the automatic release process of expired tapes (i.e. zero backup references) depending on the rule. In such cases, if the assigned TRIM rule used a short retention such that the expiry date was before the date of release, TRIM would fail to release the tape.
It is strongly recommended that all Flex tapes use the value of 999999 in any location duration field of the specified TRIM rule. This ensures that TRIM assigns an expiry date of 0; protecting against any attempt to release the tape.
The SR command did not automatically set the PGNEVER flag for a rule that used a NEVER retention. This only affected SR; normal tape creation handling was unaffected.
This patch supports some minor changes to the way Flex CDs and images are handled by the Metatapelib database.
Also, the change applied by Dnote 480.08 had the side effect of quoting the string values returned for the job and task name values held in the database. This was seen in TP <serial> responses and all the JOBID and TASKID attributes. This problem is now fixed.
Previously, created tape volumes which had '.' in the name, such as MF.BLABLN, were not being correctly handled. Although the volume name in the database was correct, a TP <serial> command and the TITLE, VOLUMEID attributes only returned the string immediately prior to the '.'. This problem is now fixed.
This patch only changes the version to 48. Version 470.10 is still valid on MCP 48.
When dumping or loading database data the flat files are now held on the same family as the control file.
Ex U META/INSTALL NEWDMS SAVE will create files on the control file Family.
U META/INSTALL NEWDMS RESTORE will load data from the control file Family (or Disk if no control file family is found).
If a new version of DMSII has been installed and the Metatapelib database has not been updated, a DMSII open error 67 will occur.
This message is now interpreted and the user is advised to run U META/INSTALL NEWDMS.
A diagnostic display was inadvertently left in rule matching code used by the TRIM utility. This display, which would only be seen when an exiting rule was modified, has been removed
During a CHECK_TAPE_PURGE call to verify if a tape was OK to purge, it was possible for the DMSII record for that tape to remain LOCKED after exiting this procedure. If a subsequent GETSCRATCH request, for example, then tried to lock the same record, the caller would hang causing database access via OPALTAPELIB to be hung waiting for the record to be freed. This problem is now fixed
It is now possible to assign the keys words SAVE and NEVER in the retention units field of a rule definition. SAVE means that, by default, the SAVEFACTOR of the tape will be used to calculate expiry date. No retention value will be allowed but normal generation and location controls can be set. The NEVER modifier allows a tape matching this rule to be assigned PGNEVER status, again no retention value is permitted.
Also, TRIM rules may now be assigned HOSTNAMEs characteristics. In the TRIM utility maintenance screens, provision is now available for HOSTNAME patterns and examples. As before, TRIM will verify that the combination of user, volume id, file id and hostname is unique. A rule with no hostname pattern cannot coexist with an identical rule which has a hostname pattern.
When rule matching is applied after tape creation or due to a SR command, if a hostname pattern exists, it will be matched to the hostname of the system on which that tape was created.
As part of these changes, many of the TRIM screens have ben changed to accommodate the hostname facilities and to generally improve clarity
The TRIM system now logs TapeLabel events into the METATAPELIB4 database for COPYWRITE-generated CDs, CD images and Disk Farm library maintenance COPYs. This will only occur if the original destination specified in the COPY has been assigned a serial number. However, TRIM will *NOT* overwrite an existing database entry if it is already tape.
For CR, CD Image and Disk Farm, TRIM maintains the TAPEDB and TAPELABEL KIND attribute (CD=CD,CD Image=CDR,Disk Farm=REMOTE). The response to a TP <serial> command and event logging to the TAPELOG have been changed accordingly
Version 470.03 introduced a bug when tasks timed out while waiting for a lock. This change corrects the problem.
When running on very busy multi-processor systems it was possible for task accessing the database to fault with a message like: Task #0 terminated while holding lock#0
The code used to handle locking has been significantly improved to prevent this happening in the future.
The changes applied By OPALTAPELIB patch 460.06 inadvertently affected the operation of some TP FIND commands such that the TT PRINT variant only ever returned a maximum of 200 tapes. This problem is now fixed.
If a tape was created which did not match any existing TRIM rule and an EXCEPTION rule was not found, OPALTAPELIB would mistakenly use today's date, instead of creation date, to assign an expiration date using SAVEFACTOR. This problem is now fixed.
Also, the TP..OWNER and TP..HOSTNAME command modifier will now always upcase the identifiers used
This patch allows the OPALTAPELIB library to provide additional protection for B&L tapes being accidentally purged by operations when the tape has not been officially released by the B&L software. The OPALTAPELIB library can provide additional expiry authentication by calling an intermediate external library, which in turn calls the B&L software, to verify if a tape known to B&L, can be physically purged or even marked as PGOK with a TP command.
To enable this feature, the site must have a local library which calls B&L entrypoints to return tape expiry information to the caller. A new MAGUS configuration variable, TL_BLPGLIB, must be assigned the name of the site library using the INSTALL utility e.g.
U META/INSTALL TL_BLPGLIB=(META)OBJECT/LIB/PURGELIB ON DEV
The entrypoint in this library, called by OPALTAPELIB is defined as:
Boolean Procedure TAPE_EMPTY(TAPE_SERIAL); Array TAPE_SERIAL[0]; Library BLLIB;
The TAPE_SERIAL parameter passed to TAPE_EMPTY holds the tape serial number as a 6-character EBCDIC string value in word 0. The procedure expects TRUE if the tape is expired.
It is the responsibility of the site to supply the intermediate library code since, although this feature was provided for a site using BLLIB, there is no reason why this facility could not be used where TRIM coexists with other Tape Library systems.
When enabled, this facility can protect against accidental purging (even if the TRIM database has it marked as PGOK), TP <serial> PGOK commands and tape expirations due to TRIM rules. Appropriate error messages are written to the TAPELOG or returned to the caller, where relevant.
Previously, if the TRIM Utility faulted or the METATAPELIB4 database was unavailable, it was possible for the OPALTAPELIB library to hang with a deadlock causing other accessing programs to fail.
This problem is now fixed.
Previously, it was possible for the LOGREADER utility (calling the OPALTAPELIB library) to allow the overwrite of an existing tape in the METATAPELIB4 database, even though the timestamp of the log entry was earlier (in time only) than the database equivalent.
These inconsistencies have now been fixed.
This patch supports the enhancements to the OPAL attribute TAPENAMESERIALS, allowing the passing of an optional, second parameter which holds the request tape CYCLE and VERSION.
Please see SUPERVISOR patch 46.460.13 or OPAL patch 46.460.03 for more details.
The OPALTAPELIB library now supports the Unisys MORETASKS implementation allowing the provision of mixnumbers up to 65535. This is achieved by setting the system options MORETASKS (OP+MORETASKS), halt-loading and changing the MAX command. In particular, this change supports the same implementation in OPAL and SUPERVISOR, please see SUPERVISOR Dnote 460.12 or OPAL Dnote 460.02 for more information.
The change described in Dnote 450.10 allowed greater control over the use of the FA SERIALNO command to protect against the usage of non PGOK tapes for output. However, if two waiting entries were FA-ed to the same scratch tape serial, there was no way to prevent the second task from over writing the tape created by the first job. This is primarily due to the way that the MCP uses CHECK_TAPE_ASSIGNMENT *only* for basic assignment not when the tape is eventually physically used.
To protect against this problem, each output tape request which uses a specific serialno is now marked as "assigned" in the tape library database. If a second job attempts to use the same tape due to a SERIALNO assignment, either by file-equation or the FA command, TAPEMANAGER will remove the SERIALNO from the waiting entry and issue a display message. This mode of operation will only occur if Metalogic's TAPEMANAGER library is SL-ed an running and the SYSOPS TAPEMANAGER is set.
The local handling of tape notices on TRIM slave systems has been improved when the master database is unavailable. Previously, OPALTAPELIB could have failed to send queued notices when the database was available again. The slave TLPORT handling will now provide additional diagnostics message as displays and in the tape log indicating the status of the TLPORT connection.
A problem where the OWNER attribute was assigned the value "UNKNOWN" for SYSTEM/BACKUP generated backup tapes, has now been fixed. This only occurred after a manual RWMT and the MCP-generated tape label was incorrectly processed by SUPERVISOR. Please see SUPERVISOR Dnote 460.06 for more information.
A bug in version 450.17 meant that if Full Flex was present, then no tapes would be confirmed. All would return an error saying that the tape had backup references.
Ideally, FAMILYMANAGER generated tapes should be assigned TRIM rules which do not have generation or expiry retention to ensure that these tapes never become PGOK unless released by MERGETAPE. If FLEX tapes require location movement, it is strongly recommended that the rule uses an expiry of 999999 days.
However, if such a simple expiry or generation-based TRIM rule was assigned to a FLEX tape and the tape was ready to move to the SCRATCH POOL, there was no checking performed by the CONFIRM process, regardless of the number of active backup references. CONFIRM would have simply marked the tape as PGOK like any other expired tape.
TRIM now will perform additional checks during the CONFIRM process and in Metalogic's TAPEMANAGER auto-purging. During CONFIRM, if a tape is moving to the SCRATCH POOL and has non-zero backup references, the move will be cancelled and an error message will appear in the TAPELOG. Both PENDINGDATE and PENDINGLOCATION will be reset and the tape will remain in its present location.
Further, the CHECK_TAPE_PURGE interface will check that the attempted purge of any tape which still has non-zero backup references will be rejected.
Note also that, if the MCP option CATALOGING is set and FLEX library is SL_ed but is not functioning, ALL attempted tape purges will be rejected until the library is available again.
The GETSCRATCH attribute has been modified to allow the provision of a third optional parameter, INSILO, which enforces SUPERVISOR to check that the tape serial returned is physically present in a Unisys Storagetek or DSI silo.
Previously, GETSCRATCH returned the first available tape matching *any* user-provided criteria in the serial set. Now, due to customer requests, this behaviour has changed. The "best-fit" scratch tape will be one that matches the user criteria AND has been PGOK or scratch for the longest period of time. This is determined by checking the SENDDATE attribute, as seen in a TP <serial> response, the oldest being selected.
The following OPAL expressions are valid:
GETSCRATCH("1250","") GETSCRATCH("DLT35","DLT35",INSILO)
As before, GETSCRATCH returns an error string, prefixed by "ERR:", if a match is not found or any of the parameters are illegal. The complete list of messages is shown below:
ERR:ARRAY TOO SMALL ERR:INVALID DENSITY ERR:DB OFFLINE ERR:DB OPENERR ERR:NO POOL OR DENSITY SPECIFIED ERR:INVALID DENSITY FOR SILO ERR:NO SERIALS
TRIM will now support master-slave environments either using BNA or TCPIP port files. By default, BNAv2 ports will be used but this process can be overridden to use only TCPIP by setting the following config variable on both master and slave systems:
U META/INSTALL TL_SKTNO=44444
The value 44444 is arbitrary and is assigned to the MYNAME and YOURNAME attributes of the master and slave TCPIP port files, respectively, to allow communication. The port service used is TCPIPNATIVESERVICE.
Once this software has been installed on both systems and the TL_SKTNO, variable has been set up, it is necessary to force TRIM to use the new settings. On both MASTER and SLAVE systems, the following command is needed:
TT DELINK OPALTAPELIB
Once connected successfully, the master and slave components will use ACTUALMAXRECSIZE of the port file to negotiate a transfer mechanism.
If the network is unavailable, TP commands issued from any Supervisor windows on the slave will be rejected but TP commands from ODTSequences will be queued, along with other tape events and notices. When the connection has been resumed, these missed notices will be sent to the master automatically.
The TP VER command has been changed to provide additional information about the port connection and to indicate the number of queued notices if the network link is down.
Previously, the OPALTAPELIB library would hang, requiring an OK before terminating, if it detected any missing critical configuration variables. To assist INSTALL with detecting any such problems when it upgrades the METATAPELIB database, OPALTAPELIB will now fail immediately allowing INSTALL to detect the library failure.
The fix applied in Dnote 450.12 for synchronous port file I/O did not function correctly in all circumstances.
These problems are now fixed.
Where sites are running master-slave TRIM environments and using the GETSCRATCH function to return scratch serials, a problem where requests for tape information (e.g. a TP response) and a GETSCRATCH request occurred very close together could cause BNA port file problems. This was because the SILOHANDLER and TAPELIBUPDATER processes were both calling the same unprotected entrypoint in OPALTAPELIB to handle the I/O.
Now, locking has been provided in the OPALTAPELIB port I/O procedures to ensure that only one request can be handled at a time.
When an existing tape is SNed OpalTapelib was intended to add a note to the old serial number indicating what serial number it had been changed to.
EX. If A00001 is on MT 36 then SN MT36 B00001 will now add a note to the entry for A00001 'SNed to B00001'. Previously it would have added the note 'SNed to A00001'.
For those sites using Metalogic's TAPEMANAGER for auto-purging and purge protection, TAPEMANAGER now uses the CHECK_TAPE_PURGE check when verifying a request for a specific output tape by serial number. Whether this is done by a run-time file equation or by a FA SERIALNO command, TAPEMANAGER will check that the tape serial number is scratch or PGOK even if the tape is not actually mounted. If the serial number is not PGOK or scratch, the serial number assignment is stripped from waiting entry.
For example, in the following case, serial 000061 is not PGOK in the Metatapelib database:
COPY *SYSTEM/DUMPALL TO MYTESTTAPE(SERIALNO=61) #RUNNING 01930 #BOT 01931 (META)WFLCODE #BOT 01932 *LIBRARY/MAINTENANCE #1932 TAPEMANAGER:SERIALNO ASSIGNMENT REJECTED BY TAPEMANAGER. #1932 MYTESTTAPE/FILE000 REQUIRES MT #1
?1932FA SERIALNO=61 #01932 GOING #1932 TAPEMANAGER:SERIALNO ASSIGNMENT REJECTED BY TAPEMANAGER. #1932 MYTESTTAPE/FILE000 REQUIRES MT #1
Since this is now default behaviour, those sites that wish to revert to the previous handling may do so by changing a configuration variable:
U META/INSTALL TL_SNBYPASS=TRUE
An earlier change to the OPALTAPELIB library caused the SCRATCHPOOL of a newly created tape to be over written with a null string. This meant that tapes expected to be available to the Opal GETSCRATCH function, which expects density and scratchpool, will not be included.
This problem is now fixed.
The Load code used to create a new database from a flat (dumped) file would fault if a collision occurred in Media. This could easily happen if tapes were still being created during the Load process. This situation is now handled correctly.
Progress messages are now displayed during both Load and Dump.
For sites using the Unisys CSC II software for CTL robot systems with TRIM, changing the PGOK or PGNEVER flags for a cartridge that was already loaded in a drive caused the tape library system to appear to stop for over 2 minutes. This was caused by OPALTAPELIB calling a TAPESERVER entry point which tried to change the scratch status of the tape in the CSC software. Because of this problem, this behaviour has been discontinued.
The system attributes TAPENAMESERIALS, TAPEFAMILYSERIALS and TAPEFAMILYNAME may now be used from OPAL programs running on TRIM slave systems. Previously, these attributes would have returned null values.
Also, TP commands that modify tape information were restricted from slave systems; this restriction has now been relaxed. Such commands will be permitted, subject to local TRIM security, and logged on both master and slave TAPELOGs.
The Version of the Trim utility release with previous versions of OPALTAPELIB had not been updated to match Version 450.01. This would cause an invalid index when using the Data Entry feature of the Trim utility.
This change protects against this problem when running old versions of the Trim Utility.
The numbering of multi-volume tapes was being incorrectly administered when a new tape was created. Due to the introduction of the NEW VOL log records, the database field for any continuation reel was being incremented twice; i.e. reel 2 became 3, reel 3 became 5, etc. Although this had no effect on TRIM rules handling, the display returned by a TP interrogation would be confusing.
This problem is now resolved.
The changes made in version 450.02 required an additional modification to ensure that the RULES data set was correctly dumped in the new format.
When OPALTAPELIB was matching database entries to imported LOGREADER entries, some notices were appearing as "ignored" where a tape had been used more than once in a day. This was because OPALTAPELIB was not retrieving the correct time of day from the log entry. Also, the LOGREADER "Evt:" messages will now appear before the notice information instead of after.
This change is to make it more convenient in future to make changes to the DASDL. The only visible change in functionality is that in a scratch report assigned tapes are now listed after unassigned tapes.
The new tape tracking features discussed in SUPERVISOR Dnote 450.05 and OPALTAPELIB DNote 440.07 caused several problems with the LOGREADER utility such that valid database entries may have been unconditionally over written.
These problems are now fixed.
If a DMSII error occurred whilst deleting a tape from the METATAPELIB database using the TP..DELETE command, the internal soft lock LIBLOCK would have become deadlocked. This caused the TAPELIBUPDATER task to enter the waiting entries with a LIBLOCK error message or cause a variety of DMSII AUDITERRORs. Only a restart of the OPALTAPELIB library would have resolved this situation.
This problem is now fixed.
With the arrival of large capacity tape drives which can hold very large databases on a single reel, it is now very likely for database audit dumps, produced whilst an on-line dump is still running, to become linked to the PREVIOUS completed dump. This is because the TRIM system only updates the METATAPELIB database once the on-line dump is complete. Although this problem relies on the customer using "linked" rules, this is a very common of handling audits and Metalogic have decided to addressed this important issue in the following way.
Instead of tracking tape creation at label time, SUPERVISOR will now detect specific LOG VOLUME events for new tapes which have just been opened for output. A "raw" entry is written into METATAPELIB which will be assigned a creation date and time for the tape reflecting this open time. The entry is nearly complete with rules automatically being applied but job and task name information will be marked as "TAPE_IN_USE".
When a tape creation notice is eventually received, the job and task information is updated but creation date / time is NOT changed. Further, the assigned rules is not re-applied. The event entries in the TAPELOG will appear as :
01:39:15 Evt: CREATED [000026] DEV99021A by FLEX 01:30:18 Evt: NEW VOL [000026] DEV99021A by FLEX
In the above example, the response for a TP 26 command would show the creation time to be 01:30:18 whereas the old mechanism would have shown 01:39:15.
This is an important change to the way that the TRIM system now tracks tapes as they are created on the system. Where the application creating the tape is aborted before completion, the "raw" entry will remain in the database unless the caller does a programmatic CLOSE with PURGE. An example of this is a normal COPY JOB which was terminated before any files were copied to the tape; here, MCP automatically purges the tape as part of its clean-up.
This patch supports the OPAL attribute, GETSCRATCH, which allows the preassignment of scratch tapes to waiting entries particularly for the larger CTL libraries. This implementation is described in detail in SUPERVISOR DNote 45.03.
In addition the new TP command modifiers ASSIGN and UNASSIGN, used in conjunction with GETSCRATCH attribute, are discussed in TAPELIBUPDATER Dnote 440.05.