SAS Component Language (SCL) Interface to Agent Services

Similar documents
Introduction. LOCK Statement. CHAPTER 11 The LOCK Statement and the LOCK Command

Using Data Transfer Services

Permission Program. Support for Version 6 Only. Allowing SAS/SHARE Client Access to SAS Libraries or Files CHAPTER 40

Using Cross-Environment Data Access (CEDA)

Examples That Use Remote Objecting

APPENDIX 2 Customizing SAS/ASSIST Software

The SERVER Procedure. Introduction. Syntax CHAPTER 8

SAS I/O Engines. Definition. Specifying a Different Engine. How Engines Work with SAS Files CHAPTER 36

SAS Support for TELNET on Windows

SAS File Management. Improving Performance CHAPTER 37

Chapter 28 Saving and Printing Tables. Chapter Table of Contents SAVING AND PRINTING TABLES AS OUTPUT OBJECTS OUTPUT OBJECTS...

Chapter 3 Managing Results in Projects. Chapter Table of Contents

Windows: SPX Access Method

External Files. Definition CHAPTER 38

UNIX Spawner Program. Starting the UNIX Spawner Program CHAPTER 36

Creating and Executing Stored Compiled DATA Step Programs

Using the SQL Editor. Overview CHAPTER 11

OS/2: SPX Access Method

CHAPTER 7 Examples of Combining Compute Services and Data Transfer Services

QUEST Procedure Reference

Storing and Reusing Macros

CHAPTER 5 Macintosh: TCP/IP Access Method

from the source host, use the FTP put command to copy a file from the source host to the target host.

Data Representation. Variable Precision and Storage Information. Numeric Variables in the Alpha Environment CHAPTER 9

Formats. Formats Under UNIX. HEXw. format. $HEXw. format. Details CHAPTER 11

APPENDIX 4 Migrating from QMF to SAS/ ASSIST Software. Each of these steps can be executed independently.

OS/390 Platform Examples

Locking SAS Data Objects

SCL Arrays. Introduction. Declaring Arrays CHAPTER 4

CHAPTER 13 Importing and Exporting External Data

Chapter 6 Creating Reports. Chapter Table of Contents

Data Set Options. Specify a data set option in parentheses after a SAS data set name. To specify several data set options, separate them with spaces.

Graphics. Chapter Overview CHAPTER 4

SAS/ASSIST Software Setup

UNIX Platform Error Messages

DBLOAD Procedure Reference

Chapter 25 PROC PARETO Statement. Chapter Table of Contents. OVERVIEW SYNTAX SummaryofOptions DictionaryofOptions...

OpenVMS Operating Environment

Chapter 23 Animating Graphs. Chapter Table of Contents ANIMATING SELECTION OF OBSERVATIONS ANIMATING SELECTED GRAPHS...347

Choosing the Right Procedure

Introduction. CHAPTER 3 Working in the SAS Windowing Environment

SAS Catalogs. Definition. Catalog Names. Parts of a Catalog Name CHAPTER 32

Macro Facility. About the Macro Facility. Automatic Macro Variables CHAPTER 14

SAS Web Infrastructure Kit 1.0. Overview

Changes and Enhancements

Using MDP Extensions. What Is the Multidimensional Data Provider? CHAPTER 3

10 The First Steps 4 Chapter 2

What Is a Communications Access Method? CHAPTER 1 Using Communications Access Methods

Overview. CHAPTER 2 Using the SAS System and SAS/ ASSIST Software

The EXPLODE Procedure

_beginmethod method 177 BINARY option, PROC DOWNLOAD statement. BINARY option, PROC UPLOAD statement

Informats. Informats Under UNIX. HEXw. informat. $HEXw. informat. Details CHAPTER 13

CV2ODBC Procedure. Overview. CV2ODBC Procedure Syntax APPENDIX 4

Changes and Enhancements

Tasks Menu Reference. Introduction. Data Management APPENDIX 1

Optimizing System Performance

Introduction to MDDBs

Chapter 2 User Interface Features. networks Window. Drawing Panel

Customizing Your SAS Session

SYSTEM 2000 Essentials

SAS Data Libraries. Definition CHAPTER 26

Routing the SAS Log and SAS Procedure Output

Alternative ODS HTML Statements for Running Examples in Different Operating Environments

This chapter is recommended primarily for server administrators.

CHAPTER 7 Using Other SAS Software Products

Chapter 27 Saving and Printing Graphics

Chapter 7 File Access. Chapter Table of Contents

WKn Chapter. Note to UNIX and OS/390 Users. Import/Export Facility CHAPTER 9

The GTESTIT Procedure

SAS. Information Map Studio 3.1: Creating Your First Information Map

Enterprise Miner Software: Changes and Enhancements, Release 4.1

SAS Drug Development 3.3_03. December 14, 2007

Chapter 28 Command Reference. Chapter Table of Contents TSVIEW COMMAND FORECAST COMMAND

SAS Simulation Studio 14.1: User s Guide. Introduction to SAS Simulation Studio

SAS/ACCESS Interface to R/3

Using Dynamic Data Exchange

Defining Your Data Sources

Introduction. Getting Started with the Macro Facility CHAPTER 1

Introduction to the OpenVMS Operating Environment

Chapter 9 Selected Examples. Queues with Reneging

SAS/FSP 9.2. Procedures Guide

Introduction. Understanding SAS/ACCESS Descriptor Files. CHAPTER 3 Defining SAS/ACCESS Descriptor Files

Administrator for Enterprise Clients: User s Guide. Second Edition

SAS Web Infrastructure Kit 1.0. Overview, Second Edition

SAS. IT Service Level Management 2.1: Migration Documentation

Using Unnamed and Named Pipes

The TIMEPLOT Procedure

SAS/Warehouse Metadata API. Reference Second Edition

The correct bibliographic citation for this manual is as follows: SAS Institute Inc Proc EXPLODE. Cary, NC: SAS Institute Inc.

SAS/ACCESS Data Set Options

Administering SAS Enterprise Guide 4.2

SAS. Installation Guide Fifth Edition Intelligence Platform

Using the SAS/ACCESS Interface to IMS-DL/I DATA Step Interface

Chapter 14 Introduction to the FACTEX Procedure

Chapter 13 Multivariate Techniques. Chapter Table of Contents

Batch Importing. Overview CHAPTER 4

Installation Instructions for SAS Foundation for UNIX Environments

SAS 9.2 Foundation Services. Administrator s Guide

SAS Strategy Management 5.2 Batch Maintenance Facility

SAS Data Integration Studio 3.3. User s Guide

Transcription:

433 CHAPTER 41 SAS Component Language (SCL) Interface to Agent Services Introduction 433 Agent Services Methods 433 Dictionary 434 Introduction Agent services are provided by the AGENT class. PARENT: SASHELP.FSP.OBJECT.CLASS CLASS: SASHELP.CONNECT.AGENT.CLASS Agent Services Methods The following is a summary of the methods specific to the AGENT class: _setdomaininfo Initialize target DOMAIN server context information. _defineagent Define an agent to the DOMAIN server. _getagentproperties Retrieve properties about one or more agents. _runagent Run an agent defined to the DOMAIN server. _abortagentrun Abort an agent run instance. _retrieveagentruninfo Retrieve the spool for a given agent run instance. _storeagentruninfo Retrieves and stores the spool for a given agent run instance in an external file or catalog entry. _purgeagentruninfo Purge the run instance spool for an agent.

434 Dictionary 4 Chapter 41 _deleteagent Delete an agent defined to the DOMAIN server. The notation that is used to explain the parameter types is C N L Character Type Numeric Type SCL List Type. Dictionary _setdomaininfo Initialize target DOMAIN server context information. CALL SEND(agentInst, _setdomaininfo, domainname, collectionname, <, securityinfo, stationinst>); Description domainname C target DOMAIN server location string collectionname C domain logical application partition securityinfo C security string (optional) stationinst N previously opened Station instance (optional) _setdomaininfo method When invoked on an Agent instance, _setdomaininfo initializes the target DOMAIN server context information. The DOMAIN server information specified here will be used for all subsequent agent class methods that are invoked. domainname is the target DOMAIN server location string. It identifies the node and service where the DOMAIN server is executing. For example, the following specification indicates that the DOMAIN server is running on the node MYNODE.XYZ.COM that has a service of DOMSVR: //mynode.xyz.com/domsvr

