Skip to main content

What is Object Spawner and Why SAS Admins should concern?


Object Spawner spawns processes: 
Object Spawner comes into picture when a user submits a SAS code or a scheduled code is submitted. It is part of SAS server, located in host machine. It literally checks for any user is submitting SAS code (including scheduled jobs). If they do it will call Workspace Server or Pooled Workspace Server or SAS Stored Process Server depending on the user request. As SAS is a Java based application the process of calling these servers is named as instantiate. So whenever Object Spawner gets a new request, it instantiates the server. As a SAS Admin whenever a user reports that they are not able to run a code you first suspect should be Object Spawner.
Note: In this article server means Workspace server, Pooled Workspace server and SAS Stored Process.

SAS jobs run in server and Object Spawner is responsible:
SAS jobs run in any of these servers Workspace Server and SAS Stored Process. We can deduce Workspace server as Standard Workspace Server and Pooled Workspace server. To make it simple small processes run in Pooled Workspace and large process run in Standard Workspace Server. Pooled Workspace Server is most suitable for SAS web applications like SAS Web Report Studio. For now we don’t need to know deeper about these servers. All we need to know is how Object Spawner launches these servers.

To instantiate a server, Object Spawner first access SAS Metadata Server. It doesn’t know which servers (Workspace Server) it is responsible for. It will look up in Metadata to get those detail. Reading Metadata is a two-step process.
  1. It reads a configuration file which will have information about Metadata like Login Name, User ID, Hostname, Port etc. The configuration file name is metadataConfig.xml.
  2.  Then using the above configuration file it will connect to Metadata Server. Metadata Server will return the list of servers the requested Object Spawner is responsible for.

How many Object Spawner a SAS Platform has?
By default, SAS installation provides one Object Spawner, one Workspace Server, one Pooled Workspace server and Stored Process server. Later business demands more Workspace Servers and other servers. In that case you need to create an Object Spawner to handle them. It is better to have separate Object Spawner for each new Server (Workspace Server and SAS Stored Process) you create. Later in my Blog I will explain how to create new Object Spawner, so you will understand it is just another Metadata Object just like users and group.

Object Spawner do authentication:
You might wonder that Metadata Server is used for authentication. Yes, you are right but it authenticates to access Metadata. To access Workspace Server, Object Spawner will do the authentication. For example if user submits a code using SAS Enterprise Guide, the following steps take place:
  •     First client access Metadata in order to get the details about Workspace Server. Metadata Server will returns connection information of Object Spawner. Connection information will be the host machine and the port where Object Spawner is listening.
  •     Using the connection information, SAS Enterprise Guide will connect to Object Spawner. Object Spawner will first do authentication and then it spawn a process in Workspace Server.
Note: By default for Workspace Server it will be host based authentication and for Stored Process & Pooled workspace server authentication is done by Metadata Server.


Comments

Popular posts from this blog

Insufficient authorization to access PIPE error in SAS EG

Issue: When I tried to run SAS code in SAS Enterprise Guide it throws following errors: ERROR: Insufficient authorization to access PIPE. ERROR: Error in the FILENAME statement. Screenshot of error: Solution: This error occurs when you try to run OS commands in SAS code. To run the OS commands in SAS code you need to enable XCMD option. You check it in SAS Management Console by following below steps.   Open SMC -> Expand Servers -> Expand   In SASApp , expand Logical Workspace Server -> right click on Workspace Server. Click properties -> option tab -> advanced options -> launch properties. Check whether Allow XCMD is checked. The issue arises if the Allow XCMD is not checked. In above image, Allow XCMD option is not checked. It should be checked to run OS commands from SAS code. In Unix /Linux machines, this XCMD option can be enabled by using system option XCMD in sasv9 config file or workspaceserver.sh script f...

The authentication server is not SETUID ROOT error in SAS

Question: When validating the SAS Server from SAS Management Console, I received the following error: The authentication server is not SETUID ROOT.  So, I ran the setuid.sh utility and restarted the services many times. I just checked the elssrv sasauth sasperm setuid bit. There were no error in sasauth-debug.log, sasauth-access.log, sasauth-error.log.  Any suggestions? Answer: Please do the following:    1) Run /<SASConfig>/Lev<X>/ObjectSpawner/ObjectSpawner.sh stop  2) Edit /<SASConfig>/Lev<X>/ObjectSpawner/ObjectSpawner.sh and add the code shown below right after SCRIPT=`basename $0`:  if [ -n ""$TKPATH"" ]; then  unset TKPATH  fi   if [ -n ""$TK_PATHLIST"" ]; then  unset TK_PATHLIST  fi    3) Run /<SASConfig>/Lev<X>/ObjectSpawner/ObjectSpawner.sh start  The above code change in ObjectSpawner.sh should fix the issue.

SAS - CLI error trying to establish connection

Issue: User asked me to make a database connectivity to SQL Server. They provided following details SQL server hostname and ip address Database/DSN name Username Password I made entry in ODBC.ini file. You know, SQL Server entries were made in ODBC.ini and Oracle entries were made in TNS.ora file. Everything went fine, took back up of odbc.ini, made entry and saved the file. So to test this connection I ran the libname statement in SAS Enterprise Guide 6.1. It throwed following error. Error Message: My DB team showed that they are able to login   14 GOPTIONS ACCESSIBLE; 15 LIBNAME test ODBC DATASRC=SGE_DS SCHEMA=VST USER=sales PASSWORD=XXXXXXXXX; ERROR: CLI error trying to establish connection: [SAS/ACCESS to SQL Server][ODBC SQL Server Legacy Driver][SQL Server]Login failed for user 'sales'. Solution: First I suspected that Login failed for user 'sales' meant the password provided by DB team was wrong. They responded that they were able to login wi...