Previous Page | Next Page

Initializing and Configuring SAS Software

SAS Software Files


Overview of SAS Software Files

Configuration files (described in Configuration Files) and SASUSER files (described in SASUSER Library) are only two of several SAS software files that are automatically identified to your session by either the SAS CLIST or SASRX exec (under TSO) or the SAS cataloged procedure (in batch). This section describes several other SAS software files that are significant to SAS users under z/OS.

For brief descriptions of all the SAS software files that are frequently used by the SAS CLIST, the SASRX exec, or by the SAS cataloged procedure, see SAS Software Files.


WORK Library and Other Utility Files


Overview of the Work Library

The WORK library is a special-purpose SAS library that contains temporary files, including certain types of utility files that are created by SAS as part of processing the current SAS session or job. The WORK library is also the default location for one-level member names and user settings. One-level member names are member names that are specified without a libref. They reside in the WORK library unless a USER library has been identified. See USER Library for more information about USER libraries. In a single-user SAS session or job, if the SASUSER library is not assigned, the WORK library also houses temporary user settings in files, such as the PROFILE catalog and the SAS registry item store .

In a single-user SAS session or job, the WORK library is typically created at the beginning of a SAS session or job and deleted at the end. Multi-user SAS servers also create a WORK library (referred to as a client WORK library) for each client that connects to the server. Client WORK libraries contain the temporary files created as part of the processing done by the server on behalf of the client. The server creates a distinct client WORK library for each client so that files used by one client are not commingled with files belonging to another client. These libraries are created when the client establishes a connection with the server, and they exist until the client disconnects.

The WORK library is always processed by the BASE engine, which requires that you must use one of the following library implementation types for WORK:

The advantages of each of these library implementation types for use with the WORK library are detailed in the following topics, along with usage notes. See Library Implementation Types for Base and Sequential Engines for information about each type of library.

Note:   For multi-user SAS servers, each client WORK library that is created has the same implementation type as the WORK library for the SAS server that is specified at server initialization.  [cautionend]


Direct Access Bound Library

Assigning a direct access bound library for the WORK library is generally the best choice for single-user SAS sessions or jobs. At most installations, the default WORK library allocation provided by the SASRX exec, SAS CLIST, or JCL procedure is appropriate for a wide class of jobs. Users can usually increase the allocation to provide additional space without assistance from a systems administrator.

Direct access bound libraries have a maximum size to which they can grow. If the WORK library becomes full, an attempt to create or extend a member will fail, which usually results in a message similar to this one:

ERROR: Write to WORK <member>.<type> failed. File is full and might be damaged.

In most cases, SAS processing cannot succeed if the WORK library becomes full. However, allocating an excessive amount of space for the WORK library ties up disk space that could be used by other jobs. Therefore, some advance planning is often necessary for large SAS jobs to ensure that the appropriate amount of space is allocated to the WORK library. Often, the best way to determine whether you have enough space is to run the SAS job or session to perform a typical processing job, and then measure the amount of WORK library space that the job uses. You can measure the required space by including the following statement at the end of your job:

proc datasets lib=work; quit; run;

In the information that is listed for the library directory, the statistic "Highest Formatted Block" represents the largest number of blocks in simultaneous use at any time during the SAS session. Divide this statistic by the "Blocks per Track" statistic to convert it to the maximum number of disk tracks required for the WORK library during this session. Using this information, you can derive the primary and secondary space allocation for the WORK library data set with the following method:

  1. Select a primary allocation that is approximately equivalent to the minimum expected space utilization.

  2. Select a secondary allocation that allows sufficient growth up to the maximum expected space utilization.

See General Guidelines for more information.

Note:   

  [cautionend] The size of the WORK library for a single-user SAS session or job is controlled by the space parameters that you specify on the allocation of the DDNAME WORK. See Starting SAS with SASRX for the WORK option that you use to specify the primary and secondary space allocations for WORK.

When WORK resides in a direct access bound library, the size of the client WORK library is controlled with the values of the following SAS system options that are specified when the SAS server environment is initialized:

FILESPPRI

primary space allocation

FILESPSEC

secondary space allocation

FILEUNIT

unit of space

These same values are used for creating each client WORK library. Therefore, it is necessary to specify values that are appropriate for all client processing that is performed by the server. This limitation can be avoided by using a UFS library for WORK.


UFS Library