SAS Component Language (SCL) Interface to Agent Services 4 _defineagent 435 collectionname is the application collection name. It is a logical partition name (namespace partitions) that allows segregation within a domain. For example, a site may utilize a collection-per-department scheme. is the return code. securityinfo is optional. It is the security string in the form of USERID.PASSWORD. It must be an appropriate userid and password for a login to the system that executes the DOMAIN server. securityinfo is needed if the target DOMAIN Server is executing in a secured session. stationinst is optional. If it is specified, it should be a previously opened instance. In this case, the domain, the collection, and the security parameters that are specified on the station OPEN are used, and they will take precedence over those same parameters that are specified here. _defineagent Define an agent to the DOMAIN server. CALL SEND(agentInst, _defineagent, agentname, <, descriptor, runloc, securityinfo, scheduling, notifqueue, notiftype, notifdisp>); Description agentname C user-specified name to be assigned to agent descriptor C optional text description runloc C optional host location to run agent securityinfo C optional security information scheduling L optional repetitive run scheduling parameters notifqueue C optional asynchronous notification queue name notiftype C optional run notification form notifdisp C optional notification spool disp

436 _defineagent 4 Chapter 41 _defineagent method defines an agent to the DOMAIN server. Any SAS statements currently in the preview buffer are collected and defined to the agent, so that when it runs, the collected statements will execute. agentname is a user-specified agent name that uniquely identifies the agent. It must be unique within the application collection. identifies whether the agent was successfully defined to the DOMAIN server. All parameters that follow the parameter are optional and positional. They are defined as follows: descriptor is a user-specified text description of the agent. runloc identifies the host and spawner on which the agent should actually run when it executes. The agent may be defined to the DOMAIN server that exists on host A, but the agent may actually be defined to execute on host B. For example, the following specification indicates the spawner is running on the node HOSTB.XYZ.COM and has a service name of SPAWNSRV: //hostb.xyz.com/spawnsrv Note: Windows and OS/2 hosts do not require the service name. All other hosts require both the node name and service name. 4 securityinfo is the USERID.PASSWORD specification needed when the agent actually runs (executes) on a given host. This may be different from the USERID.PASSWORD that is specified on the _setdomaininfo method. In that case, userid.password is used to communicate with the DOMAIN server when running secured. In this case, userid.password is used to launch the agent on the specified host. scheduling is an SCL list that contains scheduling information. If no list is specified, the agent is defined to the DOMAIN server but is not scheduled to run. In this situation, the _runagent method has to be invoked to execute the agent. The scheduling parms list can be specified to identify times and dates on which the agent should run. The bold items that are listed below are supported named-items that can be specified in the list. Note: Day-of-Week and Month-and-Day scheduling parms are mutually exclusive. Use one form or the other, but not both. 4 Day-of-Week Schedule RUN_DOW the value 1 represents Sunday and 7 represents Saturday. A single day must be specified by using a single number. Multiple days must be specified by using

SAS Component Language (SCL) Interface to Agent Services 4 _defineagent 437 comma delimiters (2,4,6 for Monday, Wednesday, Friday). A range must be specified by using a hyphen delimiter (1-7). Month-and-Day Schedule RUN_MONTH the value 1 represents January and 12 represents December. Single, multiple, and range specifications (similar to RUN_DOW) are supported. RUN_DAY values range between 1 and 31 to represent the day of the month the agent is scheduled to run. For the agent to execute, the day of the month must be valid. Time Schedule RUN_HOUR indicates hour portion of the agent run launch time (per 24-hour time, 1:00 PM is 13:00). RUN_MINUTE indicates minute portion of the agent run launch time. NotifQueue identifies the name of the queue in which to send a message when the agent has successfully run. If the queue does not exist, it will be dynamically created. This queue can then be checked periodically by querying the queue to see if there is a message. A message TYPE value of 65539 is reserved and indicates that this message was sent as a result of an agent run completion. The header parameter from the query can then be evaluated. The header will contain the following named items: AGENT_NAME identifies the name of the agent that ran. AGENT_RUN_COMPLETION_STATUS is used to determine whether the agent run was successful. AGENT_RUN_KEY is used to retrieve the spool from the run instance. AGENT_RUN_DATETIME is the date and time the agent was run. DESCRIPTOR is a user-specified text description of the agent. notiftype indicates the form of the agent run completion notification message. The following values are supported: COMPLETE indicates that only completion notification occurs FULL indicates that along with completion notification, the run log and listing output spool are included with the notification. LOG indicates that along with completion notification, the run log spool is included with the notification.

