How do I create a LARGE dataset with CA Batch Processor?

Document ID : KB000012334
Last Modified Date : 14/02/2018
Show Technical Document Details
Introduction:

The .ALLOC command allocates data sets in a similar manner as the TSO ALLOCATE command. This command can appear anywhere within the Batch Processor input file and can be used to allocate the necessary data sets for applications and utilities to utilise. This command has many parameters one of which is the DSNTYPE. DSNTYPE specifies the format in which the data set is to be allocated.

Question:

How do I code a dataset allocation to create a LARGE dataset with CA Batch Processor or RC/Migrator?

Answer:

From R18 Release, the LARGE attribute was added to the DSNTYPE parm of the .ALLOC statement.

Here is a sample alloc statement to create a LARGE type dataset:

.ALLOC FI(PTIREC)         +
DA('YOUR.LARGE.DATASET')  +
TRACKS                    +
SPACE(100,100) RLSE       +
UNIT(SYSDA)               +
DSNTYPE(LARGE)

This is the syntax diagram from R18 ALLOC command for the DSNTYPE parm:

[DSNTYPE(HFS|LIBRARY|PDS|PIPE|LARGE)]/

The LARGE parm is specified to allocate a large format data set. These data sets are physical sequential data sets which are able to expand beyond the 65,535 tracks per volume limit.

This new parm can also be customised into an RC/Migrator MODEL such as a CA Fast Unload for example to produce code like this:

.ALLOC FI(SYSREC01)
      DA('authid.qual1.qual2.DATA')                                    +
       TRACKS                                                          +
       SPACE(2,3)                                                      +
       DSNTYPE(LARGE)                                                  +
       UNIT(SYSALLDA)                                                  +
       NEW CATALOG

Sample Model code showing how DSNTYPE can be used in a MODEL:

In the Symbols area add in a symbol:

DSNTYPE         LARGE

The Alloc statement would look like this:

.ALLOC FI(SYSREC01)                +
       DA('%DATADSN')              +
#IF(%DSNTYPE,EQ,LARGE)                 <----test for the value that is set in the symbols
       VOLSER(%VOLSER)             +
       TRACKS                      +
      #IF(%ALLOC2,LE,%TRKLIMIT)
       SPACE(%ALLOC1,%ALLOC2)      +
      #ELSE
       SPACE(%TRKLIMIT,%TRKLIMIT)  +
      #ENDIF
       DSNTYPE(%DSNTYPE)             +  <-------the %DSNTYPE will resolve to the value of DSNTYPE in the symbols
       UNIT(%UNIT)                 +
#ELSE
       VOLLIMIT(%VOLLIMIT)         +
       LABEL(%TINCR,%LABEL)        +
       VOLREF(%LASTUNLD)           +
       UNIT(%TAPE)                 +
       RETAIN                      +
#ENDIF
       DATACLAS(%DATACLAS)         +
       STORCLAS(%STORCLAS)         +
       MGMTCLAS(%MGMTCLAS)         +
       NEW CATALOG

Additional Information: