SSI API detailed configuration guide *NOTE* For configuration of the SSI API under Windows, there is available "edtcu" which provides a GUI based configuration and API start, start, and refresh. Also provided is associated help file. This guide is for manipulation under Unix OS. However, the configuration parameters discussed herein are equally valid under Windows. I. Basic configuration - Within the rc.edt file, find the line: MEDIA_MNGR_HOST="hostname" - Replace "hostname" with the hostname or IP address of the ACSLS server you wish to use. Note that you are safer using the IP address, as using a hostname means that a DNS server or hosts table will be called to resolve the hostname. If you use hostname, from the command, line run "ping hostname" (replacing hostname with actual hostname of machine you are trying to contact, the ACSLS server in this case). If ping is successful, you should have no problem with using the hostname in the rc.edt script. Otherwise, use the IP address. - Save and close the rc.edt file. - Start the api rc.edt api You will see the response: Check mini_el and ssi ... starting mini_el. Sending output to nohup.out starting ssi daemon... CSI_HOSTNAME: delta Socket address: 40004 CSI_RETRY_TRIES: 2 CSI_RETRY_TIMEOUT: 4 CSI_TCP_RPCSERVICE: TRUE CSI_UDP_RPCSERVICE: FALSE SSI_HOSTNAME: not used SSI_INET_PORT: not used CSI_HOSTPORT: not used SIGHUP received Parent Process ID is: 19368 SIGHUP received Parent Process #19368 EXITING NORMALLY ssi for host delta on socket 40004 started. - Do the command ps -ef | grep SSI Expectation: You should see an ssi process and a mini_el process, but no t_parent process. - Look in /tmp for the file event.log. This is the log file for the SSI API. Open the file and you will see two time stamped messages indicating: Initiation Started and Initiation Completed. - Rc.edt other than "api" also responds to "kill_api" and "refresh_api". II. SSI API startup. The SSI API must be up and running prior to TSM initializing. The script edt_inittab_update will place an entry into the system /etc/inittab to contact the rc.edt script and start the api. You may wish to look if the entry is placed ahead of any entry to start TSM. Under windows, you select to have the SSI API start automatically upon system start through the EDT Config GUI edtcu. III. Alternative SSI API Internal Socket. - By default, the SSI API receives and sends to a calling process like EDT on socket 40004. This socket value can be changed. - In the SSI API configuration file, rc.edt find the following line: typeset -i10 socket=40004 - Change the socket value to something not in use. You may wish to use netstat to see what sockets are in use. Usually a small increment of the original value is reasonable. Example: typeset -i10 socket=40005 - Save the changes, and refresh the API. - EDT needs to know the new socket address. In the configuration file, elm.conf, in your library description, activate the entry: ACSLS Example: ACSLS acs1 40005 - Certain utilities can gain access to the elm.conf file and find the alternative socket address from a library description while others can not. Those that need to have the alternative socket number entered on the command line are easily recognized: util directory: all utilities. option "-e" prints an overview of the available API overrides. "-s" overides default socket. bin directory: any utility that responds to "-E" option, printing an overview of API overrides. "-s" changes default socket. Example: acsls_qserver -r -s 40005 - You may choose to incorporate this change into a system wide environmental file to not worry about adding this parameter. Example: export ACSAPI_SSI_SOCKET=40005 Note however, in a multiple SSI API environment, this should not be done. IV. Alternative Communication Path. - Instead of using the main LAN for communication from client to ACSLS server, you can take advantage of this capability to communicate over a separate communication path. For example, you have available an alternative adaptor over which you can reach the ACSLS on address 10.1.1.1, and your client is recognized on this subnet as 10.1.1.0. - Configure rc.edt MEDIA_MNGR_HOST="hostname", such that the hostname reflects the ip address over which to reach ACSLS. Example: MEDIA_MNGR_HOST="10.1.1.1" - Find the line SSI_HOST="x.x.x.x", and substitute in the matching client ip address: Example: SSI_HOST="10.1.1.0" - Save the changes, and refresh the API. - EDT needs to know the ssi hostname. In the configuration file, elm.conf, in your library description, activate the entry: SSI_HOSTNAME Example: SSI_HOSTNAME 10.1.1.0 - Certain utilities can gain access to the elm.conf file and find the ssi hostname from a library description while others can not. Those that need to have the ssi hostname entered on the command line are easily recognized: util directory: all utilities. option "-e" prints an overview of the available API overrides. "-h" option for ssi hostname. bin directory: any utility that responds to "-E" option, printing an overview of API overrides. "-h" option for ssi_hostname. Example: acsls_qserver -r -h 10.1.1.0 - You may choose to incorporate this change into a system wide environmental file to not worry about adding this parameter. Example: export SSI_HOSTNAME=10.1.1.0 Note however, in a multiple SSI API environment, this should not be done. - There is one last important step. The ACSLS server must be configured to accept a "multi-homed" client. On the ACSLS Server, the utility dv_print or dv_config -d should show the parameter CSI_MULTI_HOMED_CL: FALSE. If FALSE, edit the file /export/home/ACSSS/data/internal/dynamic_variables/dv_config.dat so that the value associated with CSI_MULTI_HOMED_CL is TRUE. Stop ACSLS: kill.acsss Start ACSLS: rc.acsss Recheck with dv_print or dv_config -d, the value should now register as TRUE. V. Fixed Port Communication. To fix the SSI API port value communicating to and from ACSLS do the following: - Edit rc.edt: CSI_TCP="TRUE" CSI_UDP="FALSE" These variables represent the main communication methods. In fixing the port values, UDP is no longer supported. Find the line SSI_TCP_PORT="" and edit: Example: SSI_TCP_PORT="50000" - Save changes and refresh the SSI API: rc.edt refresh_api - Check the port in use using rpcinfo -p: Example: program vers proto port service 1073741824 2 tcp 50000 Notice that the base program number is 4000000h. Note that the base number is not always fixed and may be greater than 4000000h. To fix the CSI API port on the ACSLS server. - You must configure ACSLS so that the CSI API uses fixed ports. Stop ACSLS: kill.acsss Call up acsss_config 1: Set CSI tuning variables Changes to alter use of the UDP protocol will not take effect until the product is restarted. CSI support for RPC using the UDP protocol is enabled [TRUE]: FALSE Enable CSI to be used behind a firewall (user-defined inbound port) [FALSE]: TRUE Port number used by the CSI to receive incoming ACSLS requests [30031]: 50500 Note that in this example, we have chosen 50500. Start ACSLS: rc.acsss Check port assignment: rpcinfo -p Example: 536871166 2 tcp 50500 300031 2 tcp 50500 - Edit rc.edt. Turn off udp communication and set the csi port to that of the CSI API. Example: CSI_UDP="FALSE" CSI_PORT="50500" - Refresh the SSI API: rc.edt refresh_api VI. SSI API Timeout. - In rc.edt look for the line: CSI_RTY_TRIES=number of retries" The ssi daemon internal tries every 2.5 minutes to receive a response. By tweaking this retry value, you are in essence setting the timeout value for the SSI API itself. The default value for retries is 2, indicating a retry threshold of 5 minutes. Base the number of retries on the following formula: (SSI timeout in minutes)/2.5 Example: 10 mins/2.5 = 4 retries within the 15 minute period. CSI_RTY_TRIES=4 - Refresh the SSI API: rc.edt refresh_api - The default timeout period for EDT to wait for a response from ACSLS is 300 seconds. An automatic retry is added which extends this to a total of 600 seconds. If you have changed the ssi api retries, you must adjust the timeout value for EDT to correspondingly wait. - In the configuration file, elm.conf, in your library description, activate the entry: SSITIMEOUT