1 Overview

This chapter provides an overview of ACSLS.

About ACSLS

Automated Cartridge System Library Software (ACSLS) is Oracle's StorageTek server software that controls a StorageTek tape library. An Automated Cartridge System (ACS) is a group of tape libraries connected through pass-thru-ports (PTPs). ACSLS accesses and manages information stored in one or more ACSs through command processing across a network. The software includes a system administration component and interfaces to client system applications, and library management facilities.

The acssa and acsss User IDs

This section discusses the acssa and acsss user IDs, which administer ACSLS in support of client applications.

  • The acssa login provides access to cmd_proc, the console user interface for library control operations, and a limited set of ACSLS utilities.

    A typical shell environment for acssa includes one or more windows running cmd_proc and a window that monitors the running tail of the ACSLS event log.

    The acssa login environment provides access to both of these resources:

    $ cmd_proc
    $ acs_tail $LOG_PATH/acsss_event.log
    
  • The acsss login provides access to these and all other administrative utilities for general maintenance, configuration, database backup and restore, shell utilities, and general diagnostics.

Logging in Remotely

Remote access to the ACSLS server is available from any system with an SSH client. An SSH client is a standard feature with any shell on most POSIX compliant operating systems, including Solaris, Linux, and MacOS. For Windows environments, you must install SSH client software such as putty, WinSCP or a similar commercial application.

To access the ACSLS server remotely as user acssa, enter the following command:

$ ssh acssa@hostname

where hostname is the host ID of the ACSLS server.

A typical remote environment for acssa includes one or more SSH login shells running cmd_proc and another shell to monitor the running tail of the ACSLS event log.

$ acs_tail $LOG_PATH/acsss_event.log

Starting and Stopping ACSLS

This section introduces the acsss command.

The acsss command

The acsss command is a start, stop, and status macro that manipulates the various services associated with the ACSLS application. See the following:

Changing ACSLS Run State

After initial startup and recovery, ACSLS is normally in the run state and ready to handle client activity. You can choose to put it into an idle state, which suspends client request processing. This is a good practice before shutting down ACSLS. You may also wish to hold off client requests temporarily, while updating or re-configuring a library.

To suspend client request processing by putting ACSLS in the idle state, enter the following command from cmd_proc:

idle

The user can continue to issue ACSLS operations using cmd_proc in idle state. To resume client request processing after an earlier idle command, enter the following command from cmd_proc:

start

ACSLS resumes request processing.

Using cmd_proc

ACSLS must be in run state in order to process any cmd_proc commands other than query server. If you start a session when ACSLS is not running, you will receive a socket communication error.

Starting cmd_proc

You can start cmd_proc from any terminal type that has been defined in /etc/termcap. When running in curses mode, the terminal must have a display size of 24x80 or larger.By default, an automatic query server request is performed by default when cmd_proc is started. You can suppress this initial query server request by starting cmd_proc with the -q option.

Suspending and Resuming cmd_proc

You can suspend cmd_proc to perform UNIX commands, and then manually resume cmd_proc. Any in-process requests that you initiated will continue to completion while cmd_proc is suspended.

To suspend and resume cmd_proc::

  1. While running cmd_proc, press Control+z.

  2. The UNIX shell prompt appears. Perform desired UNIX operations.

  3. To resume cmd_proc, enter the fg UNIX command.

Terminating cmd_proc

To terminate cmd_proc:

  1. While running cmd_proc, wait until all in-process activity is complete and the ACSSA> prompt has returned.

  2. To exit cmd_proc, enter the logoff command:

    logoff
    

    The cmd_proc session terminates.

Using cmd_proc in Curses Mode

The default mode for cmd_proc is a windowed mode using curses. This versatile interface works well with most terminal types and requires a minimum 24-line by 80-character window. The curses interface divides the screen into two sections, where messages bound for STDERR are sent to the window upper half and messages bound for STDOUT are sent to the bottom half.

When you use the ACSLS cmd_proc command in its default mode, you see general server status messages displayed at the top of the window while your user-specific interactions are displayed at the bottom.

Example - Default Curses Mode

The following example shows the cmd_proc window displayed when you log in as acssa. In curses mode, the cmd_proc window appears as a split screen. The top section is the message area and the bottom section is the command area, where you enter ACSLS commands at the prompt. Note that the output display is actually larger, displayed within a 24-line area on the screen.

