Changes to existing user features: 1) Ocs_allocate(), ocs_list_tapes() and their associated commands support two new device type strings: exabyte_8505 - to allocate specifically an exabyte 8505 drive exabyte_850x - to allocate either an exabyte 8500 or 8505 drive The string exabyte will allocate either an exabyte 8200, 8500 or 8505 drive. 2) Ocs_mark_broken(), ocs_broken, and the xocs interface to mark a tape drive broken now prompt the user for the reason that the tape drive is believed to be broken. If you call ocs_mark_broken, you need to update your code for an additional argument. 3) Ocs_device_file() and Ocs_logical_dev() are being phased out in favour of the new routines ocs_devfile_default(), ocs_devfile_set(), ocs_devfile_get() and ocs_logdev(). 4) Ocs_devfile has a new optional argument, -c, for compression. 5) Ocs_devstat, ocs_init_stat() ocs_logdev and ocs_report_stat() are no longer resticted to run on the local host. Additionally, ocs_devstat need no longer be owned by root and have its seteuid bit on. 6) Ocs_init_stat() and ocs_report_stat() allow root as well as the user who allocated the drive to set/report statistics (needed for SHIFT). New user features: 1) Ocs_check_tape() is a new routine and ocs_check_tape a new command to check whether a tape is in the drive, it has the correct permission and (optionally) the correct label. 2) Ocs_devfile_default(), ocs_devfile_set() and ocs_devfile_get() are new routines to get the device file with the desired attributes for an logical tape drive name. Compression as well as density, rewind, swapping and blocksize is a supported attrubute. 3) Ocs_dismount() is a new routine and ocs_dismount a new command to unload a tape from a IRIX drive or take an AIX drive offline. 4) Ocs_init_stat and ocs_report_stat have been added as commands that call their routine counterpart. 5) Ocs_logdev() is a new routine to return the host and logical tape drive name for a specified device file and optionally specified host. 6) Ocs_pending is a new command that displays whether or not a specified tape drive has a mount pending. 7) Ocs_setdev() is a new routine and ocs_setdev is a new command to change device file characteristics, such as density, variable record length, etc. 8) Xtapeview is a new command that allows users to view pending tape mounts like xtape, but, unlike xtape, does not allow the user to respond to a pending mount. Modified and new administrative/internal features 1) Devd is a new daemon to manipulates device files. Devd must be owned by root and have its seteuid bit on. Examples of features that use devd are ocs_setdev(), ocs_init_stat(), ocs_report_stat(), ocs_devstat, ocs_dismount(), and ocs_check_tape(). 2) Messages appear in the SYSLOG telling the pid & application name of both processes involved when a database record is locked - the process trying to obtain the lock and the process holding the lock. 3) Roundrobin allocation of tape drives has been implemented and is controlled via the environment variable OCS_ROUNDROBIN. If $OCS_ROUNDROBIN is defined, then a tapedrive will be moved to the end of the database table whenever the drive is deallocated. This will affect other users allocating tapedrives, so everyone on a single OCS system should be in agreement as to whether roundrobin is desired or not. The system manager can select round-robin or the original allocation sceme by setting or unsetting OCS_ROUNDROBIN in the ups setup scripts. 4) Ocs_allocate() will no longer allocate a tape drive from a node that is not available. The algorithm uses ping, so if ping fails but the node is really up and alive, then avaiable drives will be skipped. 5) Ocs_auth is a new command to add or delete a user from an authorization group. 6) Ocs_backup is a new command to make a SQL backup of an OCS database. 7) Xocs has an additional mail address in the CPS DB window. If this address is other than "None", broken tape drive messages will be sent to it. The first mail address will still be sent all messages (including broken ones), but now also can be set to "None" if no such mail is desired. 8) Xocs brings up a pop-up window acknowledging success when a tape drive or CPU is added or removed from the DB. 9) Xtape has been much revised. Bug Fixes: 1) Xocs now will correctly update an IRIX jagd tape drive's device files. 2) Xocs tape selection for status equal broken now works. 3) The # of errors, kb by user or kb by device reported now correctly accumulate in the tape drive statistics summary records. Upgrading from OCS v2_1 to OCS v2_2: 1) Build & distribute OCS v2_2 to appropriate taped and dbserv nodes. (Make sure taped, devd, dbserv are owned by root.sys. Taped and devd must have setuid bit on as well.) 2) Backup OCS v2_1 database: a) Reduce the STATLOG to a reasonable number of records, e.g. ocs_reports -o delete -b 05/01 > stats.0594 b) Reduce the MOUNTLOG to a reasonable number of records, e.g. ocs_xfer -t mountlog -b 05/01 > mounts.0494 c) Do actual backup, e.g. ocs_backup > backup.v2_1 3) Render OCS v2_1 useless on taped and dbserv nodes: a) undeclare it in ups, e.g. setup ups ups undeclare -z $PRODUCTS ocs v2_1 b) kill dbserv, tapeds and xtapes c) move/rename the v2_1 directories and database, e.g: mv /usr/products/ocs/v2_1 /usr/products/ocs/v2_1.old mv /usr/products/ocs/DB /usr/products/ocs/DB.v2_1 mkdir /usr/products/ocs/DB 3) Install OCS v2_2 on dbserv node using ocs_install as root: a) change dbserv and taped to use v2_2 rather than v2_1 (press OK buttons) b) press taped and dbserv install button c) press create db tables button d) do not need to restart portmap, inetd or yp 4) Convert the OCS v2_1 DB backup to the OCS v2_2 DB format and populate the OCS v2_2 database, e.g.: a) ocs_db_cnvrt < backup.v2_1 > backup.v2_2 b) sqlint < backup.v2_2 5) Install OCS V2_2 on taped nodes using ocs_install: a) change taped to use v2_2 rather than v2_1 (press OK) b) press install taped c) do not need to restart portmap, inetd or yp 6) Declare OCS v2_2 current on taped and dbserv nodes, e.g: setup ups ups declare -c -z $PRODUCTS -r /usr/products/ocs/v2_2 ocs v2_2 7) Bring up xtapes. 8) Fix any exabyte 8505s which were entered as 8500s in OCS v2_1 a) remake system device files b) use xocs update tape drive window (from DB pulldown menu) to change 8500 to 8505 and make sure device files get remade 9) Optional Considerations: a) If the user community wants round-robin allocation of drives, then the OCS_ROUNDROBIN environment variable should be appropriately set and unset in the appropriate ups setup and unsetup scripts. b) If hardware support should be receiving broken tape drive mail, then the appropriate alias, e.g. farm-service@fnsg01, should be added via xocs.