Your SAS programs, embedded in web apps and elsewhere

How to kill a particular session on server side

Reply
New Contributor
Posts: 4

How to kill a particular session on server side

For example. The server is unix and one user request to kill his session on server side. Because server session is running by sassrv, how I determine which session belonge to whom? Thanks in advance.
N/A
Posts: 0

Re: How to kill a particular session on server side

I have a keen interest in this question, too.

Who at SAS Institute has the answer?

If there is no answer/solution, why was such an architecture implemented? And why were certain features (e.g., multiple-value input and streaming output) limited to the Stored Process Server and denied to the WorkSpace Server?
SAS Employee
Posts: 9

Re: How to kill a particular session on server side

Hi Devel, the stored process server is a multi-user process (like olap server) and the way it works it's very similar to the "old" sas/Intrnet application server.
Said that, in a specific moment an user is using or connecting to the server.
The load distribution is done by the object spawner that dispatch the requests to the 3 (or more) sassrv processes.
Now I come back to your initial question, in 9.1.3 there is no administrative interface for the Store Process Server like for the Olap server, so you can't kill a specific user's session.
If you are experiencing hangs of the stp server you need to try to understand what's wrong with the submitted code enabling the trace of the server and obviously you can also contact the Technical Support.

Andrea
Occasional Contributor
Posts: 14

Re: How to kill a particular session on server side

If today, nearly six and one-half years later, there is still no easy solution to this, here is something that can help.

Modify the stored process to include code for the user to send an email to herself/himself. That message could include the Process ID (PID) as well as any other useful information to identify the Stored Process. You simply need to use the automatic macro variable SYSJOBID.

From SAS Companion for Windows:

SYSJOBID returns a number that uniquely identifies the SAS task under Windows.

If running SAS on a standalone PC, you can use the Windows tasklist command to verify that SYSJOBID is the Windows Process ID (PID) for your SAS session.

From SAS Companion for UNIX:

SYSJOBID lists the process identification number (PID) of the process that is executing SAS (for example, 00024).

The above documentation excerpts prompt for me this question:

What is the justification for the misleading name on the automatic macro variable called SYSPROCESSID?

If you display it in your SAS log with a %PUT command, you will get a 32 character hexadecimal string such as 41D96EED34F0D4FE4018000000000000

It does NOT translate into the Windows or UNIX SYSJOBID, which IS the Process ID.

In every case, the last 12 characters are zeroes.

Back on subject, if a user has a problem with a Stored Process, the email to the user (from the Stored Process) containing the Process ID will furnish the needed information to pass on to the SAS Administrator or the Windows/Unix Administrator, who can kill the process.

(Of course, if the Stored Process were running under the ID of the user, then the user could kill the process.)

For some references on managing, monitoring, and controlling SAS processes on SAS servers (or on a standalone PC), see
http://support.sas.com/resources/papers/proceedings10/279-2010.pdf
and
http://support.sas.com/resources/papers/proceedings09/274-2009.pdf

Ask a Question
Discussion stats
  • 3 replies
  • 3234 views
  • 0 likes
  • 4 in conversation