Previous Topic
Table Of Contents
Parent Topic
Next Topic

The SWSALLOC Function

Related Topics

Web Server API Function Index


May be used in Shadow/REXX
May be used from Other REXX Interpreters
High-level Language Interface available

The REXX-language SWSALLOC built-in function can be used to dynamically allocate datasets. Datasets allocated using the SWSALLOC built-in function should use the SWSFREE built-in function.

Note: Because of comparable functionality of SWSALLOC to IBM's ALLOC function, this documentation is similar to IBM's TSO/E online help.

SWSALLOC Syntax

The format of this command is similar in features and functions to the TSO/E ALLOC command.

If you do not specify a DDN parameter, a system generated DDNAME will be created and the variable ALLOC.DDNAME will contain the generated DDNAME. The system generated DDNAME will be in the form of SYS followed by a five (5) digit number.

If an error occurs, the REXX variable, ALLOC.MESSAGE, will be populated with a descriptive message. The DAIR return code may be obtained from ALLOC.INFOCODE and the reason code may be obtained from the ALLOC.REASON.

The general form for a REXX-language invocation of SWSALLOC is:


   rc = SWSALLOC("STRING")

DSN(DSNAME) Specifies the name of the dataset to be allocated. You may only specify a single dataset name.

Dataset names must be fully qualified as there will be no prefix appended to the supplied name.

Note: This is a required parameter unless you specify a PATH parameter.

DDN(DDNAME) Specifies the DDNAME to associate with the allocated file. If you do not specify one, one will be dynamically generated for you. The generated DDNAME may be obtained from the variable ALLOC.DDNAME.
DEST(DESTINATION/NODE USERID) Remote destination or a User at a specified node to which SYSOUT data sets are to be routed.
DISP(STATUS NORMAL ABNORMAL) Specifies the disposition of file upon normal and abnormal (conditional) session termination.

Status disposition: Indicates the disposition of the file upon normal session termination.

  • SHR = Dataset exists and exclusive control is not required
  • OLD = Dataset exists and exclusive control is required
  • MOD = Additions are to be made to the dataset
  • NEW = Dataset is to be created

Normal termination disposition: Indicates the disposition of the file upon normal session termination.

  • UNCATALOG = Specifies that the file should be uncatalogued
  • CATALOG = Specifies that the file should be catalog
  • KEEP = Specifies that the file should be kept.
  • DELETE = Specifies that the file should be deleted.

Abnormal (conditional) termination disposition: indicates the disposition of the file upon abnormal (conditional) session termination.

  • UNCATALOG = Specifies that the file should be uncatalogued
  • CATALOG = Specifies that the file should be catalog
  • KEEP = Specifies that the file should be kept.
  • DELETE = Specifies that the file should be deleted.
SYSOUT(CLASS) Dataset is to be a system output dataset
VOLUME(SERIAL(s)) Volume(s) on which the dataset resides or is to reside.
BLKSIZE(VALUE) Blocksize

Must be 0 to 32760

BLOCKS(PRIMARY SECONDARY) Space is to be allocated by BLOCKS

Note: Requires the BLKSIZE parameter.

TRACKS(PRIMARY SECONDARY) Space is to be allocated by tracks
CYLINDERS(PRIMARY SECONDARY) Space is to be allocated by cylinders
DIR(INTEGER) Number of Directory Blocks required
LIKE(MODEL_DATASET_NAME) The model dataset is a dataset whose attributes are to be used to allocate a new dataset.

The following attributes are copied from the model dataset:

  • Primary and Secondary space quantities (SPACE)
  • Directory space quantity (DIR)
  • Dataset Organization (DSORG)
  • Record Format (RECFM)
  • Optional Services Codes (OPTCD)
  • Logical Record Length (LRECL)
  • Key Length (KEYLEN)
  • Blocksize (BLKSIZE)
  • Volume Sequence Number (VSEQ)
  • Expiration Date (EXPDT)

If SMS is active the following attributes are not copied:

  • Optional Services Codes (OPTCD)
  • Blocksize (BLKSIZE)
  • Volume Sequence Number (VSEQ)
  • Expiration Date (EXPDT)

