|
Tips for Diagnosing a Problematic SAS/IntrNet Pool Service
Step 1: Check
that the SAS/IntrNet Load Manager process is configured, is running and was
started using the -log option so that a log file is created. See the following
reference for information about the Load Manager: http://support.sas.com/onlinedoc/913/getDoc/en/dispatch.hlp/useload.htm Step 2: Check the Pool service definition in the
broker.cfg file. Application Broker configuration file directives are
documented at the following url: http://support.sas.com/onlinedoc/913/getDoc/en/dispatch.hlp/refconf.htm The broker.cfg file must contain a Pool service definition
and must correctly identify the server and port where the Load Manager is
running, using either the LoadManager global directive or the
ServiceLoadManager directive within the Pool service definition. The Pool service definition must also
identify the server where SAS is installed, the number of Application Servers
to start, and the correct command to start SAS and the Application Servers. Here is an example of a Pool service definition that
will start up to 5 servers as needed.
SAS and the Load Manager are installed on the same machine and Load
Manager is running on port 5555: For Windows ----------- PoolService pool1
ServiceAdmin "[your-name]"
ServiceAdminMail "[your-email]@[your-site]" Server your.winbox.com Port 5
IdleTimeout 30
FullDuplex True
ServiceLoadManager
your.winbox.com:5555
SasCommand
"\"C:\\Program Files\\SAS\\SAS 9.1\\sas.exe\" +
\"C:\\Program Files\\SAS\\SAS
9.1\\intrnet\\pool1\\appstart.sas\" + -rsasuser -noterminal -nolog -SYSPARM
" For Unix -------- PoolService pool1
ServiceAdmin "[your-name]"
ServiceAdminMail "[your-email]@[your-site]" Server your.unixbox.com Port 5 IdleTimeout
30
FullDuplex True ServiceLoadManager your.unixbox.com:5555 SasCommand
"/usr/local/bin/SAS_9.1/sas
/usr/local/bin/SAS_9.1/intrnet/pool1/appstart.sas +
-rsasuser -noterminal -nolog -SYSPARM " Step 3: Test
the Pool service using a http://your.web.server/cgi-bin/broker?_service=pool1&_program=ping&_debug=2304 Note the lines returned in the Web browser. Save the browser output to a file on disk in
case you need to send it to Technical Support. If you see a line that starts with "Error
connecting to loadmgr..." in the browser, then the Application Broker
cannot connect to the Load Manager that is defined in the broker.cfg file for
this service. Check the server and/or
port number that has been specified in the LoadManager or ServiceLoadManager
directive to be certain it is correct. Also check to be sure there is tcp/ip
connectivity between the machine where the Web server is running and the
machine where the Load Manager (and SAS) is installed. You can use the ping
command to test connectivity from a system prompt on the Web server machine: prompt> ping your.unixbox.com If the output from _DEBUG=2304 contains a line that
starts with "Load manager returned...", then the connection to the
Load Manager was successful and you must check the Load Manager log file for messages
that may have been logged when the Load Manager attempted to start the
Application Server(s). Step 4: Check the Load Manager log file. Information
on how to interpret the Load Manager log can be found here: http://support.sas.com/onlinedoc/913/getDoc/en/dispatch.hlp/logload.htm Here is an excerpt from a Load Manager log file
showing a successful Pool service startup: If the Load Manager log file contains messages that
indicate "Server failed to start..." or "Waiter exited"
after logging a "Starting..." message for the Pool service, then the
following test may help determine why the server would not start.
Modify the Pool service definition to designate only
one server in the Port directive; specify either a single, specific port number
over 256 or the number 1. Also change
the -nolog option in the SasCommand
directive to -log and specify a valid log file in a directory on the server
like c:\temp (Windows) or /tmp (Unix) where permissions are open. For example,
For Windows ----------- PoolService pool1
ServiceAdmin "[your-name]"
ServiceAdminMail "[your-email]@[your-site]" Server your.winbox.com Port 1
IdleTimeout 30
FullDuplex True
ServiceLoadManager your.winbox.com:5555
SasCommand
"\"C:\\Program Files\\SAS\\SAS 9.1\\sas.exe\" +
\"C:\\Program Files\\SAS\\SAS
9.1\\intrnet\\pool1\\appstart.sas\" +
-rsasuser -noterminal -log c:\\temp\\appstart.log -SYSPARM " For Unix -------- PoolService pool1
ServiceAdmin "[your-name]"
ServiceAdminMail "[your-email]@[your-site]" Server your.unixbox.com Port 1 IdleTimeout
30
FullDuplex True
ServiceLoadManager
your.unixbox.com:5555 SasCommand
"/usr/local/bin/SAS_9.1/sas
/usr/local/bin/SAS_9.1/intrnet/pool1/appstart.sas +
-rsasuser -noterminal -log /tmp/appstart.log -SYSPARM "
Then send a http://your.web.server/cgi-bin/broker?_service=Pool1&_program=ping&_debug=2304 Step 5: If no
log file is produced from the test in Step 4, then the most likely culprit is insufficient
authorization for the account that Load Manager is started with to a) start SAS b) write to the c) read or write to the SASUSER library d) read the appstart.sas file or e) write to the log file. You can modify the Pool service definition from Step
4 to test further by adding the - For Windows ----------- SasCommand "\"C:\\Program Files\\SAS\\SAS
9.1\\sas.exe\" +
\"C:\\Program Files\\SAS\\SAS
9.1\\intrnet\\pool1\\appstart.sas\" +
-rsasuser -noterminal -work c:\\temp -sasuser c:\\temp -log
c:\\temp\\appstart.log -SYSPARM " For Unix -------- SasCommand
"/usr/local/bin/SAS_9.1/sas
/usr/local/bin/SAS_9.1/intrnet/pool1/appstart.sas +
-rsasuser -noterminal -work /tmp -sasuser /tmp -log /tmp/appstart.log
-SYSPARM " Once this change is made in the broker.cfg file, ping
the service again: http://your.web.server/cgi-bin/broker?_service=Pool1&_program=ping&_debug=2304
If the Pool service can be successfully pinged after
making this change to the broker.cfg file, then you can surmise that there were
insufficient permissions on the Step 6: If the
Pool service *STILL* fails to start then a) Test to see if you can start a Socket service
instead of a Pool service. Use the
SAS/IntrNet Service Configuration Utility (inetcfg.exe on Windows and
inetcfg.pl on Unix) to create a Socket service.
Instructions for creating a Socket
service can be found here: http://support.sas.com/91doc/getDoc/dispatch.hlp/defsvc.htm b) Check SAS Notes for the specific error you
receive. c) If you contact Technical Support please be
prepared to provide the broker.cfg file, the Load Manager log file, the appstart.log file from the tests
above (if one is created), the appstart.sas file and the output from a |