Supporting a SAS Server Architecture
From sasCommunity
Contents |
Supporting a SAS® Server Architecture
Paper Information and Article Summary
- The paper is available at:Supporting a SAS® Server Architecture
- The presentation is available at: File:SGF179-2009 Presentation.pdf
Included below is the abstract, plus additional information discovered or changed since the Paper Published.
Abstract
Your organization has purchased a SAS® Solution, which could be for Business Intelligence, Warranty Analysis, Anti Money Laundering or any number of other offerings. Sitting in a server farm the hardware is maintained but you are given the responsibility of managing the SAS solution environment. How do you organize the administration work and keep yourself out of the support game? The paper provides a framework for planning SAS server administration.
How to Stop and Restart SAS Services
Discovered an additional resource for creating Start/Stop Services with Dependances between Multiple Windows Servers:
Microsoft PSSERVICE Tool Download
Installation Tip: Download the tool kit and move the psservice to your c:/../system32 folder (or the location of the cmd.exe)
To Utilize: Change the services command line script (for a local service):
sc stop "SAS Analytics Platform"
To a psservices command line script (for the remote service):
psservice \\machine-name stop "SAS Analytics Platform"
How to add a User to the SAS System
Posted as a Tip of the Day - provides a youtube.com video of how to define users in SAS Management Console.
Tips:Adding_a_User_in_SAS_Management_Console
Performance Management - Review & Remove Hung Processes
There was a small error in the code - when used alone, the fileref for batchrm isn't defined. Included is an update:
/*Review Running SAS Processes*/ /*Filter List for Hung Processes*/ /*Creating and Executing Windows Script for Killing Tasks*/ /*Step 1: List Running Processes Using TASKLIST CMD*/ /* Filter List of Processes based on Defined Criteria*/ proc printto log='c:\support\logs\hungprocesslisting.log'; run; filename tasks PIPE 'tasklist /V'; data process; infile tasks truncover; input tasklist $255.; process=scan(tasklist, 1, ' '); if process='sas.exe' then do; PID=scan(tasklist, 2, ' '); SessionName=scan(tasklist, 3, ' '); if substr(sessionName, 1, 3) = 'RDP' then do; SessionName=scan(tasklist, 4, ' '); Memory=scan(tasklist, 5, ' '); Status=scan(tasklist, 7, ' '); UserName=scan(tasklist, 8, ' '); CPUTime=input(scan(tasklist,9, ' '),time.); WindowTitle=scan(tasklist, 10, ' ')||' '||scan(tasklist, 11, ' '); end; else do; SessionID=scan(tasklist, 3, ' '); Memory=scan(tasklist, 4, ' '); Status=scan(tasklist, 6, ' '); UserName=scan(tasklist, 7, ' '); CPUTime=input(scan(tasklist,8, ' '),time.); WindowTitle=scan(tasklist, 9, ' ')||' '||scan(tasklist, 10, ' '); end; if Status='Unknown' then do; UserName=scan(tasklist, 9, ' '); CPUTime=input(scan(tasklist,10, ' '),time.); WindowTitle=scan(tasklist, 11, ' ')||' '||scan(tasklist, 11, ' '); end; format CPUtime time.; if UserName not in ('N/A', 'zencos\sasadm') then output; end; run; /*Step 2: Create Batch File for Cleanup Execution*/ filename stplist "c:\support\processstop.bat"; data _null_; set process; file stplist; put 'TASKKILL /PID ' PID ' /T'; run; /*Step 3: Execute Batch File for Cleanup*/ options noxwait xsync; x "cd c:\Support"; x "processstop.bat"; x "del /F processstop.bat"; proc printto; run;