$ cmd_proc

-------------------------- Oracle ACSLS x.x.x--------------------------- 
ACSSA> query server
2019-08-20 11:50:06              Server Status
 Identifier   State    Free Cell  Audit  Mount  Dismount  Enter  Eject
                       Count      C/P    C/P    C/P       C/P    C/P
              run      1253       0/0    0/0    0/0       0/0    0/0

Limited Command History, Limited Length in Curses Mode

One disadvantage of curses mode is its limited ability to retain a history of user interactions with the ACSLS server, since the space for those interactions is limited to the bottom half of the 24-line window.

The cmd_proc command in curses mode cannot display lines longer than 80 characters, and the cmd_proc window will hang if it attempts to display a line longer than 80 characters. If this happens, the cmd_proc window can be released with Control+C and Control+D.

The output from all query and other commands is less than 80 characters per line, and the default fields reported for all records by the display command require less than 80 characters. However, displaying many optional fields may result in lines that are longer than 80 characters.

Using cmd_proc in Line Mode

To avoid the problems noted with curses mode, you can start cmd_proc in line mode. Running in line mode, cmd_proc operates within a conventional terminal window that includes a scrollable command history (limited only by the size of the buffer).

You can use cmd_proc in line mode by specifying the following option:

cmd_proc -l

Status Messages Intermixed with Commands in Line Mode

One disadvantage of line mode operation is the mixture of STDOUT and STDERR messages that are output to the screen, displayed in the same spot where you may be attempting to enter a new command.

If your cmd_proc session is the only session on the system, this may not be a problem. But in a busy production environment where active operations are in progress with ACSLS, it may be difficult to work in a window where status information is being printed on the same line where you are composing an ACSLS request. While it is safe to ignore the system status output on the line where you are typing, you may prefer to redirect that output elsewhere. See "Redirecting Output from cmd_proc".

cmd_proc Keyboard Shortcuts in cmd_proc (curses and line modes)

The following table describes cmd_proc keyboard shortcuts, which are <CTRL>+ keystroke combinations.

Table 1-1 cmd_proc Keyboard Shortcuts

Key Combination Action Notes

Control+c

Cancels the last cmd_proc command.

Control+c is the keyboard shortcut for the cancel command. See "cancel" for more information about the cancel command.

Control+d

Returns to the cmd_proc prompt.

Control+d has no effect if the current command has completed. If the current command is processing, it completes but cmd_proc does not display a response message. If you have not entered the current command at the ACSSS prompt, Control+d deletes the command.

Control+h

Deletes the previous character on the command line.

On most keyboards, you can also use the Enter or backspace key.

Control+i

Refreshes the cmd_proc display.

This function is useful if the current cmd_proc display has been corrupted by noise on the communications lines.

Control+r

Refreshes the current command line.

This function is useful if the current command line display has been corrupted by noise on the communications lines.

Control+r

Deletes the current command line.

N/A

Control+z

Suspends cmd_proc and escapes to the shell environment.

Enter the C shell fg command to resume cmd_proc.


Using cmd_proc in Shell-Friendly Mode (cmd_proc_shell)

The cmd_proc_shell utility can be used to run cmd_proc as a conventional shell operation, executing ACSLS commands that are passed as input arguments. It supports execution of a single command or multiple commands.

The utility provides shell-friendly access to cmd_proc functions, while retaining all of the benefits and attributes of the shell environment including command history, command editing, output filtering and terminal scrolling. This can be helpful in ad-hoc shell sessions, and when used in shell scripts.

To supply multiple commands as arguments, a new line (either quoted or unquoted, as in the examples) is used to separate the individual commands. Spaces around the new line characters are not necessary, but are included here for readability.

Some examples of cmd_proc_shell:

cmd_proc_shell query server
cmd_proc_shell query server \\n query port all
cmd_proc_shell 'query server \n query port all'

To view only offline CAPs:

cmd_proc_shell q cap all | grep -v online

Note:

  • The cmd_proc_shell utility does not require a logoff command -- a logoff is automatically performed.

  • The utility does not provide prompts or keyboard shortcuts -- curses mode and line mode do have interactive prompting and command help/retry.

Redirecting Input to cmd_proc - Input Files and Command Scripts

