Resources

Home   News   Version 1   Tech Support   Pubs   S2K Site Map



Release 12.1 Changes and Enhancements


This document discusses new features for SYSTEM 2000 Software that were implemented for Release 12.1.

In addition to this manual, two other new documents are being issued with Release 12.1:

Also new for Release 12.1 is a single, simplified installation process for all four products. The installation document is provided with the delivery cartridge.


Table of Contents

Chapter 1 - Introduction

Chapter 2 - Changes and Enhancements

Chapter 3 - Dynamic Allocation

Chapter 4 - Messages and Codes

Chapter 5 - Converting Databases to Release 12.1 Format


Chapter 1 - Introduction

This chapter introduces the changes and enhancements to Release 12.1 of SYSTEM 2000 Software. Detailed discussions appear in subsequent chapters of this book, in the new CICS interface and PLEX documents, and in the new Installation Instructions for Release 12.1.

Index Files Enhanced

File 4, the multiple occurrence index file, has been modified in several ways to provide optimum performance:

Note: Reducing File 4 I/Os helps to reduce I/Os to all other files.

Also, the size of File 2 has increased. See Database Index Files.

Top of Document   Top of Chapter

Improved PF Key Handling in the CICS Interface

The S2KK transaction has been added to the transactions provided in the CICS interface, so that the user can dynamically alter PF key settings. This facility allows the user to change the default settings of PF keys for the S2KU environment, the S2KE environment, and the S2OP environment. Refer to the new CICS interface manual for a full description of this enhancement.

Top of Document   Top of Chapter

Enhanced Performance for the CICS Interface

Significant effort went into improving the overall performance of the CICS Command-Level interface. The EXEC CICS LINK processing between the user application and the interface has been replaced with CALL level communication. This significantly reduces use of the CICS Execution Interface Program and thus improves performance. Special capabilities of the COBOL II environment were also used to improve performance there.

Refer to the CICS interface manual for specifics on these processes. Recompiling of programs is required to take full advantage of these performance improvements.

Top of Document   Top of Chapter

Improved Database Conversion Process

SYSTEM 2000 now converts index files and can also reblock database File 3. See Chapter 5 - Converting Databases to Release 12.1 Format for details on CVRT121, the new conversion program.

Top of Document   Top of Chapter

Simplified Installation Process and Instructions

Installation procedures for all four SYSTEM 2000 software products -- base, Multi-User, CICS interface, and QueX software -- have been merged into a single process. Filling in one checklist and using one installation macro enable you to install all of your licensed products at the same time. Installation now also uses the IEBCOPY utility to unload the delivery cartridge. See the Installation Instructions for details.

Top of Document   Top of Chapter

New $FOR and $CFOR Processing

PLEX return code FOR processing has been enhanced to include precompiler-generated code that is added to your program. The main benefit is that COBOL II and CICS command-level programs can use the GO TO option. Additionally, $CFOR is available to specify return code checking on individual PLEX commands. See the new PLEX manual for Release 12.1 for complete documentation on FOR, $FOR, and $CFOR processing.

Top of Document   Top of Chapter

TALLY Command with a Where-Clause

You can now issue the TALLY command with a where-clause. See TALLY Command Accepts a Where-Clause.

Top of Document   Top of Chapter

YEARCUTOFF Parameter and Command

As the year 2000 draws nearer, YEARCUTOFF has been introduced to allow you to assign the century for dates with a two-digit year format. See YEARCUTOFF Execution Parameter and SCF Command.

Top of Document   Top of Chapter

New MUSTATS Command and Message Numbers

MUSTATS commands now have unique WTO message numbers, and there is a new USERS command that gives information about all users on the system. See New MUSTATS Message Numbers and USERS Command.

Top of Document   Top of Chapter

Dynamic Allocation Improvements

The FREE execution parameter now accepts the name of the database to be freed. See FREE Execution Parameter.

Only the database name can be specified in the ALLOC command when ALLOC=TBL. See ALLOC Execution Parameter.

Several new execution parameters have been added to increase the control you have over SAVEs and KEEPs. See New Execution Parameters.

The processing of IBM SVC 99 error message has changed. See the sections on new execution options OPT048 and OPT049.

Instructions for defining generation data groups (GDGs) are covered in Generation Data Groups.

Top of Document   Top of Chapter

New OPT051 Parameter for CPU-time Accounting

This parameter lets you specify whether CPU-time will be given in hundredths (the default) or thousandths of a second. See OPT051 Parameter: Changing CPU-Time for Segment-Level Accounting.

Top of Document   Top of Chapter

New OPT052 Parameter for PLEX Opcode Display

The numeric PLEX opcode can now be displayed in character form by setting OPT52=YES in your execution parameters. See OPT052 Parameter: Changing Diagnostic Log PLEX Messages.

Top of Document   Top of Chapter

New User Exit: EXIT44

This exit allows you to monitor and accept or reject SCF update commands. See EXIT44.

Top of Document   Top of Chapter

S2OP Commands Written to the JES Log

Alternative console update commands issued with S2OP, along with the command results and requesting user, are written to the JES log. See S2OP Commands Written to the JES Log.

Top of Document   Top of Chapter

New Jobs for the S2KGLOAD and S2KGUNLD Program Generators

The jobs you need to run in order to compile and execute the program generators have been combined and renamed, and the way to run them has been altered. See New Jobs for the S2KGLOAD and S2KGUNLD Program Generators.

Top of Document   Top of Chapter

Chapter 2 - Changes and Enhancements

Database Index Files

File 4 Restructured

File 4 contains information about multiple occurrences of distinct data values for key items. When there are multiple occurrences of a distinct value for a key item, that value's File 2 entry points to the File 4 entry, which contains pointers to the File 5 records for each occurrence of that value. Whenever the key item is used in a where-clause, that value's File 4 entry is read and the pointers in File 4 are sorted in ascending order. SYSTEM 2000 software uses the information in the File 4 entry to build a list of records that meet the where-clause criteria for that key item.

Prior to Release 12.1, File 4 entries could consist of various sized blocks chained together. The pointers contained in the blocks were not ordered, and the blocks in the chain could reside on several different pages. During updates, blocks were allocated in sizes to hold the number of occurrences being added for a given key item value. A technique called padding was specified at DEFINE time to reserve an additional amount of space for pointers in File 4. Padding provided a way to reduce the number of blocks in a chain by allowing for future occurrences of a value when a block was allocated. When an update or retrieval was performed for a key item value, all the blocks in the chain were read to build a list of occurrences for that value. If blocks were spread over different pages, each page had to be read to obtain the blocks.

With Release 12.1, the structure of File 4 changed. Although padding at DEFINE time remains an option, Release 12.1 introduces a built-in padding function for allocating File 4 blocks. Blocks are allocated in incremental fixed sizes, so when a File 4 block becomes full, the software computes the block size needed to accommodate the existing block plus the number of occurrences being added. A new block is allocated, using an incremental fixed size scale, and all the pointers are placed in order in the new block.

This process continues until the number of occurrences requires a page-size block. Entries will consist of one block unless the number of occurrences requires more than one page-size block. Once a page-size block has been allocated for a File 4 entry, all further blocks added to that entry are also page-size. Only page-size blocks are chained together. The pointers contained in the blocks(s) are ordered. If two or more page-size blocks exist in a chain, an internal index is maintained to reduce search time.

Ordering the pointers in a File 4 eliminates the need to sort the entry for EQ conditions. Along with other Release 12.1 changes to File 4, this aims to reduce buffer activity when indexed items are involved in update and retrieval commands.

Benefits of the new File 4 structure are as follows:

The drawback of the new File 4 structure is that update commands require additional processing to maintain ordered pointers. However, the impact of this additional processing is more than offset by the performance gain in retrieval processing.

The new File 4 structure virtually eliminates the situation of database entries becoming scattered due to incremental loads or multiple updates. Therefore, the REORGANIZE command no longer processes File 4 entries.

Top of Document   Top of Chapter

File 2 Enlarged

The size limitation for File 2 (the unique index file) has increased from 2**29 or 536,870,912 characters to 2**31 or 2,147,483,648 characters. Also, ENABLE VALUES PADDING is now the default.

Top of Document   Top of Chapter

TALLY Command Accepts a Where-Clause

A where-clause can now be specified for the TALLY command. If no where-clause is specified, the items tallied must be key. If a where-clause is specified, the items tallied can be either key or non-key.

