Hi,
Small code below (with ARM options) works correct on SAS 9.1 on Window OS:
/*Force ARM logs writes to file on server*/
filename armLog "...\ARM.log";
option armloc=armLog;
/* Needed only general info = start/end of whole SAS code, start/end of each data step and procedure*/
option armsubsys=(ARM_DSIO OPENCLOSE , ARM_PROC);
/*start SAS code*/
data test1;
sl=sleep(3,1);
run;
data test1;
sl=sleep(5,1);
run;
/*End SAS code*/
/*Redirect ARM logs into temporary work file*/
filename LogEND "...\ARM_end.log";
options armsubsys=(ARM_NONE) armLoc=LogEND;
So SAS code higher ganarate expected result(ARM log) on SAS 9.1:
I,1701768346.106000,4,29.296875,9.390625,SAS,userKode
G,1701768346.106000,4,7,MVA_DSIO.OPEN_CLOSE,DATA SET OPEN/CLOSE,LIBNAME,ShortStr,MEMTYPE,ShortStr,MEMNAME,LongStr
G,1701768346.106000,4,8,PROCEDURE,PROC START/STOP,PROC NAME,ShortStr
S,1701768346.106000,4,8,21,29.296875,9.390625,DATASTEP
S,1701768346.106000,4,7,22,29.296875,9.390625,WORK ,DATA ,TEST1
P,1701768349.106000,4,7,22,29.296875,9.390625,0,WORK ,DATA ,TEST1
P,1701768349.106000,4,8,21,29.296875,9.390625,0
S,1701768349.106000,4,8,23,29.296875,9.390625,DATASTEP
S,1701768349.106000,4,7,24,29.296875,9.390625,WORK ,DATA ,TEST1
P,1701768354.106000,4,7,24,29.296875,9.390625,0,WORK ,DATA ,TEST1
P,1701768354.106000,4,8,23,29.296875,9.390625,0
E,1701768354.106000,4,29.296875,9.390625
But on SAS 9.3(AIX OS) results are different, general records("I" - initialization,"G"-GetId,"E"-End), are missed in result ARM file so ARM log on SAS 9.3 looks like:
S,1701768346.106000,4,8,21,29.296875,9.390625,DATASTEP
S,1701768346.106000,4,7,22,29.296875,9.390625,WORK ,DATA ,TEST1
P,1701768349.106000,4,7,22,29.296875,9.390625,0,WORK ,DATA ,TEST1
P,1701768349.106000,4,8,21,29.296875,9.390625,0
S,1701768349.106000,4,8,23,29.296875,9.390625,DATASTEP
S,1701768349.106000,4,7,24,29.296875,9.390625,WORK ,DATA ,TEST1
P,1701768354.106000,4,7,24,29.296875,9.390625,0,WORK ,DATA ,TEST1
P,1701768354.106000,4,8,23,29.296875,9.390625,0
So can someone help me with delivering these general records into ARM log on SAS 9.3?
Additional info:
If run SAS code above first time on 9.3(first time after SAS session creation) - ARM log file miss only last "E" row, all rest needed row occurs in ARM log file:
I,1701768346.106000,4,29.296875,9.390625,SAS,userKode
G,1701768346.106000,4,7,MVA_DSIO.OPEN_CLOSE,DATA SET OPEN/CLOSE,LIBNAME,ShortStr,MEMTYPE,ShortStr,MEMNAME,LongStr
G,1701768346.106000,4,8,PROCEDURE,PROC START/STOP,PROC NAME,ShortStr
S,1701768346.106000,4,8,21,29.296875,9.390625,DATASTEP
S,1701768346.106000,4,7,22,29.296875,9.390625,WORK ,DATA ,TEST1
P,1701768349.106000,4,7,22,29.296875,9.390625,0,WORK ,DATA ,TEST1
P,1701768349.106000,4,8,21,29.296875,9.390625,0
S,1701768349.106000,4,8,23,29.296875,9.390625,DATASTEP
S,1701768349.106000,4,7,24,29.296875,9.390625,WORK ,DATA ,TEST1
P,1701768354.106000,4,7,24,29.296875,9.390625,0,WORK ,DATA ,TEST1
P,1701768354.106000,4,8,23,29.296875,9.390625,0
Next time when I run same code - ARM log file again miss all general records -initial ("I", "G") and last "E" record.
It probably means that on SAS 9.3 ARM logging don't finish(turn-off) correctly after setting options below:
options armsubsys=(ARM_NONE) armLoc=LogEND;
or
options armsubsys=(ARM_NONE) armloc="_NULL_";
May be some additional options should be set to close it correctly?
Thanks!
filename armLog "...\ARM.log";
option armloc=armLog;
option armsubsys=(ARM_DSIO OPENCLOSE , ARM_PROC);
%let _armexec = 1;
%let _armacro = 1;
%arminit(appname='myappname is this', appuser="&sysuserid", appidvar=myapp)
/*start SAS code*/
data test1;
sl=sleep(3,1);
run;
data test1;
sl=sleep(5,1);
run;
%armend(appidvar=myapp)
/*End SAS code*/
/*Redirect ARM logs into temporary work file*/
filename LogEND "...\ARM_end.log";
options armsubsys=(ARM_NONE) armLoc=LogEND;
Yura, Hope you are well. Right now the SAS Product Portfolio and in particular the SAS 9.X Products are optimized for X86 Architecture. If your goal is to run SAS 9.X on an arm class server you are likely to run into many issues due to certification and optimization tuning that has not been fully vetted or is indeed supported by SAS Products. There is one exception for visualization. For a particular class of client device you are able to run procedures that allow you to view the data via the Portal Software on the ARM based client device. I would suggest you review the platform requirements of the SAS Product Suite to ensure any load and install efforts you are making are aligned with the supported architecture and system requirements. Please let me know if this makes sense and if I can be of further assistance. Best Regards Tony
ARM (Application Response Measurement) is not related to ARM Processor Architecture
Since 9.1 there have been substantial changes to ARM logging, including moving from ARM 2.0 to ARM 4.0 standard.
It is a bit peculiar that you are missing to E (end) records.
Are you running in these processes as a batch job or through a client interface?
filename armLog "...\ARM.log";
option armloc=armLog;
option armsubsys=(ARM_DSIO OPENCLOSE , ARM_PROC);
%let _armexec = 1;
%let _armacro = 1;
%arminit(appname='myappname is this', appuser="&sysuserid", appidvar=myapp)
/*start SAS code*/
data test1;
sl=sleep(3,1);
run;
data test1;
sl=sleep(5,1);
run;
%armend(appidvar=myapp)
/*End SAS code*/
/*Redirect ARM logs into temporary work file*/
filename LogEND "...\ARM_end.log";
options armsubsys=(ARM_NONE) armLoc=LogEND;
Hi Fried,
Thanks, now ARM facility works correct:).
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.