You can use an input file to supply the commands that you want cmd_proc to process. For example, the following input file (named cmd_filename) verifies ACSLS by mounting and dismounting a cartridge.

query drive 0,0,0,0 
query volume JB1400 
mount JB1400 0,0,0,0 
dismount JPB1400 0,0,0,0 force 
logoff 

To start cmd_proc with an input file, enter the following command:

cmd_proc -q < cmd_filename 

Alternatively, an input script can invoke cmd_proc directly, and supply commands in-line. Make sure that the script file is executable for user acsss.

ls -l cmd_scriptname
-rwxrwxrwx   1 acsss    acsls         49 Aug 22 13:49 cmd_scriptname
 
cat cmd_scriptname
 
cmd_proc -lq << -EOF
query drive 0,0,0,0 
query volume JB1400 
mount JB1400 0,0,0,0 
dismount JPB1400 0,0,0,0 force 
logoff
-EOF
 
$ ./cmd_scriptname

Redirecting Output from cmd_proc

You may wish to redirect system messages to some other destination than the screen, to focus solely on the commands and command output. (In curses mode these appear in the upper half, including the copyright.) To direct those messages elsewhere, you can run cmd_proc (in various modes) as follows:

cmd_proc -l 2> /tmp/SysChatter.out

The expression 2> instructs the shell to redirect STDERR to another location. In this example, the status messages are sent to a file in the /tmp directory. You can open a second shell window and view a running tail of that file.

You can also perform intended cmd_proc operations without viewing system status information at all, by redirecting STDERR to /dev/null:

cmd_proc -l 2> /dev/null

You can start cmd_proc using an input file, as above, and also redirect the STDOUT results to another file. To run a set of commands and capture the results for verification:

cmd_proc -q < cmd_filename > result-filename

By default, cmd_proc display area messages are written to STDERR. However, you can redirect these messages as well:

cmd_proc -q < cmd_filename > result-filename 2>> result-filename

ACSLS Directory Structure

The following table shows a listing of the directories, subdirectories, and most commonly used files and shell scripts in the ACSLS directory structure.

Three variables are used for ACSLS paths. They are:

  • $installDir

    This is the base installation directory and is /export/home/ by default.

  • $ACS_HOME

    Located at $installDir/ACSSS/, this is the home directory for the acsss user ID and where the ACSLS product is installed.

    $ACS_HOME is /export/home/ACSSS by default.

  • $ACSDB_BKUP

    This is the directory where the ACSLS backups are saved.

Table 1-2 ACSLS Directory Structure

Directory Contents

$installDir (by default /export/home/)

The base installation directory.

$installDir/SSLM

Home of ACSLS java components including the ACSLS GUI and the SMCE (logical library operation)

$installDir/SSLM/AcslsDomain

The home directory of the ACSLS Web-based GUI application.

$installDir/wlinstall

The bundled WebLogic application server package and related installation scripts.

$installDir/Oracle

The un-bundled WebLogic home directory.

$installDir/acsls_thirdPartySoftware

A collection of third-party license information and related republished source code.

$ACS_HOME ($installDir/ACSSS)

(by default /export/home/ACSSS/)

Home directory for the acsss user ID. Also the ACSLS home directory. (ACS_HOME environment variable points to this directory.)

$ACSDB_BKUP

(by default /export/backup/)

Database backups

$ACS_HOME/config/

Contains ACSLS configuration files.

$ACS_HOME/data/external/

Contains customized files used in access control, mixed media, and cartridge reporting.

$ACS_HOME/data/external/access_control/

Contains access control sample and customized files.

$ACS_HOME/data/internal/

ACSLS internal configuration files. do not modify.

$ACS_HOME/diag/bin

Contains diagnostic files and shell scripts.

$ACS_HOME/lib/

Contains ACSLS installed shared libraries required at run-time.

$ACS_HOME/log/

Contains ACSLS event log and utility event log files.

$ACS_HOME ($installDir/ACSSA/)

(by default /export/home/ACSSA/)

acssa home directory.

$installDir/ascdb/

(by default/export/home/acsdb/)

Database home directory.

$LOG_PATH

This is equivalent to $ACS_HOME/log. This directory contains the acsss_event.log and other useful logs that pertain to ACSLS operation