Computer Corporation of America
|
Feedback
Search CCA:
   
USA CCA
CCA Products
CCA Customer Support
CCA Resources
CCA - Company
CCAPRINT: A Newsletter for Model 204® and System 1032® Users
September , 2006
     
Model 204: Loading the Model 204 Nucleus Above the Line Printer-friendly version
System 1032: A Trio of New Tools Utilities: DSVERIFY Printer-friendly version

 

Model 204
USE OF AND ACCESS TO PRODUCTS AND FEATURES ARE IN ACCORDANCE WITH THE TERMS AND CONDITIONS OF THE USER’S SOFTWARE LICENSE. THE PRESENTATION OF MATERIAL HEREIN DOES NOT, IN ANY MANNER, MODIFY SUCH TERMS AND CONDITIONS.

Loading the Model 204 Nucleus Above the Line
By James Damon



The Online load module, or the Model 204 nucleus, is loaded by the operating system as a result of the JCL EXEC statement:

//M204V610  EXEC PGM=ONLINE,...

If you have linked in RSQL, the total size of the nucleus is approximately 3 megabytes. With EVCP the size is approximately 2 megabytes. Prior to V6R1.0, the Model 204 nucleus was loaded below the 16-megabyte line, as required. Although below the line storage is generally severely limited, usually this is not a problem. Most customers have at most 8 to 10 megabytes and can accommodate the Model 204 nucleus which can consume 25-35% of that storage. However, some software packages that run in conjunction with Model 204 may require large amounts of below the line virtual storage, which may not be available.

In V6R1.0, you can optionally load most of the nucleus above the line. This can free 2 to 3 megabytes of below the line virtual storage and provide substantial virtual storage relief in this limited area, which might be important for your site.

Implementing Split Load Modules

A small part of the four Model 204 load modules must still be loaded below the line during execution. This requires producing a split load module and, that in turn, leads to the IBM requirement of storing the load modules in a partitioned dataset extended (PDSE). If you select the SPLIT option, then the Model 204 nucleus will be divided into two program objects: one that must be loaded below the line and the other which may be loaded above the line. The below the line program object consists of nine control sections that deal with BSAM I/O, VTAM, LU6.2 and others. The size of the below the line program object is about 130K. Your Online address space will resemble Figure 1.

Figure 1. Model 204 address space with nucleus above-the line

These PDSEs, which this optional feature requires, have a number of advantages:

  1. The directory expands automatically
  2. The directory cannot be destroyed by opening a PDSE as output sequential
  3. Dataset compression is no longer required and unused space is automatically reused
  4. They may take up to 123 extents
  5. They may use more than 65,535 tracks
  6. They may be shared for concurrent read and update across different z/OS systems

An overview of PDSEs can be found in an IBM redbook at this URL:
http://www.redbooks.ibm.com/redbooks/pdfs/sg246106.pdf

Creating a PDSE for Model 204
The V6R1.0 installation process includes a job, PDSELIB, that allocates a PDSE and, using the Program Management binder, processes the four Model 204 load modules ONLINE, BATCH204, IFAM1, and IFAM4 and saves them into your PDSE. The Program Management binder (which replaces the linkage editor) statements shown in Figure 2 are used to process the ONLINE load module and save it as one load module, consisting of two program objects, in your PDSE.

Figure 2. PDSELIB job with binder control statements

//LNKONL   EXEC PGM=IEWL,REGION=8M,
// PARM='LIST,LET,MAP,NCAL,SIZE=(700K,200K)',COND=(4,LT)
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,120,,CONTIG)
//OLDLOAD DD DSN=YOUR.PDS.LOADLIB,DISP=SHR
//SYSLMOD DD DSN=YOUR.AUTH.PDSE.LOADLIB,DISP=SHR
//SYSLIN DD *
PAGE KOMM$,SBNU$
INCLUDE OLDLOAD(ONLINE)
MODE AMODE(31),RMODE(SPLIT)
SETCODE AC(1)
ENTRY MAINTASK
NAME ONLINE(R)

The OLDLOAD DD, referenced in the Figure 2 control statements, refers to a regular PDS dataset, YOUR.PDS.LOADLIB, where all Model 204 load modules are initially stored by the M204LINK job. Those load modules are then copied by the binder program into YOUR.AUTH.PDSE.LOADLIB using this PDSELIB job. This step splits the load module into the two program objects mentioned earlier.

Applying Zaps and Early Warnings
All maintenance applied to Model 204 load modules must be applied against the regular PDS. To accommodate a restriction in the IBM update utility, AMASPZAP or superzap, which cannot process PDSEs, follow the AMASPZAP application, by running the Model 204 PDSELIB job again to copy the now updated load modules from the regular PDS to the PDSE.

In Conclusion
If you need additional virtual storage below the line for whatever reason, saving the Model 204 Online load module in a PDSE and running from that load library may provide the virtual storage you require.

System 1032
USE OF AND ACCESS TO PRODUCTS AND FEATURES ARE IN ACCORDANCE WITH THE TERMS AND CONDITIONS OF THE USER’S SOFTWARE LICENSE. THE PRESENTATION OF MATERIAL HEREIN DOES NOT, IN ANY MANNER, MODIFY SUCH TERMS AND CONDITIONS.

A Trio of New Tools Utilities: DSVERIFY
By Tym Stegner

