Starting SAS with SASRX |
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.
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 |
* | 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, 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 allows you to specify whether the data set should be allocated in units of cylinders, tracks, or blocks:
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 |
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.
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.
The following table shows the SASRX configuration file options.
Option Name | Default Value | Description |
---|---|---|
SASRXSYSCONFIG | Customized by site | Name of the SASRX system configuration file |
SASRXCONFIG |
|
Name of the SASRX user configuration file |
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.
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. |
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.
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 |
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.
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.
is a UNIX style specification of the SAS system option LINESIZE with a value of 72.
is a CLIST style specification of the same option as above.
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.
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.
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.
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, but 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 |
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)
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, and 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')
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"')
When you use the explicit mode of invoking the REXX exec, the entire parameter string must be enclosed in single quotation marks, which requires that 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. |
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.