438 _getagentproperties 4 Chapter 41 LIST indicates that along with completion notification, the listing output spool is included with the notification. notifdisp indicates whether the run spool is or is not retained. The following values are supported: RETAIN indicates that the run spool is retained after run completion notification. The user must execute the _purgeagentruninfo method to delete the spool. PURGE indicates that the run spool is deleted subsequent to notification. Example 1 This program sets a schedule list to run on July 4, at 8:10 p.m. = setnitemn(schedule, 7, -1, "RUN_MONTH"); = setnitemn(schedule, 4, -1, "RUN_DAY"); = setnitemn(schedule, 20, -1, "RUN_HOUR"); = setnitemn(schedule, 10, -1, "RUN_MINUTE"); Example 2 This program sets a schedule list so that it runs every Monday at 7:30 a.m. = setnitemn(schedule, 2, -1, "RUN_DOW"); = setnitemn(schedule, 7, -1, "RUN_HOUR"); = setnitemn(schedule, 30, -1, "RUN_MINUTE"); _getagentproperties Retrieve properties about one or more agents. CALL SEND(agentInst, _getagentproperties, agentlist, rlist, ); Description agentlist L list of agents rlist L resulting properties list

SAS Component Language (SCL) Interface to Agent Services 4 _getagentproperties 439 _getagentproperties method retrieves agent properties for a specific agent or multiple agents with the use of the wildcard character (*). agentlist indicates the targeted agents. This is an SCL list that must contain the named items AGENT_NAME and COLLECTION_NAME. The values of these named items must be character strings that indicate which agent and collections are to be used. You can specify an asterisk (*) as a wildcard character in order to retrieve information about more than one agent. The wildcard character can be specified by itself (*), at the beginning of the value (*value), or at the end of the value (value*). Note: In addition, the named item USER_NAME can optionally be specified to further subset the request by only returning those agents that are owned by the specified user name. The wildcard character can also be used for the user name specification. 4 rlist is the agent(s) properties list returned from the method call. This parameter should be initialized as an empty SCL list. Upon completion of the _getagentproperties method, rlist contains a list for each agent that matches the specified criteria. Each list within rlist contains the following named items: 3 AGENT_NAME 3 COLLECTION_NAME 3 OWNER_NAME In addition, each list may contain one or more of the following named items, depending on how the agent was defined. Only defined properties are returned. For example, if the agent is defined without a description, the named item DESCRIPTOR will not exist. 3 DESCRIPTOR 3 RUN_LOCATION 3 RUN_COMPLETION_QUEUE 3 SCHEDULED_TIME 3 SCHEDULED_DATE 3 RUN_MINUTE 3 RUN_HOUR 3 RUN_DAY 3 RUN_MONTH 3 RUN_DOW 3 START_DAY 3 START_MONTH 3 START_YEAR 3 STOP_DAY 3 STOP_MONTH 3 STOP_YEAR identifies whether the properties of the agent were returned successfully. Example 1 The following example retrieves properties for all agents in all collections.

440 _runagent 4 Chapter 41 = setnitemc(alist, *, AGENT_NAME ); = setnitemc(alist, *, COLLECTION_NAME ); call send(agent, _getagentproperties, alist, rlist, ); Example 2 The following example retrieves properties for all agents named EMPLOYEE in all collections that end in TEXAS. = setnitemc(alist, Employee, AGENT_NAME ); = setnitemc(alist, *texas, COLLECTION_NAME ); call send(agent, _getagentproperties, alist, rlist, ); Example 3 The following example retrieves properties for all agents that start with PROD that are in the CARY collection. = setnitemc(alist, Prod*, AGENT_NAME ); = setnitemc(alist, Cary, COLLECTION_NAME ); call send(agent, _getagentproperties, alist, rlist, ); Example 4 The following example retrieves properties for all agents that are owned by the user USER3. = setnitemc(alist, *, AGENT_NAME ); = setnitemc(alist, *, COLLECTION_NAME ); = setnitemc(alist, USER3, USER_NAME ); call send(agent, _getagentproperties, alist, rlist, ); _runagent Run an agent defined to the DOMAIN Server. CALL SEND(agentInst, _runagent, agentname, runkey, <, descriptor, runloc, securityinfo, notifqueue, notiftype, notifdisp>); Description

