The information contained in this document is subject to change without notice.
This document contains proprietary information which is protected by copyright. All rights are
reserved. No part of this document may be photocopied, reproduced, or translated to another
language without prior written consent of ADIC.
ADIC shall not be liable for errors contained herein or for incidental or consequential damages
(including lost profits) in connection with the furnishing, performance or use of this material
whether based on warranty, contract, or other legal theory.
All trademarks within this document are the property of their respective owners.
All rights reserved. No part of this document may be copied or reproduced in any form or by any
means, without prior written permission of ADIC Europe, ZAC des Basses Auges, 1 rue Alfred de
Vigny, 78112 Fourqueux, FRANCE.
ADIC Europe assumes no responsibility for any errors that may appear in this document, and
retains the right to make changes to these specifications and descriptions at any time, without
notice.
This publication may describe designs for which patents are pending, or have been granted. By
publishing this information, ADIC Europe conveys no license under any patent or any other right.
ADIC Europe makes no representation or warranty with respect to the contents of this document
and specifically disclaims any implied warranties of merchantability or fitness for any particular
purpose. Further, ADIC Europe reserves the right to revise or change this publication without
obligation on the part of ADIC Europe to notify any person or organization of such revision of
change.
Every effort has been made to acknowledge trademarks and their owners. Trademarked names are
used solely for identification or exemplary purposes, any omission is unintentional.
ADIC and ADIC Europe are trademarks of Advanced Digital Information Corporation.
ADICADIC EuropeADIC Germany Beteiligungs GmbH, KG
Tel.: +1 303-705-3900 ZAC des Basses AugesEschenstraße 3
Fax: +1-303-792-24651, rue Alfred de VignyD-89558 Böhmenkirch, Germany
ATAC: 1-800-827-382278112 Fourqueux, FranceTel:+00.800.9999.3822
www.adic.comTel.: +33.1.3087.5300
Fax: +33.1.3087.5301
Document number: 601626-B
Published: 21 Dec 2001Printed in the USA
ADIC CORPORATE • 11431 WILLOWS ROAD, NE • REDMOND, WASHINGTON, USA • 1-800-336-1233
This guide contains information and instructions necessary to
program an application for using the ADIC AML via the
Distributed AML Server (DAS). The topics discussed in this
chapter are:
•Overview
•Intended Audience
•Organization
•Associated Documents
•Explanation of Symbols and Notes
•Assistance
Intended Audience
This guide is intended for use by system programmers and
administrators working with the DAS software. Knowledge
of the UNIX and OS/2 operating systems is required.
1-
Organization
This manual is divided into the following chapters:
Chapter 1Introduction - Notes on the use of the
Chapter 2DAS ACI - Overview of the DAS/2
Chapter 3Safety - Describes the hazard symbols,
Chapter 4DAS ACI Functions - Information and
Chapter 5ACI 3.0 Asynchronous Support Layer -
Appendix AImportant Information - Error recovery
Index
manual
software and information on AML Client
Interface (ACI) services
messages, safety features, and operational
considerations
descriptions of ACI functions and function
callas
Provides a description of the
Asynchronous ACI calls
procedures and explanations of terms used
throughout this document
21 Dec 2001
Overview1-3
Associated Documents
You may wish to reference the following documents:
•601324-ADAS V3.1 Release Guide
•601625-ADAS V3.1 Administration Guide
Explanation of Symbols and Notes
The following symbols and highlighted passages draw
attention to important information.
Detailed explanations for the above symbols are provided in
Hazard Alert Messages on page 3-3.
<1>+<2>Press these keys simultaneously.
ItalicHeadline, e.g., Chapter 3, Safety
File name, e.g., dasdata.ini
BoldTerms appearing on the operating panel
Special Term, e.g., Utilities
Commands with or without parameters,
e.g., INITIALIZE
1-4Introduction
CourierCommand appearing on a console, e.g., cd
Switch position, e.g., ON, OFF
601626-B
Assistance
If problems cannot be solved with the aid of this document or
if recommended training is desired, contact the ADIC
Technical Assistance Center (ATAC).
ADIC
10949 East Peakview Avenue
Englewood, CO 80112
U.S.A.
This section contains an overview of the DAS/2 software and
information on AML Client Interface (ACI) services.
DAS is a client/server software product designed to provide
shared access to the family of ADIC AML systems (AMLs).
The DAS software may be installed as a stand-alone AML
connection or be configured to share an AML with MVS or
other ADIC supported, host attachments. DAS may be
requesting services via a client command line interface, or
may be integrated with backup, tape management and/or
HSM applications on the client to direct automated removable
media activity through the DAS server to the automated
media library. See Figure 2-1.
DAS Clients
TCP/IP
AML-System
AMU
Figure 2-1Logical Relationship Between AML Components
MVS
LU 6.2
21 Dec 2001
Overview2-3
The DAS server component is an OS/2 program that runs
within the AMU controller personal computer (PC). It
converts DAS client requests into AMU AMS requests and
sends them to the AMS for action. Fifty heterogeneous
networked clients can be configured within the DAS server
environment.
Clients requiring access to ADIC AML systems may use the
DAS ACI software component to communicate library
requests to the DAS server component. DAS clients make the
necessary calls to the DAS server with remote procedure calls
(RPC). The DAS ACI library component hides this interface
from the client application and provides function calls to the
library to request library operations. Clients may be granted
complete or restricted access to the AML resources. DAS
administrators control client access and privileges through
client registration.
The DAS client ACI component provides a set of C function
calls, available as static and/or dynamic libraries (depending
on the operating system platform) for a range of operating
system platforms. The libraries may be linked to application
software, or be used with the command line administration
command interface.
ACI Services
Since the DAS server is a network server, all communication
with the server component use a network application level
protocol. The ACI hides the network support, and enables the
user to treat the functions as ‘stand-alone’, without the need
for a supporting structure. The ACI operates synchronously.
Once a request is made to the AML, the request process does
not regain control until the operation has completed or has
otherwise terminated. (An exception is the inventory call,
which starts a physical inventory, and returns.)
The ACI uses RPCs to request DAS services and to receive
replies over the network. The RPC port mapper assures that
port numbers are routed correctly.
Client Services
The ACI provides two types of user services:
•Basic Services
•Complete Services
2-4DAS ACI
601626-B
ACI Routines - Basic Services
Table 2-1 lists the routines that are available to an ACI client
with basic service access rights.
Table 2-1Routines Available with Basic Service Access
RoutineExplanation
aci_dismountDismount media from the drive.
aci_initInitialize the AML for client use.
aci_initializeInitialize ACI library for client use.
aci_mountMount specified media in drive.
ACI Routines - Complete Services
Table 2-2 lists the routines that are available to an ACI client
with complete service access rights.
Table 2-2Routines Available with Complete Service Access
RoutineExplanation
aci_barcodeSwitching ON and Off Barcode Reading
aci_cancelCancel outstanding request.
aci_dismountDismount media from drive.
aci_cleandriveClean a drive (immediately)
aci_clientaccessChange client access list.
aci_clientstatusQuery client access list.
aci_driveaccessChange client drive status.
aci_drivestatusQuery client drive status
(for compatibility only).
aci_drivestatus2Query client drive status with
additional information.
aci_drivestatus3Query physical drive status.
aci_ejectEject media from AML
(for compatibility only).
21 Dec 2001
ACI Services2-5
Table 2-2Routines Available with Complete Service Access
RoutineExplanation
aci_eject2Eject media from AML, and keep
database entry for future insert requests.
aci_ejectcleanEject clean media from AML, and
remove database entry.
aci_eject2_completeEject media from AML, and remove
database entry.
aci_flipTurn Optical Disk on in the drive.
aci_forceForce a dismount request from a
specified drive.
aci_foreignAdd or delete foreign media.
aci_getvolsertodriveGet the volsers, which are allowed to be
mounted to a specified drive. (Volsers
are configured in the DAS config file)
aci_getvolsertosideGet the second volser of the Optical
Disk (OD has two volser).
aci_initInitialize AML for client use.
aci_initializeInitialize ACI library for client use.
aci_insertInsert media into AML.
aci_insert2Insert media into AML (also for clean-
and scratch media).
aci_inventoryStart physical inventory with AMU
database update.
aci_listList outstanding and currently
operating DAS requests.
aci_mountMount selected media in drive.
aci_partial_inventoryStart a physical inventory of subsystem
in the AML
aci_qversionQuery version of DAS and ACI.
aci_qvolsrangeList client accessible and physically
present volsers within requested range.
aci_registerTemporarily allow client access to DAS.
2-6DAS ACI
601626-B
Table 2-2Routines Available with Complete Service Access
RoutineExplanation
aci_robhomeSet the AML-System to offline and
move the robot to home position.
aci_robstatGet Information about the AML-status
and set the AML to on-line.
aci_scratch_getMount a scratch volume.
aci_scratch_infoQuery scratch volume information.
aci_scratch_setAdd volume to scratch pool.
aci_scratch_unsetRemove volume from scratch pool.
aci_killamuShutdown AMU complete with OS/2.
aci_shutdownShut down DAS.
aci_switchSwitch between active and inactive
AMU (DAS and AMS).
aci_unloadOn an AML drive pressed one or more
drive buttons (e.g. unload button).
aci_viewQuery volume database entry.
aci_volseraccessSet ownership of volser.
aci_volserstatusQuery ownership for volser.
Media Types
The DAS ACI supports a variety of media types. The media
type is passed as a parameter to all ACI functions that require
media operations. Each media type name is a member of an
enumerated type aci_media, defined in the aci.h header file.
Table 2-3 lists the media types supported by DAS.
Table 2-3Supported Media Types
ACI Media NameMedia Type
ACI_34803480/3490 cartridges
ACI_35903590/8590 cartridges (NTP)
ACI_4MMDDS or DAT (4mm tape)
21 Dec 2001
ACI Services2-7
Table 2-3Supported Media Types
ACI Media NameMedia Type
ACI_8MMDDS 8mm tape (e.g. EXABYTE)
ACI_AUDIO_TAPEstandard audio tape cartridges
ACI_BETACAMSONY BetaCAM cartridge
ACI_BETACAMLlarge BetaCAM cartridge
ACI_CDCD-ROM (with CADDY)
ACI_D2 D2 (small and medium) tape cartridge
ACI_DECDLTDLT (CompacTape) cartridge
ACI_DTFSONY DTF cartridge
ACI_OD_THINReflection optical disks
ACI_OD_THICK512 MO/WORM optical disks
ACI_TRAVANTRAVAN cartridge
ACI_VHSVHS cartridge
ACI_SONY_AITSony AIT
ACI_LTOLTO
a
a. only IBM LTO media type is supported.
DAS Error Codes
The DAS ACI functions return either a successful or failed
return code. In case of failure, a DAS error code d_errno is set
describing the failure. The DAS error numbers are defined in
the derrno.h header file, which is included by the aci.h header
file. Refer to Error Recovery Procedures on page A-3.
In addition to the
safety
instructions in
this guide, local
and professional
safety rules
apply.
Knowledge and observance of these instructions is imperative
for the safe operation of the ADIC Storage Systems AML
system.
Avoid danger when maintaining and operating the machine
by
•behaving in a safety-conscious manner
•acting judiciously
Hazard Alert Messages
ADIC classifies hazards in several categories. Table 3-1 shows
the relationship of the symbols, signal words, actual hazards,
and possible consequences.
Table 3-1Hazard Alert Message
SymbolDamage to ...Signal WordDefinitionConsequence
Persons
DANGERImminent hazardous
situation
WARNINGPotential hazardous
situation
Death or serious
injury
Possible death or
serious injury
CAUTIONLess hazardous
Persons
Caution
Persons
Material
21 Dec 2001
Attention
situation
Imminent hazardous
electrical situation
Less hazardous
situation
Potential damaging
situation
Possible minor or
moderate injury
Death or serious
injury
Possible minor or
moderate injury
Possible damage
to the product or
environment
Overview3-3
Table 3-1Hazard Alert Message
SymbolDamage to ...Signal WordDefinitionConsequence
Caution
Material
Static
Potential electronic
damaging situation
Possible damage
to the product
Sensitive
Tips for operatorsNo hazardous or
Note
damaging
consequences
Important or useful
information
No hazardous or
damaging
consequences
Specially emphasized paragraphs in this guide warn of
danger or draw attention to important information. These
paragraphs and their associated symbols include:
When used with the signal words, Danger or Warning, this
symbol warns of a dangerous situation that threatens
personnel with serious injury or death.
When used with the signal word Caution, the symbol warns
of a hazardous situation that could result in minor injury.
The danger exists of a fatal electric shock. At places
designated with this symbol, electrical current can be
present. Before starting any work, always confirm that all
electrical connections are free of electrical current.
This symbol indicates the presence of a laser.
Caution - use of controls or adjustments or performance of
procedures other than those specified herein may result in
hazardous radiation exposure.
3-4Safety
Attention
STATIC
SENSITIVE
Note
This symbol means that specific regulations, rules, notices,
and working procedures must be observed. Ignoring this
symbol can lead to equipment damage or destruction or to
other property damage.
This symbol indicates that the risk of equipment damage
exist due to static discharge.
This symbol draws attention to user tips. No dangerous or
damaging consequences for personnel or property are
associated with this symbol.
This symbol indicates important or useful information. No
dangerous or damaging consequences for personnel or
property are associated with this symbol.
601626-B
Validity
These instruction are valid for ADIC Storage Systems AML
systems.
Supplementary safety provisions for any components used on
the machine are not invalidated by these instructions.
Any other manufacturer's documentation forms part of the
AML documentation.
All ACI function calls and ACI structures are defined in the
aci.h header file. ACI functions return 0 or -1 for successful
and unsuccessful command execution respectively. A
command failure sets the DAS error code variable d_errno to
the specific error code. In such case, a text error message may
be written to standard error by calling aci_perror, which
accepts a user defined message string and attaches it to the
DAS error message.
aci_barcode
The aci_barcode function switches the barcode reader for the
volser on the robot on or off. See Figure 4-1.
#include "aci.h"
int aci_barcode( char *cRobNum,
char *Action)
4-
Figure 4-1aci_barcode Function Call
See Table 4-1 for a description of the parameters for the
aci_barcode function call.
Table 4-1Parameters for the aci_barcode Function Call
ParameterDescription
cRobNumdefined the number of the robot (only on AML/2
systems with 2 robots)
1robot 1 (AML/E, AML/J and robot 1 of
AML/2)
2robot 2 of AML/2
Actionnew condition for the following mount and eject
commands from this host
OFFbarcode on the cartridge will not be checked
ONbarcode on the cartridge will be checked on
each command
21 Dec 2001
Overview4-5
The Scalar 1000 does not support the aci_barcode command
(barcode on Scalar 1000 will never read on mount and eject).
Use this command to switch the barcode reading after the
command aci_mount, aci_cleandrive or any aci_eject ended
with failure and derrno=EBARCODE. After aci_barcode
completed, try the previous command again.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following DAS
error codes:
•ERPC
•EINVALID
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EBADCLIENT
•EDASINT
•ETIMEOUT
•EAMUCOMM
•ESWITCHINPROG
•EDASINT
•ENOROBOT
•EDATABASE
•ENOTSUPPHCMD
4-6DAS ACI Functions
Refer to Figure 4-2 on page 4-7 for an example of the
aci_barcode function.
601626-B
/* Switch the barcode reading off for robot 1 */
int rc = 0;
char *cRobNum = "1";
char *Action = "OFF";
rc = aci_barcode( cRobNum, Action );
if( rc )
{
aci_perror( "Command failed: " );
}
else
{
printf( "barcode reading switched off \n" );}
Figure 4-2Example of the aci_barcode Function
aci_cancel
The aci_cancel function cancels a specific DAS request. See
Figure 4-3.
#include "aci.h"
int aci_cancel( unsigned long request_id )
Figure 4-3aci_cancel Function Call
See Table 4-2 for a description of the parameter for the
aci_cancel function call.
Table 4-2Parameter for the aci_cancel Function Call
ParameterDescription
request_idDAS command sequence number, get information on the sequence
number with the aci_list function
The aci_cancel function cancels a previously issued and not
completed client request. Before using this function, use the
aci_list function to get the request_id in order to cancel the
correct request.
21 Dec 2001
aci_cancel4-7
The cancel request cancels the command in the DAS server
and the AML. If the request is being acted upon in the AML,
DAS attempts to cancel it, however this is unlikely to succeed.
Once the robotics are in motion, the request may not be
canceled. DAS reports that the cancel was successful while the
canceled request completes.
For additional information, Refer to aci_list on page 4-84.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following DAS
error codes:
•ERPC
•EINVALID
•ENOREQ
•EDASINT
•ERETRYL
•ECANCELED
•EDASINT
•ETIMEOUT
•ESWITCHINPROG
•EHICAPINUSE
/* Cancel first client request for a client */
int rc = 0;
See Table 4-4 for a description of the parameters for the
aci_clientaccess function call.
Table 4-4Parameters for the aci_clientaccess Function Call
ParameterDescription
clientnamename of the client which authorization is to be changed
actiontype of the activity (add or remove access rights)
ACI_ADDadd access rights
ACI_DELETEremove access rights
volser_range• a single volser
• multiple volsers, separated by commas
• a range of volsers separated by a hyphen
• set to empty (““ or ‘\0’) if it is not to be changed
typemedia type of the previously defined volser range
Refer to Media Types on page 2-7.
drive_range• a single drive
• multiple drives, separated by commas
• a range of drives separated by a hyphen, or set to empty
(““ or ‘\0’) if it is not to be changed
This ACI function changes the access lists of a client named
clientname by ei th er ad di ng or re mo vin g a cc es s t o a drive_range
and/or a volser_range. The aci_clientstatus function may be
needed to find out the drive_range and volser_range used by the
client.
21 Dec 2001
aci_clientaccess4-11
The changes will be lost when the DAS software is shut
down. Only use this command if, at the time, you do not
have access to the config configuration file, or you cannot
restart DAS. Otherwise, change the access privileges in the
config file.
This ACI command allows the administrator to add new
volume ranges or drive ranges to the AML system without
shutting down the DAS server. The modifications created by
using the aci_clientaccess function are only valid while DAS is
running. When DAS is shut down, all access modifications set
by aci_clientaccess are lost. When the DAS server is restarted,
client access returns to the default settings in the DAS
configuration file. To permanently register a client, the
administrator must add the new drive_range or volser_range to
the DAS configuration file.
For additional information, refer to
aci_clientaccess on page 4-11.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following DAS
error codes:
•ERPC
•EINVALID
•EBADHOST
•ENOTAUTH
•EBADCLIENT
•ENOSPACE
•ENOTFOUND
•ETIMEOUT
•ESWITCHINPROG
Refer to Figure 4-7 on page 4-13 for an example of the
aci_clientaccess function.
4-12DAS ACI Functions
601626-B
/* Add a volser range to a clients access list */
int rc = 0;
enum aci_command action = ACI_ADD; /*default action*/
char *client = "SomeClient";
char *volser = "AAB000 - AAB999";
char *drive = "";
enum aci_media type = ACI_3590;
if ((rc = aci_clientaccess ( client,
action,
volser,
type,
drive ) ))
{
aci_perror( "Command failed: " );
}
else
{
if (*volser)
{
printf ( "Volser range %s for client %s
added.\n",
volser, client );
}
if (*drive)
{
printf ( "Drive range %s added for client
%s.\n",
drive, client );
}
}
Figure 4-7Example of the aci_clientaccess Function
21 Dec 2001
aci_clientaccess4-13
aci_clientstatus
The aci_clientstatus function queries client access list
configuration. See Figure 4-8.
#include "aci.h"
int aci_clientstatus( char *clientname,
struct aci_client_entry *client )
Figure 4-8aci_clientstatus Function Call
Query the current client access configuration status of a client
named clientname. All configuration information is returned in
the structure aci_client_entry. See Figure 4-9.
For additional information, refer to aci_clientaccess on page
printf( "Dismount of %s successful.\n", volser
);
}
Figure 4-12Example of the aci_dismount Function
aci_driveaccess
The aci_driveaccess function modifies allocation status of a
drive. See Figure 4-13.
#include "aci.h"
int aci_driveaccess( char *clientname,
char *drive,
enum aci_drive_status status );
Figure 4-13aci_driveaccess Function Call
Modify allocation status of a drive for a specified client.
For additional information, Refer to
aci_drivestatus on page 4-21.
See Table 4-7 for a description of the parameters for the
aci_driveaccess function Call.
4-18DAS ACI Functions
601626-B
Table 4-7Parameters for the aci_driveaccess Function Call
ParameterDescription
clientnameclient that has allocated the drive or wants to allocate the drive.
Using SHARED_ACCESS as a key word for the client name
when requesting a drive reservation causes that drive to be
shared with other clients. All clients which are configured for
that drive can access it.
driveone of the device names defined in the DAS configuration file
for the specific client
statusACI_DRIVE_UPnormal reservation of the drive (other
clients can change the reservation back
with: ACI_DRIVE_DOWN, if the drive
is empty
ACI_DRIVE_DOWNdeleted reservation normal (only
possible with an empty drive)
ACI_DRIVE_FUPforce drive allocation (also possible, if
ACI_DRIVE_EXUPexclusive reservation of a drive, can
only changed from the client self or the
client named
DAS-SUPERVISOR
ACI_DRIVE_DOWNdeleted reservation normal (only
possible with an empty drive)
The drive can only be put in the DOWN status by
ACI_DRIVE_FDOWN if the drive is occupied.
A drive may only be available to a single client at a time. The
drive status is defined to be either UP (active) or DOWN
(inactive) to requesting clients. When the client sets the status
to ACI_UP, it is exclusively available to that client. If another
client already has the drive status set to ACI_UP, the request
is returned with the d_errno set to EUPELSE. If the client
indicates a status of ACI_DOWN, the drive is unavailable to the
client requesting drive access.
A drive must be empty to modify the drive access parameter
to ACI_DOWN.
21 Dec 2001
aci_driveaccess4-19
Return Values
The aci_driveaccess returns the following values:
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following DAS
error codes:
•ERPC
•EINVALID
•ENODRIVE
•EDRVOCCUPIED
•ENOTHAUTH
•EUPELSE
•EBADCLIENT
•ENOTAUTH
•ETIMEOUT
•ESWITCHINPROG
•EEXUP
•EDASINT
See Figure 4-14 for an example of the aci_driveaccess function.
Return the status of drives which are set to UP (active) for the
client with name clientname. If clientname is the NULL string,
return status on all drives. The status is returned in
drive_entry, an array of pointers to aci_drive_entry structures.
See Figure 4-16.
For additional information, refer to
aci_driveaccess on page 4-18, and
aci_drivestatus on page 4-21.
Return the status of drives which are set to UP (active) for the
client with name clientname. The status is returned in
drive_entry, an array of pointers to aci_drive_entry
structures. See Figure 4-18 on page 4-23.
For additional information, Refer to aci_driveaccess on page
4-18.
See Table 4-8 for a description of the parameters for the
aci_drivestatus2 function call.
Table 4-8Parameters for the aci_drivestatus2 Function Call
ParameterDescription
clientnamename of the client that requested the status of the
drives. If clientname is the NULL string, return status
on all drives.
Using SHARED_ACCESS as a key word for the client
shows all drives which are allocated in the
SHARED_ACCESS mode. Using EXUP as a key word
for the clientname shows all drives which are
allocated in the EXUP mode.
21 Dec 2001
aci_drivestatus24-23
Table 4-8Parameters for the aci_drivestatus2 Function Call
ParameterDescription
aci_drive_entryreturned information about the status of the drives
drive_namename of the drive (name used in
DAS and AMS description)
amu_drive_nameinternal AMS drive name e.g. 03
or ZZ
drive_stateUP or DOWN reservation of the
drive
Refer to aci_driveaccess on page
4-18
typetype of the drive (internal AMS
code, e.g. E for DLT drive) (See
the AMU Reference Guide)
system_idempty, reserved for further use
clientnamename of the client that the drive is
presently allocated to
volserVolser, if the drive is currently
occupied
cleaningtrue if the drive is presently
occupied with a medium for
cleaning
clean_countnumber of mounts until the next
clean activity
The maximum number of drives displayed is 250.
4-24DAS ACI Functions
601626-B
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following DAS
error codes:
•ERPC
•EINVALID
•ETIMEOUT
•ESWITCHINPROG
•EBADCLIENT
Refer to Figure 4-19 on page 4-26 for an example of the
aci_drivestatus2 function.
21 Dec 2001
aci_drivestatus24-25
/* Get drive status information for some client */
int rc = 0;
int i = 0;
char *client = "SomeClient";
struct aci_drive_entry
*drive_entry[ACI_MAX_DRIVE_ENTRIES2];
if (( rc = aci_drivestatus2( client, drive_entry
) ))
{
Return the status of drives which are set to UP for the client
with the name clientname. If clientname is the NULL string,
the call returns status on all drives. The status is returned in an
array of pointers to aci_ext_drive_entry structure. The array
element can be maximal 250. See Figure 4-21.
struct aci_ext_drive_entry {
char drive_name[ACI_DRIVE_LEN];
char amu_drive_name[ACI_AMU_DRIVE_LEN];
enum aci_drive_status drive_state;
char type;
char system_id[ACI_NAME_LEN];
char volser[ACI_VOLSER_LEN];
bool_t cleaning
short clean_count
int mount
int keep
};
Figure 4-21Returned Status
See Table 4-9 for an explanation of the parameters used for the
aci_drivestatus3 function.
Table 4-9Parameters for the aci_drivestatus3 Function Call
ParameterDescription
clientnamename of the client that requested the status of the
drives. If clientname is the NULL string, return status
on all drives.
Using SHARED_ACCESS as a key word for the client
shows all drives which are allocated in the
SHARED_ACCESS mode. Using EXUP as a key word
for the clientname shows all drives which are
allocated in the EXUP mode.
21 Dec 2001
aci_drivestatus34-27
Table 4-9Parameters for the aci_drivestatus3 Function Call
ParameterDescription
aci_drive_entryreturned information about the status of the drives
drive_namename of the drive (name used in
DAS and AMS description)
amu_drive_nameinternal AMS drive name e.g. 03
or ZZ
drive_stateUP or DOWN reservation of the
drive
Refer to aci_driveaccess on page
4-18
typetype of the drive (internal AMS
code, e.g. E for DLT drive) (See
the AMU Reference Guide)
system_idempty, reserved for further use
clientnamename of the client that the drive is
presently allocated to
volserVolser, if the drive is currently
occupied
mount• drive logically occupied but the
mount is physically not
finished (mount=1, keep=0)
• drive logically occupied and
mount is physically finished
(mount=0, keep=0)
keep• drive logically empty but the
keep is physically not finished
(mount=0, keep=1)
• drive logically empty and the
keep is physically finished
(mount=0, keep=0)
cleaningtrue if the drive is presently
occupied with a medium for
cleaning
clean_countnumber of mounts until the next
clean activity
4-28DAS ACI Functions
601626-B
Return Values
•0: The call was successful
•-1: The call has failed
The external variable d_errno is set to one of the following DAS
error codes:
•EBADCLIENT
•ERPC
•EINVALID
•EDASINT
•ETIMEOUT
•ESWITCHINPROGRESS
•EDASINT
aci_drivestatus4
The aci_drivestatus4 function queries the physical status of up
to 380 drives. See Figure 4-22.
Return the status of drives which are set to UP for the client
with the name clientname. If clientname is the NULL string, the
call returns status on all drives. If a value for the drive field is
indicated, the information relates to that single drive. The
status is returned in an array of pointers to the
aci_ext_drive_entry structure. The array element can be
maximal 380. See Figure 4-23.
The variable ACI_MAX_DRIVE_ENTRIES4 is equal to 380.
21 Dec 2001
aci_drivestatus44-29
struct aci_ext_drive_entry4 {
char drive_name[ACI_DRIVE_LEN];
char amu_drive_name[ACI_AMU_DRIVE_LEN];
enum aci_drive_status drive_state;
char type;
char system_id[ACI_NAME_LEN];
char clientname[ACI_NAME_LEN];
char volser[ACI_VOLSER_LEN];
bool_t cleaning;
short clean_count;
int mount;
int keep;
char serial_number[ACI_SERIAL_NUMBER_LEN];
};
Figure 4-23Returned Status
The variable ACI_SERIAL_NUMBER_LEN is equal to 51.
See Table 4-10 for an explanation of the parameters used for
the aci_drivestatus4 function.
Table 4-10Parameters for the aci_drivestatus4 Function Call
ParameterDescription
clientnamename of the client that requested the status of the
drives. If clientname is the NULL string, return status
on all drives.
Using SHARED_ACCESS as a key word for the client
shows all drives which are allocated in the
SHARED_ACCESS mode. Using EXUP as a key word
for the clientname shows all drives which are
allocated in the EXUP mode.
drivevalue associated with a single drive
aci_drive_entryreturned information about the status of the drives
drive_namename of the drive (name used in
DAS and AMS description)
amu_drive_nameinternal AMS drive name e.g. 03
or ZZ
4-30DAS ACI Functions
601626-B
Table 4-10Parameters for the aci_drivestatus4 Function Call
ParameterDescription
drive_stateUP or DOWN reservation of the
drive
Refer to aci_driveaccess on page
4-18
typetype of the drive (internal AMS
code, e.g. E for DLT drive) (See
the AMU Reference Guide)
system_idempty, reserved for further use
clientnamename of the client that the drive is
presently allocated to
volserVolser, if the drive is currently
occupied
cleaningtrue if the drive is presently
occupied with a medium for
cleaning
clean_countnumber of mounts until the next
clean activity
mount• drive logically occupied but the
keep• drive logically empty but the
serial_numberthe serial number of the selected
Return Values
•0: The call was successful
•-1: The call has failed
The external variable d_errno is set to one of the following DAS
error codes:
mount is physically not
finished (mount=1, keep=0)
• drive logically occupied and
mount is physically finished
(mount=0, keep=0)
keep is physically not finished
(mount=0, keep=1)
• drive logically empty and the
keep is physically finished
(mount=0, keep=0)
drive
21 Dec 2001
aci_drivestatus44-31
•ERPC
•EINVALID
•ETIMEOUT
•ESWITCHINPROGRESS
•EBADCLIENT
•ENOTSUPPHCMD
aci_drivestatus_one
The aci_drivestatus_one function queries the physical status
of up to 15 drives. See Figure 4-24.
Return the status of drives which are set to UP for the client
with the name clientname. If clientname is the NULL string,
the call returns status on all drives. If a value for the drive field
is indicated, the information relates to that single drive. The
status is returned in an array of pointers to aci_drive_entry
structure. The array element can be maximal 15. See
Figure 4-25.
)
struct aci_drive_entry {
};
Figure 4-25Returned Status
4-32DAS ACI Functions
The value of ACI_MAX_DRIVES_ENTRIES is equal to 15.
Return the status of drives which are set to UP for the client
with the name clientname. If clientname is the NULL string,
the call returns status on all drives. If a value for the drive field
is indicated, the information relates to that single drive. The
status is returned in an array of pointers to aci_drive_entry
structure. The array element can be maximal 250. See
Figure 4-27.
)
struct aci_drive_entry {
};
Figure 4-27Returned Status
4-34DAS ACI Functions
The value of ACI_MAX_DRIVES_ENTRIES2 is equal to 250.
Return the status of drives which are set to UP for the client
with the name clientname. If clientname is the NULL string,
the call returns status on all drives. If a value for the drive field
is indicated, the information relates to that single drive. The
status is returned in an array of pointers to aci_drive_entry
structure. The array element can be maximal 250. See
Figure 4-29.
)
struct aci_drive_entry {
};
Figure 4-29Returned Status
4-36DAS ACI Functions
The value of ACI_MAX_DRIVES_ENTRIES2 is equal to 250.
See Table 4-13 for an explanation of the parameters used for
the aci_drivestatus3_one function.
Table 4-13Parameters for the aci_drivestatus3_one Function Call
ParameterDescription
clientnamename of the client that requested the status of the
drives. If clientname is the NULL string, return status
on all drives.
aci_drive_entryreturned information about the status of the drives
drive_namename of the drive (name used in
DAS and AMS description)
amu_drive_nameinternal AMS drive name e.g. 03
or ZZ
drive_stateUP or DOWN reservation of the
drive
Refer to aci_driveaccess on page
4-18
typetype of the drive (internal AMS
code, e.g. E for DLT drive) (See
the AMU Reference Guide)
system_idempty, reserved for further use
clientnamename of the client that the drive is
volserVolser, if the drive is currently
cleaningtrue if the drive is presently
clean_countnumber of mounts until the next
Return Values
•0: The call was successful
•-1: The call has failed
The external variable d_errno is set to one of the following DAS
error codes:
presently allocated to
occupied
occupied with a medium for
cleaning
clean activity
21 Dec 2001
aci_drivestatus3_one4-37
•ERPC
•EINVALID
•ETIMEOUT
•ESWITCHINPROGRESS
•EBADCLIENT
•ENOTSUPPHCMD
aci_eif_conf
The aci_eif_conf function queries status from up to 20 logical
ranges. See Figure 4-30.
#include "aci.h"
int aci_eif_conf( struct aci_lora *lora_desc,
int *nCount)
Figure 4-30aci_eif_conf Function Call
The call returns nCount and the staus of the logical range. The
status is returned in an array of pointers to the aci_lora
structure. The array can be a maximum of 20 elements. See
Figure 4-31.
For the parameters of the aci_lora structure, refer to Table 4-14
on page 4-39.
601626-B
Table 4-14Parameters for the aci_eif_conf Function Call
ParameterDescription
aci_lortastructure used to describe the import/export area and addressing
lora_namethe name of the import/export area
StartCoordthe starting coordinates of the area
EndCoordthe ending coordinates of the area
ctypethe cartridge type associated with the area
descriptiona description of the import.export area
nCountthe number of returned status (maximum of 300)
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
•ETIMEOUT
•ESWITCHINPROG
•EBADCLIENT
•ENOTSUPPHCMD
aci_eject
The aci_eject function ejects a range of volumes from the
AML. See Figure 4-32.
#include "aci.h"
int aci_eject( char *eject_area,
char *volser_range,
enum aci_media type )
Figure 4-32aci_eject Function Call
21 Dec 2001
aci_eject4-39
Eject the volumes in volser_range to the eject_area. The media
type of the volumes must match that of the eject_area. Set type
to the media type of the volser_range. See Table 4-15.
Table 4-15Parameters for the aci_eject Function Call
ParameterDescription
clientnameUsing SHARED_ACCESS as a key word for the client shows
all drives which are allocated in the SHARED_ACCESS mode.
Using EXUP as a key word for the clientname shows all drives
which are allocated in the EXUP mode.
eject_areaLogical area defined in AML, where the cartridges should be
ejected
volser_ranges• a single volser
• multiple volsers separated by commas
• a range of volsers separated by a hyphen
typesmedia type of the named volser
Refer to Media Types on page 2-7
The database entry for the volume is not deleted, and the
position in the AML that the volume occupied remains
reserved for insertion of a volume with a matching volser.
This could be useful if the volume is temporarily ejected and
will be inserted in the near future. In such case, the position
remains reserved and the volume’s location within the AML
does not change.
4-40DAS ACI Functions
The eject will stop, when the eject area is full. The request will
either be cancelled or completed after the area is marked
empty depending on the DAS_EJECTAREAFULL
environment variable.
For additional information, refer to aci_eject2 on page 4-42,
and aci_eject_ complete on page 4-49.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
601626-B
•ENOVOLUME
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EDASINT
•ENOAREA
•ENOTAUTH
•EBADCLIENT
•ERETRYL
•EINUSE
•ECANCELED
•EDASINT
•ENOMATCH
•ETIMEOUT
•ESWITCHINPROG
•EHICAPINUSE
•ECOORDINATE
•EBARCODE
•EINVALIDDEV
•ENOROBOT
•EDATABASE
•ENOTSUPPHCMD
•EAREAEMPTY
•EBARCODE
•EAREAFULL
Refer to Figure 4-33 for an example of the aci_eject function.
The aci_eject2 function ejects a range of volumes from the
AML. See Figure 4-34.
#include "aci.h"
int aci_eject2( char *eject_area,
char *volser_range,
enum aci_media type,
int *pnActualCount,
struct aci_ei_info *psteiInfo)
Figure 4-34aci_eject2 Function Call
For the structure of the aci_ei_info function, refer to
Figure 4-35.
struct aci_ei_info {
char volser[ACI_VOLSER_LEN];
char media_type[ACI_DRIVE_LEN];
int errcode
};
Figure 4-35Structure of the aci_ei_info function from aci.h
See Table 4-16 for a description of the parameters for the
aci_eject2 function call.
Table 4-16Parameters for the aci_eject2 Function Call
ParameterDescription
eject_arealogical area defined in the AMS, where the cartridges should be
ejected
volser_range• a single volser
• multiple volsers separated by commas
• a range of volsers separated by a hyphen
• set to empty (““ or ‘\0’) if it is not to be changed
typemedia type of the named volser range
Refer to Media Types on page 2-7
pnActualCountreturned number of ejected volsers
4-42DAS ACI Functions
601626-B
Table 4-16Parameters for the aci_eject2 Function Call
ParameterDescription
aci_ei_inforeturned information on each volser ejected
volservolser of the ejected volume
typemedia type of the named volser
Refer to Media Types on page 2-7
errcodeserror code derrno
If the eject area is full, the system stops the eject procedure.
Depending on the DAS_EJECTAREAFULL environment
variable on the AMU, the command will be canceled, or the
system starts with the next eject after the operator has
removed cartridges from the eject area.
The Attribute of the Coordinate will be set to ejected in the
AMU database. The compartment is now reserved for this
volser, if the compartment needs to be used for other volsers,
issue the aci_eject_complete2 function.
Use the eject stop, when the eject area is full. Depending on the
DAS_EJECTAREAFULL environment variable, the request will
either be cancelled or completed after the area is marked
empty.
For additional information, refer to aci_insert on page 4-75,
and aci_eject_ complete on page 4-49.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
•ENOVOLUME
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EDASINT
•ENOAREA
21 Dec 2001
aci_eject24-43
•ENOTAUTH
•EBADCLIENT
•ERETRYL
•EINUSE
•ECANCELED
•EDASINT
•ENOMATCH
•ETIMEOUT
•ESWITCHINPROG
•EHICAPINUSE
•ECOORDINATE
•EBARCODE
•EINVALIDDEV
•ENOROBOT
•EDATABASE
•ENOTSUPPHCMD
•EAREAEMPTY
•EBARCODE
•EAREAFULL
See Figure 4-36 for an example of the aci_eject2 function.
4-44DAS ACI Functions
601626-B
/* Eject volume but reserve archive location */
int rc, i, pnActualCount;
The aci_eject3 function ejects a range of volumes from the
AML. See Figure 4-37.
#include "aci.h"
int aci_eject3( char *eject_area,
char *volser_range,
enum aci_media type,
int *pnActualCount,
struct aci_ei_info *psteiInfo)
Figure 4-37aci_eject3 Function Call
The volser_range field has a maximum size of 512 bytes.
For the structure of the aci_ei_info function, refer to
Figure 4-38.
struct aci_ei_info {
char volser[ACI_VOLSER_LEN];
char media_type[ACI_DRIVE_LEN];
int errcode
};
Figure 4-38Structure of the aci_ei_info function
Table 4-17Parameters for the aci_eject3 Function Call
ParameterDescription
eject_arealogical area defined in the AMS, where the cartridges should be
volser_range• a single volser
typemedia type of the named volser range
4-46DAS ACI Functions
See Table 4-17 for a description of the parameters for the
aci_eject2 function call.
ejected
• multiple volsers separated by commas
• a range of volsers separated by a hyphen
• set to empty (““ or ‘\0’) if it is not to be changed
Refer to Media Types on page 2-7
601626-B
Table 4-17Parameters for the aci_eject3 Function Call
ParameterDescription
pnActualCountreturned number of ejected volsers
aci_ei_inforeturned information on each volser ejected
volservolser of the ejected volume
typemedia type of the named volser
Refer to Media Types on page 2-7
errcodeserror code derrno
If the eject area is full, the system stops the eject procedure.
Depending on the DAS_EJECTAREAFULL environment
variable on the AMU, the command will be canceled, or the
system starts with the next eject after the operator has
removed cartridges from the eject area.
The Attribute of the Coordinate will be set to ejected in the
AMU database. The compartment is now reserved for this
volser, if the compartment needs to be used for other volsers,
issue the aci_eject_complete2 function.
Use the eject stop, when the eject area is full. Depending on the
DAS_EJECTAREAFULL environment variable, the request will
either be cancelled or completed after the area is marked
empty.
For additional information, refer to aci_insert on page 4-75,
and aci_eject_ complete on page 4-49.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
•ENOVOLUME
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EDASINT
21 Dec 2001
aci_eject34-47
•ENOAREA
•ENOTAUTH
•EBADCLIENT
•ERETRYL
•EINUSE
•ECANCELED
•ENOMATCH
•ETIMEOUT
•ESWITCHINPROG
•EHICAPINUSE
•ECOORDINATE
•EBARCODE
•EINVALIDDEV
•ENOROBOT
•EDATABASE
•ENOTSUPPHCMD
•EAREAEMPTY
•EBARCODE
•EAREAFULL
4-48DAS ACI Functions
601626-B
aci_eject_ complete
The aci_eject_complete function ejects volumes and removes
the database entries. See Figure 4-39.
#include "aci.h"
int aci_eject_complete( char *eject_area,
char *volser_range,
enum aci_media type)
Figure 4-39aci_eject_complete function call
Eject the volumes in volser_range to the eject_area. The media
type of the volumes must match that of the eject_area. Set type
to the media type of the volser_range. The database entry for
the volume is deleted, and the position in the AML that the
volume occupied becomes free. This could be useful if the
volume is to be placed in long-term archive storage or more
space is needed in the AML. If the volume is re-inserted into
the AML, it is stored in the next available position, and it
probably will not occupy the previous position. The volume is
re-inserted in the same position only if aci_eject is used.
See Table 4-18 for a description of the parameters for the
aci_eject_complete function call.
Table 4-18Parameters for the aci_eject_complete Function Call
ParameterDescription
eject_areaLogical area defined in AMS, where the cartridges should be
ejected
volser_range• a single volser
• multiple volsers separated by commas
• a range of volsers separated by a hyphen
typesmedia types of the named volser
Refer to Media Types on page 2-7
The eject will stop, when the eject area is full. Depending on
the DAS_EJECTAREAFULL environment variable, the request
will either be cancelled or completed after the area is marked
empty.
For additional information, refer to aci_eject on page 4-39, and
aci_insert on page 4-75.
21 Dec 2001
aci_eject_ complete4-49
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
•ENOVOLUME
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EDASINT
•ENOAREA
•ENOTAUTH
•EBADCLIENT
•ERETRYL
•EINUSE
•ECANCELED
•EDASINT
•ENOMATCH
•ETIMEOUT
•ESWITCHINPROG
•EHICAPINUSE
•ECOORDINATE
•EBARCODE
•EINVALIDDEV
•ENOROBOT
•EDATABASE
•ENOTSUPPHCMD
•EAREAEMPTY
•EBARCODE
•EAREAFULL
4-50DAS ACI Functions
Refer to Figure 4-40 on page 4-51 for an example of the
aci_eject_complete function.
601626-B
/* Eject volume from archive and free storage position.
*/
int rc = 0;
rc = aci_eject_complete("E01", "AAB001", ACI_3590 );
if( rc )
{
aci_perror( "Command failed:" );
}
else
{
printf( "Volser AAB001 ejected to E01 \n" );
}
Figure 4-40Example of the aci_eject_complete Function
aci_eject2_complete
The aci_eject2_complete function ejects a range of volumes
from the AML, and deletes the home coordinate. See
Figure 4-41.
#include "aci.h"
int aci_eject2_complete( char *eject_area,
char *volser_range,
enum aci_media type,
int *pnActualCount,
struct aci_ei_info *psteiInfo)
Figure 4-41aci_eject2_complete Function Call
See Figure 4-42 for the structure of the aci_ei_info function.
struct aci_ei_info {
char volser[ACI_VOLSER_LEN];
char media_type[ACI_DRIVE_LEN];
int errcode
};
Figure 4-42Structure of the aci_ei_info function
21 Dec 2001
aci_eject2_complete4-51
See Table 4-19 for a description of the parameters for the
aci_eject2_complete function call.
Table 4-19Parameters for the aci_eject2_complete Function Call
ParameterDescription
eject_arealogical area defined in AML, where the cartridges
should be ejected
volser_range• a single volser
• multiple volsers separated by commas
• a range of volsers separated by a hyphen
• set to empty (““ or ‘\0’) if it is not to be changed
typemedia type of the named volser range
Refer to Media Types on page 2-7
pnActualCountreturned number of ejected volsers
aci_ei_inforeturned information to each ejected volser
volservolser of the ejected volume
typemedia type of the named volser
Refer to Media Types on page 2-7
errcodeError code derrno
If the eject area is full the system stops the eject procedure.
Depending on the DAS_EJECTAREAFULL environment
variable on the AMU, the command will be canceled, or the
system starts with the next eject after the operator has
removed cartridges from the eject area.
The attribute of the coordinate will be set to empty in the
AMU database. The volser will be set to 0000000000000000,
but the type will remain unchanged. The compartment is
ready for the other volsers.
For additional information, refer to aci_insert on page 4-75,
and aci_eject2 on page 4-42.
4-52DAS ACI Functions
601626-B
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
•ENOVOLUME
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EDASINT
•ENOAREA
•ENOTAUTH
•EBADCLIENT
•ERETRYL
•EINUSE
•ECANCELED
•EDASINT
•ENOMATCH
•ETIMEOUT
•ESWITCHINPROG
•EHICAPINUSE
•ECOORDINATE
•EBARCODE
•ENOROBOT
•EDATABASE
•ENOTSUPPHCMD
•EAREAEMPTY
•EBARCODE
•EAREAFULL
Refer to Figure 4-43 on page 4-54 for an example of the
aci_eject2_complete function.
21 Dec 2001
aci_eject2_complete4-53
/* Eject volume complete from AML system*/
int rc, i, pnActualCount;
Figure 4-43Example of the aci_eject2_complete Function
aci_eject3_complete
#include "aci.h"
int aci_eject3_complete( char *eject_area,
Figure 4-44aci_eject3_complete Function Call
4-54DAS ACI Functions
The aci_eject3_complete function ejects a range of volumes
from the AML, and deletes the home coordinate. See
Figure 4-44.
char *volser_range,
enum aci_media type,
int *pnActualCount,
struct aci_ei_info *psteiInfo)
601626-B
The volser_range field has a maximum size of 512 bytes.
See Figure 4-45 for the structure of the aci_ei_info function.
struct aci_ei_info {
char volser[ACI_VOLSER_LEN];
char media_type[ACI_DRIVE_LEN];
int errcode
};
Figure 4-45Structure of the aci_ei_info function
See Table 4-20 for a description of the parameters for the
aci_eject3_complete function call.
Table 4-20Parameters for the aci_eject3_complete Function Call
ParameterDescription
eject_arealogical area defined in AML, where the cartridges
should be ejected
volser_range• a single volser
• multiple volsers separated by commas
• a range of volsers separated by a hyphen
• set to empty (““ or ‘\0’) if it is not to be changed
typemedia type of the named volser range
Refer to Media Types on page 2-7
pnActualCountreturned number of ejected volsers
aci_ei_inforeturned information to each ejected volser
volservolser of the ejected volume
typemedia type of the named volser
Refer to Media Types on page 2-7
errcodeError code derrno
If the eject area is full the system stops the eject procedure.
Depending on the DAS_EJECTAREAFULL environment
variable on the AMU, the command will be canceled, or the
system starts with the next eject after the operator has
removed cartridges from the eject area.
21 Dec 2001
aci_eject3_complete4-55
The attribute of the coordinate will be set to empty in the
AMU database. The volser will be set to 0000000000000000,
but the type will remain unchanged. The compartment is
ready for the other volsers.
For additional information, refer to aci_insert on page 4-75,
and aci_eject2 on page 4-42.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
•ENOVOLUME
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EDASINT
•ENOAREA
•ENOTAUTH
•EBADCLIENT
•ERETRYL
•EINUSE
•ECANCELED
•EDASINT
•ENOMATCH
•ETIMEOUT
•ESWITCHINPROG
•EHICAPINUSE
•ECOORDINATE
•EBARCODE
•ENOROBOT
•EDATABASE
•ENOTSUPPHCMD
•EAREAEMPTY
•EBARCODE
•EAREAFULL
4-56DAS ACI Functions
601626-B
aci_ejectclean
The aci_ejectclean function ejects all exhausted cleaning
cartridges from one Cleanpool. See Figure 4-46.
#include "aci.h"
int aci_ejectclean( char *areaname,
char *Cleanpoolname,
int *pnActualCount,
struct aci_ei_info *psteiInfo)
Figure 4-46aci_ejectclean Function Call
See Figure 4-47 for the structure of the aci_ei_info function.
struct aci_ei_info {
char volser[ACI_VOLSER_LEN];
char media_type[ACI_DRIVE_LEN];
int errcode
};
Figure 4-47Structure of the aci_ei_info function from aci.h
See Table 4-21 for a description of the parameters for the
aci_ejectclean function Call.
Table 4-21Parameters for the aci_ejectclean Function Call
ParameterDescription
areanameLogical area defined in AMS, where the cartridges
should be ejected, e.g. E01
CleanpoolnameName of the group of cleaning cartridges, e.g. CLP01,
defined in the AML configuration
pnActualCountreturned number of ejected volsers
21 Dec 2001
aci_ejectclean4-57
Table 4-21Parameters for the aci_ejectclean Function Call
ParameterDescription
aci_ei_inforeturned information to each ejected volser
volservolser of the ejected volume
typemedia type of the named volser
Refer to Media Types on page 2-7
errcodeerror code derrno
If the eject area is full the system stops the eject procedure.
Depending on the DAS_EJECTAREAFULL environment
variable on the AMU, the command will be canceled, or the
system starts with the next eject after the operator has
removed cartridges from the eject area.
The attribute of the coordinate will be set to empty in the
AMU database. The volser will be set to 0000000000000000,
and the type will be set to AMU-Dynamic. The compartment
is ready for the other volsers.
The compartments for cleaning cartridges are not reserved.
Organize enough compartments for the cleaning cartridges
every time.
For additional information, refer to aci_insert on page 4-75,
and aci_eject2 on page 4-42.
Return Values
•0: The call was successful.
•-1: The call failed.
The external variable d_errno is set to one of the following
DAS error codes:
•ERPC
•EINVALID
•ENOVOLUME
•EPROBVOL
•EAMU
•EAMUCOMM
•EROBOTCOMM
•EDASINT
•ENOAREA
•ENOTAUTH
4-58DAS ACI Functions
601626-B
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.