NetWorker command:      ssi

NAME

       ssi - StorageTek silo interface module (Unix only)
       mini_el - event logger for use with ssi (Unix only)
       libstlstk - shared library for communication to ssi


SYNOPSIS

       ssi    [ -A ACSLS server ] [ -a ACSLS port number ]
	   [ -S SSI port number ] [ -P port number ] [ -r retry count ] &
	   
         mini_el [ -l logfile ] [ -d ] [ -h ] &
         
         libstlstk.so   (Solaris)
         libstlstk.so.a (AIX)
         libstlstk.sl   (HPUX)
         libstlstk.so.1 (SGI)
         libstlstk.so.1 (DYNIX/ptx)
         libstlstk.so   (DECAXP)
         libstlstk.dll  (NT i386)


DESCRIPTION

       NOTE:  in  this  document,  the  term  "ACSLS  server"  will be used to
       indicate the name of the system that is running any one of StorageTek's
       library  manager  programs:  ACSLS  on  a  Solaris or AIX host, Library
       Station on an MVS host, or Horizon Library Manager on a system  running
       Windows NT or Windows 2000.

      (Unix only)

       The  ssi  command  is  used  indirectly by nsrjb to communicate with an
       ACSLS server.  nsrjb loads libstlstk, which handles the  TCP  calls  to
       and  from  ssi.  ssi  then handles all of communication to and from the
       ACSLS server.  Starting with ACSLS version 5.3, it is possible  to  run
       NetWorker  (either  a  server  or a storage node) on the same host that
       ACSLS is running on.

       ssi and mini_el must be running on the system on which jbconfig was run
       to  create the jukebox resource.  ssi and mini_el are almost always run
       as background processes, and are usually started automatically  by  the
       system.

       In  addition  to ssi and mini_el, a shared library file (usually called
       libstlstk.xxx where xxx is an operating system-dependent extension)  is
       also  required.  An appropriate version of this library is installed as
       part of NetWorker.

      New in version 2.00 of ssi:

	ssi now supports communication with the ACSLS server  on  a  specified
	port  number,  using  the -a command line option.  This is part of the
	STK firewall enhancement.  The ACSLS server must  be  running  version
	7.1 to use this functionality.

	While  you  can	 still	start  ssi  the same way as before - using the
	environment variable  CSI_HOSTNAME  to	select	the  ACSLS  server  to
	connect	 to  -	you  can also specify the ACSLS server hostname on the
	command line using the -A option.  By using the	 -a  option,  you  may
	specify	 the port number that the ssi process will use when connecting
	to the ACSLS server.  The ACSLS server must be configured to listen on
	this  port.  Using the -S option, the ssi process can be configured to
	listen for response messages on a specific port.  You may also specify
	the  port  number  used	 for  communication between NetWorker and that
	particular instance of ssi using the -P option.	  The  allowed	values
	for  this  port	 number	 are  50004 (for the first instance), 50011 to
	50019, and 50021 to 50099.  Note that if you  specify  a  port	number
	that  is  already being used by an instance of ssi, the specified port
	cannot be used, and the next available port in the allowed range  will
	be  selected.	If  the	 port number is not specified, each successive
	instance of ssi will take the next available port starting from	 50004
	and  going upwards.  If there are no available ports in the range, ssi
	will fail to load and should  display  an  error  message.  Note  that
	specifying the port number is not necessary for normal operation.  You
	do not need to insure that a given ACSLS  server  is  always  accessed
	over a given port.  NetWorker and ssi use the name of the ACSLS server
	to establish a connection on the fly.

	If the -A option is not used to specify a hostname on the ssi  command
	line, the environment variable CSI_HOSTNAME must be set to the name of
	the library server, before  the	 ssi  process  is  started.   If  this
	variable is not found, ssi will exit with an error message.

	mini_el	 is  an	 event logger used by ssi to maintain a log of certain
	events.	 It should be started before ssi.  Multiple instances  of  ssi
	will  share  a single instance of mini_el.  A header consisting of the
	ACSLS server name and the local TCP port that ssi will be listening on
	is  included  at  the  start of any message placed into the log by any
	instance of ssi

      (NT only)

	On NT, the software equivalent to ssi and  mini_el  must  be  obtained
	from  StorageTek  as  their  product  "Library	Attach	for NT".  This
	package must be installed prior to configuring a Silo in NetWorker.

	NOTE: Library Attach version 1.1 includes a portmapper	function  that
	will  only install properly if the NetWorker services are not running.
	You should use Control Panel to stop the "NetWorker Backup and Recover
	Server"	 and  the  "NetWorker  Remote  Exec Service" before installing
	Library Attach.	 After Library Attach is  installed,  you  should  use
	Control	 Panel to start "NetWorker Remote Exec Service" and "NetWorker
	Backup and Recover Server".

	NOTE: Since EMC does not supply "Library Attach for NT", we are unable
	to  add	 the  multiple	ACSLS  host functionality to our NT version of
	NetWorker.

	NOTE: The firewall enhancements added to the ssi and mini_el processes
	are not available on systems running Windows.

      (All platforms)

       libstlstk.xxx is  a  shared  library  that  handles  the  communication
       between  nsrjb  and ssi or Library Attach.   ssi or Library Attach then
       handles the communication  over  the  network  to  the  library  server
       (either  ACSLS, Library Station or Horizon Library Manager).  There are
       no  options,  parameters  or  environment  variables  that  affect  the
       operation  of  libstlstk.   The  correct  path  to  this file should be
       entered when an STK silo is configured  using  jbconfig.   The  default
       values specified by jbconfig match the default locations chosen for the
       installation program, and in most cases can be accepted.


