z/OS DFSMS Macro Instructions for Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Example 5: skip-sequential insertion (KSDS, variable-length RRDS)

z/OS DFSMS Macro Instructions for Data Sets
SC23-6852-02

In this example, one PUT macro is used to insert multiple fixed-length, 100-byte records. Records are to be moved asynchronously from a work area.
OUTPUT   ACB   MACRF=(KEY,SKP,                                        x
         .     OUT)
         .
         GENCB BLK=RPL,         Generate 5 request parameter lists    x
               COPIES=5,        at execution.                         x
               ACB=OUTPUT,                                            x
               AREALEN=100,                                           x
               OPTCD=(KEY,SKP,                                        x
               ASY,NUP,MVE),                                          x
               RECLEN=100
 
         LTR   15,15
         BNZ   CHECKO
Calculate length of each list and use register notation with the MODCB macro to complete each list:
         MODCB RPL=(2),                                                x
               AREA=(3),                                               x
               NXTRPL=(4)
         LTR   15,15
         BNZ   CHECKO
Increase the value in each register and repeat the MODCB until all 5 request parameter lists have been completed. The last time, register 4 must be set to 0:
          .
LOOP     ...                    Restore address of first list in       x
                                register 2. Build 5 records in WORK.
 
         PUT   RPL=(2)          Register 2 points to the first RPL in  x
                                the chain.  The 5 records in WORK      x
                                are stored with this one PUT request.
         LTR   15,15
         BNZ   NOTACCEP
         .
         CHECK RPL=(2)
         LTR   15,15
         BNZ   ERRO
         B     LOOP
CHECKO   ...                    Generation or modification failed.
 
NOTACCEP ...
 
ERROR    ...                    Display the feedback field in each     x
                                RPL to determine which one had error.
 
WORK     DS    CL500            Contains five 100-byte work areas.

You give no search argument for storage: VSAM knows the position of the key field in each record and extracts the key from it. Skip-sequential insertion differs from keyed-direct insertion in the sequence in which records may be inserted (ascending non-consecutive sequence versus random sequence) and in performance.

With skip-sequential insertion, if you insert two or more records into a control interval, VSAM does not write the contents of the buffer to direct-access storage until you have inserted all the records. With direct insertion, VSAM writes the contents of the buffer after you have inserted each record.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014