Supporting a SAS Server Architecture

From sasCommunity

Jump to: navigation, search

Contents

Supporting a SAS® Server Architecture

Paper Information and Article Summary

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;

Contact Info

Personal tools