Changing the FOCUS Defaults

In this section:

You can customize many of the default FOCUS space allocations, command lists and naming conventions while doing your install. Customizable items include:


Top of page

x
Record Buffer Size

The default buffer size has been increased to 32K in FOCUS 7.2 (from the 16K default in prior releases). This new default is the required size for both the LINREC and DATREC buffers and may no longer be changed.


Top of page

x
Setting the Maximum Number of Cache Pages

How to:

FOCUS sites can limit the maximum number of cache pages allowed per FOCUS session. Check your IBM documentation for cache requirements. During installation, you can set a cache page limit of between 3 and 524,288 pages (the hardware maximum), with each page 4096 bytes in length. The FOCUS default is 0 pages. The HiperFOCUS default is 256.

Individual users or batch jobs can reset cache page limits to one less than the site-selected maximums by using the SET CACHE command:



x
Syntax: How to Set the Cache Page Limit
SET CACHE = {0|n}

where:

0

The default FOCUS setting allocates no space for cache; Cache is inactive.

n

Is the number of 4K-byte pages of contiguous storage allocated to cache memory. The minimum is two pages. The maximum value is either 524287, or one less than the site-specified maximum value.

In normal use, the number of pages requested by users should be far less than the hardware maximum to avoid degrading the performance of the paging subsystem.