TymThis article is the first in a series that introduces three new tools utilities, which CCA developed to resolve customer problems and to make testing more efficient. The development of the DSVERIFY tools utility addresses the problem of validating key table values when you would like to check their accuracy.

We developed the DSVERIFY tools utility based on the real-world implementation of the techniques discussed in the June 2006 System 1032 CCAPRINT article. Modifications to the original design plan evolved that made DSVERIFY faster and more efficient.

The DSVERIFY tools utility is a diagnostic tool that does not fix your key problems, however, it can be run in nonexclusive mode and the report it generates is concise. You do not have to dump and rekey the dataset, lock it from use by others, or examine and compare several reports.


Review of Key Table Verification Tips
Thorough key table verification relies on the diagnostic events listed in Table 1, which correspond to the design tips introduced in June 2006.

Table 1. Key table verification tips

Objective: To ensure… Tip # Commands implemented
Low-level key validity 1 Diagnose VALUES command output
Accurate data population in key table 2 Compare VALUES output with data output
High-level key validity 3 Value comparison via FIND

Creating the DSVERIFY Tools Utility
DSVERIFY generates a series of VMS COM files--each one validates the key table for a particular keyed attribute in the dataset. A master command file sequentially executes all the validation command files for the dataset. If you want to validate an individual key, its command file can be executed singly.

The processing flow for a key validation command file is as follows:

-Start S1032, open the dataset, find ALL records
-Perform VALUES on attribute to <attr-name>.VMODE file (Tip#1)
-DUMP data values to <attr-name>.DUMP using an RD (Tip#2a)
-Exit S1032
-Sort .DUMP & .VMODE files
-Summarize .DUMP file into <attr-name>.SUM (Tip#2b)
-Sort .SUM file to <attr-name>.SUM
-If attribute is numeric suppress leading zeros in the .SUM file
-DIFFERENCES the .SUM and .VMODE files into <attr-name>.ERR file
(Tip#2c)
-Restart S1032, Re-open dataset and set environmental variables
-Execute ZCHECK_HLK process to FIND EQ attribute values from the
.SUM file, any error messages are appended to the .ERR file (Tip#3)
-Exit S1032

How and Why DSVERIFY Works
As described in Table 1, there are three objectives to key validation. Tip #1 takes advantage of the VALUES command which performs an integrity check of the low-level key table structure when ever it is run.

The value/count listing of the VALUES command becomes part of the input data for Tip #2, as it forms the list of what System 1032 has stored in the key tables. Tip #2 compares the counted values from a data dump to the VALUES listing to ensure the key tables contain all the data that is present in the dataset itself. To do this, a data listing is made, then sorted and summarized down to a similar format to the VALUES listing, so the two files can be compared using the VMS differences command. Discrepancies are reported in the output of the VMS differences command report, and—in the most likely scenario--indicate that there is data in the dataset which is not present in the key tables.

The summary file from the data comparison is also the input file for Tip #3, where the validity of the high-level key tables is checked. Performing a FIND command on each value present in the data listing ensures an accurate path through the key tables to the low-level key blocks. If any discrepancies are found, the report is appended to the error report generated by the VMS differences command.

Improving the Original DSVERIFY Design
In the June 2006 article, Validating Key Table Values, I listed the validation tips that must take place (the objectives) along with some techniques that might be used to validate key tables in a dataset. Soon after that article was written, a customer called who needed to test a series of datasets. To assist our analysis I began to develop the DSVERIFY tools utility implementing the tips I proposed. As you would expect, the design underwent modification.

Regarding Tip #2

In the original article, I proposed using the PRINT command to generate the attribute data listing. The PRINT command by default uses the same formatting used by the VALUES command. However, especially for larger datasets, the DUMP command is about three times faster than the PRINT command.

All sorting is done at the VMS level, because the VMS Sort utility sorts a flat file without the need to specify any sort keys.

In the June 2006 article, a DCL program aggregated the data listing to a summary listing, similar to the output of the VALUES command. Originally, I used a different format for the summarized data than was used by the VALUES listing. This worked well until a comparison step was applied to large datasets with unique values in the key tables. This produced a very long summary listing, which in turn took ages to execute in the DCL aggregation and comparison scripts.

To speed up these steps (by an order of magnitude), I rewrote the aggregator using a 3GL programming language. The comparison step was made more efficient by changing the format of the summary file to match that of the VALUES listing, and then using the VMS differences command on the two files.

Regarding Tip #3

The previous steps validated the data in the low-level tables, so I could use the summary listing file to perform a high-level check by parsing each value and count from the summary listing, and using it in a FIND command on that attribute. As long as the summary count and the FIND output match, the high-level key tables are OK. In the original design for this step, I suggested using a SEARCH component. However, the SEARCH operation is already being done by the summarized data listing, so that step was redundant and I removed it.

Summary
If you would like to check the validity of your key tables after a failed update, you can use the DSVERIFY tools utility, which generates a series of VMS command files that serve to validate the keys in a dataset to match the data within the dataset. You can request and receive the DSVERIFY tool utility from System 1032 Customer Support.

Coming Attractions
The next article in this series will look at one of two additional new tools utilities, ADDGEN or CHGGEN, which you can use to generate ADD or FIND/CHANGE commands from an existing dataset that add or change records in that dataset for testing purposes.


Contact CCA Webmaster
Copyright 2008