SAS Component Language (SCL) Interface to Agent Services 4 _runagent 441 agentname C name of agent to run runkey N run instance key descriptor C optional text description runloc C optional host location to run agent securityinfo C optional security information notifqueue C optional asynchronous notification queue name notiftype C optional run notification form notifdisp C optional notification spool disp _runagent method runs an agent that is defined to the DOMAIN server. If the preview buffer is empty when _runagent is invoked, the agent must have already been defined by using the _defineagent method. Otherwise, the SAS statements within the preview buffer are collected and executed when the agent runs. agentname is an agent that has been defined to the DOMAIN server using the _defineagent method. runkey is returned from the _runagent method and can be used to retrieve the run information for this particular run. parameter identifies whether the launch of the agent run was successful. All parameters that follow the parameter are optional and positional. These parameters are descriptor is a user-specified text description of the agent. runloc identifies the host and spawner on which the agent should actually run when it executes. The agent may be defined to the DOMAIN server that exists on host A, but the agent may actually be defined to execute on host B. For example, the following specification indicates the spawner is running on the node HOSTB.XYZ.COM and has a service name of SPAWNSRV: //hostb.xyz.com/spawnsrv Note: Windows and OS/2 hosts do not require the service name. All other hosts require both the node name and service name. 4 securityinfo is the userid.password specification that is needed when the agent actually runs (executes) on a given host. This may be different from the userid and password that are specified in the _setdomaininfo method. In that case, userid.password

442 _abortagentrun 4 Chapter 41 communicates with the DOMAIN server when it runs secured. In this case, userid.password launches the agent on the specified host by using runloc. notifqueue identifies the name of the queue in which to send a message when the agent has successfully executed. This queue can then be checked periodically by querying the queue to see if there is a message. A message TYPE value of 65539 is reserved and indicates that this message was sent as a result of an agent run completion. The header parameter from the query can then be evaluated. The header will contain the following named items: AGENT_NAME identifies the name of the agent that ran. AGENT_RUN_COMPLETION_STATUS can be used to determine whether the agent run was successful. AGENT_RUN_KEY can be used to retrieve the spool from the run instance. AGENT_RUN_DATETIME is the date and time the agent was run. DESCRIPTOR is a user-specified text description of the agent run. notiftype indicates the form of the agent run-completion notification message. The following values are supported: COMPLETE indicates that only completion notification occurs. FULL indicates that along with completion notification, the run log and listing output spool are included with the notification. LOG indicates that along with completion notification, the run log spool is included with the notification. LIST indicates that along with completion notification, the run listing output spool is included with the notification. notifdisp indicates whether the run spool is retained. The following values are supported: RETAIN indicates that the run spool is retained after run-completion notification. The user must execute the _purgeagentruninfo method to delete the spool. PURGE indicates that the run spool is deleted subsequent to notification. _abortagentrun Abort an agent run instance.

SAS Component Language (SCL) Interface to Agent Services 4 _retrieveagentruninfo 443 CALL SEND(agentInst, _abortagentrun, agentname, runkey, ); Description agentname C name of agent to delete runkey N run instance key _abortagentrun method aborts a specific run instance that is executing. The agentname and runkey parameters identify the specific run instance of the agent to abort. agentname is an agent that has been defined to the DOMAIN server by using the _defineagent method. runkey is returned from the _runagent method and is used to retrieve the run information for this particular run. indicates the success or failure of the abort. _retrieveagentruninfo Retrieves the spool for a given agent run instance. CALL SEND(agentInst, _retrieveagentruninfo, agentname, runkey, datetime, cc, <, logspool, listspool>); Description agentname C name of agent runkey N run instance key datetime N date-time stamp

444 _retrieveagentruninfo 4 Chapter 41 cc N completion code logspool N optional log spool model object id listspool N optional list spool model object id _retrieveagentruninfo method retrieves the log and output spool for a given agent run, which is identified by the agentname and runkey parameters. The output can be displayed in a FRAME text viewer. agentname is an agent that has been defined to the DOMAIN server using the _defineagent method. runkey is returned from the _runagent method and can be used to retrieve the run information for this particular run. datetime is a return parameter that holds the date/time stamp for the run instance. cc is a return parameter that holds the completion code; if cc is 0, the agent run executed successfully. parameter indicates whether the _retrieveagentruninfo method was invoked successfully. All parameters after are optional and positional. These parameters are logspool is the log spool model object id that identifies the model in which to display the log spool that is retrieved. The SASHELP.CONNECT.RUNSPOOL class can be used to present the run instance log spool. listspool is the listing output spool model object id that identifies the model in which to display the listing output spool that is retrieved. The SASHELP.CONNECT.RUNSPOOL class can be used to present the run instance listing output spool. Note: Both log and listing output may be directed to the same spool instance or to different run spools. Either or both may be omitted as well. The run spool instances may be displayed with the FRAME text viewer. 4 Example This example retrieves the agent run information and displays the log and listing output run spool in a FRAME text viewer instance named VIEWER_I. model_c = loadclass( sashelp.connect.runspool.class ); model_i = instance(model_c); call send(agentinst, _retrieveagentruninfo,

SAS Component Language (SCL) Interface to Agent Services 4 _storeagentruninfo 445 agent_name, runkey, rundt, runcc,, model_i, model_i); call notify( viewer_i, _ATTACH_, model_i); _storeagentruninfo Retrieves and stores the spool for a given agent run instance in an external file or catalog entry. CALL SEND(agentInst, _storeagentruninfo, agentname, runkey, datetime, cc, type, logspec, listspec, ); Description agentname C name of agent runkey N run instance key datetime N date/time stamp cc N completion code type C type of storage file logspec C external file or catalog in which to store the log listspec C external file or catalog in which to store the listing output _storeagentruninfo method retrieves the log and listing output spool for a given agent run which is identified by the agentname and runkey parameters and stores it in either an external file or catalog entry. agentname is an agent that has been defined to the DOMAIN server using the _defineagent method. runkey is returned from the _runagent method and is used to retrieve the run information for this particular run. datetime is a return parameter that holds the date/time stamp for the run instance.

