Hello everyone:
I'm preparing a script so execute several tasks in parallel on one server. My first step is to execute the following code:
signon mySess sascmd="!sascmd";
rsubmit mySess;
data test;
x = 1;
run;
endrsubmit;
signoff mySess;When I do, I get the following log (everythin is OK).
83 signon mySess sascmd="!sascmd";
NOTE: Remote signon to MYSESS commencing (SAS Release V.03.05M0P111119).
NOTE: Copyright (c) 2016 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) Proprietary Software V.03.05 (TS5M0 MBCS3170)
Licensed to EGP- SAS X ADVANCED ANALYTICS / ESP ON VIYA, Site 70237841.
NOTE: This session is executing on the Linux 3.10.0-1160.15.2.el7.x86_64 (LIN X64) platform.
NOTE: Analytical products:
SAS/STAT 15.1
SAS/ETS 15.1
SAS/OR 15.1
SAS/IML 15.1
NOTE: Additional host information:
Linux LIN X64 3.10.0-1160.15.2.el7.x86_64 #1 SMP Thu Jan 21 16:15:07 EST 2021 x86_64 Red Hat Enterprise Linux Server release 7.9
(Maipo)
NOTE: SAS initialization used:
real time 0.04 seconds
cpu time 0.04 seconds
NOTE: AUTOEXEC processing beginning; file is /opt/sas/viya/config/etc/compsrv/default/autoexec.sas.
NOTE: DATA statement ha utilizado (Tiempo de proceso total):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: AUTOEXEC processing completed.
NOTE: Remote signon to MYSESS complete.
84 rsubmit mySess;
NOTE: Remote submit to MYSESS commencing.
2 data test;
3 x = 1;
4 run;
NOTE: The data set WORK.TEST has 1 observations and 1 variables.
NOTE: DATA statement ha utilizado (Tiempo de proceso total):
real time 0.00 seconds
cpu time 0.01 seconds
NOTE: Remote submit to MYSESS complete.
85 signoff mySess;
NOTE: Remote signoff from MYSESS commencing.
NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414
NOTE: The SAS System used:
real time 0.05 seconds
cpu time 0.05 seconds
NOTE: Remote signoff from MYSESS complete.
86
87 %studio_hide_wrapper;
98
99 Now I add a libname statement in order to access to tables in it (this lib exists and I use it in other scritps):
signon mySess sascmd="!sascmd";
rsubmit mySess;
libname emibal cas caslib=BAL_EMISIONES;
data test;
x = 1;
run;
endrsubmit;
signoff mySess;and I get the following message in the log (I omit the first part because it's the same):
84 rsubmit mySess;
NOTE: Remote submit to MYSESS commencing.
1 libname emibal cas caslib=BAL_EMISIONES;
ERROR: The request to start or connect to a session failed. Specify a UUID to connect to an existing session or specify a session
name, port and host name to start a session.
ERROR: Error in the LIBNAME statement.
2 data test;
3 x = 1;
4 run;
NOTE: The data set WORK.TEST has 1 observations and 1 variables.
NOTE: DATA statement ha utilizado (Tiempo de proceso total):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: Remote submit to MYSESS complete.
85 signoff mySess;
NOTE: Remote signoff from MYSESS commencing.
NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414
NOTE: The SAS System used:
real time 0.13 seconds
cpu time 0.07 seconds
NOTE: Remote signoff from MYSESS complete.
86
87 %studio_hide_wrapper;
98
99 I am not still accessing any data in that lib, but I already get an error. Do you know why this might be happening?
Thanks.
I eventually managed to solve the problem myself by opening a new cas session in every rsubmit. I attach some code as an example.
signon mySess1 sascmd="!sascmd" signonwait=no;
signon mySess2 sascmd="!sascmd" signonwait=no;
rsubmit mySess1 wait=no;
cas Sess1 host='myserver' port=myport;
libname emibal cas caslib=BAL_EMISIONES;
proc delete data=emibal.multitask1;
data emibal.multitask1;
x = 1;
run;
proc casutil incaslib="bal_emisiones" outcaslib="bal_emisiones";
promote casdata="multitask1" casout="multitask1";
run;
endrsubmit;
rsubmit mySess2 wait=no;
cas Sess2 host='myserver' port=myport;
libname emibal cas caslib=BAL_EMISIONES;
proc delete data=emibal.multitask2;
data emibal.multitask2;
x = 1;
run;
proc casutil incaslib="bal_emisiones" outcaslib="bal_emisiones";
promote casdata="multitask2" casout="multitask2";
run;
endrsubmit;
waitfor _all_ mySess1 mySess2;
signon mySess3 sascmd="!sascmd" signonwait=no;
rsubmit mySess3 wait=no;
cas General host='myserver' port=myport;
libname emibal cas caslib=BAL_EMISIONES;
proc delete data=emibal.multitask3;
data emibal.multitask3;
set emibal.multitask1 emibal.multitask2;
run;
proc casutil incaslib="bal_emisiones" outcaslib="bal_emisiones";
promote casdata="multitask3" casout="multitask3";
run;
endrsubmit;
signoff _all_;
Try adding the following before the libname statement:
cas mySess sessopts=(caslib=BAL_EMISONES);
If this does not work, reach out to technical support.
Thanks JOL for your message. Unfortunatelly it didn't work. Now I get the same message for both lines:
NOTE: Remote signon to MYSESS complete.
84 rsubmit mySess;
NOTE: Remote submit to MYSESS commencing.
1 cas mySess sessopts=(caslib=BAL_EMISIONES);
ERROR: The request to start or connect to a session failed. Specify a UUID to connect to an existing session or specify a session
name, port and host name to start a session.
2 libname emibal cas caslib=BAL_EMISIONES;
ERROR: The request to start or connect to a session failed. Specify a UUID to connect to an existing session or specify a session
name, port and host name to start a session.
ERROR: Error in the LIBNAME statement.I'm reaching out for the technical service.
I eventually managed to solve the problem myself by opening a new cas session in every rsubmit. I attach some code as an example.
signon mySess1 sascmd="!sascmd" signonwait=no;
signon mySess2 sascmd="!sascmd" signonwait=no;
rsubmit mySess1 wait=no;
cas Sess1 host='myserver' port=myport;
libname emibal cas caslib=BAL_EMISIONES;
proc delete data=emibal.multitask1;
data emibal.multitask1;
x = 1;
run;
proc casutil incaslib="bal_emisiones" outcaslib="bal_emisiones";
promote casdata="multitask1" casout="multitask1";
run;
endrsubmit;
rsubmit mySess2 wait=no;
cas Sess2 host='myserver' port=myport;
libname emibal cas caslib=BAL_EMISIONES;
proc delete data=emibal.multitask2;
data emibal.multitask2;
x = 1;
run;
proc casutil incaslib="bal_emisiones" outcaslib="bal_emisiones";
promote casdata="multitask2" casout="multitask2";
run;
endrsubmit;
waitfor _all_ mySess1 mySess2;
signon mySess3 sascmd="!sascmd" signonwait=no;
rsubmit mySess3 wait=no;
cas General host='myserver' port=myport;
libname emibal cas caslib=BAL_EMISIONES;
proc delete data=emibal.multitask3;
data emibal.multitask3;
set emibal.multitask1 emibal.multitask2;
run;
proc casutil incaslib="bal_emisiones" outcaslib="bal_emisiones";
promote casdata="multitask3" casout="multitask3";
run;
endrsubmit;
signoff _all_;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.