Any attribute(s) of the model data set can be overridden by explicitly specifying the appropriate keyword(s) on the allocate command.

HOLD Dataset is to be placed on a hold queue upon de-allocation
UNIT(UNIT_TYPE) Device type to which a file or data set is to be allocated.
UCOUNT(COUNT) Maximum number of devices to which a file or data set may be allocated.
PARALLEL One device mounted for each volume specified on the volume parameter
MAXVOL(VOL_COUNT) Maximum number of volumes a data set may use
PRIVATE A volume which is not permanently resident or reserved is to be assigned the private volume use attribute.
RELEASE Unused space is to be deleted when the data set is closed.
VSEQ(VOL_SEQ_NUM) Which volume of a multi-volume data set to begin processing with.
ROUND Allocated space should be equal to one or more cylinders.
BFALN(VALUE) Buffer boundary alignment

Legitimate values are:

  • D = Double word boundary
  • F = Full word boundary
BFTEK(VALUE) Type of buffering

Legitimate values are:

  • A = Automatic record area construction
  • D = Dynamic buffering
  • E = Exchange buffering
  • R = Record buffering
  • S = Simple buffering
BUFL(INTEGER) Buffer length

Must be 0 to 32760

BUFNO(INTEGER) Number of buffers

Must be 0 to 255

BUFOFF(INTEGER) Block prefix length

Must be 0 to 99

DSORG(VALUE) Dataset Organization

Legitimate values are:

  • DA = Direct Access
  • DAU = Direct Access Unmovable
  • PO = Partitioned Organization
  • POU = Partitioned Organization Unmovable
  • PS = Physical Sequential
  • PSU = Physical Sequential Unmovable
EROPT(VALUE) Error Option

Legitimate values are:

  • ABE = Abnormal End-Of-Task
  • ACC = Accept block causing error
  • SKP = Skip block causing error
KEYLEN(INTEGER) Key length

Must be 0 to 255

LIMCT(INTEGER) Number of blocks or tracks to be searched for a block or available space

Must be 0 to 32760

LRECL(VALUE) Logical Record Length

Legitimate values are:

  • 0 to 32760
  • Character "X"
  • 1 to 16384 with K-multiplier

Where:

  • X = LRECL value exceeds 32756 for variable length spanned records processed under QSAM
  • K = LRECL value is a multiplier of 1024
NCP(INTEGER) Maximum number of read or write macros before a check

Must be 0 to 255

If you are running TSO/E on MVS/ESA SP 4.2.2 or earlier, the maximum value is 99.

OPTCD(VALUE) Optional Services Codes

Legitimate values are:

  • A = Actual device addresses presented in read and write macro instructions
  • B = End-Of-File recognition disregarded for tapes
  • C = Chained scheduling is to be used
  • E = Extended search for block or available space
  • F = Feedback may be requested in read and write macro instructions
  • Q = ANSI translate
  • R = Requests relative block addressing
  • T = Requests user totaling facility
  • W = Requests a validity check for write operations on direct access devices
  • J = Indicates that the character after the carriage control character is to be interpreted as a table reference character
PROCOPT(VALUE) File processing option

Legitimate values are:

  • INPUT = Specifies that the data set is to be processed for input only
  • OUTPUT = Specifies that the data set is to be processed for output only
RETPD(INTEGER) Dataset retention period (NNNN)
FCB(IMAGE_ID) Forms Control Image (Buffer) to be used to print an output data set.

IMAGE_ID specifies a 1 to 4 alphameric or national characters which identify the image to be loaded into the Forms Control Buffer.

COPIES(NNN) Number of copies of a dataset to print.

An integer from 1 to 255.

COPYGROUPS(GROUP_VALUE1 GROUP_VALUE2 ...GROUP_VALUE8)) Used with the COPIES option to specify the number of times each page is to be printed. Up to eight group values may be specified with a sum not exceeding the number specified in the COPIES parameter.
PROTECT Specifies that the DASD data set or tape volume containing a tape data set is to be RACF protected.
ACCODE(VALUE) ANSI accessibility code (A through Z).
OUTBIN(VALUE) Specifies the output bin on the IBM 3800 laser printer.

