BookmarkSubscribeRSS Feed
FriedEgg
SAS Employee

It's been a long time since I've built a SAS/AF program, but to circumvent these issues I always used pre-compiled/stored macro libraries.

jakarman
Barite | Level 11

FriedEgg your are right. There is something strange in Quentins installation.

Taking ca 5 seconds for macro compilation there must be several hundreds of macro-s being called.

With a number in the tenth's of macro-s I never have experienced that long response times. No problem to accept the advantage of avoiding a maintenance process for compilations.

   
What is causing that slow response it could be:

- bad IO tuning *buffers sizing alignment"

- VFB Virtual frame buffer when you are using a Unix based environment.

  I found this note at IBM, the explanation there sounds to me applicable to all kind of graphics usage.

  IBM Knowledge Center   http // www-01.ibm.com/support/knowledgecenter/ssw_aix_53/com.ibm.aix.aixwnpgd/doc/aixwnpgd/xvfb.htm%23xvfb?lang=en

- Wait on IO in the network. Is very dependent to the OS.TCP delayed acknowledgment - Wikipedia, the free encyclopedia

- delay in the process SAS going to the webserver. It can sometimes not getting the close signal and by that the release/close is done by a time-out

---->-- ja karman --<-----
jakarman
Barite | Level 11

Ok the topic/subject is moving into performance and concepts of solutions.
What I am seeing you are doing is bulk processing. Another word for that is batch.

One of the issues you will facing when trying to do that interactive is time-outs. The browser the webserver the SAS SP-server firewalls all have their time out settings.

Expect values of 30 seconds 5 minutes 30 minutes 2 hours.  And the connection will be lost by some timeout.

You could try to optimize your processing so it will not reach one of those limits. Using a SP server for this will possible build up some locking events as one process can be busy for a long time.  

Changing the html stream this being send to the browser is possible when the browser is supporting building up the screens while these are coming in.

One html page should have one top / one bottom as envelop. It will work (possibly) when you send multiple of those.

The weakness on this approach is that it is a trial (and error) for getting it working maybe trusting wrong features that will be closed some day.

Structural options:

- Scheduling  (that one is intended for batch)

  + Real batch scheduling could be too complicated but you have java scheduling.  Scheduling in SAS(R) 9.4

  + detaching a batch job from you SP that will generate a message or mail the results.
- AJAX  That is the message queue approach within http using XMLHttpRequest functionality. It is disconnecting the updating process of the webpage from the user action.

  As a pitty there is very little at SAS for this.  http://www2.sas.com/proceedings/forum2007/201-2007.pdf and http://support.sas.com/resources/papers/proceedings10/014-2010.pdf
  Maybe it is seen not always as safe because you are needing a webservice that can be called indepently as in the Win-gadgets  http://support.sas.com/resources/papers/proceedings11/280-2011.pdf      

  

---->-- ja karman --<-----

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 17 replies
  • 4792 views
  • 1 like
  • 5 in conversation