# FREE Command

## Syntax:

    FREE keyword [keyword...]

## Keywords:

ALL
  specifies that all data set and ddname allocations are to be freed. Reserved ddnames (such as STEPLIB) and data sets that are open will not be freed.
CATALOG
  specifies that the data set is to be cataloged after it is freed. See KEEP, DELETE, and UNCATALOG.
DATASET(dsname-list)
  specifies the data set or list of data sets to be freed. A fully qualified data set name is enclosed in single quotes. If you omit the quotes, the current userid will be appended to the front. Member names and generation numbers must be enclosed in parentheses. DSNAME is an alias for this keyword.
DDNAME(name-list)
  specifies the list of 1 to 8 character names that are to be freed. FILE is an alias for this keyword.
DELETE
  specifies that the data set is to be deleted after it is freed. See KEEP, CATALOG, and UNCATLOG keywords.
DSNAME(dsname-list)
  See DATASET keyword.
FILE(name-list)
  See DDNAME keyword.
HOLD
  specifies that the SYSOUT data set is to be placed on the HOLD queue when the data set is freed. See NOHOLD.
KEEP
  specifies that the data set is to be kept by the system after it is freed. See DELETE, CATALOG, and UNCATALOG keywords.
NOHOLD
  specifies that the SYSOUT data set is not to be place on the HOLD queue when it is freed. See HOLD.
SPIN({UNALLOC | NO})
  specifies when a SYSOUT data set is available for printing. UNALLOC indicates the data set can be printed after the file is freed. NO indicates that the data set can be printed at the end of the current step.
SYSOUT(class)
  overrides the SYSOUT class specified at allocation. You must specify the one letter class identifier. Output will be sent to the job entry subsystem. You can control how this data set will be processed by specifying additional SYSOUT-related keywords such as HOLD or SPIN.
UNCATALOG
  specifies that the data set is to be removed from the catalog after it is freed. The system will, however, still keep the data set. See KEEP, DELETE, and CATALOG keywords.

## Module Name:

SWXARXT, SWXDYNF

## Service Description:

FREE is a host command that is executed under the REXXTOOL host command environment. This command is used to:

- Unallocate data sets and ddnames. Data sets and/or ddnames can be freed individually, or you can request that all eligible data sets and files be freed.
- Change certain allocation attributes such as SYSOUT class and HOLD status.

Notes:

1. Keywords must be separated by one or more blanks (do not use commas!).
2. Some FREE keywords accept lists of values (this is indicated in each keyword's description). When a list is coded, the values must be separated by blanks, commas, or both.

## Returned Information:

The FREE command returns a return code in the REXX RC variable. Some return codes are common to all REXXTOOL host commands. These are documented under the topic "ADDRESS REXXTOOL".

The specific positive RC values returned by the FREE command are:

0
  Execution successful.
4
  The error was due to the unavailability of a resource, a problem with the current environment, or a routine failure. The S99INFO variable will contain additional information.
8
  An installation routine denied the request.
12
  Invalid parameter list error. This error can occur when you specify keywords that are mutually exclusive or when a required keyword is missing.

In addition, the following REXX variables are created by the FREE command:

S99ERROR
  An error reason code in printable hexadecimal format. The values this variable can take, and their meanings are documented in MVS/ESA Authorized Assembler Programming Guide, GC28-1645 .
S99INFO
  An error information code in printable hexadecimal format. The values this variable can take, and their meanings are documented in MVS/ESA Authorized Assembler Programming Guide, GC28-1645 .
S99ERSN
  An SMS reason code in printable hexadecimal format. The values this variable can take, and their meanings are documented in MVS/ESA Authorized Assembler Programming Guide, GC28-1645 .
S99MSG.
  An array that contains dynamic allocation messages. S99MSG.0 contains the number of messages returned. S99MSG.1 contains the first message and S99MSG.n contains the nth message. Note that messages are always returned, even if OPTIONS NOMSGS is in effect. The severity level of the messages returned is controlled by the MSGLEVEL keyword.

## Examples:

1. Free an existing allocation for ddname INDATA:

       address rexxtool
       "free fi(indata)"

2. Free a SYSOUT data set and route it to a different SYSOUT class:

       address rexxtool
       "free fi(out) sysout(a)"

© Copyright 1998 by Open Software Technologies, Inc.