Legitimate values are:

  • BURST = Specifies that the data set should be sent to the burster/trimmer bin on the IBM 3800 laser printer.
  • NOBURST = Specifies that the data set should be sent to the continuous feed bin on the IBM 3800 laser printer.
CHARS(CHAR_TABLE1 ...CHAR_TABLE4) Specifies the character table that is to be used for printing. 1 to 4 character tables may be specified.
FLASH(NAME COPIES) Provides the ability to print a form, grid, design, or constant data on paper as it is is being processed through the 3800 printer.

Legitimate values are:

  • NAME - Specifies the name of the forms overlay to be used.
  • COPIES - Specifies the number of copies on which the forms overlay is to be used.

Note: Separate parameters by spaces. Do not use commas.

FORMS(VALUE) Specifies the specific print form to be mounted.
OUTDES(OUTPUT_DESCRIPTOR_NAME ...) Specifies a list of output descriptors that will be associated with the sysout data set. These descriptors are created by //OUTPUT JCL statements in the Shadow OS/390 Web Server or Shadow Direct procedure.

Note: Separate parameters by spaces. Do not use commas.

UCS(UCS_NAME) Specifies the universal character set (font name) to be used when processing a print data set in the absence of a 'CHARS' specification.
WRITER(EXTERNAL_WRITER_NAME) Specifies the member name of a program in the system library that is to write the sysout data set. This program will be used instead of JES2 or JES3.
STORCLAS(STORAGE_CLASS) The name of the storage class which is used to specify the service level for the data set.
MGMTCLAS(MANAGEMENT_CLASS) The management class which is used to specify management criteria for the data set.
DATACLAS(DATA_CLASS) The name of the data class which is used as an allocation template for the data set.
RECFM(OPTION1 OPTION2 ...OPTION5) Record Format

Legitimate option values are:

  • A = ASA PRINTER CHARACTERS
  • B = BLOCKED
  • D = VARIABLE LENGTH ASCII RECORDS
  • F = FIXED
  • M = MACHINE CONTROL CHARACTER
  • S = STANDARD BLOCKS OR SPANNED
  • T = TRACK OVERFLOW
  • U = UNDEFINED
  • V = VARIABLE

NOTE: Combinations of these options may be selected. Each selection must be separated by a space. Review your MVS JCL Reference Manual for legitimate combinations.

RECORG(ORGANIZATION) Dataset Organization

Legitimate values are:

  • KS = VSAM Cluster (KSDS)
  • ES = VSAM Entry Sequenced (ESDS)
  • RR = VSAM Relative Record (RRDS)
  • LS = VSAM Linear Space (LDS)
KEYOFF(OFFSET) Key Offset.
REFDD(DDNAME) The DDNAME of a data set whose properties specified on the JCL statement and in the data class are to be used to allocate the new data set.

The following properties are copied from the referenced DD statement:

  • Dataset Organization (RECORG)
  • Size
  • Directory blocks
  • Logical Record Length (LRECL)
  • Record Format (RECFM)
  • Key Length (KEYLEN)
  • Key Offset (KEYOFF)
SECMODEL(MODEL_NAME) The name of a "model" profile which RACF should use in creating a discrete profile for the data set.
DSNTYPE(DSNTYPE) DATA SET NAME TYPE

Legitimate values are:

  • LIBRARY = A partitioned data set in PDSE format
  • PDS = A partitioned data set in record format
  • PIPE = A data pipe
  • HFS = An HFS (Hierarchical File System) file
RLS(RLS_VALUE) Record Level Sharing

Legitimate values are:

  • CR = Consistent Read
  • NRI = No Read Integrity
FILEDATA(VALUE) How the system converts between record format and byte-stream format. Currently meaningful only if path also is coded and the program uses BSAM or QSAM.

Legitimate values are:

  • TEXT = Data consists of records that are separated by a delimiter. Currently it is EBCDIC newline (x'15').
  • BINARY = Data does not contain record delimiters. In the current release the default is binary when creating the file. If you do not code PATHOPTS(OCREATE), then FILEDATA temporarily overrides the creation value.
PATH(PATHNAME) Identifies an HFS file.

A pathname consists of the names of the directories from the root to the file being identified, and then the name of the file. The form is /NAME1/NAME2/.../NAMEn.