x
Procedure: How to Change the Maximum Number of Cache Pages
  1. After unloading the FOCUS distribution tape, edit member CCHCOM in the FOCCTL.DATA library, to establish a maximum number of cache pages for your site. Do this by locating the following line:
    MAXPAGES EQU  524288

    Replace 524288 with the maximum number of cache pages you wish to allow. The value of MAXPAGES must be between 3 and 524288. Do not change any other lines in this file. After setting MAXPAGES, save member CCHCOM back into data set FOCCTL.DATA.

  2. Next, assemble member CCHCOM from FOCCTL.DATA as follows:
    //ASSEM  EXEC PGM=IEV90,PARM='LIST,OBJ,NOALIGN'
    //SYSLIB   DD  DISP=SHR,DSN=SYS1.MACLIB
    //SYSUT1   DD  UNIT=SYSDA,SPACE=(TRK,(30,10))
    //SYSUT2   DD  UNIT=SYSDA,SPACE=(TRK,(30,10))
    //SYSUT3   DD  UNIT=SYSDA,SPACE=(TRK,(30,10))
    //SYSPRINT DD  SYSOUT=*
    //SYSPUNCH DD  DUMMY
    //SYSLIN   DD  DISP=SHR,DSN=prefix.OBJ(CCHCOM)
    //SYSIN    DD  DISP=SHR,DSN=prefix.FOCCTL.DATA(CCHCOM)

    where:

    prefix

    Is the high-level qualifier for your FOCUS production data sets.

  3. Next, link this new program into FOCUS as follows:
    //LINKFOC EXEC PGM=IEWL,PARM='LET,NCAL,LIST,SIZE=1024K'
    //SYSPRINT DD  SYSOUT=*
    //SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(10,1))
    //SYSLMOD  DD  DISP=OLD,DSN=prefix.FOCLIB.LOAD  <-- FOCUS
    //MAINTAIN DD  DISP=SHR,DSN=prefix.FOCCTL.DATA  <-- FOCCTL
    //OBJECT   DD  DISP=SHR,DSN=prefix.OBJ          <-- Assembled code
    //SYSLIN   DD  *
       INCLUDE OBJECT(CCHCOM)   <--------- Assembled CCHCOM
       INCLUDE SYSLMOD(CORFOC)  <--------- Module to be Changed
       INCLUDE MAINTAIN(CORFOC) <--------- Linkedit Control Statements
       NAMES FOCUS(R)           <--------- New Module
    /*

    where:

    prefix

    Is the high-level qualifier for your FOCUS production data sets.

  4. If you run SU, you must also link the new program CCHCOM into the HLISNK module:
    //LINKFOC EXEC PGM=IEWL,PARM='LET,NCAL,LIST,SIZE=1024K'
    //SYSPRINT DD  SYSOUT=*
    //SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(10,1))
    //SYSLMOD  DD  DISP=OLD,DSN=prefix.FOCLIB.LOAD  <-- FOCUS
    //MAINTAIN DD  DISP=SHR,DSN=prefix.FOCCTL.DATA  <-- FOCCTL
    //OBJECT   DD  DISP=SHR,DSN=prefix.OBJ          <-- Assembled code
    //SYSLIN   DD  *
       INCLUDE OBJECT(CCHCOM)   <--------- Assembled CCHCOM
       INCLUDE SYSLMOD(HLISNK)  <--------- Module to be Changed
       INCLUDE MAINTAIN(HLISNK) <--------- Linkedit Control Statements
       NAMES  HLISNK(R)         <--------- New Module
    /*

    where:

    prefix

    Is the high-level qualifier for your FOCUS production data sets.


Top of page

x
Default Space Allocation Table for Work Files: IBITABLA

FOCUS dynamically allocates output data sets not allocated by the user. To reset the default space attributes for these dynamically allocated ddnames, edit member IBITABLA of the FOCCTL.DATA PDS.

To change the FOCUS default allocations for output data sets, you must copy file IBITABLA to a data set allocated to ddname ERRORS. IBITABLA is a fixed columnar file and you must make all changes in the appropriate columns, which are as follows:

Column Name

Starting Column

Length

DDname

01

8

Allocation units (CYLS,TRKS)

10

4

Primary space

15

3

Secondary space

19

3

Number of Directory entries (PDS)

23

2

Sysout class (OFFLINE only)

26

1

Volume

28

6

Unit (SYSDA, DASD, HIPER, NOHIPER*)

35

8

Unit Count

44

2

*Use NOHIPER as a unit name to exclude particular data sets from HiperFOCUS.



Example: Sample of IBITABLA as Shipped

IBITABLA defines the default allocations for all dynamically allocated Information Builders files. It is provided to allow each customer to tailor these defaults as required, thereby creating a local copy of IBITABLA.

*...+....1....+....2....+....3....+....4....+
HOLD     CYLS   5  10                       3,
HOLDMAST TRKS   5   5 36          NOHIPER    ,
SAVE     CYLS   5  10                       3,
REBUILD  CYLS   5  10                       3,
FOCSML   CYLS   5   5                       2,
FOCUS    CYLS   5   5                       1,
FOCSTACK TRKS   5   5                       2,
FOCSORT  CYLS   5   5                       1,
OFFLINE  CYLS            A                   ,
SESSION  TRKS   5   5                       2,
FOCCOMP  TRKS   5   5 12                     ,
HOLDACC  TRKS   5   5 12                     ,
FMU      TRKS   5   5 12                     ,
TRF      TRKS   5   5 12                     ,
FOCPOOLT CYLS   5  20             NOHIPER   4,
MDI      CYLS   5  20             NOHIPER   4,
FOC$HOLD CYLS   5   5                       2,
EXTINDEX CYLS   5   5                       2,

Top of page

x
Establishing Default System File Naming Conventions

In this section:

To take advantage of the automatic FOCUS allocation facility, certain naming conventions must be followed. These can be adjusted to site standards during FOCUS installation.



x
Initial Default File Naming Conventions

The following list shows the default naming conventions:

prefix.FOCEXEC.DATA

For FOCEXEC

prefix.FOCCOMP.DATA

For compiled MODIFY procedures

prefix.MASTER.DATA

For MASTER files

prefix.ddname.FOCUS

For database files

prefix.MODEL.DATA

For FOCCALC® spreadsheets

SYS1.ADMCFORM

For ICU format files

SYS1.ADMCDATA

For ICU data files

prefix.TTEDIT.DATA

For TABLETALK saved sessions

prefix.FMU.DATA

For FMU files

prefix.TRF.DATA

For TRF files

prefix.WINFORMS.DATA

For online Maintain applications

The prefix is selected based on the following rules:

  • If the FOCUS SET PREFIX command was previously issued, then the set value is selected.
  • If no SET PREFIX command was issued and FOCUS is executed under TSO, then the standard TSO prefix (as set by the TSO PREFIX command) is selected.


x
Reference: Usage Notes for File Naming Conventions
  • Existing FOCUS files must be allocated before using them. The CREATE command allocates a FOCUS database to a temporary data set.
  • FOCUS does not attempt to dynamically allocate data sets already allocated via a CLIST, JCL, user-issued TSO ALLOC, or FOCUS DYNAM command.
  • Naming conventions can be set up so that some or all data sets mentioned can share a prefix set to a fixed word (for example, SYS1), in cases where SET PREFIX was not issued.
  • If, for some reason FOCUS fails to allocate a data set (for example, if the data set is not catalogued), it issues the customary error message indicating that the requested file cannot be found. Interactive users can still allocate the right data set using a TSO ALLOC or FOCUS DYNAM command.
  • In batch execution, since standard prefixes do not exist in this environment, the SET PREFIX command must be issued to establish a standard prefix for any data sets being allocated dynamically.
  • The facility may be disabled for any or all of the data sets listed above.


x
Modifying Naming Conventions for Automatic Allocation: DSNTAB

You can adjust the table of naming conventions for data sets allocated dynamically during FOCUS installation. The FOCUS data source is no longer dynamically allocated. The ERRORS PDS must be allocated prior to the execution of FOCUS.

The current table is member DSNTAB in FOCCTL.DATA. You can adjust the contents of this table by editing, compiling, and link-editing it into FOCUS. You can also adjust it with the AMASPZAP utility.

DSNTAB contains allocation information used when dynamically allocating MASTER, FOCEXEC, FIXFORM, and other files:

DSNTAB  CSECT
* 1 MASTER
     DC C'PREFIX MASTER.DATA                 1'
* 2 FOCEXEC
     DC C'PREFIX FOCEXEC.DATA                1'
* 3 FOCUS Database
     DC C'PREFIX DATABASE.FOCUS              1'
* 4 FIXFORM File
     DC C'PREFIX DDNAME.DATA                 1'
* 5 Errors
     DC C'SYS1  FOCUS.ERRORS.DATA            1'
* 6 Set_prefix_value - 8 characters long
     DC C'                           '
* 7 FOCCOMP File
     DC C'PREFIX FOCCOMP.DATA                1'
* 8 FOCCALC Spreadsheet
     DC C'PREFIX MODEL.DATA                  1'
* 9 ICU Format File
     DC C'SYS1  ADMCFORM                     1'
* 10 ICU Data File
     DC C'SYS1  ADMCDATA                     1'
* 11 TTEDT TableTalk saved session PDS
     DC C'PREFIX TTEDIT.DATA                 1'
* 12 FMU
     DC C'PREFIX FMU.DATA                    1'
* 13 TRF
     DC C'PREFIX TRF.DATA                    1'
* 14 WINFORMS
     DC C'PREFIX WINFORMS.DATA               1'
*
     END

Each entry in the table is 53 bytes long and has the following format:

prefix (8 char)

data set name (44 char)

flag (1 char)

0

8

52

where:

prefix

Is an 8-character field beginning at byte 0. If it contains the word PREFIX, the TSO prefix will be substituted for the prefix value; otherwise, the prefix is whatever is entered in this field. If the SET PREFIX command is issued, it takes priority and the SET value will be substituted.

data_set_name

Is a 44-character field beginning at byte 8. Data set name must contain the reserved word DATABASE for FOCUS files and DDNAME for FIXFORM files being allocated. These reserved words can appear anywhere in the 44-character string.

flag

Is a 1-character field beginning at byte 52 that indicates whether or not the DDNAME should be allocated dynamically. If FLAG=1, it indicates that the file should be allocated by FOCUS. If FLAG=0, then it should not be allocated.



x
Reference: Usage Notes for DSNTAB
  • In the 44-character data set name field, the low-level qualifiers must remain as defined in the DSNTAB table (except in the cases of FOCUS and FIXFORM files). For example, the data set prefix.TTEDIT.DATA may be additionally qualified as prefix.xxxx.TTEDIT.DATA, but not as prefix.xxxx.TTEDIT. In order to use a variant form of the low level qualifiers, the DSNTAB table would either have to be edited, compiled and linked, or zapped.
  • Changes to entries 3 and 5 will have no affect.


x
Procedure: How to Customize and Re-install DSNTAB
  1. Change member DSNTAB of FOCCTL.DATA.
  2. Assemble it.
  3. Link edit the new DSNTAB into FOCUS:
    //LINK1 EXEC  PGM=IEWL,PARM='LET,NCAL,LIST,SIZE=1024K'
    //SYSPRINT DD SYSOUT=*
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(10,1))
    //OLDMOD   DD DSN=prefix.FOCLIB.LOAD,DISP=SHR
    //DSNTAB   DD DSN=assembled.dsntab,DISP=SHR
    //MAINTAIN DD DSN=prefix.FOCCTL.DATA,DISP=SHR
    //SYSLMOD  DD DSN=prefix.TEST.FOCLIB.LOAD,DISP=SHR
    //SYSLIN   DD *
     INCLUDE DSNTAB
     INCLUDE OLDMOD(CORFOC)       <----- MODULE TO BE CHANGED
     INCLUDE MAINTAIN(CORFOC)     <----- LINK1 CNTL STATEMENTS
     NAME FOCUS(R)                <----- NEW MODULE
    /*

    where:

    prefix

    Is the high-level qualifier for your FOCUS production data sets.

    assembled.dsntab

    Is the name of the data set that contains the assembled version of DSNTAB.


Top of page

x
Modifying the Efficiency List of TSO Commands in FOCUS: TSOTAB

How to:

For optimal efficiency, FOCUS maintains a list of commonly executed TSO commands assumed valid without verification that are passed control whenever called (member TSOTAB in FOCCTL.DATA). TSO commands not on this list can also be run, but must first be verified by searching the STEPLIB, JOBLIB, and linklist libraries using the BLDL macro. The TSO command sequence is not significant and the list is terminated by the first 8 bytes of hex FF encountered (do not include the TIME command in this list).



x
Procedure: How to Install the Customized TSOTAB

To augment the list, first edit TSOTAB, and then compile and link-edit it into FOCUS. The JCL for this operation appears below.

//LINK1 EXEC  PGM=IEWL,PARM='LET,NCAL,LIST,SIZE=1024K'
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(10,1))
//OLDMOD   DD DSN=prefix.FOCLIB.LOAD,DISP=SHR
//TSOTAB   DD DSN=assembled.tsotab,DISP=SHR
//MAINTAIN DD DSN=prefix.FOCCTL.DATA,DISP=SHR
//SYSLMOD  DD DSN=prefix.TEST.FOCLIB.LOAD,DISP=SHR
//SYSLIN   DD *
 INCLUDE TSOTAB
 INCLUDE OLDMOD(CORFOC)       <----- MODULE TO BE CHANGED
 INCLUDE MAINTAIN(CORFOC)     <----- LINK1 CNTL STATEMENTS
 NAME FOCUS(R)                <----- NEW MODULE
/*

where:

prefix

Is the high-level qualifier for your FOCUS production data sets.

assembled.tsotab

Is the name of the data set that contains the assembled version of TSOTAB.


Top of page

x
Adjusting the Number of Allowable Data Exceptions

How to:

FOCUS allows ten data exception interrupts before terminating a run with the following error message:

(FOC204) TOO MANY INTERRUPTS. RUN TERMINATED.

You can change this limit with the SET MAXDATAEXCPT command.



x
Syntax: How to Set a Maximum Number of Data Exceptions in a Session or Request

Issue the following command in any supported profile, in a FOCEXEC, or at the FOCUS prompt:

SET MAXDATAEXCPT={10|n}

Issue the following command in a TABLE request

ON TABLE SET MAXDATAEXCPT {10|n}

where:

n

Is a one to four-digit number that represents how many data exceptions can occur before the session is terminated. 10 is the default value. The value zero (0) allows an unlimited number of data exceptions. The value one (1) terminates the session at the first data exception.

If MAXDATAEXCPT is changed in a request, a new count is established for the request. The session counter is saved and is restored after the request executes.

Each time you issue the command outside of a TABLE request, the running counter is reset to zero.

This command is not supported on a FOCUS Database Server (sink machine).


Information Builders