If a thin client (ie. Enterprise Guide, Visual Basic, etc.) submits code to a remote SAS Workspace (IOM Server), the following error might be displayed:
ERROR: SVC99 error rc=4, reason=0470 : IKJ56864I SYSOUT DATA SET NOT
ALLOCATED, USER NOT AUTHORIZED FOR FUNCTION SPECIFIED.
ERROR: Error in the FILENAME statement.
The error occurs when you attempt to allocate to the JES internal reader. Here is an example:
filename rdr SYSOUT=A pgm=intrdr recfm=fb lrecl=80;
data _null_;
file rdr;
put '//TESTFTP JOB (XXXX),EDU.FTP.TXT,NOTIFY=EDU,MSGCLASS=T';
put '// EXEC SAS802';
put '//SYSIN DD *';
put 'proc options;';
put '//';
run;
The problem occurs with spawned sessions in SAS®9 (or SAS 8.2 with the SAS 9 Object Spawner) not being able allocate a SYSOUT file to the JES internal reader for submitting JCL to. This is a restriction of the TSO environment service, which is used to run SAS in the spawned sessions.
The problem occurs because SAS is running with the /bin/tso shell command, and this creates an unauthorized environment. Allocating a file to an output writer requires an authorized environment (TSO is an authorized environment when logged on to).
There are two possible workarounds for the problem. One relies on using the filename FTP access method to submit a job via FTP, and the other one preallocates a file to the internal reader prior to starting SAS.
WORKAROUND 1:
This approach allocates the file in a shell script prior to starting SAS with the /bin/tso command.
1.) Edit the SAS startup shell command and the SAS program.
2.) Allocate the file to the internal reader using a shell environment variable, and remove the filename statement in the SAS program.
3.) Invoke a shell script from the IOM spawner that in turn launches SAS. In the part of the script where SYSPROC is specified, make the following changes:
#export SYSPROC=THEIR.SAS.CLIST
export TSOALLOC="SYSPROC:RDR"
export SYSPROC="ALLOC DA('THEIR.SAS.CLIST') SHR"
export RDR="ALLOC SYSOUT(A) WRITER(INTRDR) RECFM(F) LRECL(80)"
Change ‘THEIR.SAS.CLIST’ to the CLIST library from which the SAS startup CLIST is read.
4.) Remove the filename rdr ...; statement from the SAS program. The SAS program should look similar to the following:
data _null_;
file RDR;
put '//TEST JOB (R4240),''USER NAME'',NOTIFY=USERID';
put '/*JOBPARM FETCH';
put '// EXEC PGM=IKJEFT01';
put '//SYSTSPRT DD SYSOUT=A';
put '//SYSTSIN DD *';
put ' SEND ''HELLO'' U(USERID)';
run;
WORKAROUND 2:
This approach uses a SAS/CONNECT remote submission. The MVS host name is 'mvshost', and the filename statement must have a userid (e.g. 'user1') and password (e.g. 'pass1') specified to sign on to FTP. This suggestion does not require preallocating an internal reader file. This example uses the SAS filename FTP access method to submit the job. Here is an example:
signon mvshost.spawner user=_prompt_;
rsubmit;
filename job ftp '.job.cntl' host='mvshost'
user='user1' pass='pass1' rcmd='site file=jes';
data _null_;
file job;
put '//TEST JOB (R4240),''USER NAME'',NOTIFY=USERID';
put '/*JOBPARM FETCH';
put '// EXEC PGM=IKJEFT01';
put '//SYSTSPRT DD SYSOUT=A';
put '//SYSTSIN DD *';
put ' SEND ''HELLO'' U(USERID)';
run;
endrsubmit;
Operating System and Release Information
SAS System | SAS Integration Technologies | z/OS | 9.2 | | 9.2 TS2M0 | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.