Placing the WORK library in a UFS directory eliminates the need to specify the amount of space that is allocated to the WORK library (including client WORK libraries). This feature is particularly valuable for multi-user SAS servers because the space requirements for individual client WORK libraries might vary widely and be difficult to predict. When you place your WORK library in a UFS directory, each WORK library uses only the space it actually needs for the files that are created, and this space is drawn from a large pool. A pool consists of the free space available in the UFS file system in which the directory is located.

To use UFS libraries, follow these guidelines:

For more information about UFS, see HFS, UFS, and zFS Terminology.

Hiperspace Library

Hiperspace libraries reside in memory, so they can be used to avoid I/O for WORK library processing. Using a hiperspace library reduces the elapsed time that is required for SAS processing that uses the WORK library. In a multi-user SAS server environment, the space for all client WORK libraries is drawn from a single pool for the server that is shared by all of the clients that are using the server. This pool provides more flexibility in space allocation than when you use direct access bound libraries.

Note:   Some installations might place limits on hiperspace use. Consequently, using hiperspace for WORK might be more appropriate for SAS jobs or servers with modest WORK space requirements. Contact your systems administrator for information about hiperspace limitations.  [cautionend]

To use hiperspace libraries, follow these guidelines:


USER Library

You can identify a permanent library in which SAS will store members specified with one-level names (that is, without a libref). This feature can be useful for applications that require a default location for SAS files that is permanent or that exists beyond the end of the current SAS session.

To use a USER library, follow these guidelines:


Utility Files That Do Not Reside in WORK

In SAS®9, some SAS procedures create a new type of utility file that does not reside in WORK but rather in a location specified via the UTILLOC system option. In some cases, these utility files are created only if the THREADS system option is set to a nonzero value. These utility files, which provide certain performance benefits, can reside in one of two different types of locations on z/OS:

temporary z/OS data set

Each utility file resides in a separate, temporary, sequential data set on disk (or VIO) that has a system-generated name that is allocated by a system-generated DDNAME. The amount of disk space available to each utility file is specified by an ALLOC command, which is specified as the value of the UTILLOC option. Specify the UCOUNT keyword to allow these files to reside in multi-volume data sets.

UFS file

Each utility file is a UFS file residing in a temporary directory subordinate to the UFS path specified for the UTILLOC option.

See UTILLOC= System Option: z/OS for more information about the UTILLOC system option and the UCOUNT keyword.

SAS Log File


Overview of the SAS Log File

The SAS log file is a temporary physical file that has a ddname of SASLOG in the SAS cataloged procedure, the SAS CLIST, and the SASRX exec. In batch mode, the SAS cataloged procedure assigns default data control block (DCB) characteristics to this file as follows:

BLKSIZE=141
LRECL=137
RECFM=VBA

Under TSO, either interactively or noninteractively, the SASLOG file is routed to the terminal by default. In the windowing environment, the SAS log is directed to the Log window.

See Types of SAS Output for more information about the SAS log and about how to route output in a batch job.


Changing the Contents of the SAS Log

The particular information that appears in the SAS log depends on the settings of several SAS system options. See Collecting Performance Statistics for more information.

In addition, the following portable system options affect the contents of the SAS log:

CPUID

controls whether CPU information is printed at the beginning of the SAS log.

DETAILS

specifies whether to include additional information when files are listed in a SAS library.

ECHOAUTO

controls whether the SAS source statements in the autoexec file are written (echoed) to the SAS log.

MLOGIC

controls whether macro trace information is written to the SAS log when macros are executed.

MPRINT

controls whether SAS statements that are generated by macros are displayed.

MSGLEVEL

controls the level of messages that are displayed.

NEWS=

specifies an external file that contains messages to be written to the SAS log when SAS software is initialized. Typically, the file contains information such as news items about the system.

NOTES

controls whether NOTES are printed in the log. NOTES is the default setting for all methods of running SAS. Do not specify NONOTES unless your SAS program is completely debugged.

OPLIST

specifies whether options given at SAS invocation are written to the SAS log.

PAGESIZE=

specifies the number of lines that compose a page of SAS output.

PRINTMSGLIST

controls whether extended lists of messages are printed.

SOURCE

controls whether SAS source statements are written to the log. NOSOURCE is the default setting for SAS interactive line mode. Otherwise, SOURCE is the default.

SOURCE2

