SASRX Options

SASRX Data Set Options

The SASRX options in the following table specify either z/OS data sets or UFS files or directories that are to be allocated for SAS. For each option, the name of a z/OS data set is a valid value.
  • Options with file in the UFS column accept either a z/OS data set name or a UFS filename as a value.
  • Options with dir in the UFS column accept either a z/OS data set name or a UFS directory name as a value, as in -work /tmp.
  • A value is recognized as a UFS file or directory name only if it includes at least one slash (/).
  • Options pertaining to input files accept multiple data sets to be concatenated.
  • Options pertaining to output files accept a size specification as an alternative to a data set name. For example, the default value for the WORK option is '200,200'. This means that a temporary WORK data set is allocated with the ALLOCATE option value of SPACE(200,200).
Note:
  • The MVS: and HFS: device type prefixes are not supported for these options.
  • Options that are marked “Set by installation procedure” in the following tables should not be changed.
SASRX Data Set Options
Option Name
Default Value
Description
UFS
AUTOEXEC
Name of the AUTOEXEC file.
file
CLOG
*
Specifications for the SAS console log file. If the value is numeric, it specifies the value for the SPACE operand for the allocation of the file. Space units are as specified by the UNITS option. If the value is a single letter, it specifies the SYSOUT class for the file. If SASRX is running in the background and the CLOG value is *, then the file is allocated to DUMMY. In all other cases, the value specifies the data set name or UFS filename for the file.
CONFIG
Name of the user configuration file to concatenate with system configuration files.
GDEVICEn
Name of the device catalog library; n can be any number from 0 to 9.
IMSLOG
Name of the IMS LOG file that is to be allocated to ddname IEFRDER. Used only with SAS/ACCESS Interface to IMS-DL/I.
INPUT
Name of the primary input file.
file
LOG
*
Specifications for the SAS log file. If the value is numeric, it specifies the value for the SPACE operand for the allocation of the file. Space units are as specified by the UNITS option. If the value is a single letter, it specifies the SYSOUT class for the file. If SASRX is running in the background and the LOG value is *, then the file is allocated to DUMMY. In all other cases, the value specifies the data set name or UFS filename for the file.
file
MAUTS
Set by installation procedure
Name of the system macro autocall library.
MTKMVS
Set by installation procedure
Name of the system TKMVSENV file.
file
PRINT
*
Specifications for the SAS procedure output file. If the value is numeric, it specifies the value for the SPACE operand for the allocation of the PRINT output file. If the value is a single letter, it specifies the SYSOUT class for the PRINT output. If SASRX is running in the background and the PRINT value is *, then the PRINT output file is allocated to DUMMY. In all other cases, the value specifies the data set name or UFS filename for the PRINT output file.
file
SAMPSIO
Set by installation procedure
Name of the SAS sample library.
SASAUTOS
Name of the user macro autocall library to concatenate with the system macro autocall library.
SASHELP
Set by installation procedure
Name of the SASHELP library.
SASMSG
Set by installation procedure
Name of the SAS message library.
SASUSER
&syspref.SAS9.SASUSER
Name of the SASUSER library. The name can contain symbolic strings for which values are substituted. The string &syspref will be replaced with the current prefix. If the current prefix is null, then it will be replaced with the user ID. The string &sysuid will be replaced with the user ID. The string &sysprefuid will be replaced with the user ID if the current prefix and the user ID are the same, or the current prefix is null. Otherwise, &sysprefuid will be replaced with the current prefix and user ID, separated by a period.
dir
SYSIN
SYSIN is an alias for the INPUT option.
SYSTEMCONFIG
Set by installation procedure
Name of the system configuration file.
file
SYSTCPD
Name of the SYSTCPD file.
TKMVSENV
Name of the user TKMVSENV file to concatenate with the system TKMVSENV file
WORK
'200,200'
Size of the temporary WORK library data set that is to be created. The size value is specified as an initial quantity and an increment quantity that are separated by a comma. This value can also be enclosed in single quotation marks. The size value can be prefixed with CYL, TRACKS, BLOCKS, or a block size value to indicate the unit of space to be used for the initial and increment quantities.
The WORK value can also be the name of an existing data set or the name of a UFS directory, instead of a size specification.
For specific details about the WORK option, see “How the WORK Option Controls the Size of the WORK Data Set”.
dir

How the WORK Option Controls the Size of the WORK Data Set

