BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Yura2301
Quartz | Level 8

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!

1 ACCEPTED SOLUTION

Accepted Solutions
FriedEgg
SAS Employee

      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;

View solution in original post

4 REPLIES 4
TonyH1857
SAS Employee

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

FriedEgg
SAS Employee

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?

FriedEgg
SAS Employee

      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;

Yura2301
Quartz | Level 8

Hi Fried,

Thanks, now ARM facility works correct:).

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to connect to databases in SAS Viya

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.

Discussion stats
  • 4 replies
  • 1186 views
  • 3 likes
  • 3 in conversation