FABIRGEN JCL examples

Use the following JCL examples to generate the Sequential Subset Randomizer module and its tables.

Example 1: Generating the Sequential Subset Randomizer, case 1

The following figure presents typical example for generating the Sequential Subset Randomizer.

Figure 1. Example 1: Generating the Sequential Subset Randomizer, case 1
//     EXEC FABIRGEN,MBR=SSRRAND
//C.SYSIN   DD  *
        FABITAB START=1,BYTES=1,VALTYPE=E
        FABIDEF ID=A,UNITS=450        BASEL
        FABIDEF ID=B,UNITS=150        BELLINZONA
        FABIDEF ID=C,UNITS=230        BERN
        FABIDEF ID=D,UNITS=170        BIEL
        FABIDEF ID=E,UNITS=110        CHUR
        ..................
        FABIDEF ID=Q,UNITS=800        ZURICH
        FABIGEN
        END
/*
//L.SYSLMOD  DD  DSN=RANDOMIZ.LIB(&MBR),DISP=SHR

In this example, the FABITAB macro statement specifies that:

  • The subset ID starts at the first position of the root key (START=1).
  • The length of the subset ID is 1 byte (BYTES=1).
  • The values for the subset IDs are exact values (VALTYPE=E).

Each FABIDEF macro statement defines a single subset with the following keywords:

  • ID= keyword defines the value of the subset ID.
  • UNITS= keyword defines how much relative space should be allocated to the subset.
Note: The FABIDEF macro statements must be provided in ascending sequence of the subset ID values.

Example 2: Generating the Sequential Subset Randomizer, case 2

The following figure presents another typical example for generating the Sequential Subset Randomizer.

Figure 2. Example 2: Generating the Sequential Subset Randomizer, case 2
//     EXEC FABIRGEN,MBR=SSRRAND
//C.SYSIN   DD  *
        FABITAB START=3,BYTES=2,VALTYPE=H,IDTYPE=X
        FABIDEF ID=0020,UNITS=47         San Francisco
        FABIDEF ID=0030,UNITS=24         San Jose
        FABIDEF ID=005A,UNITS=62         Los Angeles
        FABIDEF ID=0088,UNITS=31         San Diego
        FABIDEF ID=0094,UNITS=3          Los Gatos
        ....................
        FABIDEF ID=01FF,UNITS=6          Bakersville
        FABIGEN
        END
/*
//L.SYSLMOD  DD  DSN=RANDOMIZ.LIB(&MBR),DISP=SHR

In this example, the FABITAB macro statement specifies that:

  • The subset ID starts at the third position of the Root-Key (START=3).
  • The length of the subset ID is 2 bytes (BYTES=2).
  • The values for the subset IDs are high values (VALTYPE=H).
  • The values for the subset ID values are provided as hexadecimal values (IDTYPE=X).

Each FABIDEF macro statement defines a single subset with the following keywords:

  • ID= keyword defines the (hexadecimal) values of the subset ID.
  • UNITS= keyword defines how much relative space should be allocated to the subset.

The FABIDEF macro statements must be provided in ascending sequence of the hexadecimal subset ID values.

The first FABIDEF macro statement specifies that database roots with subset ID values equal to or lower than X'0020' belong to the first subset. The second FABIDEF macro statement specifies that database roots with subset ID values between X'0020' and X'0030' (X'0020' being excluded) belong to the second subset. The rest of the FABIDEF macro statements define subsets of database roots in the same manner.