TALLY with a where-clause allows tabulation of key or non-key items using selection criteria specified in the where-clause. The where-clause is specified first so that only the portion of the database that is qualified is considered for output.

Processing is optimized for all operators except FAILS and CONTAINS if the command specifies the same key item in both the action-clause and the where-clause. The optimized process is similar to that of TALLY without a where-clause, with the added advantage that the data to be tallied have been selected.

Top of Document   Top of Chapter

Considerations

Top of Document   Top of Chapter

Examples of Syntax

This example shows a TALLY with a where-clause and the EACH option.
    TALLY/EACH/C201 WHERE C1 EXISTS:
    ******************************************
    ITEM-             SKILL TYPE
    ******************************************
    OCCURRENCES       VALUE
    ------------------------------------------
            1         CARTOON ART
            1         CHINESE
            1         CPA
            1         DP SYSTEMS AUDITING
            1         FINANCIAL AUDITING
            1         HEBREW
            1         LIBRARY SCIENCE
            1         PRINT SHOP
            1         SPANISH
            1         SYSTEMS ANALYSTS
            1         SYSTEMS DESIGN
            1         SYSTEMS PROGRAMMING
            1         VISUAL DESIGN
    ------------------------------------------
           13 DISTINCT VALUES
    ------------------------------------------
           13 TOTAL OCCURRENCES
    ------------------------------------------
This example shows a TALLY with a where-clause and the ALL option.
    TALLY/ALL/C201 WHERE C1 EXISTS:

    ******************************************
    ITEM-             SKILL TYPE
    ******************************************
    MINIMUM-          CARTOON ART
    ------------------------------------------
    MAXIMUM-          VISUAL DESIGN
    ------------------------------------------
           13 DISTINCT VALUES
    ------------------------------------------
           13 TOTAL OCCURRENCES
    ------------------------------------------

Top of Document   Top of Chapter

YEARCUTOFF Execution Parameter and SCF Command

For dates that have two-digit years (MM/DD/YY, for example) , YEARCUTOFF allows you to indicate to SYSTEM 2000 in which century the dates belong.

You can use YEARCUTOFF to specify a default for the first year of a 100-year span. Without YEARCUTOFF, the default is 1900. The currently accepted range for dates in SYSTEM 2000 is October 15, 1582, to December 31, 2499.

If the default value of nnnn (1900) is in effect, the 100-year span begins with 1900 and ends with 1999. Therefore, any dates input with a two-digit year value are assigned a prefix of 19. For example, the value 92 refers to the year 1992.

Note that the value specified in the YEARCUTOFF command can result in dates in two centuries. For example, if you specify YEARCUTOFF=1950, any two-digit value between 50 and 99 inclusive refers to the first half of the 100-year span, which is in the 1900s. Any two-digit value between 00 and 49 inclusive refers to the second half of the 100-year span, which is in the 2000s.

Format


YEARCUTOFF |=    | nnnn:
           |EQ   | RESET:
           |IS
   nnnn is a four-digit year between 1500 and 2400.

Examples

                             Example # 1  
Sets the default century to 1900, which is the default until January 1, 2000, when the default century becomes 2000.
    YEARCUTOFF =  1900:

                             Example # 2
Causes any two-digit years in the range 43 through 99 to be assigned to 2143 through 2199, and two-digit years in the range 00 through 42 to be assigned to 2200 through 2242.
 
    YEARCUTOFF EQ 2143:

                             Example # 3 
Resets YEARCUTOFF either to the value specified in the YEARCUTOFF parameter (specified at startup time) or to the current default.
    YEARCUTOFF IS RESET:

Considerations

  1. YEARCUTOFF has no effect on four-digit years.

  2. The system default for the century is 1900 (until January 1, 2000, when it will change to 2000) , which is used if dates are entered as two-digit years. You can override this default with one of the following methods, which are given in order of precedence:

    • specifying the date as a four-digit year, which overrides...

    • the YEARCUTOFF SCF command, which overrides...

    • the YEARCUTOFF execution parameter, which overrides...

    • the system default (current century).

  3. In a Multi-User environment, the YEARCUTOFF command affects only the user who issues it. The YEARCUTOFF execution parameter affects all users of Multi-User.

  4. Except for where-clause processing, this command affects only updates, not retrievals. Two-digit years in where-clauses are converted to four-digit years, as explained above.

Top of Document   Top of Chapter

New MUSTATS Message Numbers and USERS Command

Unique WTOs for MUSTATS Commands

Each of the MUSTATS commands now has a unique WTO number, starting with 1901. (In Release 12.0, all these commands had the same number, 2010.)
                                                                 

   MUSTATS    WTO            MUSTATS     WTO
   Command    Number         Command     Number

   BUFFERS     1901          PADS        1908
   DBNS        1902          POOLS       1909
   DBN=        1903          QUEUES      1910
   DBNU=       1904          THREADS     1911
   DBSTAT=     1905          USER=       1912
   DBSTATS=    1905          WHY=        1913
   HELP        1906          ZAPS        1914
   MLH=        1907          OPTIONS     1915
   LHOLDS=     1907          USERS       1916

Here is a sample #POOLS command with the new output:

#pools

S2K1909/01- MUSTATS****************************************************-
S2K1909/01- MUSTATS-POOLS #   BLK  NUM FREE USE    SIZE  RPM  WPM  DPM -
S2K1909/01- MUSTATS       0  4096   20   20  D    81920                -
S2K1909/01- MUSTATS       1  6468   20   20  D   129360                -
S2K1909/01- MUSTATS       2 11620   20    7  S   232400                -
S2K1909/01- MUSTATS       3 23492   20   20  DE  469840                -
S2K1909/01- MUSTATS><><><><><><><><><><><><><><><><><><><><><><><><><><-

New MUSTATS Command: USERS

There is also a new MUSTATS command, #USERS, or console command, MUSTATS USERS. Its output consists of a header line with brief field descriptions, followed by one line of data for each user found. The lines have this format:
S2K1916/01- MUSTATS-userid typ act call i/o cpus last-command rc

        userid   8 characters, users's jobname

           typ   2 characters, shows type of job:
                    PL - PLEX
                    SC - SYS2KJOB
                    TP - SCF/TPI
                    AC - altcon

           act   3 characters, shows user activity:
                    UPA - user partition activity
                    NOA - no activity
                    INA - inactive
                    EXE - executing

          call   4 characters, the number of calls the user has made to 
                 Multi-User software.

                   nnnn  number of calls between 0 and 9,999.

                   nnnK  number of calls between 10,000 and 999,999. The 
                         three rightmost digits are truncated. For example, 
                         39,999 is displayed as 39K.

                   nnnM  number of calls greater than 999,999.  The six
                         rightmost digits are truncated. For example, 42M.

           i/o   4 characters, the number of I/Os performed for this user.  
                 The format is the same as that for call.

          cpus.  6 characters, the amount of CPU time charged to this PLEX 
                 user if the Accounting Log is enabled.  The format is the
                 same as that for call, except that values less than 10,000 
                 have one decimal point so that they display tenths of a 
                 second.

  last-command  14 characters for PLEX, 18 characters for SCF.  It displays 
                the opcode as a mnemonic for PLEX or the last command for 
                SCF.

            rc  3 characters, PLEX only, the last return code from the 
                user's PLEX program.

Examples of #USERS command output follow:

#users

S2K1916/01- MUSTATS/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-
S2K1916/01- MUSTATS- USERID TYP ACT CALL #I/O  CPUS   LAST COMMAND  RC -
S2K1916/01- MUSTATS-DCNTJW   AC EXE   1    0    0.00 #USERS            -
S2K1916/01- MUSTATS-DCNTJW2  PL EXE   8  340    0.73 LOCATE DYNAMIC 000-
S2K1916/01- MUSTATS><><><><><><><><><><><><><><><><><><><><><><><><><><-

#users

S2K1916/01- MUSTATS/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-
S2K1916/01- MUSTATS- USERID TYP ACT CALL #I/O  CPUS   LAST COMMAND  RC -
S2K1916/01- MUSTATS-DCNBWC1  TP EXE   2   37    0.13 TALLY C2 WH C1 EQ -
S2K1916/01- MUSTATS-DCNTJW   AC EXE   1    0    0.00 #USERS            -
S2K1916//H- MUSTATS-DCNTJW2  PL NOA  12  531    1.11 GET S2KCOUNT   000-
S2K1916//H- MUSTATS><><><><><><><><><><><><><><><><><><><><><><><><><><-