controls whether secondary source statements from files that are included by %INCLUDE statements are written to the SAS log.

SYMBOLGEN

controls whether the macro processor displays the results of resolving macro references.


Changing the Appearance of the SAS Log

The following portable system options are used to change the appearance of the SAS log:

DATE

controls whether the date and time, based on when the SAS job or session began, are written at the top of each page of the SAS log and of any print file that SAS software creates. Use NODATE to suppress printing of the date and time.

LINESIZE=

specifies the line size (printer line width) for the SAS log and the SAS procedure output file. LS= is an alias for this option. LINESIZE= values can range from 64 through 256.

NUMBER

controls whether the log pages are numbered. NUMBER is the default. Use the NONUMBER option to suppress page numbers.

OVP

controls whether lines in SAS output are overprinted.


SAS Procedure Output File


Overview of the SAS Procedure Output File

Whenever a SAS program executes a PROC step that produces printed output, SAS sends the output to the procedure output file. Under TSO, either interactively or noninteractively, the procedure output file is routed to the terminal by default. In the windowing environment, output is directed to the Output window.

In batch mode, the SAS procedure output file is identified in the cataloged procedure by the ddname SASLIST. Unless you specify otherwise, SAS writes most procedure output to this file. (A few procedures, such as the OPTIONS procedure, route output directly to the SAS log by default.) PUT statement output might also be directed to this file by a FILE statement that uses the fileref PRINT. (PRINT is a special fileref that can be specified in the FILE statement.)

The following DCB characteristics of the procedure output file are controlled by the cataloged procedure, typically with the following values:

BLKSIZE=264
LRECL=260
RECFM=VBA

The SAS procedure output file is often called the print file. However, any data set that contains carriage-control information (identified by a trailing A as part of the RECFM= specification) can be called a print file.


Changing the Appearance of Procedure Output

The following portable system options are used to change the appearance of procedure output:

CENTER

controls whether the printed results are centered or left-aligned on the procedure output page. CENTER is the default; NOCENTER specifies left alignment.

DATE

controls whether the date and time, based on when the SAS job or session began, are written at the top of each page of the SAS log and of any print file that SAS software creates. Use NODATE to suppress printing of the date and time.

LINESIZE=

specifies the line size (printer line width) for the SAS log and the SAS procedure output file. LS= is an alias for this option. LINESIZE= values can range from 64 through 256.

NUMBER

controls whether the page number is printed on the first title line of each SAS printed output page. NUMBER is the default. Use the NONUMBER option to suppress page numbers.

PAGENO=

specifies a beginning page number for the next page of output that SAS software produces.

PAGESIZE=

specifies how many lines to print on each page of SAS output. PS= is an alias for this option. In the windowing environment or in an interactive line mode session, the PAGESIZE= option defaults to the terminal screen size, if this information is available from the operating environment. PAGESIZE= values can range from 15 through 500.


Console Log File

The SAS console log file is a physical file that is automatically allocated at the start of SAS initialization. The console log file records log messages generated when the regular SAS log is either unavailable or is not yet initialized. You can control the appearance of the console log file with the LINESIZE= system option only. The SAS CLIST, the SASRX exec, and cataloged procedures allocate this file using the ddname SASCLOG.


Parmcards File

The parmcards file is a temporary physical file that is identified by the ddname SASPARM. It is created automatically by the SAS cataloged procedure and by the SAS CLIST or SASRX exec. SAS uses the parmcards file for internal processing. Lines that follow a PARMCARDS statement in a PROC step are first written to the parmcards file. Then they are read into the procedure. The PARMCARDS statement is used in the BMDP and EXPLODE procedures.


TKMVSENV File

A TKMVSENV file is created at install time. You can use the ddname TKMVSENV with SAS procedures, the SASRX exec, and CLISTs to point to the file. The file must be a sequential file or a member of a PDS with a record format of fixed blocked.

The TKMVSENV file is used to make a list of pseudo environment variables, which are available to SAS Scalable Architecture applications. See SAS Scalable Performance Data Server: User's Guide and SAS Scalable Performance Data Engine: Reference for more information about SAS Scalable Architecture. Environment variables are supported for your SAS administrator to use to tailor applications that use SAS Scalable Architecture. Some environment variables are used by SAS Technical Support to investigate problems that are reported by users.