The WORK library data set is created by a TSO ALLOCATE command before SAS starts. If the WORK value is the name of an existing data set or the name of a UFS directory, then the following discussion does not apply. For more information about the TSO ALLOCATE command, see the TSO/E Command Reference from IBM.
The size value specified for the WORK option is used as the value of the SPACE operand of the ALLOCATE command.
The WORK option enables you to specify whether the data set should be allocated in units of cylinders, tracks, or blocks:
CYL
specifies that the size value is the number of cylinders (for example, -work cyl,'2,2').
TRACKS
specifies that the size value is the number of tracks.
BLOCKS
specifies that the size value is the number of blocks of length 4096. This is the default if no prefix is specified.
n
specifies that the size value is the number of blocks of length n such as -work 27648,'360,360'.
If the CYL or TRACKS value is specified, then the data set is allocated with the specified number of cylinders or tracks. SAS then sets the block size from the value of the BLKSIZE or BLKSIZE(devtype) option.
If the BLOCKS value is specified, or if only a size value is specified, the data set is allocated with the specified number of blocks of length 4096. SAS then sets a new block size from the value of the BLKSIZE or BLKSIZE(devtype) option.
If a numeric block size is specified, then the data set is allocated with the specified number of blocks of that size, and SAS uses that block size.
If the size value is specified in units of blocks, then the ALLOCATE command uses the ROUND operand, which rounds the library size up to an amount that corresponds to a whole number of cylinders. Therefore, the actual library size might be larger than the specified number of blocks implies.
There are some constraints on block size. Regardless of how the block size is specified, SAS might adjust it slightly to a valid value. If SAS changes the block size, it might slightly change the effective size of the library. For more information about these issues, see Direct Access Bound Libraries.
For suggestions about how to determine the amount of space required for the WORK library, see WORK Library and Other Utility Files.

Miscellaneous SASRX Value Options

Miscellaneous SASRX Value Options
Option Name
Default Value
Description
DBMSCONCAT
LAST
Specifies the DBMSLIB concatenation order; the value can be FIRST or LAST.
ENTRY
Set by installation procedure
Specifies the SAS entry point name: SAS, SASB, or SASLPA.
OPTIONS
Specifies that SAS system options can be specified indirectly with the OPTIONS option; this option is provided for compatibility with the SAS CLIST.
PARMCARD
1
Specifies the PARMCARD file size
PRINTBLOCKSIZE
264
Specifies the blocksize for the SAS procedure output file (PRINT file).
PRINTLRECL
260
Specifies the LRECL for the SAS procedure output file (PRINT file).
SORTLINK
*
Specifies whether to put the system sort library in TASKLIB. An asterisk (*) indicates No. A null value indicates Yes.
TSOCOMMANDS
A list of one or more TSO commands (for example, ALLOCATE commands) that are to be executed just before SAS starts. The list of commands must be enclosed in quotation marks or parentheses, and the commands must be separated by semicolons.
UNITS
CYL
Specifies the allocation unit for LOG, CLOG, PRINT, and PARMCARD.
WORKDEV
SYSDA
Specifies the value of the UNIT operand for the allocation of WORK.
WORKDEVCOUNT
1
Specifies the value of the UCOUNT operand for the allocation of WORK.

SASRX Load Module Library Options

The following SASRX options specify load module libraries that are to be concatenated in the TASKLIB. Each option accepts one or more library names.
SASRX Load Module Library Options
Option Name
Default Value
Description
DBMSLIBS
Name of the database load library to concatenate with SASLOAD.
LOAD
Name of the user or test fix load library to concatenate with SASLOAD.
SASLOAD
Set by installation procedure
Name of the SAS load library.
SORTLDSN
SYS1.SORT.LINKLIB
Name of the system sort library. This option is concatenated with SASLOAD only if SORTLINK has a null value.

SASRX Configuration File Options

SASRX configuration files contain option specifications. Each option specification must be in the same format that is valid for the SASRX command line, and the specifications can be on separate lines in the configuration files.
The configuration files can be either UFS files or MVS data sets. If the files are MVS data sets with fixed length 80-byte records, sequence numbers are ignored if they are present in columns 73–80. Otherwise, you can use all of the character positions. The files can include comments that begin with a slash followed by an asterisk (/*) and end with an asterisk followed by a slash (*/).
When SASRX configuration file options are specified on the SASRX command line, they follow the option priority rules for all command line options as described in Option Priority. If the same SASRX configuration file option is specified more than once, only the last specification is accepted, even if different configuration files are named.
SASRX configuration files can be nested by specifying a SASRX configuration file option within a SASRX configuration file. SASRX configuration file option specifications that are nested are handled differently from those that are entered on the command line. For each configuration file option specification, the contents of the named configuration file are logically inserted in place of the option and parsed in sequence before the rest of the configuration file is parsed (if the specified file has not been parsed previously). Therefore, each unique nested occurrence of a SASRX configuration file option is fully accepted.
Beginning with SAS 9.3, option specifications in SASRX configuration files can contain symbolic references that can be resolved from values that are specified with the SASRXSYSCFGPARMS or SASRXCFGPARMS options. These options are set by the installation procedure. For example, instead of hard-coding the names of the SASLOAD data sets, you can use a symbolic reference to code them as follows:
-SASLOAD('&hlq..LIBRARY'
         '&hlq..LIBE')