#users

S2K1916/01- MUSTATS/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-
S2K1916/01- MUSTATS- USERID TYP ACT CALL #I/O  CPUS   LAST COMMAND  RC -
S2K1916/01- MUSTATS-DCNTJW   AC EXE   1    0    0.00 #USERS            -
S2K1916/01- MUSTATS-DCNTJW2  PL EXE  20  745    1.56 LOCATE DYNAMIC 000-
S2K1916/01- MUSTATS-DCNBWC1  SC UPA   2    4    0.04 USER,DEMO:DBN IS E-
S2K1916/01- MUSTATS><><><><><><><><><><><><><><><><><><><><><><><><><><-

Top of Document   Top of Chapter

OPT051 Parameter: Changing CPU-Time for Segment-Level Accounting'

The OPT051 execution parameter changes the CPU-time specified in the NLSEG, PLSEG, and TPSEG parameters from hundredths to thousandths of a second.
OPT051=|NO   (default)
       |YES

  YES   means the CPU-time is in thousandths of a second.

  NO    means CPU-time is in hundredths of a second.

Top of Document   Top of Chapter

OPT052 Parameter: Changing Diagnostic Log PLEX Messages

The OPT052 execution parameter changes the format of the 0300 PLEX segment start field that is produced by the USEGM LOGLEVEL parameter in Diagnostic Log records. The change converts the numeric PLEX opcode to character display for readability.
OPT052=|NO   (default)
       |YES

  YES   means the PLEX opcodes will be displayed in character form (such 
        as GET1, LOCATE).

  NO    means the PLEX opcodes will be displayed in numeric form (such 
        as 05, 10).

        Refer to the section on Operation Codes for PLEX Commands in the
        SYSTEM 2000 Product Support Manual, Version 12, First Edition
        for a complete list of character and numeric representations for 
        PLEX opcodes.

Top of Document   Top of Chapter

EXIT44

EXIT44 prevents unauthorized update access by SCF and PLEX users, and it is executed every time an SCF update command is parsed or a PLEX update command is issued. You can set return codes in EXIT44 that cause the current command line or PLEX update to be rejected for processing. The following parameters are available for this exit:

      Parameter Label        Field Description

      AUSRCTL                user-exit control block
      ATMPSTOR               temporary storage
      AEXTWT                 exit wait routine
      APASSWRD               password
      ADBNAME                data base name
      ACCTINFO               accounting information (MU only)
      AERMSGLN               user message length
      AERMSGBF                user message buffer
      AIBUFSIZ               input buffer size
      AIBUF                  input buffer address
      ADBIO                  data base I/O count
      ATIM                   elapsed CPU time
      ASEGIO                 segment data base I/O count
      ASEGTIM                segment elapsed CPU time
The allowable action codes are: 0, 16, and 28. In response to action codes 16 or 28, a -504- message is written to the message file.

Top of Document   Top of Chapter

S2OP Commands Written to the JES Log

All S2OP commands that update the Multi-User system in some way are written to the JES log, along with the requesting user and information relating to the results of the command. These commands are CANCEL, VARY ONLINE/OFFLINE, LOGLEVEL, STOP, DUMP, START, PQA, and the XBUF command RESET.

Top of Document   Top of Chapter

New Jobs for the S2KGLOAD and S2KGUNLD Program Generators

The two program generator programs are supplied on the Release 12.1 SOURCE library. The jobs listed below are on your CNTL library after you expand the S2KIVJCL installation macro.
Release 12.1 Job Name              Replaces Release 12.0 Job Name 

JCLGPL1                            JCLGPLD and JCLGPUN

This job needs to be run 
only if source fixes are 
made to load modules 
S2KGLOAD and S2KGUNLD.

JCLGENCB                           JCLGPLGO and JCLGPUGO

JCLGCOB                            JCLGCLD and JCLGCUN

JCLGCBGO                           JCLGCLGO and JCLGCUGO
In addition, there are two new jobs related to the program generators: The new procedure for using the program generators to unload an existing database and load a Release 12.1 database is as follows:

  1. Run job JCLDESC against the database to be unloaded in order to create

    • the DBDESC file, which contains DESCRIBE output. This file is to be used later in job JCLGENCB.

    • the DBDEF file, which contains commands to define a new Release 12.1 database. This file is to be used later in job JCLDEF.

  2. Determine the overflow for CHAR and TEXT items. A full description of how to do this is on page B-11 of the SYSTEM 2000 Product Support Manual, Version 12, First Edition.

  3. Create the SYSIN file. See page B-12 in the same book for a complete description of the format of the SYSIN file.

  4. Run job JCLGENCB to generate the COBOL unload and load programs after following the editing instructions in the job.

  5. Run job JCLGCOB to compile the generated COBOL programs after following the editing instructions in the job.

  6. Run job JCLGCBGO, executing step UNLOAD, after following the editing instructions in the job.

  7. Run job JCLDEF to define your new Release 12.1 database after following the editing instructions in the job.

  8. Run job JCLGCBGO, executing step LOAD,after following the editing instructions in the job.

Top of Document   Top of Chapter

Chapter 3 - Dynamic Allocation

Introduction

Dynamic allocation of database files, in both single-user and Multi-User, is controlled by S2KDBCNT (a sequential file with LRECL of 80 and some multiple of that for block size), execution time parameters (S2KPARMS file), SCF commands, and console (modify) or alternate console (S2OP) commands. Each of the controlling entity functions and how they interrelate are described in this section.

You start the dynamic allocation process when you open a database (with either DATA BASE NAME IS, NEW DATA BASE, or RESTORE) or when you issue the ALLOC command (either with FILES=ALL or without the FILES= option). SYSTEM 2000 then attempts to allocate Files 1 through 6. If for any reason the files cannot be allocated, then any files already allocated in response to the current command are deallocated. The end result is that the process allocates all or none of the files.

The syntax for the dynamic allocation parameters in the SYSTEM 2000 Product Support Manual, Version 12, First Edition remains unchanged except for the FREE parameter. You can now specify FREE database or FREE.

Top of Document   Top of Chapter

S2KDBCNT Table

S2KDBCNT is a sequential file in which you enter the database name and a data set name (DSN) to be used for construction of the DSN when allocating the files. The DSN is constructed for dynamic allocation by retrieving your specified DSN from the table and appending an appropriate suffix -- 1 for database File 1, 2 for database File 2, S for the Savefile, and so on. For example, if the database name is EMPLOYEE, the partial DSN you enter into S2KDBCNT might be S2K.R121.EMPLOYE. When files are allocated for the EMPLOYEE database, the DSN used for File 1 is S2K.R121.EMPLOYE1.

The number of entries in the file can range from 1 to 100.


            Beginning
  Field      Column        Length     Description

  DBN           1            16       Database name
  OFFLINE      17             1       Flag showing the database offline
  DSN          18            43       Data set name for the database files
  DISP         62             3       Disposition to be used for dynamic
                                      allocation, that is, OLD or SHR.
                                      OLD is the default.
The DSN entry is required. If you omit it, the DSN cannot be constructed for dynamic allocation. A default DSN will not be used for databases listed in S2KDBCNT.

You specify whether S2KDBCNT is to be used with the parameter ALLOC. With ALLOC=YES, the file may be used, but it is not required. If the file is specified in JCL with DDNAME S2KDBCNT, or if the file exists with the default naming convention, for example, prefix.S2KDBCNT, it will be used; otherwise it will not be used. During initialization, JCL is examined to determine if you specified a DDNAME S2KDBCNT. If found, that statement identifies the S2KDBCNT file. If the DDNAME S2KDBCNT is not found, an attempt is made to dynamically allocate the file using the default DSN.

With ALLOC=YES, database files can be dynamically allocated whether or not the database is listed in S2KDBCNT.

With ALLOC=TBL, the S2KDBCNT file is required, and only databases specified in that file can be dynamically allocated.

An error message is issued if you invoke ALLOC for a database listed in S2KDBCNT and you specify a DSN different from that listed in the file.

If you specify ALLOC=YES and open a database that is not listed in S2KDBCNT, the DSN is constructed using the value of your PREFIX execution parameter as the first-level qualifier. The second-level qualifier consists of the first seven characters of the database name with an appropriate numeric or letter identifier as the eighth character.

