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

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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
  • 1177 views
  • 3 likes
  • 3 in conversation