&hlq. is resolved from the following option:
–sasrxsyscfgparms(–hlq <your high-level qualifier>)
This specification reduces the number of configuration changes that you need to make if you change your high-level qualifier.
Symbolic references in SASRX configuration files can also be resolved from the value of a SASRX option that you previously specified. For example, to concatenate a system TKMVSENV file that is site–specific without modifying the shipped configuration, you could leave unchanged the shipped –MTKMVS value of the following statement:
-MTKMVS  '&hlq..TKMVSENV(TKMVSENV)'
and add the following statement in the REXXSITE member:
-MTKMVS ( &mtkmvs  '&hlq..MVS.TEMVSENV(CUSTOM)' )
The &mtkmvs symbolic reference is resolved from the value of the MTKMVS option that you previously specified, so the option specification that is finally resolved is the following:
-MTKMVS ('<high-level qualifier>.TKMVSENV(TKMVSENV)' 
 '<high-level qualifier>.MVS.TKMVSENV(CUSTOM)' ) 
The following table shows the SASRX configuration file options:
SASRX Configuration File Options
Option Name
Default Value
Description
SASRXSYSCONFIG
Set by the installation procedure
List of the names of the SASRX system configuration files.
SASRXCONFIG
Name or names of the SASRX user configuration file or files.
SASRXSYSCFGPARMS
Set by the installation procedure
Parameters for the SASRX config files.
SASRXCFGPARMS
Parameters for the SASRX config files.

SASRX Environment Variable Options

The SASRX environment variable options set the values of environment variables that are used internally by SAS.
The NETENCRALG option is a special case because SAS can use it as an environment variable and as a SAS system option. When NETENCRALG is specified as a SASRX option, both the NETENCRALG environment variable and the SAS system option are set.
The following list shows the SASRX environment variable options:
  • INHERIT
  • NETENCRALG
  • SASCLIENTPORT
  • SASDAEMONPORT

SASRX Switch Options

The following table shows the SASRX switch options. SASRX switch options for which only one option name is listed are off by default. SASRX switch options for which two option names are listed are on by default. Specify the option name prefixed with “NO” to turn the option off. For example, the STAE option is on by default, but the NOSTAE option overrides the default.
The SASRX switch options NOSTAE, NOSTAI, and NOSTAX are for problem diagnosis and should be used only at the direction of SAS Technical Support.
SASRX Switch Options
Option Name
Description
FLUSH
NOFLUSH
Flush input stack if error.
GO
Continue previous SAS session. When GO is specified, SASRX sets the NOWORKINIT SAS system option and takes no action on either specified or default values for the CONFIG, WORK, SASMSG, PRINT, SASHELP (if not concatenated), PARMCARD, SASUSER, SASAUTOS, and TKMVSENV SASRX options. In other words, the data sets that are controlled by these options were allocated by a previous SAS session and remain allocated.
LOGGER
NOLOGGER
Use the UNIX logger command to write error messages and output of the TRACE option to the system console. This option is useful for problem diagnosis when you are running SAS under the UNIX tso command in a spawned process. LOGGER is the default when you are running under the UNIX tso command. Otherwise, NOLOGGER is the default. If LOGGER is on by default, the logged output of TRACE does not include the command line options because they might include passwords. Specify -logger explicitly if you need to log command line options.
NOSASUSER
Do not allocate SASUSER data set.
SHARE
NOSHARE
Share subpool 78.
STACK
NOSTACK
Create new input stack.
STAE
NOSTAE
Trap main task abends.
STAI
NOSTAI
Trap subtask abends.
STAX
NOSTAX
Trap attentions.
SYSMDUMP
Allocate SYSMDUMP.
TRACE
Trace TSO commands issued by SASRX.

Alternate ddname SASRX Options

