Universal Unique Identifiers and the Object Spawner

What Is a Universal Unique Identifier?

A Universal Unique Identifier (UUID) is a 128-bit identifier that consists of date and time information, and the IEEE node address of a host. UUIDs are useful when objects such as rows or other components of a SAS application must be uniquely identified. For example, if SAS is running as a server and is distributing objects to several clients concurrently, you can associate a UUID with each object to ensure that a particular client and SAS are referencing the same object.

What Is the Object Spawner?

The object spawner is a program that runs on the server and listens for requests. When a request is received, the object spawner accepts the connection and performs the action that is associated with the port or service on which the connection was made. The object spawner can be configured to be a UUID Generator Daemon (UUIDGEND), which creates UUIDs for the requesting program. Currently, SAS can generate UUIDs only in the Windows operating environment. UUIDGEND generates UUIDs for SAS sessions that execute on hosts that do not have native UUID generation support.

Defining the UUID Generator Daemon

The definition of UUIDGEND is contained in a setup configuration file that you specify when you invoke the object spawner. This configuration file identifies the port that listens for UUID requests, and, in operating environments other than Windows, the configuration file also identifies the UUID node. If you install UUIDGEND in an operating environment other than Windows, contact SAS Technical Support (http://support.sas.com/techsup/contact/) to obtain a UUID node. The UUID node must be unique for each UUIDGEND installation in order for UUIDGEND to guarantee truly unique UUIDs.
Here is an example of a UUIDGEND setup configuration file for an operating environment other than Windows:
#
##  Define our UUID Generator Daemon.  Since this UUIDGEND is
##  executing on a UNIX host, we contacted SAS Technical
##  Support to get the specified sasUUIDNode.
#
dn: sasSpawnercn=UUIDGEND,sascomponent=sasServer,cn=SAS,o=ABC Inc,c=US
objectClass: sasSpawner
sasSpawnercn: UUIDGEND
sasDomainName: unx.abc.com
sasMachineDNSName: medium.unx.abc.com
sasOperatorPassword: myPassword
sasOperatorPort: 6340
sasUUIDNode: 0123456789ab
sasUUIDPort: 6341
description: SAS Session UUID Generator Daemon on UNIX
Here is an example of a UUIDGEND setup configuration file for Windows:
#
##  Define our UUID Generator Daemon.  Since this UUIDGEND is
##  executing in a Windows operating environment, we do not need to specify
##  the sasUUIDNode.
#
dn: sasSpawnercn=UUIDGEND,sascomponent=sasServer,cn=SAS,o=ABC Inc,
c=US
objectClass: sasSpawner
sasSpawnercn: UUIDGEND
sasDomainName: wnt.abc.com
sasMachineDNSName: little.wnt.abc.com
sasOperatorPassword: myPassword
sasOperatorPort: 6340
sasUUIDPort: 6341
description: SAS Session UUID Generator Daemon on XP

Installing the UUID Generator Daemon

When you have created the setup configuration file, you can install UUIDGEND by starting the object spawner program (objspawn), and specifying the setup configuration file with the following syntax:
objspawn -configFilefilename
The configFile option can be abbreviated as -cf.
filename specifies a fully qualified path to the UUIDGEND setup configuration file. Enclose pathnames that contain embedded blanks in single or double quotation marks. On Windows, enclose pathnames that contain embedded blanks in double quotation marks. On z/OS, specify the configuration file as follows:
//dsn:myid.objspawn.log for MVS files
//hfs:filename.ext for OpenEdition files
On Windows, the objspawn.exe file is installed in the core\sasext folder in your installed SAS folder.
On UNIX, the objspawn file is installed in the utilities/bin directory in your installed SAS directory.
In the VMS operating environment, the OBJSPAWN_STARTUP.COM file executes the OBJSPAWN.COM file as a detached process. The OBJSPAWN.COM file runs the object spawner. The OBJSPAWN.COM file also includes other commands that your site might need in order to run the appropriate version of the spawner, to set the display node, to define a process level logical name that points to a template DCL file (OBJSPAWN_TEMPLATE.COM), and to perform any other necessary actions before the object spawner is started. The OBJSPAWN_TEMPLATE.COM file performs setup that is needed in order for the client process to execute. The object spawner first checks to see whether the logical name SAS$OBJSPAWN_TEMPLATE is defined. If it is, the commands in the template file are executed as part of the command sequence used when starting the client session. You do not have to define the logical name.