FATS Advert

Making changes to HSC

Host Software Component (HSC) is mainframe based software which controls StorageTek tape libraries. This page describes how to change HSC definitions, for example, adding an extra CPU, adding/deleting/defining tape drive addresses, or even adding new libraries.

HSC definitions are held in 4 different places. The main definitions are held in the Control Dataset (CDS), while some specific information about tape ranges, tape drive definitions, and tape allocation rules is held in three flat files.

    GFS Advert

Before you make any change

  1. Consider stopping all tape work on all systems before proceeding, by bringing down appropriate started tasks, and stopping initiators. This gives you time to test your change before it hits the streets. Before you stop HSM, check that none of the datasets you need for the change are migrated to level2.
  2. Run an HSC VOLREP This validates the CDS, just to see if there are any problems there before you start. If you find any errors, fix them.
  3. Dump the HSC CDS. This is good change management practice, as if your change goes wrong, you can get back to where you started from!

   EADM Advert

Accelerate DB2 Write with zHyperWrite and "EADM™ by Improving DB2 Logs Volumes Response Time:

Changing the definition datasets

The flat files can be updated directly. The names of these files will be site dependent. If you don't know them, you can find them by checking the SYS1.PARMLIB(SLSSYSxx) member. What is xx? It will also be site dependent, but can be found in the HSC started task JCL. Look for M(xx) in the PARM statement. The content of the files are :-

  • The TAPEREQ file describes the rules which decide which specific jobs or datasets are allocated to different tape drives or tape pools.
  • The UNITATTR file contains tape drive definitions and is defined to SMC
  • The VOLATTR files contains the tape volume ranges

Before you start, take a backup of the dataset you are changing, 'just in case'. These datasets can be updated directly, then HSC bounced on all systems to pick the definitions up. ('Bounce' is possibly a UK slang term which means stop, then start again)

Changing the CDS

The CDS contains HSC definitions, and details of all the cartridges held in the tape silos. It normally has a shadow copy, which is kept permanently in synchronisation. The CDS cannot be updated directly, some parameters can be changed using a SET command, all parameters can be changed by rebuilding the CDS with a LIBGEN.

Using the SET command to change the CDS

The easiest way to change the CDS is by using the SET command. Parameters which can be changed in HSC release 6.1 are :-

SET Option SET Utility Function
ACSDRV Change all drive esoterics in one ACS
CLNPRFX Set 3 character cleaning cartridge prefix
COMPRFX Alter the prefix for HSC commands
DELDISP Tape deletion under HSC or TMS control?
DRVHOST allows SMC clients to use device addresses defined in the SMC DRIVEMAP command
EJCTPAS Set password for ejecting tapes
FREEZE (un)Freeze status of an ACS panel
HOSTID Rename a CPU or LPAR
New Host Add a new CPU or LPAR
SET NEWHOST(SYSX) LIKEHOST(SYSA)
HSCLEVEL Change parameters after crash - use with care!
MAJNAME Set ENQ/DEQ/RESERVE QNAME
NNLBDRV Set Nonlibrary Drive Esoteric
SCRLABL Set Scratch Label Type
SLIDRIVS Set Device Numbers for Drives
SLISTATN Set LMU Station Address Numbers
SMF Set SMF Record Type
TCHNIQE Set recovery parameters

See the HSC sysprogs guide, at about page 345 for details of these commands

If you run multiple LPARS, it best to enter the SET command on one system, start HSC on that system and test the change. If all is well, roll the changeout by bouncing HSC on all LPARS.

back to top

Performing a LIBGEN

A LIBGEN rebuilds the CDS from scratch with library and drive definitions, but not the tape detail. The LIBGEN parameters are kept in an assembler source module, but it is essential to always start by using the LIBGEN utility to reverse engineer that source module, then you know you are starting with up to date source which includes any changes made by SET commands.
The sequence is

  1. Run a LIBGEN extract job to produce an assembler source module.

    //your job card
    //S1 EXEC PGM=SLUADMIN,PARM='MIXED'
    //SLSPRINT DD  SYSOUT=*
    //SLSCNTL  DD  DSN=primary.cds,DISP=SHR
    //SLSLIBGN DD  DSN=output.pds(member),DISP=SHR
    //SYSOUT   DD  SYSOUT=*
    //SLSIN    DD  *
       LIBGEN

  2. Take a copy of the old libgen module for backout
  3. Make your changes to the LIBGEN macro
  4. Assemble the MACRO to the correct linklist library, using a standard assemble and linkedit job. Your job must include a SYSLMOD DD statement that points to your HSC SLSLINK dataset, like

    //SYSLMOD DD DISP=SHR,DSN=your.hsc.SLSLINK

  5. Do an LLA refresh on one LPAR.
  6. Run an SLIVERFY to check the LIBGEN. You may get expected errors from this job if you are preparing for an IODF change which has not been made yet.

    //your job card
    //VERIFY  EXEC  PGM=SLIVERFY,PARM=LIBGEN
    //SYSPRINT DD SYSOUT=*

  7. Bring down SMC and HSC on all systems
  8. Backup the CDS
  9. Restore the CDS. This restore resets a bit in the CDS. Look for message 'All host DHBEFLAGS reset in CDS'
  10. Rename existing CDSs to .OLD You will need to bring HSC and SMC down on all systems to do this. Leave it down for now.
  11. Run an SLICREAT job to create a new CDS. This new CDS has all the definitions you just compiled, but all the tape data is missing, and you need to copy it over.

    //your job card
    //CREATE EXEC PGM=SLICREAT,PARM=LIBGEN,REGION=4096K
    //SYSPRINT DD SYSOUT=*
    //SLSCNTL DD DSN=primary.cds.name,
    //        LIKE=primary.cds.name.OLD,
    //        DISP=(,CATLG,DELETE)
    //SLSCNTL2 DD DSN=shadow.cds.name,
    //        LIKE=shadow.cds.name.OLD,
    //        DISP=(,CATLG,DELETE)
    //SLSJRNxx1 DD DSN=journal.namexx,DISP=SHR
    //* more dd statements for every journal file

  12. Start SMC and HSC up on one LPAR. At this point you have all the libraries, tape drives and tape ranges defined, but you have no data about the individual tape usage. The data is retained in your .old CDS files.
  13. Run a MERGECDS job to copy in the tape data from the .old files. Merge JCL looks like

    //MERGE EXEC PGM=SLUADMIN,PARM=MIXED
    //SLSFCNTL DD DISP=SHR,DSN=DMHSCB1.PROD.CDSPRIM.OLD
    //SLSFCTL2 DD DISP=SHR,DSN=DMHSCB1.PROD.CDSSHAD.OLD
    //SLSPRINT DD SYSOUT=*
    //SLSIN    DD *
        MERGE
    //SLSMERGE DD *
        MERGE FLSM(000) TLSM(000)
        MERGE FLSM(011) TLSM(011)
        MERGE FLSM(010) TLSM(010)
    /*

  14. Test your change, see if your new stuff works, and also make sure existing stuff still works as expected (use the term 'regression testing' on your change request to score extra points here). Test combinations of silos, drives and cartridge types.
  15. Start SMC and HSC on each LPAR and your tape system should be fully working

back to top