The following SASRX options enable you to use ddnames other than the default ddnames. Use of these options is discouraged, and they are available only for compatibility with the SAS CLIST.
Alternate ddname SASRX Options
Option Name
Default Value
Description
DDAUTOEX
SASEXEC
AUTOEXEC=ddname
DDCONFIG
CONFIG
CONFIG=ddname
DDLOG
SASLOG
LOG=ddname
DDPARMCD
SASPARM
PARMCARDS=ddname
DDPRINT
SASLIST
PRINT=ddname
DDSASAUT
SASAUTOS
SASAUTOS=ddname
DDSASHLP
SASHELP
SASHELP=ddname
DDSASMSG
SASMSG
SASMSG=ddname
DDSASUSR
SASUSER
SASUSER=ddname
DDSYSIN
SYSIN
SYSIN=ddname
DDWORK
WORK
WORK=ddname

Examples of Option Types and Specification Styles

Example of Recognizing a SAS System Switch Option

The SAS system option DMS is not a SASRX option. When you specify the DMS system option, SASRX assumes that it is a SAS system option. The following two examples are functionally equivalent:
sasrx o(dms)

sasrx dms
In the first example, o is recognized as a SASRX value option (abbreviation of OPTION), and dms is its value. In the second example, dms is not recognized as a SASRX option, and is therefore assumed to be a SAS system option.

Example Comparison of UNIX Style and CLIST Style Option Specification

The following SASRX examples are functionally equivalent. The first two examples illustrate new functionality in SASRX, and the third example illustrates compatibility with the SAS CLIST.
sasrx -linesize 72
is a UNIX style specification of the SAS system option LINESIZE with a value of 72.
sasrx linesize(72)
is a CLIST style specification of the same option as above.
sasrx o(linesize=72)
is a CLIST style specification of the SASRX option OPTION with a value of linesize=72.
The specification sasrx -linesize(72) is not valid because it is a UNIX style specification of a SAS system option that does not accept a value in parentheses.

Option Classification When UNIX Style and CLIST Style Are Mixed

Mixing UNIX style and CLIST style option specifications can result in errors. Therefore, you should use one style or the other exclusively. If you do mix styles, you need to understand how SASRX classifies options.
SASRX parses the command line from left to right. For each option keyword that SASRX encounters, it first classifies the option as either a SASRX option or a SAS system option, and then either as a value option or a switch option. Because definitions of SAS system options are not built into SASRX, classifying whether a SAS system option is a switch option or a value option is based on the context. If the next part of the command line is syntactically valid as an option value, the option is classified as a value option. Otherwise, the option is classified as a switch option.

Examples of Option Classification When UNIX Style and CLIST Style Are Mixed

The following examples illustrate how parsing a command line from left to right can lead to misclassification when a UNIX style specification for a switch SAS system option is followed by any CLIST style option specification.
sasrx dms -memrpt
is parsed correctly. dms is classified as a SAS system option because it is not a SASRX option. It is also classified as a switch option because it is followed by a keyword that is prefixed with a hyphen, which indicates the start of another option and not a value.
sasrx -dms memrpt
is not parsed correctly. Again, dms is classified as a SAS system option, but it is misclassified as a value option because memrpt appears to be its value, rather than another option. The command is parsed as sasrx -dms=memrpt.
sasrx -nosasuser memrpt
is parsed correctly because nosasuser is classified as a SASRX switch option rather than as a SAS system option. Therefore, SASRX uses its internal definition of this option to recognize it as a switch option, and it parses memrpt as a separate option and not as a value for nosasuser.

Quoting Option Specifications