446 _purgeagentruninfo 4 Chapter 41 cc is a return parameter that holds the completion code. If 0, the agent run executed successfully. type parameter indicates the type of file in which the agent run information will be stored. This parameter must have a value of either CATALOG or EXTERNAL. logspec listspec parameters indicate the file(s) in which to store the log and listing output from the agent run. These parameters will vary based on the value of type: 3 If type is CATALOG, logspec and listspec must be a valid catalog names that represent the catalog entry. It must be in the form of libname.memname.entryname entrytype does not have to be specified because the log information is stored in an entrytype of AGENTLOG and the output is stored in an entrytype of AGENTOUT. 3 If type is EXTERNAL, logspec and listspec must be valid filerefs. When an external file is used, the user has the flexibility to decide whether to store the log and listing output in the same file or in separate files. If they are identical, the log and listing output are stored in the same file. If not, the log and listing output are stored separately. indicates whether the _storeagentruninfo method was invoked successfully. Example This example stores the agent run info in the external file EXTREF, which is defined by the fileref. ftype = EXTERNAL ; fref = extref ; = filename( extref, /tmp/agent.txt ); call send(agentinst, _storeagentruninfo, agent_name, runkey, rundt, runcc, ftype, fref, ); _purgeagentruninfo Purge the run instance spool of the agent. CALL SEND(agentInst, _purgeagentruninfo, agentname, runkey, ); Description

SAS Component Language (SCL) Interface to Agent Services 4 _deleteagent 447 agentname C name of agent to purge runkey N run instance key _purgeagentruninfo method purges the spool from a specific run instance that is identified by the agentname and the runkey parameters. agentname is an agent that has been defined to the DOMAIN server by using the _defineagent method. runkey is returned from the _runagent method and is used to retrieve the run information for this particular run. indicates the success or failure of the purge. _deleteagent Delete an agent defined to the DOMAIN Server. CALL SEND(agentInst, _deleteagent, agentname, ); Description agentname C name of agent to delete _deleteagent method deletes an agent defined to a particular DOMAIN server agentname is an agent that has been defined to the DOMAIN server by using the _defineagent method. indicates the success or failure of the deletion.

448 _deleteagent 4 Chapter 41

The correct bibliographic citation for this manual is as follows: SAS Institute Inc., SAS/ CONNECT User s Guide, Version 8, Cary, NC: SAS Institute Inc., 1999. pp. 537. SAS/CONNECT User s Guide, Version 8 Copyright 1999 by SAS Institute Inc., Cary, NC, USA. ISBN 1 58025 477 2 All rights reserved. Printed in the United States of America. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, or otherwise, without the prior written permission of the publisher, SAS Institute Inc. U.S. Government Restricted Rights Notice. Use, duplication, or disclosure of the software by the government is subject to restrictions as set forth in FAR 52.227 19 Commeial Computer Software-Restricted Rights (June 1987). SAS Institute Inc., SAS Campus Drive, Cary, North Carolina 27513. 1st printing, September 1999 SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. indicates USA registration. IBM, AIX, DB2, OS/2, OS/390, RS/6000, System/370 TM, and System/390 are registered trademarks or trademarks of International Business Machines Corporation. ORACLE is a registered trademark or trademark of Oracle Corporation. indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies. The Institute is a private company devoted to the support and further development of its software and related services.