If the database name is shorter than seven characters, the name is not padded with Xs; the numeric or letter suffix is appended after the last character of the database name. For example, if you specified PREFIX=S2K, the DSN constructed for the EMPLOYEE database File 1 would be S2K.EMPLOYE1. If you did not specify PREFIX, the DSN for EMPLOYEE would be EMPLOYE1. For TSO single-user jobs that do not use the PREFIX parameter, your TSO user prefix is used. For Multi-User, in all cases, if you do not use the PREFIX parameter, a prefix is not assumed.

Top of Document   Top of Chapter

ALLOC Execution Parameter

The ALLOC parameter specifies whether dynamic allocation of files is allowed, and whether there is an S2KDBCNT file. There are three possible values for the parameter:
ALLOC=YES  YES is the default.  It stipulates that dynamic allocation, 
           either automated or invoked with the SCF ALLOC command, 
           is authorized.  An S2KDBCNT file with this value is optional.

           When you open a database and the files are to be dynamically 
           allocated, the order of precedence for deriving the DSN is 
           S2KDBCNT first, then ALLOC (files will be allocated prior to 
           DBN or NDB) . Last, the DSN would be constructed based on 
           PREFIX and database name.

ALLOC=NO   NO specifies that dynamic allocation is not authorized and
           an S2KDBCNT file is not used.

ALLOC=TBL  TBL specifies that only databases listed in S2KDBCNT can be 
           dynamically allocated.  This specification limits allocation 
           of database DSNs to those specified in S2KDBCNT, thus reducing 
           the risk of having erroneous files associated with production 
           databases.

           Note: In this case the ALLOC command is limited to ALLOC
           database.  No other options are allowed.  The purpose of this 
           limited command is to allow you to reallocate a database that 
           has been closed and deallocated with the FREE command.  
           See ALLOC Command.

Top of Document   Top of Chapter

FREE Execution Parameter

The FREE parameter applies to any databases that are physically closed and have files dynamically allocated by SYSTEM 2000. It does not apply to files that were dynamically allocated by your user exit, allocated using a TSO CLIST, or specified in JCL.
FREE=YES causes dynamically allocated database files to be deallocated when 
         the database is closed.

FREE=NO  prevents database files from being deallocated, except when a close 
         is forced by VARY or FREE commands.

Top of Document   Top of Chapter

ALLOC Command

The SCF CONTROL ALLOC command allows you to allocate new or existing database files during an SCF session.

For new files, you can allocate all eight database files with one command using the option ALL, or you can allocate each file individually using the FILES= option.

For existing files, you can allocate all eight database files with one command. options is not valid for existing files. Consequently, when you specify DISP=OLD or SHR, Files 1 through 6 are allocated. Files 7 and 8 are allocated if they exist.

An error message is issued if you invoke ALLOC for a database listed in S2KDBCNT and you specify a DSN different from that listed in the file.

If you specify ALLOC=TBL in the S2KPARMS file, the ALLOC command is limited to ALLOC database. No other parameters are allowed. The purpose of this limited command is to allow you to reallocate a database that has been closed and deallocated with the FREE command. If the database is listed in S2KDBCNT, the DSN specified in that file will be used. Otherwise, the default DSN prefix.database suffix will be used.

Top of Document   Top of Chapter

FREE Command

The SCF FREE command is similar in functionality to the VARY command. The differences are that it is an SCF command, it applies only to the database that you have open, and if the database is identified in S2KDBCNT, the offline lock is set to show that the database is unavailable.

The FREE command can be used for any database. It causes the database to be closed. Files that were allocated by SYSTEM 2000 will be deallocated. Files will be deallocated regardless of the FREE parameter.

In Multi-User, you must open the database for exclusive use. Because you are the only user on the database when the command is processed, the close and deallocation take place immediately.

If the database is identified in S2KDBCNT, FREE sets the offline lock byte to show that the database is unavailable. Invoking the ALLOC command or VARY ONLINE are the only two ways to reallocate the database files and to open the database in that Multi-User session.

If the database is not identified in S2KDBCNT, the files are closed and deallocated, but the database is not protected by the offline lock. The files can be reallocated with the ALLOC, DATA BASE NAME IS, or NEW DATA BASE commands.

In single user, exclusive use is implied. Specifying it has no effect.

Top of Document   Top of Chapter

VARY OFFLINE Command

VARY OFFLINE is a console or alternate console command that allows you to force a physical close and deallocation of a database when the usage count goes to zero, regardless of the FREE parameter. Note that only files dynamically allocated by SYSTEM 2000 will be deallocated.

Additionally, if the database is listed in S2KDBCNT, there is a lock in the table that prevents other users from signing onto the database. It also prevents the files from being reallocated until the VARY ONLINE command is invoked. The lock serves as a pending indicator when users are on the database and it cannot be closed. The lock is set when the command is invoked; it directs that the database be closed and deallocated when the usage count goes to zero.

In comparison, if the database is not in the S2KDBCNT table, you can vary the database offline but it is not under the protection of database lockout. You can open the database at anytime without an intervening VARY ONLINE command. Moreover, the usage count must be zero when the command is invoked, or the result is an error message and the database is not closed.

You can vary any database offline provided that the usage count is zero. The files will be closed, but only files that were dynamically allocated by SYSTEM 2000 will be deallocated.

There is no dependency on the FREE parameter for deallocation of files initiated by the VARY command.

Top of Document   Top of Chapter

Physical Closes

There are three situations under Multi-User, aside from EXIT36, in which database files are physically closed when no users have the database open.

  1. Database files that were dynamically allocated by SYSTEM 2000 but not listed in S2KDBCNT are closed when the database usage count goes to zero. The files are not deallocated unless parameter FREE=YES.

  2. Files are physically closed for any database taken offline with either the VARY or the FREE command. Following the close, files that were dynamically allocated by SYSTEM 2000 are deallocated, regardless of the FREE parameter.

  3. During SYSTEM 2000 termination, when the usage count goes to zero on any database, the database files are closed. If parameter FREE=YES, the files are deallocated.

Except when being taken offline forces a close, databases listed in the S2KDBCNT table are not physically closed until termination of the SYSTEM 2000 session. For Multi-User, that is when Multi-User terminates. For single user, it is when STOP S2K or EXIT is processed.

In single user, S2KDBCNT may be used for file allocations (DSN and DISP specifications) , but it has no effect on physical closes. Physical closes of SYSTEM 2000 databases occur in single user as follows: Deallocation occurs only if you specify FREE=YES and the files were dynamically allocated by SYSTEM 2000:

DATA BASE NAME IS or NEW DATA BASE (SCF commands) 
   invoke a close for your current database before initiating an open for
   the specified database.

RELEASE
   deletes the database.  It also invokes close processing for the database
   files.

EXIT (SCF command)
   signs you off of SYSTEM 2000 and causes your database, if any, to be
   closed.

CLOSE (PLEX command)
   You can have multiple databases (up to 63) open in a single-user PLEX
   job.  Only the commands CLOSE database and STOP S2K invoke close 
   processing.

Top of Document   Top of Chapter

Deallocation

The S2KDBCNT file, the execution parameter FREE, the console or alternate console command VARY OFFLINE, and the SCF command FREE all have an effect on deallocation of database files, as follows:

S2KDBCNT
Files dynamically allocated by SYSTEM 2000 for databases listed in S2KDBCNT are closed and deallocated only when the the database is taken offline, by either the VARY or the FREE command. An exception is during SYSTEM 2000 termination processing: if parameter FREE=YES, the files are deallocated when the database is closed.

FREE parameter
The FREE parameter causes deallocation of dynamically allocated database files when the files are physically closed.

VARY OFFLINE
This command is valid for any database, and it causes the database files to be closed. Any of the files dynamically allocated by SYSTEM 2000 will be deallocated.

FREE COMMAND
FREE is valid for your current database, and it causes the database files to be closed. Any of the files dynamically allocated by SYSTEM 2000 are deallocated.

Top of Document   Top of Chapter

New Execution Parameters

The new execution parameters give you better control over where and for how long your SAVEs and KEEPs are done. They also let you define a record length and SYSOUT class for your S2KMSG file.