An option value must be enclosed within quotation marks if blank spaces or punctuation marks are contained within the value. For example, in the option specification -sysparm="A B C", the option value A B C includes blank spaces, so it must be enclosed within quotation marks.
For SASRX options, a value that is a fully qualified data set name must be enclosed within single quotation marks. A data set name that is not enclosed in quotation marks is assumed to be unqualified. For SAS system options, quotation marks are optional for a single data set name, but they are required for data set names in a concatenated list.
For both SASRX options and SAS system options, quotation marks are optional for a single UFS filename. However, they are required for UFS filenames in a concatenated list, as in this example:
-autoexec=('~/tests/a1.sas' '~/tests/a2.sas')
When quotation marks are nested, each quotation mark at an inner level must either be doubled (for example, by replacing single quotation marks with two single quotation marks), or be replaced with a quotation mark of the opposite type (for example, by replacing single quotation marks with double quotation marks). The following examples show both of these methods:
-options 'news=(''sas.news(news)'' ''.my.sas(news)'')'
-options 'news=("sas.news(news)" ". my.sas(news)")'
Any SASRX option value can be enclosed in quotation marks even if the quotation marks are not required. Some SAS system options do not accept values that are enclosed in quotation marks.
For UNIX style option specifications, there are no requirements for quotation marks other than those described above.
For CLIST style option specifications, to meet backward-compatibility requirements, SASRX requires the same rules for quotation marks as the SAS CLIST. The following rules for quotation marks apply in addition to the requirements described:
  • CLIST style option specifications require that the single quotation marks that indicate a fully qualified data set name must be doubled.
    In the following example, to indicate that prefix.my.sas is fully qualified, it must be enclosed in single quotation marks (for example, 'prefix.my.sas'). The quoting rule requires these quotation marks to be doubled (for example, ''prefix.my.sas''). Because the option value contains quotation marks, the entire value must then be enclosed in single quotation marks:
    input('''prefix.my.sas''')
    The following example illustrates that the first two levels of quoting are for the fully qualified data set names, and that the third level of quoting is for the entire option value:
     input(' ''prefix.prog1.sas'' ''prefix.prog2.sas'' ')
    The following example is not valid because single quotation marks indicate an unqualified data set name in a CLIST style specification:
    input('prefix.my.sas')
  • In a CLIST style specification of the OPTIONS option, quotation marks that are doubled because of nesting must be doubled a second time. The following example is correct:
    options('news=''''sas.news(news)'''' nodms')
    The following example is not correct:
    options('news=''sas.news(news)'' nodms')

Additional Examples of Quoting

Example 1

The following two UNIX style option specifications:
sasrx -input 'prefix.my.sas'
sasrx -input=('prefix.my1.sas' 'prefix.my2.sas')
are equivalent to the following two CLIST style option specifications:
sasrx input('''prefix.my.sas''')
sasrx input('''prefix.my1.sas'' ''prefix.my2.sas''')
The following option specifications are equivalent, and illustrate that no quotation marks are required for a data set name that is not fully qualified:
sasrx -input my.sas
sasrx input(my.sas)

Example 2

All of the following option specifications are equivalent. The first example illustrates that SAS system options do not require a data set name to be enclosed in quotation marks. The second example illustrates that SAS system options allow data set names to be enclosed in quotation marks. It also illustrates that alternating single and double quotation marks makes a nested quoted string more readable. The third example illustrates that when quotation marks of the same type are nested, the inner level of quotation marks must be doubled. The fourth example illustrates that internal single quotation marks must be doubled twice in a CLIST style specification of the OPTIONS option.
sasrx -options "news=sas.news(news) nodms"
sasrx -options "news='sas.news(news)' nodms"
sasrx -options 'news=''sas.news(news)'' nodms'
sasrx options('news=''''sas.news(news)'''' nodms')

Example 3

All of the following option specifications are equivalent:
sasrx -sysparm "Don't use too many quotes"
sasrx -options (sysparm="Don't use too many quotes")
sasrx -options "sysparm='Don''t use too many quotes'"
sasrx o('sysparm="Don''''t use too many quotes"')

Example 4

When you use the explicit mode of invoking the REXX exec, the entire parameter string must be enclosed in single quotation marks. Any internal single quotation marks must be doubled one more time than would be required otherwise.
exec rexx.exec(sasrx) '-autoexec ''prefix.my.sas(auto)'' -nodms' exec
exec rexx.exec(sasrx) 'o(''autoexec=''''''''prefix.my.sas(auto)'''''''' 
     nodms'')' exec

Option Priority

The order in which options are passed to SAS is not necessarily the same as the order in which they are specified on the SASRX command line. When an option is specified more than once, the effective specification of the option is the last one that is passed to SAS. The options string that is passed to SAS contains, in the following order:
  • option values generated by SASRX
  • the list of directly specified SAS system options in the order in which they were specified
  • the value of the OPTIONS option
Options specified in SASRX configuration files are ordered following the same rules. However, the entire set of options from SASRX configuration files has lower priority than any option from the command line. The entire set of options from the system SASRX configuration file has lower priority than the set of options from the user SASRX configuration file.

Option Priority Example

The following SASRX command:
sasrx o(nodms) dms input(my.sas)
yields the following options parameter that is passed to SAS:
SYSIN=SYSIN DMS nodms
In the previous options parameter:
SYSIN=SYSIN
is generated internally from the INPUT option.
DMS
is a directly specified SAS system option.
nodms
is the value of the OPTIONS option.
In this example, the effective option is nodms instead of dms, even though dms is specified last in the SASRX command.