OPTIONS

   mini_el:
       -l     logfile
              Specifies the filename of the logfile to be  created  by
              mini_el.   The  default  value  is  /nsr/logs/ssi_event.log.  If
              present, logfile must be the complete path to the logfile. If the
              file does not exist, it will be created. If the file does exist, it
              will  be	appended  to.	If  there  is  not a -l parameter, the
              default logfile /nsr/logs/ssi_event.log will be used.

       -d     Sets the debug flag.  mini_el will output debug information.

       -h     Displays usage information for mini_el.

   ssi:
       -A ACSLS server is required if the  CSI_HOSTNAME	 environment  variable
	      has  not	been  set  to  the  name  of the system running ACSLS,
	      LibraryStation or Horizon.

       -a ACSLS port number is only required if you need to specify  the  port
	      number  used  for	 communication between the ssi process and the
	      ACSLS server. If the ACSLS server is configured to listen	 on  a
	      specific port, this value should be set to that port number.

       -S  SSI	port  number  will  force  the	ssi  process  to listen on the
	      specified port number.  This port is used in communications with
	      the ACSLS server.

       -P  port	 number is only required if you need to specify the port to be
	      used for communication between NetWorker and  the	 ssi  process.
	      The allowed values for this port number are 50004 (for the first
	      instance), 50011 to 50019, and 50021 to 50099.  Note that if you
	      specify  a port number that is already being used by an instance
	      of ssi,  the  specified  port  cannot  be	 used,	and  the  next
	      available port in the allowed range will be selected.

       -r retry count is only required if you need to increase the retry count
	      for communication between	 ssi  and  the	ACSLS  server  due  to
	      network problems.

       These  parameters  are not position sensitive.  The command line option
       will be parsed accordingly in the ssi process.
   