Each record in the TKMVSENV file must contain a single command: SET or RESET. The RESET command clears all previously set environment variables. The SET name=value command enables you to create the variable name and assign it the value value.

Each command must begin in column 1 of the record. No blank spaces are permitted in the name=value specification on the SET command, except when the value can be enclosed in quotation marks. Some variables have a Boolean effect. These variables are turned on when they are defined and turned off when they are not defined. Such variables do not need to have a value and can be defined by using the SET name= command.

You can include comments after the command specification by adding one or more blank spaces between the command specification and the comment. SAS 9.2 enables you to comment out entire records, as well as add comments after a command specification. Any record that has an asterisk in column 1 will be ignored, and the entire record will be treated as a comment.

set DISABLESASIPV6=

This Boolean variable disables support for TCP/IP IPv6 on z/OS.

set TCPIPMCH=xxxxxxxx

This option specifies the IBM TCP/IP stack name to set the stack affinity for z/OS systems that are running more than one TCP/IP stack.

set TCPRSLV=IBM | SASC

This option sets the TCP/IP DNS resolver to either the IBM DNS Resolver or to the SAS/C DNS Resolver. By default, SAS uses the IBM DNS Resolver unless the DISABLESASIPV6 option has been set.

set TKOPT_CWD=path

This option causes the current working directory to be set to path for the SAS session. If the pathname is nonexistent or invalid, no action is taken. The path can be absolute or relative.

set TKOPT_ENV_UTILLOC=<path>

When specified in the TKMVSENV file for a SAS session or a SAS server, this option specifies the fully-qualified pathname of a UFS directory to contain temporary files that are created by SAS before the completion of SAS initialization. When specified for a SAS object spawner, this option specifies the fully-qualified pathname of a UFS directory to contain any temporary files that are created by the spawner.

set TKOPT_LPANAME=xxxxxxxx

This option specifies the name of the SAS application entry point invoked by the SASLPA main entry point. If the installation placed the LPA resident module in an LPA with a name other than SASXAL, the user needs to specify the same name for the TKOPT_LPANAME option value.

set TKOPT_NOHFS=

This Boolean variable is provided for those sites that are unable to provide basic UFS file system resources to SAS. If this option is specified, then the SAS Scalable Architecture interface takes the following action when a UFS file open is requested:

  • If the file open request is an INPUT open request, the file is treated as an empty file. No UFS files are opened.

  • If the file open request is an OUTPUT open request, a SYSOUT data set is allocated with a ddname of TKHFSnnn, where nnn is a unique number that is increased throughout the session. The first record in the SYSOUT data set contains the pathname of the UFS file actually requested. The remaining records contains the data intended for the named UFS file.

For more information about HFS and UFS, see HFS, UFS, and zFS Terminology.
set TKOPT_SVCNO=nnn
set TKOPT_SVCR15=nn

These variables tell the SAS Scalable Architecture interface how the SAS SVC is installed at the user site. This information is necessary because the SAS Scalable Architecture interface might need to use some of the SVC services independently of the SAS application. These variables should be specified with the same values as the SAS options of the same name.

set TKOPT_UMASK=nnn

This option specifies the UNIX umask to apply to this session. This mask is applied to any UFS files created and operates as a standard UNIX umask. nnn must be exactly three octal digits between 0 and 7.

For more details about the environment variables that are supported and their recommended values, see the following sources.

SAS References
Type of environment variables Reference
SAS Installation Configuration Guide for SAS 9.2 for z/OS
SAS Troubleshooting SAS Technical Support
Configuring for the Java Platform Configuration Guide for SAS 9.2 for z/OS


Summary Table of SAS Software Files

SAS Software Files lists all of the SAS software files that are frequently used in the SAS CLIST, the SASRX exec, or in the SAS cataloged procedure. In the CLIST, SASRX, and cataloged procedure, logical names are associated with physical files. The logical names listed in the table are those that are used by the standard SAS CLIST, SASRX, or cataloged procedure. Your installation might have changed these names.

The system option column in the table lists the SAS system options that you can pass into the SAS CLIST or SASRX (using the OPTIONS operand) or into the SAS cataloged procedure (using the OPTIONS parameter) when you invoke SAS. You can use these system options to change the defaults that were established by the CLIST, SASRX, or by the cataloged procedure. (See Specifying or Changing System Option Settings.)