A pathname begins with a slash (/). The system treats any consecutive slashes like a single slash.

The pathname can be 1 to 250 characters. A name can be 1 to 249 characters.

Consists of printable characters from x'40' through x'FE'.

A pathname is case sensitive. Thus, /usr/joe and /USR/joe define two different files.

Note: This is a required parameter unless you specify a DSN parameter.

PATHDISP(NORMAL ABNORMAL) Specifies the disposition of an HFS file upon normal and abnormal (conditional) session termination.

Normal termination disposition: Indicates the disposition of the HFS file upon normal session termination.

  • KEEP = Specifies that the file should be kept.
  • DELETE = Specifies that the file should be deleted.

Abnormal (conditional) termination disposition: indicates the disposition of the HFS file upon abnormal (conditional) session termination.

  • KEEP = Specifies that the file should be kept.
  • DELETE = Specifies that the file should be deleted.

Note: The default for datasets allocated with the PATH parameter is PATHDISP(KEEP KEEP).

PATHMODE(FILE_ACCESS_ATTRIBUTE ...) Specifies the file access attributes when the PATHOPTS operand specifies OCREAT.

A FILE_ACCESS_ATTRIBUTE is one of the following:

  • SIRUSR
  • SIWUSR
  • SIXUSR
  • SIRWXU
  • SIRGRP
  • SIWGRP
  • SIXGRP
  • SIRWXG
  • SIROTH
  • SIWOTH
  • SIXOTH
  • SIRWXO
  • SISUID
  • SISGID

You may specify up to 14 FILE_ACCESS_ATTRIBUTES.

The system treats duplicate specifications of FILE_ACCESS_ATTRIBUTES as a single specification.

PATHOPTS(FILE_OPTION ...) Specifies the file access and status used when accessing a file specified on the path operand. A file_option can be in the access group or the status group and is one of the following:

Valid Access Groups are:

  • ORDONLY
  • OWRONLY
  • ORDWR

Valid Status Groups are:

  • OAPPEND
  • OCREAT
  • OEXCL
  • ONOCTTY
  • ONONBLOCK
  • OSYNC
  • OTRUNC

You can specify up to 8 FILE_OPTIONs.

The system treats duplicate specifications of FILE_OPTIONs as a single specification.

Code the FILE_OPTIONs as follows.

  • Specify only one FILE_OPTION from the access group. if you specify more than one access group file-option, the system ignores them and uses ORDWR as the option.
  • Specify up to 7 FILE_OPTIONs from the status group. You may specify any combination of FILE_OPTIONs from the status group.
SEGMENT(INTEGER) The number of pages produced for a sysout data set before they are processed for printing.

Must be 1 to 99999

SPIN(VALUE) Specifies when a sysout data set is printed.

Legitimate values are:

  • UNALLOC = Makes the dataset available for printing immediately after the dataset is unallocated from an explicit unallocation or at the end of the session.
  • NO = Makes the dataset available for printing at the end of the session.
MESSAGE(VALUE) Specifies whether or not to display dynamic allocation failure messages on the system console. This value overrides the user-specifiable system default (See FILEMESSAGES).

Legitimate values are:

  • YES = Display dynamic allocation failure messages
  • NO = Do not display dynamic allocation failure messages
MOUNT(VALUE) Specifies whether to allow or not allow a volume to be mounted in order to satisfy a dynamic allocation request. This value overrides the user-specifiable system default. (See FILEMOUNT)

Legitimate values are:

  • YES = Allow the system to mount a volume to satisfy a dynamic allocation request.
  • NO = Do not allow the system to mount a volume to satisfy a dynamic allocation request.
RECALL(VALUE) Specifies whether to allow or not allow the system to recall a migrated dataset in order to satisfy a dynamic allocation request. This value overrides the user-specifiable system default. (See FILERECALL)

Legitimate values are:

  • YES = Allow the system to recall datasets to satisfy a dynamic allocation request.
  • NO = Do not allow the system to recall datasets to satisfy a dynamic allocation request.

Top

File Access Attributes for PATHMODE parameter