ENVIRONMENT VARIABLES

   ssi
       CSI_HOSTNAME  (text, up to 256 chars, there is no default)
              If an ACSLS server name is not found on the  command  line,  ssi
              will use the hostname specified by this variable.  It is limited
              to 256 characters, and should simply be the hostname running the
              library  server  program  that you are trying to connect to.  If
              neither the command line hostname nor this environment  variable
              specify  a  hostname for ssi to use, ssi will exit with an error
              message.

       SSI_HOSTNAME  (text, up to 256 chars, there is no default)
              This variable  is  intended  for  use  on  multi-homed  systems.
              Normally,   ssi   uses  the  gethostbyname  system  function  to
              determine the name to use for this side of the connection to the
              ACSLS  server.  On a system with several network interfaces, the
              name supplied by that function may not result in the use of  the
              network  interface  needed to communicate with the ACSLS server.
              On these systems, you can explicitly specify the exact  name  of
              the  network interface that ssi will use to connect to the ACSLS
              server.  This variable needs to be set before  ssi  is  started,
              and  may be different for various instances of ssi In all cases,
              a message will be logged	in  the	 event	log  stating  if  this
              environment  variable  was  found,  and if not, that ssi will be
              using the hostname returned by gethostbyname.  This  is  not  an
              error message.

       SSI_BASE_SOCKET (numeric, 0 < x < 64k, no default)
	      If  you need to restrict the socket values that ssi communicates
              on, this variable specifies the starting number for ssi  to  use
              when  it needs to open a socket to talk to the ACSLS server.  It
              appears that ssi will only open two sockets if this variable  is
              set.   The first, at SSI_BASE_SOCKET, will be used to connect to
              any host.  The second, at SSI_BASE_SOCKET + 1, will be used  for
              direct  communication  to the ACSLS server. Note that there will
              still be  the  default  sockets  at  50001  and  50004  used  to
              communicate  between  mini_el  and  ssi,  but  any communication
              between this host and the ACSLS server should  occur  using  the
              two sockets starting at SSI_BASE_SOCKET.

       TIME_FORMAT (time format string,
              default = "%m-%d-%y %H:%M:%S")
              If  you  wish  to see time values printed in a format other than
              the default  of  Month-Day-Year  Hour:Minute:Seconds,  use  this
              variable.
                  %m is replaced by the current month
                  %d is replaced by today's date
                  %y is replaced by the current year
                  %H is replaced by the current hour
                  %M is replaced by the current minute
                  %S is replaced by the current second

       CSI_CONNECT_AGETIME  (seconds, 0 < x < 31536000, default = 600)
              This  will  set  the number of seconds for network connect aging
              purposes.

       CSI_RETRY_TIMEOUT  (seconds, 0 < x < ??, default = 4)
              This will set how long ssi will wait before retrying  a  network
              request.

       CSI_RETRY_TRIES  (numeric, 0 < x < 100, default = 5)
              This  will  set  the  number  of  times ssi will retry sending a
              network message before reporting an error.

       CSI_TCP_RPCSERVICE  (boolean, default is TRUE)
              This sets whether ssi will use TCP sockets to connect  with  the
              library server.

       CSI_UDP_RPCSERVICE  (boolean, default is FALSE)
              This  sets  whether ssi will use UDP sockets to connect with the
              library server.  Setting CSI_UDP_RPCSERVICE to TRUE  will  allow
              ssi  to  communicate  with  a  csi  that  is running on the same
              system.


EXAMPLES

       Normal STK silo setup:
            mini_el &
            ssi acsls1 &
         - or -
            mini_el &
            setenv CSI_HOSTNAME acsls1
            ssi &

       Connect to 3 different ACSLS servers:
	    mini_el &
	    ssi -A acsls1 &
	    ssi -A acsls2 &
	    ssi -A acsls3 &
	 - or -
	    mini_el &
	    setenv CSI_HOSTNAME acsls1
	    ssi &
	    setenv CSI_HOSTNAME acsls2
	    ssi &
	    setenv CSI_HOSTNAME acsls3
	    ssi &

       Connect to 3 different ACSLS servers over 3 different
              network interfaces:
            mini_el &
            setenv SSI_HOSTNAME myhost_on_net1
            ssi acsls1 &
            setenv SSI_HOSTNAME myhost_on_net2
            ssi acsls2 &
            setenv SSI_HOSTNAME myhost_on_net3
            ssi acsls3 &

       Connect to ACSLS server configured to accept connections on port 30031
            mini_el &
            ssi acsls1 30031 &
         - or -
            setenv CSI_HOSTNAME acsls1
            mini_el &
            ssi 30031 &

       To have
              mini_el use /nsr/logs/ssi.log.today as its log file
            mini_el -l /nsr/logs/ssi.log.today &
            ssi acsls1 &


FILES

       /nsr/logs/ssi_event.log
              default logfile created/appended to by mini_el


SEE ALSO

       nsrjb(8), jbconfig(8), dasadmin(8), libstlemass(8), libstlibm(8)


DIAGNOSTICS

       Several startup and shutdown messages along with any errors in communi-
       cation between the NetWorker server and the ACSLS server will be logged
       in the logfile /nsr/logs/ssi_event.log (or other logfile  as  specified
       on  the  mini_el command line).  The messages from any one ssi instance
       will be preceded by the name of the ACSLS  server  that  that  instance
       will  be communicating with plus the local TCP port number that will be
       used between NetWorker and ssi.

       For example:
            10-12-00 12:31:44 SSI[0]:
            [devlab-acsls/50004] ONC RPC: csi_init(): Initiation Started
            source csi_init.c; line 165

            10-12-00 12:33:20 SSI[0]:
            [acsls2/50011] ONC RPC: csi_init(): Initiation Completed
            ONC RPC: csi_init(): ACSLS server acsls2 accessed through port 50011

NetWorker 7.5.1			 Mar 21, 09