SAS Software Files
Default Logical Name Purpose System Option CLIST Operands Type of OS Data Set
CONFIG system configuration file CONFIG= ddname
DDCONFIG(ddname) sequential data set or PDS member
Description: contains system options that are processed automatically when you invoke SAS. The system configuration file is usually maintained by your data center.
CONFIG user configuration file CONFIG= ddname
CONFIG(dsn)

DDCONFIG(ddname)

sequential data set or PDS member
Description: also contains system options that are processed automatically when you invoke SAS. Your user configuration file is concatenated to the system configuration file.
LIBRARY format library not applicable not applicable SAS library
Description: contains formats and informats.
SAMPSIO sample SAS library not applicable not applicable SAS library
Description: is the SAS library that is accessed by SAS programs in the sample library provided by SAS Institute.
SASnnnnn
command processor file not applicable not applicable sequential data set or PDS member
Description: is used by the SASCP command in the SAS CLIST or the SASRX exec.
SASAUTOS system autocall library not applicable MAUTS(dsn) PDS
Description: contains source for SAS macros that were written by your data center or provided by SAS Institute.
SASAUTOS user autocall library SASAUTOS= specification* SASAUTOS(dsn) DDSASAUT(ddname) PDS
Description: contains a user-defined autocall library to which the system autocall library is concatenated.
SASCLOG console log not applicable not applicable sequential data set or PDS member
Description: SAS console log file.
SASEXEC autoexec file AUTOEXEC= ddname
AUTOEXEC(dsn) DDAUTOEX(ddname) sequential data set or PDS member
Description: contains statements that are executed automatically when you invoke SAS.
SASHELP HELP library SASHELP= ddname
SASHELP(dsn) DDSASHLP(ddname) SAS library
Description: contains system default catalogs and Help system information.
SASLIB format library (V5) SASLIB= ddname
not applicable load library
Description: a load library that contains user-written procedures and functions or Version 5 formats and informats. It is searched before the SAS software load library.
SASLIST procedure output file PRINT= ddname
PRINT(dsn) DDPRINT(ddname) sequential data set or PDS member
Description: contains SAS procedure output.
SASLOG log file LOG= ddname
LOG(dsn) DDLOG(ddname) sequential data set or PDS member
Description: SAS log file.
SASMSG system message file SASMSG= ddname
SASMSG(dsn) DDSASMSG(ddname) PDS
Description: contains SAS software messages.
SASPARM parmcards file PARMCARD= ddname
PARMCARD(size) DDPARMCD(ddname) sequential data set or PDS member
Description: a temporary data set that is used by some procedures. The PARMCARD= system option assigns a ddname to the parmcards file; the PARMCARD CLIST or SASRX operand specifies the file size. You can use the DDPARMCD operand to specify an alternate name for the parmcards file via the CLIST or SASRX.
SASSNAP SNAP dump file not applicable not applicable sequential data set or PDS member
Description: SNAP output from dump taken during abend recovery.
SASSWKnn
sort work files DYNALLOC SORTWKDD= SORTWKNO= not applicable sequential
Description: temporary files that are used by the host sort utility when sorting large amounts of data.
SASUSER SASUSER library SASUSER= ddname
SASUSER(dsn) DDSASUSR(ddname) SAS library
Description: contains the user profile catalog and other personal catalogs.
STEPLIB STEPLIB library not applicable LOAD(dsn) SASLOAD(dsn) load library
Description: a load library that contains SAS procedure and user-written load modules. (Allocate with a STEPLIB DD statement in a batch job.)
SYSIN primary input file SYSIN= ddname
INPUT(dsn) DDSYSIN(ddname) sequential data set or PDS member
Description: contains SAS statements. The primary input file can be specified with the INPUT operand under TSO, or allocated with a DD statement in a batch job.
TKMVSENV TKMVSENV file not applicable not applicable sequential data set or PDS member
Description: contains a list of pseudo environment variables that are available to SAS Scalable Architecture applications.
USER USER library USER= ddname | dsn
not applicable SAS library
Description: specifies a SAS library in which to store SAS data sets that have one-level names (instead of storing them in the WORK library).
WORK WORK library WORK= ddname
DDWORK(ddname) SAS library
Description: contains temporary SAS files that are created by SAS software during your session.
* SASAUTOS: specification can be a fileref, a partitioned data set name enclosed in quotation marks, or a series of file specifications enclosed in parentheses.

Previous Page | Next Page | Top of Page