The processing of error messsages has been changed. IBM SVC 99 errors are now either sent to the user's S2KMSG file or written as WTOs to the job log. See the sections below on new OPT048 and OPT049.

  EXPSAVE=   Expiration date for SAVEs and KEEPs

             EXPSAVE=yyyyddd

             yyyy is the year and ddd is the number of days.  You must  
             enter a four-digit year and a three-digit day, for example, 
             1995005.

  KEEPUNT=   Default unit for a Keepfile

             KEEPUNT=unit

             unit is any valid eight-character unit.

   OPT048=   Destination of IBM SVC 99 messages

             OPT048=|NO   (default)
                    |YES

                NO   specifies the messages are to be written to the 
                     S2KMSG file.

               YES   specifies the messages are to be written as WTOs.

             If the allocation failure is for S2KMSG, WTOs are written 
             regardless of OPT048.  In Multi-User, the WTOs are written 
             to the Multi-User log.

   OPT049=   Database availability checking

             OPT049 =|NO   (default)
                     |YES

                NO   specifies that the S2KDBCNT table is not to be 
                     checked for database availability and that SVC 99 
                     messages are to be written to the S2KMSG file.

               YES   specifies that database availability is to be checked.  
                     For each unavailable database, a WTO message 
                     (S2K1448/sid - database DATABASE HAS BEEN TAKEN OFF 
                     LINE -) is to be written to the log.  No SVC 99 
                     messages are to be written.

   RETPRD=   Period that SAVEs and KEEPs are to be retained

             RETPRD=dddd

             dddd is the number of days. Maximum is 9999.

  SAVEUNT=   Default unit for a Savefile

             SAVEUNT=unit

             unit is any valid eight-character unit.

  S2KMSGL=   Record length for the S2KMSG file

             S2KMSGL=lrecl

             lrecl specifies the LRECL, for example, S2KMSGL=81

   SYSOUT=   S2KMSG and S2KSNAP sysout class

             SYSOUT=class

             class is either * or any value from A to Z.
             For example:  SYSOUT=*

Top of Document   Top of Chapter

Generation Data Groups

The generation data group (GDG) base must be defined to the catalog before a DD statement using DSN=GDGBASE(+1) with a NEW disposition can be used. The DEFINE GDG command of IDCAMS must be used for ICF and VSAM catalogs. The following example uses the most common operands in defining a GDG:

//S1         EXEC  PGM=IDCAMS
//SYSPRINT   DD    SYSOUT=*
//SYSIN      DD    *
  DEFINE GDG (NAME(TEST.GDG) LIMIT(5) SCRATCH)