Sub-Parameter Definition
SIRUSR Specifies permission for the file owner to read the file.
SIWUSR Specifies permission for the file owner to write the file.
SIXUSR Specifies permission for the file owner to search, if the file is a directory, or to execute, for any other file.
SIRWXU Specifies permission for the file owner to read, write, and search, if the file is a directory, or to read, write, and execute, for any other file. this value is the bit inclusive or of SIRUSR, SIWUSR, and SIXUSR.
SIRGRP Specifies permission for users in the file group to read the file.
SIWGRP Specifies permission for users in the file group to write the file.
SIXGRP Specifies permission for users in the file group to search, if the file is a directory, or to execute, for any other file.
SIRWXG Specifies permission for users in the file group to read, write, and search, if the file is a directory, or to read, write, and execute, for any other file. This value is the bit inclusive or of SIRGRP, SIWGRP, and SIXGRP.
SIROTH Specifies permission for users in the file other class to read the file.
SIWOTH Specifies permission for users in the file other class to write the file.
SIXOTH Specifies permission for users in the file other class to search, if the file is a directory, or to execute, for any other file.
SIRWXO Specifies permission for users in the file other class to read, write, and search, if the file is a directory, or to read, write, and execute, for any other file. this value is the bit inclusive or of SIROTH, SIWOTH, and SIXOTH.
SISUID Specifies that the system set the user id of the process to be the same as the user id of the file owner when the file is run as a program.
SISGID Specifies that the system set the file group of the process to be the same as the group id of the file owner when the file is run as a program.

Top

File Option descriptions for PATHOPTS parameter

Sub-Parameter Definition
ORDONLY Specifies that the program can open the file for reading.
OWRONLY Specifies that the program can open the file for writing.
ORDWR Specifies that the program can open the file for reading and writing. Do not use this option for a FIFO special file; the result is undefined.
OAPPEND Specifies that the system sets the file offset to the end of the file before each write, so that data is written at the end of the existing file.
OCREAT Specifies that the system is to create the file. If the file already exists, the operation will fail if OEXCL is specified, and will open the existing file if OEXCL is not specified.
OEXCL Specifies that, if the file already exists, then HFS open file processing will fail.

Note: The system ignores OEXCL if OCREAT is not also specified.

ONOCTTY Specifies that, if the patterning of the file will not make the terminal device the controlling a terminal device, then op
ONONBLOCK Specifies the following, depending on the type of file:

For FIFO special files:

  • With ONONBLOCK specified and ORDONLY access: an open() function for reading-only returns without delay.
  • With ONONBLOCK not specified and ORDONLY access: an open() function for reading-only blocks (waits) until a process opens the file for writing.
  • With ONONBLOCK specified and OWRONLY access: an open() function for writing-only returns an error if no process currently has the file open for reading.
  • With ONONBLOCK not specified and OWRONLY access: an open() function for writing-only blocks (waits) until a process opens the file for reading.

For character special files:

  • If ONONBLOCK is specified: an open() function returns without blocking (waiting) until the device is ready or available. Device response depends on the type of device.
  • If ONONBLOCK is not specified: an open() function blocks (waits) until the device is ready or available. Specification of ONONBLOCK has no other effects.
OSYNC Specifies that the system is to move data from buffer storage to disk (or other permanent storage) before returning control from a callable service that performs a write.
OTRUNC Specifies that the system is to truncate the file length to zero if all of the following are true:
  • The file specified on the path operand exists
  • The file is a regular file
  • The file successfully opened with ORDWR or OWRONLY

The system does not change the mode and owner. OTRUNC has no effect on FIFO special files or terminal device files.

 

SWSALLOC Examples


 
    To allocate an input file with shared control:
 
    rc = SWSALLOC(DSN(SWS.INPUT.FILE) DISP(SHR))
 
 
    To allocate a new file as output
 
    rc = SWSALLOC("DSN(SWS.OUTPUT.FILE) DDN(OUTFILE)
                   DISP(NEW CATALOG DELETE) SPACE(1 5) TRACKS
                   LRECL(80) BLKSIZE(3120) RECFM(F B)
                   DSORG(PS)")
 
 
 
    To allocate a sysout file:
 
    rc = SWSALLOC(DDN(PRTFILE) SYSOUT(A) DEST(RMT3))
 

Top