/*

   NAME   The data set name.

  LIMIT   The maximum number of generations available at any point in time.

SCRATCH   When LIMIT has been reached, the oldest generation is uncataloged 
          and deleted.  NOSCRATCH is the default.
Prior to Release 12.1, Special Zap 301 was required for SAVE/KEEP GDG processing. Model DSCBs are required when a new non-SMS-managed generation is created using a relative name. Special Zap 301 allowed the customer to provide this model DSCB.

Release 12.1 supplies a default model. The default of SYS1.LINKLIB satisfies most site requirements, but any permanent cataloged data set can be used as a model. SYSTEM 2000 provides relevant DCB parameters. Special Zap 301 is still available for those sites that do not have a SYS1.LINKLIB or wish to use their own model.

Top of Document   Top of Chapter

Chapter 4 - Messages and Codes

SCF Messages

SCF DEFINE Messages

-132- GETMAIN FAILED FOR MAP, OR MAP CAUSED BY RELOAD -
is a batch fatal,nondestructive error. When you create a database with the NDB command, maximum items defaults to 430. You can override the default and specify any value up to 10,000 (for example, NDB IS EMPLOYEE/3000:). The size of the GETMAIN area for MAP or RELOAD is (maximum-items/2) + 8. Allocate more memory to the region in which SYSTEM 2000 is executing.

SCF QUEST Messages

-346- WHERE-CLAUSE REQUIRED WITH TALLY OF NON-KEY ITEMS -
is a nonfatal, nondestructive syntax error. A TALLY of non-key items requires the use of a where-clause.

SCF CONTROL Messages

-504- SITE SPECIFIED - SCF UPDATE NOT ALLOWED -
is a fatal error. When you create a database with the NDB command, this message is issued in response to a return code from EXIT44. The return code implies the user exit did not want the current SCF update to be allowed. Contact your DBA for more information about your site's use of EXIT44.

-552- DYNAMIC ALLOCATION/UNALLOCATION FAILED FOR FILE -DDname -
is a nonfatal, nondestructive error. The message can occur for one of these reasons:

  • A VARY OFFLINE or VARY ONLINE operator console command failed for the database indicated by DDname.

  • An ALLOC command was issued but not all the database files could be allocated.

  • A DATA BASE NAME IS, NEW DATA BASE IS, or RESTORE command was issued, but not all the database files could be allocated.
Either the database files do not exist, or they are allocated to another job. The IBM SVC 99 allocation error message precedes the -552 error message to explain it.

-579- KEEPFILE BLKSIZE DOES NOT MATCH CURRENT POOL SPECIFICATION -
is a fatal, nondestructive error. Change the block size of the Update Log to an acceptable SYSTEM 2000 block size or allocate a compatible buffer pool. Release 10 and subsequent releases consider the Update Log to be a BDAM database file (File 7).

-580- FREE COMMAND IS INVALID, ONLY CURRENT DATABASE CAN BE FREED -
is a nonfatal, nondestructive error. A FREE command may be issued only against the database you currently have open.

-581- ALLOCATION/DEALLOCATION FAILED, S2KDBCNT TABLE IS FULL -
is a nonfatal, nondestructive error. The S2KDBCNT table has reached its capacity. See your SYSTEM 2000 Software Representative.

-582- FREE COMMAND IS INVALID, DATABASE IS OFFLINE/FREE -
is a nonfatal, nondestructive error. The database has already been freed or taken offline.

-583- ALLOC COMMAND IS INVALID, EXCESSIVE PARMS -
is a nonfatal, nondestructive error. Options BLK, UNIT, VOL, FILES, and SPACE are for DISP=NEW only.

-584- ALLOC COMMAND IS INVALID, CANNOT ALTER DSN -
is a nonfatal, nondestructive error. The S2KDBCNT table already has an entry for this database; only the database name is allowed in the ALLOC command. The ALLOC command cannot override information specified in S2KDBCNT.

-599- ROLLBACK LOG BLOCKSIZE IS INCORRECT. SHOULD BE blocksize -
is a batch fatal, nondestructive error. You tried to open a database that had rollback enabled, and the Rollback Log did not have a block size.

SCF Interface Messages

-766- DATABASE OPEN FAILED FOR DDname -
is a batch fatal, nondestructive error. The database file was not properly allocated, or database File 1 was not or cannot be properly formatted. If rollback is enabled, File 7 (Update Log) and File 8 (Rollback Log) for the database are required and must open correctly. If you are an interactive user, you are given the CONTROL processor. If dynamic allocation was being used, the SVC 99 error message will precede the -766- error message to help explain the problem.

-771- ERROR IN TAPE DCB OPEN -
is a nondestructive error. Either you omitted the DD statement for the tape data set associated with the SAVE/RESTORE command, or you did not properly allocate the file. This error is batch fatal in SCF and nonfatal in PLEX (with return code 93). If dynamic allocation was being used, the SVC 99 error message will precede the -771- error message to help explain the problem.

-772- OPEN FAILED FOR KEEPFILE -
is an informative message. The Keepfile was not properly allocated. This message is followed by batch fatal error -518- or -519- indicating rejection of a KEEP or APPLY command. If dynamic allocation was being used, the SVC 99 error message will precede the -772- message to help explain the problem.

-773- DATABASE DCB OPEN FAILED FOR DDname -
is a nonfatal, nondestructive error for a RESTORE command. The database was not restored. Opening a database file failed either prior to restoring the file or after restoring but prior to formatting the remainder of the file. If dynamic allocation was being used, the SVC 99 error message will precede the -773- error message to help explain the problem.

-776- ERROR IN PHYSICAL ORDER -
is a batch fatal error for both SCF and PLEX under a Multi-User environment. An error occurred in the routine that physically opens a database file. A previous message precisely explains the problem. If dynamic allocation was involved, the IBM SVC 99 error message will be displayed to help explain the problem.

System-Wide and Multi-User Messages

-808- UNRECOGNIZED COMPONENT LABEL -
is a nonfatal, nondestructive syntax error. SYSTEM 2000 software parsed a syntactic unit that should have been a component label, but it was not a valid component. The component either did not exist or was not the proper type to fulfill this syntactic role. Or the units in the command were improperly arranged, and the system misinterpreted a syntactic unit as a component. If the invalid component identifier appears in an input value stream, it should be a number rather than a label, that is, nn rather than Cnn. This error may also occur when you have a floating point value whose magnitude is outside the acceptable range of approximately 5.4E-79 M (magnitude) 7.2E+75.

-870- ERROR IN YEAR - VALID RANGE IS 1500 to 2400 -
is a nonfatal, nondestructive error for the YEARCUTOFF command. The year specified is not a valid year.

-871- UNABLE TO CHANGE YEARCUTOFF -
is a nonfatal, nondestructive error for the YEARCUTOFF command. The YEARCUTOFF command was not successfully completed.

-872- YEARS IN RANGE y1 TO y2 WILL BE PREFIXED WITH cc AT TIME OF UPDATE -
is an informative message for the YEARCUTOFF command. Any two-digit years falling in the range y1 to y2 will be treated as if they were preceded by cc and entered as four-digit years. This message will be issued once if the year specified in the YEARCUTOFF command is evenly divisible by 100. Otherwise, it will be issued twice, one time for each century.

Top of Document   Top of Chapter

PLEX Processor Messages

PLX305 ONLY EQ AND NE ACCEPTED WITH SPANS
short form: INVALID OPERATOR
severity code: 08(error)

When checking a range of return codes, the PLEX processor allows only the boolean operators EQ and NE or their equivalents.

PLX306 FOR / GO TO INVALID FOR CICS OR COBOL II -
short form: GO TO INVALID CICS
severity code: 08(error)

FOR...GO TO does not work with CICS and COBOL II.

PLX307 ONLY ONE NE ALLOWED PER $FOR STATEMENT
short form: ONLY ONE NE ALLOWED
severity code: 08(error)

Only one NE boolean operator is allowed with each $FOR statement.

PLX308 ONLY ONE $CFOR NE ALLOWED PER PLEX COMMAND
short form: ONLY ONE NE ALLOWED
severity code: 08(error)

Only one NE boolean operator is allowed with $CFOR for each PLEX statement.

PLX313 OUT OF SPACE IN $FOR BLOCK
short form: $FOR BLOCK FULL
severity code: 08(error)

The PLEX processor has reached the maximum number of allowed $FOR or $CFOR statements or conditions.

PLX344 RETURN CODE MUST BE BETWEEN 0 AND 255
short form: RC OUT OF RANGE
severity code: 08(error)

$FOR and $CFOR return codes must be between 0 and 255.

PLX408 LABEL NAME IS INVALID
short form: LABEL NAME ERROR
severity code: 08(error)

The PLEX processor expects label names to be between 0 and 63 characters long.

PLX413 ENCLOSE $CFOR CONDITIONS IN PARENTHESES
short form: $CFOR PARENTHESES
severity code: 08(error)

$CFOR conditions must be enclosed in parentheses.

PLX414 NESTED BOOLEAN OPERATORS NOT ALLOWED
short form: NO NESTED BOOLEANS
severity code: 08(error)

The PLEX processor does not allow the nesting of boolean operators with $FOR statements or conditions.

PLX415 $CFOR - TOO MANY PARAMETERS SPECIFIED
short form: TOO MANY $CFOR PARMS
severity code: 08(error)

$CFOR requires two fields separated by commas in each primary set of parentheses.

PLX416 SEPARATE $CFOR CONDITION / LABEL WITH COMMA
short form: $CFOR SEPARATOR
severity code: 08(error)

$CFOR fields must be separated by commas.

Top of Document   Top of Chapter

PLEX Return Codes

49 A serious SYSTEM 2000 failure has occurred and the system needs to be shut down.

57 An error occurred when SYSTEM 2000 was trying to load a sequential database.

108 The direct Update Log is armed.

116 An attempt to arm the direct Update Log was made with Rollback enabled.

130 The date given with the YEARCUTOFF command is unacceptable. The acceptable range is 1500 to 2400.

Top of Document   Top of Chapter

SYSTEM 2000 Error Codes

239x SYSTEM 2000 software found a bad operator or end-of-file on Scratch File 2, instead of the expected data for non-key where-clause processing. See your SYSTEM 2000 Software Representative. x indicates the routine in which the error occurred:

            239  PREPRE
            239A  GENARG
            239B  WTEST
            239C  WORDR
            239D TALLY
Following are SYSTEM 2000 error codes involving database File 4. The module issuing the error is in parentheses.

360 SYSTEM 2000 software tried to remove a data record pointer from the indexes. An error occurred as SYSTEM 2000 was addressing the index block. (LDDPAG) See your SYSTEM 2000 Software Representative.

361 SYSTEM 2000 software tried to add a data record pointer to the indexes, but the value already exists. (PENTS) See your SYSTEM 2000 Software Representative.

362 Problems occurred in high-level index processing. SYSTEM 2000 software found an error when attempting to remove a high-level index entry. (DELHLI) See your SYSTEM 2000 Software Representative.

363 Problems occurred in high-level index processing. SYSTEM 2000 found an error when attempting to allocate a high-level index entry. (LDHLIB) See your SYSTEM 2000 Software Representative.

364 SYSTEM 2000 software tried to add a data record pointer to the indexes and encountered a bad mode. (LDSPAG) See your SYSTEM 2000 Software Representative.

365 Problems occurred in high-level index processing. The requested high-level index entry was greater than the number of high-level index entries in use. (PENTSHLI) See your SYSTEM 2000 Software Representative.

366 Problems occurred in high-level index processing. SYSTEM 2000 software found an error when attempting to add a high-level index entry. (PENTSHLI) See your SYSTEM 2000 Software Representative.

367 Problems occurred in high-level index processing. SYSTEM 2000 software found an error when attempting to update a high-level index entry. (PENTSHLI) See your SYSTEM 2000 Software Representative.

368 Problems occurred in high-level index processing. SYSTEM 2000 software found an error when attempting to create a high-level index block. (CREATE) See your SYSTEM 2000 Software Representative.

369 SYSTEM 2000 software tried to read an index record but encountered a bad record header. (PENTS) See your SYSTEM 2000 Software Representative.

Top of Document   Top of Chapter

IBM User Abends

552 An abend has occurred in the dependent region and was trapped with ESTAE. When ESTAE processing is complete, ESTAE is disabled and abend 552 is invoked to terminate the job.

Top of Document   Top of Chapter

WTO MESSAGES

S2K013/sid- LARGEST POOL FOR DATABASES REQUIRES FOUR BUFFERS FOR 'SAVE' AND 'RESTORE' - This message has been eliminated in Release 12.1. SAVE and RESTORE operations no longer require SYSTEM 2000 buffers.

S2K1406/sid-job-name ISSUED text - echoes the text of an alternate console (S2OP) command that updated the Multi-User system. The message appears just before any output associated with the request.

S2K1444/sid- ALLOCATION/UNALLOCATION COMPLETE FOR THE database DATABASE - is an informative message. It appears when the VARY console operator command completes successfully, and it indicates that the specified database was varied offline or online. (In Release 12.1, this message gives the database name.)

S2K1445/sid - FAILED FOR THE database DATABASE - is a warning message. The VARY operator console command failed, and the specified database could not be varied offline or online. The database files probably do not exist, or perhaps they are allocated to another job. (In Release 12.1, this message gives the database name.)

S2K1446/sid - OFFLINE IS PENDING UNTIL THE LAST USER IS OFF OF THE database DATABASE - is an informative message. It appears when the VARY database OFFLINE operator console command cannot complete because other users are still using the specified database. When the last user job closes the database, the software will mark the database as being offline. (In Release 12.1, this message gives the database name.)

S2K1448/sid-database DATABASE HAS BEEN TAKEN OFF LINE - is an informative message. A database can be taken offline in one of two ways: 1) With a console or S2OP VARY OFFLINE command. VARY ONLINE is the only way to allow a database to be reopened in your Multi-User session. 2) With the SCF FREE command. If the database is identified in S2KDBCNT, FREE sets the lock byte to 1 to show the database is unavailable. Invoking the ALLOC command or VARY ONLINE allocates the files and allows you to open the database. If the database is not identified in S2KDBCNT, it is not protected by the lock byte; the files can be reallocated with the ALLOC command or else with DBN or NDB commands for the database.

The MUSTATS console operator commands now have unique WTO numbers. Refer to Part 3 in the SYSTEM 2000 Product Support Manual, Version 12, First Edition for detailed explanations of all fields in the WTOs.

S2K1901/sid- BUFFERS                       S2K1908/sid- PADS
S2K1902/sid- DBNS                          S2K1909/sid- POOLS
S2K1903/sid- DBN=                          S2K1910/sid- QUEUES
S2K1904/sid- DBNU=                        S2K1911/sid- THREADS
S2K1905/sid- DBSTAT=                       S2K1912/sid- USER=
S2K1905/sid- DBSTATS=                      S2K1913/sid- WHY=
S2K1906/sid- HELP                          S2K1914/sid- ZAPS
S2K1907/sid- MLH=                          S2K1915/sid- OPTIONS
S2K1907/sid- LHOLDS=                       S2K1916/sid- USERS

Top of Document   Top of Chapter

Chapter 5 - Converting Databases to Release 12.1 Format

Introduction

Databases created before Release 12.1 must be rebuilt in the new Release 12.1 format. Release 12.1 software cannot access database tables created with previous releases. Once you have converted a database to Release 12.1 format, the database files are not compatible with previous releases of SYSTEM 2000 software.

To convert your existing databases, use the CVRT121 conversion program provided on the Release 12.1 delivery tape. CVRT121 reads an existing Savefile and produces a Release 12.1 database, which has larger internal pointers in order to accommodate more records and data.

If you want to rebuild your databases with Release 12.1 software, you can create the database definition with Release 12.1, using the same process as in earlier releases. If your definition is not already on a file, you can use the DESCRIBE/DEFINE/ command to extract the definition in DEFINE format. (For documentation of the DESCRIBE/DEFINE/ command, see the SYSTEM 2000 QUEST Language and System-Wide Commands, Version 12. First Edition.)

To load the data, you can use the SCF LOAD command or the PLEX optimized load mode. The Release 12.1 delivery tape contains two programs (S2KGUNLD and S2KGLOAD) that generate COBOL PLEX programs for unloading and loading your database. Rebuilding the database eliminates reusable space and yields a freshly loaded, compact database.

Top of Document   Top of Chapter

The CVRT121 Conversion Program

The CVRT121 conversion program reads a Savefile that was created before Release 12.1 and produces disk database files in Release 12.1 format. The internal address pointers are longer, which allows more data records and larger file sizes. Once a database is in Release 12.1 format, it cannot be accessed by previous releases of SYSTEM 2000 software. Similarly, Release 12.1 software cannot read, for example, R11.6 databases unless they are rebuilt with the Release 12.1 format.

The CVRT121 program

Note: You can also use the REBLOCK option to change the block size of a Release 12.1 database at any time.

To execute the CVRT121 program, allocate the new Release 12.1 database files in the JCL job stream for the batch job. If the database files already exist, the conversion program issues an error message and stops processing.

Executing CVRT121 takes approximately two and one-half times longer than a RESTORE, based on tests using VIO data sets. RIO data sets take considerably longer. The program reads a Savefile as input and writes the new database files. Therefore, after you run the program, you can still maintain two versions of the database until you install Release 12.1 software for production use.

Top of Document   Top of Chapter

How the CVRT121 Program Works

The CVRT121 program runs as a stand-alone batch job. It reads a Savefile and expects a parameter file with the DDname of CNVPARM. The parameter file specifies the name of the database to be converted and whether the database is to be reblocked. Database files must be allocated in the JCL for the batch job so that the program can write the reformatted tables to them.

If the data sets designated as the database files in the JCL are not formatted, the CVRT121 program formats them for you. Also, if the data sets do not have block sizes assigned at OPEN time (regardless of the REBLOCK option) , the CVRT121 program assigns block sizes as defined in the Savefile. All database files are rebuilt during the conversion process.

Note: The CVRT121 program cannot convert Savefiles that were written prior to Release 10.1.

Top of Document   Top of Chapter

The Input Parameter File

The DDname of the input parameter file must be CNVPARM. You must supply this file to the CVRT121 program. It contains the name of the database to be converted in the batch job. You can specify the CONVERT option or the REBLOCK option or both, provided the database was created before Release 12.1. For Release 12.1 databases, you can specify only the REBLOCK option.

The syntax for the parameter file is as follows:

database [(action [,action])] [ | INDEX    ]
                                | NOINDEX

database is the name of an existing database that was saved on a Savefile.

action   | CONVERT    (default)
         | REBLOCK

         If you specify both, they can be in either order.

CONVERT  indicates you want to convert a database created by Release 10.1, 
         11.0, 11.5, 11.6, or 12.0.

REBLOCK  indicates you also want the database to be reblocked.

INDEX    means that the Index files will be rebuilt during the conversion
         process. This is the default.

NOINDEX  means that all key items in the database will be changed to
         non-key. Also, an SCF command file will be generated to contain 
         all the commands necessary to do a CREATE INDEX process against 
         the new database.
If the block sizes of the database files on the Savefile are different than the block sizes specified in the JCL, you must specify the REBLOCK option for the database. Otherwise, SYSTEM 2000 issues an error message.

Note: You can also reblock a Release 12.1 database by specifying the REBLOCK option, for example, SALES(REBLOCK) .

Sample Parameter Files

Following are sample parameter files for four different databases:
     EMPLOYEE

     CARS(CONVERT)

     SALES(CONVERT,REBLOCK)

     FINANCE(REBLOCK)
The SALES database will be rebuilt and also reblocked according to the block sizes specified in your JCL. The FINANCE database example demonstrates how to reblock a database that is already in Release 12.1 format.

Sample DDnames

Because the CVRT121 program runs as a stand-alone batch job, you must define all files in the JCL submitted to run the job. The conversion program assumes that each database name supplied in a parameter file is the basic DDname in the JCL. DDnames must use the standard SYSTEM 2000 naming conventions. That is, each of the six DDnames, which represent database Files 1 through 6, consists of the first seven characters of the database name, with blanks replaced by Xs, followed by an integer from 1 to 6.

For example, suppose you specify the following parameter file:

    EMPLOYEE(CONVERT)

DDnames in the JCL for the new database files would be

    //EMPLOYE1
          .
          .
          . 
    //EMPLOYE6

The KEYS Data Set (NOINDEX only)

The KEYS DD statement in the JCL defines a sequential data set that will contain the Command File generated by the CVRT121 program. That is, it will contain SCF commands that create the key items in the Release 12.1 database. It also will contain commands that activate the Update Log and enable rollback, if these were activated on the original Savefile.

Here is a sample KEYS data set. Four items will become key items. Also, the Update Log and the Rollback Log are reactivated.

    CONTROL:
    DBN IS EMPLOYEE:
    CONTROL:
    CREATE INDEX C1,C2,C3,C101:
    PRINT SIZE:
    ENABLE ROLLBACK:SAVE/:
    QUEST:
    COMMAND FILE IS INPUT:
The PRINT SIZE command displays the number of pages in use for each database file after the conversion and after the indexes are recreated. Some of the files may be larger than the corresponding original files due to the longer pointers in Release 12.1.

You can edit this data set prior to executing it as a Command File for a batch SCF session. The commands rebuild the index tables in the Release 12.1 database using the keys from the original database. You might want to add more key items or remove some according to existing application needs. Notice that the last command on the file returns to INPUT, which allows you to include additional SCF commands in the job.

Note: This Command File does not begin with a USER command, which would contain the master password. You must start the SYSTEM 2000 session from an input Command File that gives the USER command, then switches to the KEYS Command File. For example,

    USER,ABLE:
    COMMAND FILE IS KEYS:
Or you could edit the appropriate master password and USER command into the KEYS Command File before you submit it.

Temporary Data Sets

The CVRT121 program uses four data sets that are considered temporary because they need to exist only for the duration of the conversion. The best way to create these files is to allow the conversion process to dynamically allocate them. The temporary files are as follows:
    TEMPFIL2 - Preserves database File 2 data

    TEMPFIL4 - Preserves database File 4 data

    SORTIN   - Input file for the sort process

    SORTOUT  - Output file for the sort process
These files are dynamically allocated as needed during conversion. You can specify them in a batch job, but dynamic allocation is recommended.

User allocation of TEMPFIL2 and TEMPFIL4 must follow certain guidelines. The LRECL of the data sets must match the page sizes of database Files 2 and 4 on the Savefile.

For example, if the saved database has File 2 blocked at 6216 and File 4 blocked at 4096, conversion data sets TEMPFIL2 and TEMPFIL4 must be defined the same way. The temporary files must match their corresponding Savefiles in LRECL and BLKSIZE or you will receive an IBM error message indicating the mismatch.

TEMPFIL2 and TEMPFIL4 must also be allocated with enough space to hold the contents of the database files on the Savefile. If the space is not large enough, a B37 abend occurs.

The SORTOUT file is used by the local sort routines to hold the output from a database File 4 sort. The size of this file is determined by the largest number of occurrences of any given item on the database.

The LRECL for this file must be 4. If a larger LRECL is used, you risk running out of space (B37 abend) because only four bytes of each record will be used. As with the temporary files above, it is just simpler to let the conversion process dynamically allocate the SORTOUT and SORTIN files.

Executing the CVRT121 Program

To convert or reblock a database with the CVRT121 program, follow these steps:

  1. Allocate the Release 12.1 database files, File 1 through File 6, in your JCL. If you do not specify block sizes, the program uses the Savefile block sizes. If you want a new block size for a given file, specify it in the DD statement for that file and include the REBLOCK option in the parameter file for the database.

  2. Establish the parameter file for the program. Place the parameter file in a data set having the DDname CNVPARM. Each file contains the name of a database to be converted or reblocked, followed by the CONVERT or REBLOCK options where appropriate. You can convert only one database in each job execution.

  3. Execute the CVRT121 program.

If you are choosing the NOINDEX option, you will also need to do the following:

  1. Allocate a data set to be used for the output Command File. The DDname must be KEYS. (NOINDEX only)

  2. Execute an SCF job to execute the KEYS Command File. If necessary, edit the file before you run the job. (NOINDEX only)

Sample JCL

This sample JCL executes CVRT121 to convert and reblock the EMPLOYEE database. It includes the REBLOCK option, and it assumes that the new block sizes were specified when the database files were cataloged.

This job is on your Release 12.1 CNTL library as member JCLCNVRT.

    //JCLCNVRT JOB
    //CONVERT EXEC PGM=CVRT121
    //STEPLIB DD DISP=SHR,DSN=S2K.R121.LOAD
    //SYSPRINT DD SYSOUT=A
    //SYSUDUMP DD SYSOUT=A
    //EMPLOYE1 DD DISP=OLD,DSN=USER.R121.EMPLOYE1
    //EMPLOYE2 DD DISP=OLD,DSN=USER.R121.EMPLOYE2
    //EMPLOYE3 DD DISP=OLD,DSN=USER.R121.EMPLOYE3
    //EMPLOYE4 DD DISP=OLD,DSN=USER.R121.EMPLOYE4
    //EMPLOYE5 DD DISP=OLD,DSN=USER.R121.EMPLOYE5
    //EMPLOYE6 DD DISP=OLD,DSN=USER.R121.EMPLOYE6
    //EMPLOYES DD DISP=OLD,DSN=USER.R120.SAVEFILE
    //CNVPARM  DD *
    EMPLOYEE(CONVERT,REBLOCK)
    /*
In this example, the parameter is specified inline. Alternatively, you could specify an 80-byte sequential data set, for example, with the data set name of USER.PARMFILE:

//CNVPARM DD DISP=SHR,DSN=USER.PARMFILE

Or you could allocate the parameter file as a member of a partitioned data set:

//CNVPARM DD DISP=SHR,DSN=USER.PDS(member)

Sample JCL for executing CNVRT12 with the NOINDEX option is shown below.

The KEYS data set can be defined inline, or it can be specified as a preallocated and cataloged data set.

Or you could specify the KEYS data set as a member of an existing partitioned data set:

//KEYS DD DSN=S2K.TEST.SOURCE(KEYS1),DISP=SHR

The second logical step in the convert process executes a batch SCF job stream that uses the KEYS data set as input. This step can also be executed as a separate job.

    //JCLCNVRT JOB
    //CONVERT EXEC PGM=CVRT121
    //STEPLIB DD DISP=SHR,DSN=S2K.R121.LOAD
    //SYSPRINT DD SYSOUT=A
    //SYSUDUMP DD SYSOUT=A
    //EMPLOYE1 DD DISP=OLD,DSN=USER.R121.EMPLOYE1
    //EMPLOYE2 DD DISP=OLD,DSN=USER.R121.EMPLOYE2
    //EMPLOYE3 DD DISP=OLD,DSN=USER.R121.EMPLOYE3
    //EMPLOYE4 DD DISP=OLD,DSN=USER.R121.EMPLOYE4
    //EMPLOYE5 DD DISP=OLD,DSN=USER.R121.EMPLOYE5
    //EMPLOYE6 DD DISP=OLD,DSN=USER.R121.EMPLOYE6
    //EMPLOYES DD DISP=OLD,DSN=USER.R120.SAVEFILE
    //KEYS    DD DSN=S2K.R121.KEYS1,SPACE=(TRK,(2,1)),
    //           UNIT=RIO,DCB=(LRECL=80,BLKSIZE=80,RECFM=F),
    //           DISP=(NEW,CATLG,CATLG)
    //CNVPARM  DD *
    EMPLOYEE(CONVERT,REBLOCK) NOINDEX
    /*
    //EXEC PGM=SYS2K
           .
           .
           .
    //KEYS    DD  DSN=S2K.R121.KEYS1,DISP=SHR
    //S2KCOMD DD *
    USER,DEMO:COMMAND FILE IS KEYS:EXIT:
    //

Top of Document   Top of Chapter

Executing R12.1 Conversion in a CMS Environment

Preparation

The conversion process for Release 12.1 requires four temporary files during execution. The first of these two files is created from existing Savefile database files. Files 2 and 4 are moved block for block from the database Savefile to TEMPFIL2 and TEMPFIL4, respectively. These two files are BDAM data sets and are used during index rebuilding later in the conversion process.

Since the saved Files 2 and 4 are moved block for block, the space allocated for the temporary files has to be large enough to contain at least as many pages as the two database files. The CVRT121 EXEC defaults for both TEMPFIL2 and TEMPFIL4 are 500 blocks. If you require more space, edit the CVRT121 EXEC as required.

The other two data sets are for sorting. SORTIN is used by index processing to hold multiple occurrences of data values. SORTOUT is used by the "sort" processor to hold the output of the sort process.

The allocated space for these two data sets is variable depending on how many multiple occurrence values are encountered for a given item. If an item is key, such as GENDER, which might contain 500,000 occurrences of the value MALE, the SORTIN and SORTOUT data sets need to be large enough to hold one word (four characters) for each occurrence. The default blocksize for these data sets is 23,464 bytes, so the space allocated must be at least 86 pages of 23,464 bytes per page.

Execution

A sample EXEC named CVRT121 is provided. This EXEC is set up to be interactive, so that you can supply critical information as processing continues. Following is a sample of what to expect during execution of the conversion process:

  1. Start the CVRT121 EXEC. You are prompted with:
    
    ***S2K*** ENTER THE BLOCKSIZE OF THE
    ***S2K*** DATA BASE TO BE CONVERTED
    
  2. Enter the blocksize of the database you are going to convert. If you do not specify a blocksize, a default blocksize of 4096 is used. The EXEC then prompts:
    
    ***S2K*** ENTER THE DATA BASE NAME OF THE
    ***S2K*** DATA BASE YOU WANT CONVERTED
    
  3. Enter the database name (up to 16 characters) to continue, or enter the command END, EXIT, or QUIT (or nothing) to exit the process. The EXEC prompts:
    
    ***S2K*** ENTER THE DATABASE FILE MODE
    ***S2K*** THE DEFAULT FILE MODE IS 'D'
    
  4. Enter the filemode for the database files. If nothing is entered, the default mode of D is used. The EXEC prompts:
    
    ***S2K*** ENTER THE FILE MODE OF THE
    ***S2K*** TEMPORARY FILES
    
  5. Enter the filemode for the four temporary data sets. If no input is received, the default mode of A is used.

This is the scope of interaction during execution. The EXEC continues the conversion without further input. If error conditions are encountered, appropriate messages are sent to you during execution.

Note: When you are running conversion in a CMS environment, error conditions may cause your database files to be erased. If the error condition is encountered before the conversion process writes anything to the files, all files are erased by CMS.

Conversion Report

The result of the execution is a one-page report containing pertinent information about the conversion itself. The report contains the database name, blocksizes of the savefile and of the new database files, and the dates on which the database was created and converted. This report may be saved as a permanent record of the database conversion.

Top of Document   Top of Chapter