ADIC Server User Manual

The ADIC
Distributed AML Server
DAS V3.10E
Interfacing
Guide
© Copyright ADIC 2001
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.
Copyright Notice (Europe)
© Copyright ADIC Europe 2001
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.
ADIC ADIC Europe ADIC Germany Beteiligungs GmbH, KG Tel.: +1 303-705-3900 ZAC des Basses Auges Eschenstraße 3 Fax: +1-303-792-2465 1, rue Alfred de Vigny D-89558 Böhmenkirch, Germany ATAC: 1-800-827-3822 78112 Fourqueux, France Tel:+00.800.9999.3822 www.adic.com Tel.: +33.1.3087.5300
Fax: +33.1.3087.5301
Document number: 601626-B Published: 21 Dec 2001 Printed in the USA
ADIC CORPORATE • 11431 WILLOWS ROAD, NE • REDMOND, WASHINGTON, USA • 1-800-336-1233
ADIC • 8560 UPLAND DRIVE • PARKER, COLORADO, USA • 1-800-827-3822
ADIC • 10 BROWN ROAD • ITHACA, NEW YORK, USA • 1-607-266-4000
21 Dec 2001
iii
iv [Chapter Name]
601626-B
Contents
1
Introduction
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Associated Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
Explanation of Symbols and Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
Assistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5
2
DAS ACI
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
DAS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
ACI Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
Client Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
ACI Routines - Basic Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
ACI Routines - Complete Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5
Media Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
DAS Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
3
Safety
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3
Hazard Alert Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3
Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
4
DAS ACI Functions
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5
aci_barcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-6
aci_cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-7
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8
aci_cleandrive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9
aci_clientaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-12
aci_clientstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-15
aci_dismount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-16
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-17
aci_driveaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-20
aci_drivestatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-21
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-22
aci_drivestatus2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-22
iv Contents
601626-B
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-25
aci_drivestatus3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-26
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-29
aci_drivestatus4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-29
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-31
aci_drivestatus_one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-32
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-33
aci_drivestatus2_one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-34
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-35
aci_drivestatus3_one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-36
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-37
aci_eif_conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-38
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-39
aci_eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-40
aci_eject2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-43
aci_eject3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-47
aci_eject_ complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-49
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-50
aci_eject2_complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-51
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-53
aci_eject3_complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-54
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-56
aci_ejectclean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-57
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-58
aci_email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-60
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-61
aci_flip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-61
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-62
aci_force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-64
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-64
aci_foreign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-66
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-67
aci_getvolsertodrive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-68
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-69
21 Dec 2001
Contents v
aci_getVolserToSide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-70
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-71
aci_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-72
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-73
aci_initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74
aci_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-75
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-76
aci_insert2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-77
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-79
aci_inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-81
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-81
aci_killamu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-82
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-83
aci_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-84
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-86
aci_list2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-87
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-89
aci_list_foreign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-89
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-90
aci_mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-91
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-91
aci_partial_inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-93
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-95
aci_perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-96
aci_qversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-97
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-97
aci_qvolsrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-98
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-101
aci_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-103
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-104
aci_robhome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-106
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-106
aci_robstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-107
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-108
aci_scratch_get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-109
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-110
vi Contents
601626-B
aci_scratch_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-111
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-112
aci_scratch_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-114
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-115
aci_scratch_unset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-116
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-117
aci_shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-118
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-118
aci_snmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-119
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-119
aci_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-120
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-121
aci_unload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-122
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-122
aci_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-123
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-125
aci_volser_inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-126
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-127
aci_volseraccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-128
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-128
aci_volserstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-129
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-130
5
DAS ACI 3.0 Asynchronous Support Layer
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3
How It Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3
Sadmin Sample Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3
Sadmin Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-4
Contents of the Async Support Layer Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-4
aci_async_add() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-5
das_mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-6
das_dismount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-7
21 Dec 2001
Contents vii
das_force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-7
das_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-8
das_eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-9
das_eject_complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-10
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-11
aci_async_create() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-13
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-13
aci_async_find() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-15
aci_async_free() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-16
Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16
aci_mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
aci_dismount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
Return Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-17
aci_force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-17
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18
aci_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-18
Returned values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-18
aci_eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-19
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19
aci_eject_complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-19
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20
Response Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-21
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-21
Signal Handler Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-22
Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-23
aci_async_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-23
Parameter Data (Parms Structure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-25
Response Data (Structure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26
st_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-26
st_mount_parms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26
st_insert_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27
A
Application Notes
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-3
viii Contents
601626-B
Error Recovery Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-3
Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-9
Index
21 Dec 2001
Contents ix
xContents
601626-B
Figures
Figure 2-1 Logical Relationship Between AML Components . . . . . . . . . . . . . . .2-3
Figure 4-1 aci_barcode Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5
Figure 4-2 Example of the aci_barcode Function. . . . . . . . . . . . . . . . . . . . . . . . . .4-7
Figure 4-3 aci_cancel Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
Figure 4-4 Example of the aci_cancel Function . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8
Figure 4-5 aci_cleandrive Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9
Figure 4-6 aci_clientaccess Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Figure 4-7 Example of the aci_clientaccess Function . . . . . . . . . . . . . . . . . . . . .4-13
Figure 4-8 aci_clientstatus Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14
Figure 4-9 Returned Configuration Information . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
Figure 4-10 Example of the aci_clientstatus Function. . . . . . . . . . . . . . . . . . . . . .4-16
Figure 4-11 aci_dismount Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
Figure 4-12 Example of the aci_dismount Function . . . . . . . . . . . . . . . . . . . . . . .4-18
Figure 4-13 aci_driveaccess Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-18
Figure 4-14 Example of the aci_driveaccess Function. . . . . . . . . . . . . . . . . . . . . . 4-20
Figure 4-15 aci_drivestatus Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
Figure 4-16 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-21
Figure 4-17 aci_drivestatus2 Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22
Figure 4-18 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-23
Figure 4-19 Example of the aci_drivestatus2 Function . . . . . . . . . . . . . . . . . . . . .4-26
Figure 4-20 aci_drivestatus3 Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27
Figure 4-21 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-27
Figure 4-22 aci_drivestatus4 Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Figure 4-23 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-30
Figure 4-24 aci_drivestatus_one Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Figure 4-25 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-32
Figure 4-26 aci_drivestatus_2_one Function Call . . . . . . . . . . . . . . . . . . . . . . . . .4-34
Figure 4-27 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-34
Figure 4-28 aci_drivestatus_3_one Function Call . . . . . . . . . . . . . . . . . . . . . . . . .4-36
Figure 4-29 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-36
Figure 4-30 aci_eif_conf Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-38
Figure 4-31 Returned Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-38
Figure 4-32 aci_eject Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
Figure 4-33 Example of the aci_eject Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-41
Figure 4-34 aci_eject2 Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
Figure 4-35 Structure of the aci_ei_info function from aci.h . . . . . . . . . . . . . . . . 4-42
Figure 4-36 Example of the aci_eject2 Function. . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Figure 4-37 aci_eject3 Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46
Figure 4-38 Structure of the aci_ei_info function. . . . . . . . . . . . . . . . . . . . . . . . . .4-46
Figure 4-39 aci_eject_complete function call . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-49
Figure 4-40 Example of the aci_eject_complete Function. . . . . . . . . . . . . . . . . . . 4-51
Figure 4-41 aci_eject2_complete Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . .4-51
Figure 4-42 Structure of the aci_ei_info function. . . . . . . . . . . . . . . . . . . . . . . . . .4-51
Figure 4-43 Example of the aci_eject2_complete Function. . . . . . . . . . . . . . . . . . 4-54
Figure 4-44 aci_eject3_complete Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . .4-54
Figure 4-45 Structure of the aci_ei_info function. . . . . . . . . . . . . . . . . . . . . . . . . .4-55
Figure 4-46 aci_ejectclean Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-57
Figure 4-47 Structure of the aci_ei_info function from aci.h . . . . . . . . . . . . . . . . 4-57
Figure 4-48 Example of the aci_ejectclean Function . . . . . . . . . . . . . . . . . . . . . . .4-60
Figure 4-49 aci_email Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-60
Figure 4-50 aci_flip Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-61
Figure 4-51 Example of the aci_flip Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-63
Figure 4-52 aci_force Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-64
Figure 4-53 Example of the aci_force Function . . . . . . . . . . . . . . . . . . . . . . . . . . .4-65
Figure 4-54 aci_foreign Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-66
x Figures
601626-B
Figure 4-55 Example of the aci_foreign Function. . . . . . . . . . . . . . . . . . . . . . . . . .4-68
Figure 4-56 aci_getvolsertodrive Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . .4-68
Figure 4-57 aci_voltodrive_entry Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-69
Figure 4-58 Example of the aci_getvolertodrive Function . . . . . . . . . . . . . . . . . .4-70
Figure 4-59 aci_getVolserToSide Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . .4-70
Figure 4-60 Structure of Type aci_sideinfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-71
Figure 4-61 Example of the aci_getvolsertoside Function . . . . . . . . . . . . . . . . . .4-72
Figure 4-62 aci_init Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-72
Figure 4-63 Example of the aci_init Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-73
Figure 4-64 aci_initialize Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74
Figure 4-65 Example of the aci_initialize Function . . . . . . . . . . . . . . . . . . . . . . . .4-74
Figure 4-66 aci_insert Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-75
Figure 4-67 Example of the aci_insert Function. . . . . . . . . . . . . . . . . . . . . . . . . . .4-77
Figure 4-68 aci_insert2 Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-77
Figure 4-69 aci_ei_info Structure from aci.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-78
Figure 4-70 Example of the aci_insert2 Function. . . . . . . . . . . . . . . . . . . . . . . . . .4-80
Figure 4-71 aci_inventory Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-81
Figure 4-72 Example of the aci_inventory Function . . . . . . . . . . . . . . . . . . . . . . .4-82
Figure 4-73 aci_killamu Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-82
Figure 4-74 Example of the aci_killamu Function . . . . . . . . . . . . . . . . . . . . . . . . . 4-83
Figure 4-75 aci_list Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-84
Figure 4-76 Example of the Returned Structure. . . . . . . . . . . . . . . . . . . . . . . . . . .4-84
Figure 4-77 Example of the aci_list Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-86
Figure 4-78 aci_list2 Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-87
Figure 4-79 Example of the Returned Structure. . . . . . . . . . . . . . . . . . . . . . . . . . .4-87
Figure 4-80 aci_list_foreign Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-89
Figure 4-81 Example of the Returned Structure. . . . . . . . . . . . . . . . . . . . . . . . . . .4-90
Figure 4-82 aci_mount Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-91
Figure 4-83 Example of the aci_mount Function. . . . . . . . . . . . . . . . . . . . . . . . . .4-93
Figure 4-84 aci_partial_inventory Function Call . . . . . . . . . . . . . . . . . . . . . . . . . .4-93
Figure 4-85 Example of the aci_partial_inventory Function . . . . . . . . . . . . . . . .4-95
Figure 4-86 aci_perror Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-96
Figure 4-87 Example of the aci_perror Function . . . . . . . . . . . . . . . . . . . . . . . . . .4-96
21 Dec 2001
Figures xi
Figure 4-88 aci_qversion Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-97
Figure 4-89 Example of the aci_qversion Function . . . . . . . . . . . . . . . . . . . . . . . .4-98
Figure 4-90 aci_qvolsrange Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-98
Figure 4-91 Amount of Listed Volsers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-99
Figure 4-92 Structure for the aci_volserinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-99
Figure 4-93 Example of the aci_qvolsrange Function . . . . . . . . . . . . . . . . . . . . .4-102
Figure 4-94 aci_register Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-103
Figure 4-95 Example of the aci_register Function . . . . . . . . . . . . . . . . . . . . . . . .4-105
Figure 4-96 aci_robhome Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-106
Figure 4-97 Example of the aci_robhome Function. . . . . . . . . . . . . . . . . . . . . . .4-107
Figure 4-98 aci_robstat Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-107
Figure 4-99 Example of the aci_robstat Function. . . . . . . . . . . . . . . . . . . . . . . . .4-109
Figure 4-100 aci_scratch_get Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-109
Figure 4-101 Example of the aci_scratch_get Function. . . . . . . . . . . . . . . . . . . . . 4-111
Figure 4-102 aci_scratch_info Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-111
Figure 4-103 Example of the aci_scratch_info Function . . . . . . . . . . . . . . . . . . . . 4-113
Figure 4-104 aci_scratch_set Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-114
Figure 4-105 Example of the aci_scratch_set Function . . . . . . . . . . . . . . . . . . . . .4-115
Figure 4-106 aci_scratch_unset Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-116
Figure 4-107 Example of the aci_scratch_unset Function. . . . . . . . . . . . . . . . . . .4-117
Figure 4-108 aci_shutdown Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-118
Figure 4-109 Example of the aci_shutdown Function. . . . . . . . . . . . . . . . . . . . . .4-119
Figure 4-110 aci_snmp Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-119
Figure 4-111 aci_switch Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-120
Figure 4-112 Example of the aci_switch Function . . . . . . . . . . . . . . . . . . . . . . . . .4-121
Figure 4-113 aci_unload Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-122
Figure 4-114 aci_view Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-123
Figure 4-115 Volser Information Contained in the aci_volume_desc Structure4-123
Figure 4-116 Example of the aci_view Function . . . . . . . . . . . . . . . . . . . . . . . . . .4-126
Figure 4-117 aci_volser_inventory Function Call . . . . . . . . . . . . . . . . . . . . . . . . .4-126
Figure 4-118 aci_volseraccess Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-128
Figure 4-119 aci_volserstatus Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-129
Figure 4-120 aci_volser_entry Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-130
xii Figures
601626-B
Figure 5-1 Example of a Generic aci_async_add() Function . . . . . . . . . . . . . . . .5-5
Figure 5-2 aci_async_add Function with the das_mount Parameter . . . . . . . . . 5-6
Figure 5-3 Example of the aci_async_add Function with the das_mount Parame-
ter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-6
Figure 5-4 aci_async_add Function with the das_dismount Parameter . . . . . .5-7
Figure 5-5 aci_async_add Function with the das_force Parameter. . . . . . . . . . . 5-7
Figure 5-6 aci_async_add Function with the das_insert Parameter . . . . . . . . . .5-8
Figure 5-7 aci_async_add Function with the das_eject Parameter . . . . . . . . . . .5-9
Figure 5-8 aci_async_add Function with the das_eject_complete Parameter .5-10
Figure 5-9 Example of an aci_async_add Function . . . . . . . . . . . . . . . . . . . . . . .5-12
Figure 5-10 aci_async_create Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-13
Figure 5-11 Example if the aci_async_create Function . . . . . . . . . . . . . . . . . . . . .5-14
Figure 5-12 aci_async_find Function Call. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-14
Figure 5-13 Example of the aci_async_find Function . . . . . . . . . . . . . . . . . . . . . .5-15
Figure 5-14 aci_async_free Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-16
Figure 5-15 Example of aci_mount Asynchronous ACI Call. . . . . . . . . . . . . . . .5-16
Figure 5-16 aci_dismount Asynchronous ACI Call. . . . . . . . . . . . . . . . . . . . . . . .5-17
Figure 5-17 aci_force Asynchronous ACI Call. . . . . . . . . . . . . . . . . . . . . . . . . . . .5-18
Figure 5-18 aci_insert Asynchronous Function Call . . . . . . . . . . . . . . . . . . . . . . . 5-18
Figure 5-19 aci_eject Asynchronous Function Call . . . . . . . . . . . . . . . . . . . . . . . .5-19
Figure 5-20 aci_eject_complete Asynchronous Function Call . . . . . . . . . . . . . . .5-19
Figure 5-21 Setup Signal Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-21
Figure 5-22 dasadmin Sample Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-22
Figure 5-23 Common Structure for aci_async_entry. . . . . . . . . . . . . . . . . . . . . . . 5-24
Figure 5-24 async_drive_parms Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-25
Figure 5-25 async_ei_parms Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-25
Figure 5-26 async_response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-26
Figure 5-27 async_mount_parms Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26
Figure 5-28 async_insert_responce Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-27
21 Dec 2001
Figures xiii
xiv Figures
601626-B
Tables
Table 2-1 Routines Available with Basic Service Access . . . . . . . . . . . . . . . . . .2-5
Table 2-2 Routines Available with Complete Service Access . . . . . . . . . . . . . .2-5
Table 2-3 Supported Media Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Table 3-1 Hazard Alert Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3
Table 4-1 Parameters for the aci_barcode Function Call. . . . . . . . . . . . . . . . . . . 4-5
Table 4-2 Parameter for the aci_cancel Function Call . . . . . . . . . . . . . . . . . . . . . 4-7
Table 4-3 Parameter for the aci_cleandrive Function Call . . . . . . . . . . . . . . . . .4-9
Table 4-4 Parameters for the aci_clientaccess Function Call . . . . . . . . . . . . . .4-11
Table 4-5 Parameters for the aci_clientstatus Function Call. . . . . . . . . . . . . . .4-15
Table 4-6 Parameters for the aci_dismount Function Call . . . . . . . . . . . . . . . .4-16
Table 4-7 Parameters for the aci_driveaccess Function Call . . . . . . . . . . . . . .4-19
Table 4-8 Parameters for the aci_drivestatus2 Function Call. . . . . . . . . . . . . .4-23
Table 4-9 Parameters for the aci_drivestatus3 Function Call. . . . . . . . . . . . . .4-27
Table 4-10 Parameters for the aci_drivestatus4 Function Call. . . . . . . . . . . . . . 4-30
Table 4-11 Parameters for the aci_drivestatus_one Function Call . . . . . . . . . .4-33
Table 4-12 Parameters for the aci_drivestatus2_one Function Call . . . . . . . . .4-35
Table 4-13 Parameters for the aci_drivestatus3_one Function Call . . . . . . . . .4-37
Table 4-14 Parameters for the aci_eif_conf Function Call. . . . . . . . . . . . . . . . . . 4-39
Table 4-15 Parameters for the aci_eject Function Call. . . . . . . . . . . . . . . . . . . . .4-40
Table 4-16 Parameters for the aci_eject2 Function Call. . . . . . . . . . . . . . . . . . . .4-42
Table 4-17 Parameters for the aci_eject3 Function Call. . . . . . . . . . . . . . . . . . . .4-46
Table 4-18 Parameters for the aci_eject_complete Function Call. . . . . . . . . . . .4-49
Table 4-19 Parameters for the aci_eject2_complete Function Call. . . . . . . . . . . 4-52
Table 4-20 Parameters for the aci_eject3_complete Function Call. . . . . . . . . . . 4-55
Table 4-21 Parameters for the aci_ejectclean Function Call . . . . . . . . . . . . . . . . 4-57
Table 4-22 Parameter for the aci_email Function Call. . . . . . . . . . . . . . . . . . . . .4-61
Table 4-23 Parameter for the aci_flip Function Call . . . . . . . . . . . . . . . . . . . . . .4-62
Table 4-24 Parameter for the aci_force Function Call . . . . . . . . . . . . . . . . . . . . .4-64
Table 4-25 Parameters for the aci_foreign Function Call . . . . . . . . . . . . . . . . . . 4-66
Table 4-26 Parameters for the aci_getvolsertodrive Function Call . . . . . . . . . .4-69
Table 4-27 Parameters for the aci_getvolsertoside Function Call . . . . . . . . . . . 4-71
Table 4-28 Parameters for the aci_insert Function Call. . . . . . . . . . . . . . . . . . . . 4-75
Table 4-29 Parameters for the aci_insert2 Function Call. . . . . . . . . . . . . . . . . . .4-78
Table 4-30 Parameters for the aci_list Function Call . . . . . . . . . . . . . . . . . . . . . . 4-85
Table 4-31 Explanation of the Req_types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-85
Table 4-32 Parameters for the aci_list2 Function Call . . . . . . . . . . . . . . . . . . . . .4-88
Table 4-33 Explanation of the Req_types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-88
Table 4-34 Parameters for the aci_list_foreign Function Call. . . . . . . . . . . . . . .4-90
Table 4-35 Parameters for the aci_mount Function Call. . . . . . . . . . . . . . . . . . . 4-91
Table 4-36 Parameters for the aci_partial_inventory Function Call . . . . . . . . . 4-94
Table 4-37 Parameter for the aci_perror Function Call. . . . . . . . . . . . . . . . . . . .4-96
Table 4-38 Parameters for the aci_qversion Function Call . . . . . . . . . . . . . . . . . 4-97
Table 4-39 Parameters for the aci_qvolsrange Function Call. . . . . . . . . . . . . . .4-99
Table 4-40 Explanation of the Attrib Values. . . . . . . . . . . . . . . . . . . . . . . . . . . .4-100
Table 4-41 Parameters for the aci_register Function Call . . . . . . . . . . . . . . . . .4-103
Table 4-42 Parameter for the aci_robhome Function Call . . . . . . . . . . . . . . . .4-106
Table 4-43 Parameters for the aci_robstat Function Call . . . . . . . . . . . . . . . . .4-108
Table 4-44 Parameters for the aci_scratch_get Function Call. . . . . . . . . . . . . . 4-110
Table 4-45 Parameters for the aci_scratch_info Function Call. . . . . . . . . . . . . 4-112
Table 4-46 Parameters for the aci_scratch_set Function Call . . . . . . . . . . . . . .4-114
Table 4-47 Parameters for the aci_scratch_unset Function Call. . . . . . . . . . . .4-116
Table 4-48 Parameter for the aci_shutdown Function Call . . . . . . . . . . . . . . .4-118
Table 4-49 Parameter for the aci_snmp Function Call . . . . . . . . . . . . . . . . . . .4-119
Table 4-50 Parameter for the aci_switch Function Call. . . . . . . . . . . . . . . . . . .4-120
Table 4-51 Parameter for the aci_unload Function Call . . . . . . . . . . . . . . . . . . 4-122
xvi Tables
601626-B
Table 4-52 Parameters for the aci_view Function Call . . . . . . . . . . . . . . . . . . .4-124
Table 4-53 Table Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-124
Table 4-54 Table Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-125
Table 4-55 Parameters for the aci_volser_inventory Function Call. . . . . . . . .4-127
Table 4-56 Parameters for the aci_volseraccess Function Call. . . . . . . . . . . . .4-128
Table 4-57 Parameters for the aci_volserstatus Function Call . . . . . . . . . . . . .4-130
Table 5-1 Parameters for the das_mount Parameter . . . . . . . . . . . . . . . . . . . . . .5-6
Table 5-2 Parameters for the das_dismount Parameter . . . . . . . . . . . . . . . . . . .5-7
Table 5-3 Parameter for the das_force Parameter . . . . . . . . . . . . . . . . . . . . . . . . 5-8
Table 5-4 Parameters for the das_insert Parameter. . . . . . . . . . . . . . . . . . . . . . .5-9
Table 5-5 Parameters for the das_eject Parameter . . . . . . . . . . . . . . . . . . . . . . . 5-10
Table 5-6 Parameters for the das_eject_complete Parameter. . . . . . . . . . . . . . 5-11
Table 5-7 Parameter for the aci_async_create Function . . . . . . . . . . . . . . . . . .5-13
Table 5-8 Parameter for the aci_async_find Function . . . . . . . . . . . . . . . . . . . . 5-14
Table 5-9 Parameters for the aci_async_free Function . . . . . . . . . . . . . . . . . . .5-16
Table A-1 Error Code Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-3
21 Dec 2001
Tables xvii
xviii Tables
601626-B
1

Introduction

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Associated Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
Explanation of Symbols and Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
Assistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5
1-2 Introduction
601626-B

Overview

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 1 Introduction - Notes on the use of the
Chapter 2 DAS ACI - Overview of the DAS/2
Chapter 3 Safety - Describes the hazard symbols,
Chapter 4 DAS ACI Functions - Information and
Chapter 5 ACI 3.0 Asynchronous Support Layer -
Appendix A Important 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
Overview 1-3

Associated Documents

You may wish to reference the following documents:
601324-A DAS V3.1 Release Guide
601625-A DAS 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.
Italic Headline, e.g., Chapter 3, Safety
File name, e.g., dasdata.ini
Bold Terms appearing on the operating panel
Special Term, e.g., Utilities Commands with or without parameters, e.g., INITIALIZE
1-4 Introduction
Courier Command 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.
United States 1-800-827-3822
Europe and Africa 00-800-9999-3822
21 Dec 2001
Assistance 1-5
1-6 Introduction
601626-B
2

DAS ACI

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
DAS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
ACI Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
Client Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
ACI Routines - Basic Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
ACI Routines - Complete Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5
Media Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
DAS Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
2-2 DAS ACI
601626-B

Overview

DAS/2

2-
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-1 Logical Relationship Between AML Components
MVS
LU 6.2
21 Dec 2001
Overview 2-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-4 DAS 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-1 Routines Available with Basic Service Access
Routine Explanation
aci_dismount Dismount media from the drive.
aci_init Initialize the AML for client use.
aci_initialize Initialize ACI library for client use.
aci_mount Mount 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-2 Routines Available with Complete Service Access
Routine Explanation
aci_barcode Switching ON and Off Barcode Reading
aci_cancel Cancel outstanding request.
aci_dismount Dismount media from drive.
aci_cleandrive Clean a drive (immediately)
aci_clientaccess Change client access list.
aci_clientstatus Query client access list.
aci_driveaccess Change client drive status.
aci_drivestatus Query client drive status
(for compatibility only).
aci_drivestatus2 Query client drive status with
additional information.
aci_drivestatus3 Query physical drive status.
aci_eject Eject media from AML
(for compatibility only).
21 Dec 2001
ACI Services 2-5
Table 2-2 Routines Available with Complete Service Access
Routine Explanation
aci_eject2 Eject media from AML, and keep
database entry for future insert requests.
aci_ejectclean Eject clean media from AML, and
remove database entry.
aci_eject2_complete Eject media from AML, and remove
database entry.
aci_flip Turn Optical Disk on in the drive.
aci_force Force a dismount request from a
specified drive.
aci_foreign Add or delete foreign media.
aci_getvolsertodrive Get the volsers, which are allowed to be
mounted to a specified drive. (Volsers are configured in the DAS config file)
aci_getvolsertoside Get the second volser of the Optical
Disk (OD has two volser).
aci_init Initialize AML for client use.
aci_initialize Initialize ACI library for client use.
aci_insert Insert media into AML.
aci_insert2 Insert media into AML (also for clean-
and scratch media).
aci_inventory Start physical inventory with AMU
database update.
aci_list List outstanding and currently
operating DAS requests.
aci_mount Mount selected media in drive.
aci_partial_inventory Start a physical inventory of subsystem
in the AML
aci_qversion Query version of DAS and ACI.
aci_qvolsrange List client accessible and physically
present volsers within requested range.
aci_register Temporarily allow client access to DAS.
2-6 DAS ACI
601626-B
Table 2-2 Routines Available with Complete Service Access
Routine Explanation
aci_robhome Set the AML-System to offline and
move the robot to home position.
aci_robstat Get Information about the AML-status
and set the AML to on-line.
aci_scratch_get Mount a scratch volume.
aci_scratch_info Query scratch volume information.
aci_scratch_set Add volume to scratch pool.
aci_scratch_unset Remove volume from scratch pool.
aci_killamu Shutdown AMU complete with OS/2.
aci_shutdown Shut down DAS.
aci_switch Switch between active and inactive
AMU (DAS and AMS).
aci_unload On an AML drive pressed one or more
drive buttons (e.g. unload button).
aci_view Query volume database entry.
aci_volseraccess Set ownership of volser.
aci_volserstatus Query 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-3 Supported Media Types
ACI Media Name Media Type
ACI_3480 3480/3490 cartridges
ACI_3590 3590/8590 cartridges (NTP)
ACI_4MM DDS or DAT (4mm tape)
21 Dec 2001
ACI Services 2-7
Table 2-3 Supported Media Types
ACI Media Name Media Type
ACI_8MM DDS 8mm tape (e.g. EXABYTE)
ACI_AUDIO_TAPE standard audio tape cartridges
ACI_BETACAM SONY BetaCAM cartridge
ACI_BETACAML large BetaCAM cartridge
ACI_CD CD-ROM (with CADDY)
ACI_D2 D2 (small and medium) tape cartridge
ACI_DECDLT DLT (CompacTape) cartridge
ACI_DTF SONY DTF cartridge
ACI_OD_THIN Reflection optical disks
ACI_OD_THICK 512 MO/WORM optical disks
ACI_TRAVAN TRAVAN cartridge
ACI_VHS VHS cartridge
ACI_SONY_AIT Sony AIT
ACI_LTO LTO
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.
2-8 DAS ACI
601626-B
3

Safety

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3
Hazard Alert Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3
Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
3-2 Safety
601626-B

Overview

3-
Note
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-1 Hazard Alert Message
Symbol Damage to ... Signal Word Definition Consequence
Persons
DANGER Imminent hazardous
situation
WARNING Potential hazardous
situation
Death or serious injury
Possible death or serious injury
CAUTION Less 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
Overview 3-3
Table 3-1 Hazard Alert Message
Symbol Damage to ... Signal Word Definition Consequence
Caution
Material
Static
Potential electronic damaging situation
Possible damage to the product
Sensitive
Tips for operators No 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-4 Safety
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.
21 Dec 2001
Validity 3-5
3-6 Safety
601626-B
4
DAS ACI
Functions
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5
aci_barcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-6
aci_cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-7
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8
aci_cleandrive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9
aci_clientaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-12
aci_clientstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-15
aci_dismount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-16
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-17
aci_driveaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-20
aci_drivestatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-21
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-22
aci_drivestatus2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-22
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-25
aci_drivestatus3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-26
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-29
aci_drivestatus4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-29
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-31
aci_drivestatus_one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-32
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-33
aci_drivestatus2_one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-34
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-35
aci_drivestatus3_one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-36
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-37
aci_eif_conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-38
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-39
aci_eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-40
aci_eject2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-43
aci_eject3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-47
aci_eject_ complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-49
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-50
aci_eject2_complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-51
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-53
aci_eject3_complete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-54
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-56
aci_ejectclean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-57
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-58
aci_email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-60
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-61
aci_flip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-61
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-62
aci_force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-64
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-64
aci_foreign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-66
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-67
aci_getvolsertodrive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-68
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-69
aci_getVolserToSide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-70
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-71
aci_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-72
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-73
aci_initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74
aci_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-75
4-2 DAS ACI Functions
601626-B
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-76
aci_insert2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-77
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-79
aci_inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-81
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-81
aci_killamu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-82
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-83
aci_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-84
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-86
aci_list2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-87
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-89
aci_list_foreign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-89
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-90
aci_mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-91
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-91
aci_partial_inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-93
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-95
aci_perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-96
aci_qversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-97
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-97
aci_qvolsrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-98
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-101
aci_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-103
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-104
aci_robhome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-106
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-106
aci_robstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-107
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-108
aci_scratch_get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-109
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-110
aci_scratch_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-111
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-112
aci_scratch_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-114
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-115
aci_scratch_unset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-116
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-117
aci_shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-118
21 Dec 2001
4-3
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-118
aci_snmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-119
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-119
aci_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-120
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-121
aci_unload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-122
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-122
aci_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-123
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-125
aci_volser_inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-126
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-127
aci_volseraccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-128
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-128
aci_volserstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-129
Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-130
4-4 DAS ACI Functions
601626-B

Overview

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-1 aci_barcode Function Call
See Table 4-1 for a description of the parameters for the aci_barcode function call.
Table 4-1 Parameters for the aci_barcode Function Call
Parameter Description
cRobNum defined the number of the robot (only on AML/2
systems with 2 robots)
1 robot 1 (AML/E, AML/J and robot 1 of
AML/2)
2 robot 2 of AML/2
Action new condition for the following mount and eject
commands from this host
OFF barcode on the cartridge will not be checked
ON barcode on the cartridge will be checked on
each command
21 Dec 2001
Overview 4-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-6 DAS 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-2 Example 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-3 aci_cancel Function Call
See Table 4-2 for a description of the parameter for the aci_cancel function call.
Table 4-2 Parameter for the aci_cancel Function Call
Parameter Description
request_id DAS 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_cancel 4-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;
char *pszthis_client = "clientname"; struct req_entry *prequest = NULL;
rc = aci_list( pszthis_client, prequest ); if( !rc )
{
}
Figure 4-4 Example of the aci_cancel Function
4-8 DAS ACI Functions
See Figure 4-4 for an example of the aci_cancel function.
rc = aci_cancel( prequest[0].request_id ); if( rc )
{
aci_perror( "Command failed:" );
}
601626-B

aci_cleandrive

The aci_cleandrive function mounts a cleaning cartridge to a specific drive. See Figure 4-5.
#include "aci.h" int aci_cleandrive( char *drive)
Figure 4-5 aci_cleandrive Function Call
See Table 4-3 for a description of the parameter for the aci_cleandrive function call.
Table 4-3 Parameter for the aci_cleandrive Function Call
Parameter Description
drive name of the drive to be cleaned
Only clean the drives when they need to be cleaned. Unnecessary cleaning damages the drives.

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
ENODRIVE
EDRVOCUPPIED
EPROBVOL
EAMU
EROBOTCOMM
EDASINT
EDEVEMPTY
ENOTAUTH
EBADCLIENT
21 Dec 2001
aci_cleandrive 4-9
ERERTRYL
EINUSE
ECANCELLED
EDASINT
ECLEANING
ETIMEOUT
ESWITCHINPROG
EHICAPINUSE
EBARCODE
EINVALIDDEV
ENOROBOT
EDATABASE
ENOTSUPPHCMD
EAREAEMPTY
ENOPOOL
EPROBDEV
EBARCODE
EAREAFULL
4-10 DAS ACI Functions
601626-B

aci_clientaccess

The aci_clientaccess function modifies the access lists of a client. See Figure 4-6.
#include "aci.h" int aci_clientaccess( char *clientname,
enum aci_command action, char *volser_range, enum aci_media type, char *drive_range )
Figure 4-6 aci_clientaccess Function Call
See Table 4-4 for a description of the parameters for the aci_clientaccess function call.
Table 4-4 Parameters for the aci_clientaccess Function Call
Parameter Description
clientname name of the client which authorization is to be changed
action type of the activity (add or remove access rights)
ACI_ADD add access rights
ACI_DELETE remove 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
type media 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_clientaccess 4-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-12 DAS 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-7 Example of the aci_clientaccess Function
21 Dec 2001
aci_clientaccess 4-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-8 aci_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
4-11.
struct aci_client_entry{
char clientname[ACI_NAME_LEN]; struct in_addr ip_addr; boolean avc; boolean complete_access; boolean dismount; char
volser_range[ACI_MAX_RANGES][ACI_RANGE_LEN];
char drive_range[ACI_RANGE_LEN];
};
Figure 4-9 Returned Configuration Information
4-14 DAS ACI Functions
See Table 4-5 for a description of the parameters for the
aci_clientstatus function call.
601626-B
Table 4-5 Parameters for the aci_clientstatus Function Call
Parameter Description
clientname name of the client which authorization is to be changed
aci_client_entry returned information to the requested client
clientname requested client name
in_addr 32-bit dotted decimal noted Internet
Protocol (IP) address
avc (true or false) Parameter “avoid
volume contention” defined the reaction during a mount of an already mounted cartridge
complete_access (true or false) Parameter authorized
complete or basic command set (Refer to Client Services on page 2-4)
dismount (true or false) Parameter controls the
automatic dismount if a next mount occur to an occupied drive
volser_range for the client configured volser range
drive_range for the client defined drives

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
ENOTAUTH
EUPELSE
EBADCLIENT
ETIMEOUT
ESWITCHINPROG
EDASINT
Refer to Figure 4-10 on page 4-16 for an example of the aci_clientstatus function.
21 Dec 2001
aci_clientstatus 4-15
/* Query some clients access list configuration */ int rc = 0;
char *client = "SomeClient"; struct aci_client_entry client_entry;
rc = aci_clientstatus ( client, &client_entry ); if( rc )
{
aci_perror( "Command failed: " );
}
Figure 4-10 Example of the aci_clientstatus Function

aci_dismount

The aci_dismount function dismounts a volume. See
Figure 4-11.
#include "aci.h" int aci_dismount( char *volser,
enum aci_media type )
Figure 4-11 aci_dismount Function Call
Dismount the volume volser of defined media type from its
drive. The drive is identified by the DAS software.
For additional information, Refer to aci_mount on page 4-91.
Retries can be configured in the config file or in the AMS
configuration.
See Table 4-6 for a description of the parameters for the
aci_dismount function call.
Table 4-6 Parameters for the aci_dismount Function Call
Parameter Description
volser volser that is to be moved from a drive to the original position in
the AML
type media type of the named volser
Refer to Media Types on page 2-7
4-16 DAS 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
ENODRIVE
EPROBVOL
EAMU
EAMUCOMM
EROBOTCOMM
EDASINT
EDEVEMPTY
ENOTAUTH
EBADCLIENT
ENOTMOUNTED
ECANCELED
EDASINT
ENOMATCH
ETIMEOUT
ESWITCHINPROG
EHICAPINUSE
ECOORDINATE
EBARCODE
EINVALIDDEV
ENOROBOT
EDATABASE
ENOTSUPPHCMD
EAREAEMPTY
EPROBDEV
EBARCODE
EAREAFULL
Refer to Figure 4-12 on page 4-18 for an example of the aci_dismount function.
21 Dec 2001
aci_dismount 4-17
/* Dismount volume from drive */ int rc = 0;
enum aci_media type = ACI_3590; char *volser = "AAB001";
if (( rc = aci_dismount( volser, type ) )) {
aci_perror( "Dismount command failed: " ); } else {
printf( "Dismount of %s successful.\n", volser ); }
Figure 4-12 Example 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-13 aci_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-18 DAS ACI Functions
601626-B
Table 4-7 Parameters for the aci_driveaccess Function Call
Parameter Description
clientname client 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.
drive one of the device names defined in the DAS configuration file
for the specific client
status ACI_DRIVE_UP normal reservation of the drive (other
clients can change the reservation back with: ACI_DRIVE_DOWN, if the drive is empty
ACI_DRIVE_DOWN deleted reservation normal (only
possible with an empty drive)
ACI_DRIVE_FUP force drive allocation (also possible, if
the drive is occupied)
ACI_DRIVE_FDOWN force delete drive allocation (also
possible, if the drive is occupied)
ACI_DRIVE_EXUP exclusive reservation of a drive, can
only changed from the client self or the client named DAS-SUPERVISOR
ACI_DRIVE_DOWN deleted 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_driveaccess 4-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.
/* Allocate a drive for client use */ int rc = 0;
char *client = "SomeClient"; char *drive = "Drive1"; enum aci_drive_status status;
status = ACI_DRIVE_UP; if (( rc = aci_driveaccess( client, drive, status ) )) {
aci_perror( "Drive allocation failed: " ); } else {
printf( "Allocation of %s for %s successful\n",
drive, client );
}
Figure 4-14 Example of the aci_driveaccess Function
4-20 DAS ACI Functions
601626-B

aci_drivestatus

The aci_drivestatus function queries status of up to 15 drives. See Figure 4-15.
#include "aci.h" int aci_drivestatus( char *clientname,
struct aci_drive_entry *pstDriveEntry[ACI_MAX_DRIVE_ENTRIES])
Figure 4-15 aci_drivestatus Function Call
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.
struct aci_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 clientname[ACI_NAME_LEN]; char volser [ACI_VOLSER_LEN]; bool_t cleaning; short clean_count;
};
Figure 4-16 Returned Status
For an explanation of the aci_drive_entry function, refer to aci_drivestatus on page 4-21
The maximum number of drives displayed is 15.
21 Dec 2001
aci_drivestatus 4-21

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

aci_drivestatus2

The aci_drivestatus2 function queries status of up to 250 drives. See Figure 4-17.
#include "aci.h" int aci_drivestatus2( char *clientname,
struct aci_drive_entry *pstDriveEntry[ACI_MAX_DRIVE_ENTRIES2])
Figure 4-17 aci_drivestatus2 Function Call
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.
4-22 DAS ACI Functions
601626-B
struct aci_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 clientname[ACI_NAME_LEN]; char volser [ACI_VOLSER_LEN]; bool_t cleaning; short clean_count;
};
Figure 4-18 Returned Status
See Table 4-8 for a description of the parameters for the aci_drivestatus2 function call.
Table 4-8 Parameters for the aci_drivestatus2 Function Call
Parameter Description
clientname name 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_drivestatus2 4-23
Table 4-8 Parameters for the aci_drivestatus2 Function Call
Parameter Description
aci_drive_entry returned information about the status of the drives
drive_name name of the drive (name used in
DAS and AMS description)
amu_drive_name internal AMS drive name e.g. 03
or ZZ
drive_state UP or DOWN reservation of the
drive Refer to aci_driveaccess on page 4-18
type type of the drive (internal AMS
code, e.g. E for DLT drive) (See the AMU Reference Guide)
system_id empty, reserved for further use
clientname name of the client that the drive is
presently allocated to
volser Volser, if the drive is currently
occupied
cleaning true if the drive is presently
occupied with a medium for cleaning
clean_count number of mounts until the next
clean activity
The maximum number of drives displayed is 250.
4-24 DAS 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_drivestatus2 4-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 ) )) {
aci_perror( "listd failed" ); } else {
printf("Drive status request for client:
%s successful\n",client );
for (i = 0; i < ACI_MAX_DRIVE_ENTRIES2; i++)
{
if ( *drive_entry[i]->drive_name == '\0' )
break;
printf( "drive:%s amu drive:%s st:%s type:%c"
"sysid:%s client:%s volser:%s cleaning:%d" "clean_count: %d\n", drive_entry[i]->drive_name, drive_entry[i]->amu_drive_name, drive_entry[i]->drive_state ==
ACI_DRIVE_UP ? "UP" : "DOWN", drive_entry[i]->type, drive_entry[i]->system_id, drive_entry[i]->clientname, drive_entry[i]->volser, drive_entry[i]->cleaning, drive_entry[i]->clean_count );
}
}
Figure 4-19 Example of the aci_drivestatus2 Function

aci_drivestatus3

4-26 DAS ACI Functions
The aci_drivestatus3 function queries the physical status of up to 250 drives. See Figure 4-20.
601626-B
#include "aci.h" init aci_drivestatus3 ( char *clientname,
struct aci_ext_drive_entry *pstDriveEntry[])
Figure 4-20 aci_drivestatus3 Function Call
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-21 Returned Status
See Table 4-9 for an explanation of the parameters used for the aci_drivestatus3 function.
Table 4-9 Parameters for the aci_drivestatus3 Function Call
Parameter Description
clientname name 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_drivestatus3 4-27
Table 4-9 Parameters for the aci_drivestatus3 Function Call
Parameter Description
aci_drive_entry returned information about the status of the drives
drive_name name of the drive (name used in
DAS and AMS description)
amu_drive_name internal AMS drive name e.g. 03
or ZZ
drive_state UP or DOWN reservation of the
drive Refer to aci_driveaccess on page 4-18
type type of the drive (internal AMS
code, e.g. E for DLT drive) (See the AMU Reference Guide)
system_id empty, reserved for further use
clientname name of the client that the drive is
presently allocated to
volser Volser, 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)
cleaning true if the drive is presently
occupied with a medium for cleaning
clean_count number of mounts until the next
clean activity
4-28 DAS 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.
#include "aci.h" init aci_drivestatus4 ( char *clientname,
char *drive struct
aci_ext_drive_entry4 *pstDriveEntry[ACI_MAX_DRIV_ENTRIES4
])
Figure 4-22 aci_drivestatus4 Function Call
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_drivestatus4 4-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-23 Returned 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-10 Parameters for the aci_drivestatus4 Function Call
Parameter Description
clientname name 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.
drive value associated with a single drive
aci_drive_entry returned information about the status of the drives
drive_name name of the drive (name used in
DAS and AMS description)
amu_drive_name internal AMS drive name e.g. 03
or ZZ
4-30 DAS ACI Functions
601626-B
Table 4-10 Parameters for the aci_drivestatus4 Function Call
Parameter Description
drive_state UP or DOWN reservation of the
drive Refer to aci_driveaccess on page 4-18
type type of the drive (internal AMS
code, e.g. E for DLT drive) (See the AMU Reference Guide)
system_id empty, reserved for further use
clientname name of the client that the drive is
presently allocated to
volser Volser, if the drive is currently
occupied
cleaning true if the drive is presently
occupied with a medium for cleaning
clean_count number of mounts until the next
clean activity
mount • drive logically occupied but the
keep • drive logically empty but the
serial_number the 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_drivestatus4 4-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.
#include "aci.h" init aci_drivestatus_one ( char *clientname,
char *drive struct
Figure 4-24 aci_drivestatus_one Function Call
aci_drive_entry *pstDriveEntry[ACI_MAX_DRIVE_ENTRIES]
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-25 Returned Status
4-32 DAS ACI Functions
The value of ACI_MAX_DRIVES_ENTRIES is equal to 15.
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 char volser[ACI_VOLSER_LEN]; bool_t cleaning short clean_count
601626-B
See Table 4-11 for an explanation of the parameters used for the aci_drivestatus_one function.
Table 4-11 Parameters for the aci_drivestatus_one Function Call
Parameter Description
clientname name of the client that requested the status of the
drives. If clientname is the NULL string, return status on all drives.
aci_drive_entry returned information about the status of the drives
drive_name name of the drive (name used in
DAS and AMS description)
amu_drive_name internal AMS drive name e.g. 03
or ZZ
drive_state UP or DOWN reservation of the
drive Refer to aci_driveaccess on page 4-18
type type of the drive (internal AMS
code, e.g. E for DLT drive) (See the AMU Reference Guide)
system_id empty, reserved for further use
clientname name of the client that the drive is
volser Volser, if the drive is currently
cleaning true if the drive is presently
clean_count number 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_drivestatus_one 4-33
•ERPC
EINVALID
ETIMEOUT
ESWITCHINPROGRESS
EBADCLIENT
ENOTSUPPHCMD

aci_drivestatus2_one

The aci_drivestatus2_one function queries the physical status of up to 250 drives. See Figure 4-26.
#include "aci.h" init aci_drivestatus2_one ( char *clientname,
char *drive struct
Figure 4-26 aci_drivestatus_2_one Function Call
aci_drive_entry *pstDriveEntry[ACI_MAX_DRIVE_ENTRIES2]
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-27 Returned Status
4-34 DAS ACI Functions
The value of ACI_MAX_DRIVES_ENTRIES2 is equal to 250.
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 char volser[ACI_VOLSER_LEN]; bool_t cleaning short clean_count
601626-B
See Table 4-12 for an explanation of the parameters used for the aci_drivestatus2_one function.
Table 4-12 Parameters for the aci_drivestatus2_one Function Call
Parameter Description
clientname name of the client that requested the status of the
drives. If clientname is the NULL string, return status on all drives.
aci_drive_entry returned information about the status of the drives
drive_name name of the drive (name used in
DAS and AMS description)
amu_drive_name internal AMS drive name e.g. 03
or ZZ
drive_state UP or DOWN reservation of the
drive Refer to aci_driveaccess on page 4-18
type type of the drive (internal AMS
code, e.g. E for DLT drive) (See the AMU Reference Guide)
system_id empty, reserved for further use
clientname name of the client that the drive is
volser Volser, if the drive is currently
cleaning true if the drive is presently
clean_count number 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_drivestatus2_one 4-35
•ERPC
EINVALID
ETIMEOUT
ESWITCHINPROGRESS
EBADCLIENT
ENOTSUPPHCMD

aci_drivestatus3_one

The aci_drivestatus3_one function queries the physical status of up to 250 drives. See Figure 4-28.
#include "aci.h" init aci_drivestatus3_one ( char *clientname,
char *drive struct
Figure 4-28 aci_drivestatus_3_one Function Call
aci_drive_entry *pstDriveEntry[ACI_MAX_DRIVE_ENTRIES2]
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-29 Returned Status
4-36 DAS ACI Functions
The value of ACI_MAX_DRIVES_ENTRIES2 is equal to 250.
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 char volser[ACI_VOLSER_LEN]; bool_t cleaning short clean_count
601626-B
See Table 4-13 for an explanation of the parameters used for the aci_drivestatus3_one function.
Table 4-13 Parameters for the aci_drivestatus3_one Function Call
Parameter Description
clientname name of the client that requested the status of the
drives. If clientname is the NULL string, return status on all drives.
aci_drive_entry returned information about the status of the drives
drive_name name of the drive (name used in
DAS and AMS description)
amu_drive_name internal AMS drive name e.g. 03
or ZZ
drive_state UP or DOWN reservation of the
drive Refer to aci_driveaccess on page 4-18
type type of the drive (internal AMS
code, e.g. E for DLT drive) (See the AMU Reference Guide)
system_id empty, reserved for further use
clientname name of the client that the drive is
volser Volser, if the drive is currently
cleaning true if the drive is presently
clean_count number 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_one 4-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-30 aci_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.
struct aci_lora {
};
Figure 4-31 Returned Status
4-38 DAS ACI Functions
char lora_name[ACI_AREANAME_LEN]; char StartCoord[ACI_COORD_LEN]; char EndCoord[ACI_COORD_LEN]; char ctype char description[ACI_DESCRIPTION_LEN];
For the parameters of the aci_lora structure, refer to Table 4-14 on page 4-39.
601626-B
Table 4-14 Parameters for the aci_eif_conf Function Call
Parameter Description
aci_lorta structure used to describe the import/export area and addressing
lora_name the name of the import/export area
StartCoord the starting coordinates of the area
EndCoord the ending coordinates of the area
ctype the cartridge type associated with the area
description a description of the import.export area
nCount the 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-32 aci_eject Function Call
21 Dec 2001
aci_eject 4-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-15 Parameters for the aci_eject Function Call
Parameter Description
clientname 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.
eject_area Logical 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
types media 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-40 DAS 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.
int rc = 0; rc = aci_eject( "E01", "AAB001", ACI_3590 );
if( rc ) {
aci_perror( "Command failed: " ); } else {
printf( "Volser AAB001 ejected to E01 \n" ); }
Figure 4-33 Example of the aci_eject Function
21 Dec 2001
aci_eject 4-41

aci_eject2

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-34 aci_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-35 Structure 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-16 Parameters for the aci_eject2 Function Call
Parameter Description
eject_area logical 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
type media type of the named volser range
Refer to Media Types on page 2-7
pnActualCount returned number of ejected volsers
4-42 DAS ACI Functions
601626-B
Table 4-16 Parameters for the aci_eject2 Function Call
Parameter Description
aci_ei_info returned information on each volser ejected
volser volser of the ejected volume
type media type of the named volser
Refer to Media Types on page 2-7
errcodes error 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_eject2 4-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-44 DAS ACI Functions
601626-B
/* Eject volume but reserve archive location */ int rc, i, pnActualCount;
char *volser_range = "000815 - 004711"; char *eject_area = "E02" struct aci_ei_info ei_info[ACI_EI_MAX_RANGE];
rc = aci_eject2( eject_area, volser_range, ACI_3590 &pnActualCount, &ei_info ); if( rc ) {
aci_perror( "Command failed: " ); } else {
printf("Volume ejects request successful\n" ); for (i = 0; i < ACI_EI_MAX_RANGE; i++)
{
if ( *ei_info[i]->volser == '\0' )
break;
printf( "volser:%s media type:%s Error:%d\n",
ei_info[i]->volser, ei_info[i]->media_type, ei_info[i]->errcode );
}
Figure 4-36 Example of the aci_eject2 Function
21 Dec 2001
aci_eject2 4-45

aci_eject3

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-37 aci_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-38 Structure of the aci_ei_info function
Table 4-17 Parameters for the aci_eject3 Function Call
Parameter Description
eject_area logical area defined in the AMS, where the cartridges should be
volser_range • a single volser
type media type of the named volser range
4-46 DAS 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-17 Parameters for the aci_eject3 Function Call
Parameter Description
pnActualCount returned number of ejected volsers
aci_ei_info returned information on each volser ejected
volser volser of the ejected volume
type media type of the named volser
Refer to Media Types on page 2-7
errcodes error 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_eject3 4-47
ENOAREA
ENOTAUTH
EBADCLIENT
ERETRYL
EINUSE
ECANCELED
ENOMATCH
ETIMEOUT
ESWITCHINPROG
EHICAPINUSE
ECOORDINATE
EBARCODE
EINVALIDDEV
ENOROBOT
EDATABASE
ENOTSUPPHCMD
EAREAEMPTY
EBARCODE
EAREAFULL
4-48 DAS 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-39 aci_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-18 Parameters for the aci_eject_complete Function Call
Parameter Description
eject_area Logical 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
types media 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_ complete 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
ENOTAUTH
EBADCLIENT
ERETRYL
EINUSE
ECANCELED
EDASINT
ENOMATCH
ETIMEOUT
ESWITCHINPROG
EHICAPINUSE
ECOORDINATE
EBARCODE
EINVALIDDEV
ENOROBOT
EDATABASE
ENOTSUPPHCMD
EAREAEMPTY
EBARCODE
EAREAFULL
4-50 DAS 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-40 Example 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-41 aci_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-42 Structure of the aci_ei_info function
21 Dec 2001
aci_eject2_complete 4-51
See Table 4-19 for a description of the parameters for the aci_eject2_complete function call.
Table 4-19 Parameters for the aci_eject2_complete Function Call
Parameter Description
eject_area logical 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
type media type of the named volser range
Refer to Media Types on page 2-7
pnActualCount returned number of ejected volsers
aci_ei_info returned information to each ejected volser
volser volser of the ejected volume
type media type of the named volser
Refer to Media Types on page 2-7
errcode Error 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-52 DAS 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_complete 4-53
/* Eject volume complete from AML system*/ int rc, i, pnActualCount;
char *volser_range = "000815 - 004711"; char *eject_area = "E02" struct aci_ei_info ei_info[ACI_EI_MAX_RANGE] ;
rc = aci_eject2_complete( eject_area, volser_range,
ACI_3590, & pActualCount, &ei_info ); if( rec ) {
aci_perror( "Command failed: " ); } else {
printf("Volume ejects request successful\n" ); for (i = 0; i < ACI_EI_MAX_RANGE; i++)
{
if ( *ei_info[i]->volser == '\0' )
break;
printf( "volser:%s media type:%s Error:%d\n",
ei_info[i]->volser, ei_info[i]->media_type, ei_info[i]->errcode );
} }
Figure 4-43 Example of the aci_eject2_complete Function

aci_eject3_complete

#include "aci.h" int aci_eject3_complete( char *eject_area,
Figure 4-44 aci_eject3_complete Function Call
4-54 DAS 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-45 Structure 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-20 Parameters for the aci_eject3_complete Function Call
Parameter Description
eject_area logical 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
type media type of the named volser range
Refer to Media Types on page 2-7
pnActualCount returned number of ejected volsers
aci_ei_info returned information to each ejected volser
volser volser of the ejected volume
type media type of the named volser
Refer to Media Types on page 2-7
errcode Error 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_complete 4-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-56 DAS 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-46 aci_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-47 Structure 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-21 Parameters for the aci_ejectclean Function Call
Parameter Description
areaname Logical area defined in AMS, where the cartridges
should be ejected, e.g. E01
Cleanpoolname Name of the group of cleaning cartridges, e.g. CLP01,
defined in the AML configuration
pnActualCount returned number of ejected volsers
21 Dec 2001
aci_ejectclean 4-57
Table 4-21 Parameters for the aci_ejectclean Function Call
Parameter Description
aci_ei_info returned information to each ejected volser
volser volser of the ejected volume
type media type of the named volser
Refer to Media Types on page 2-7
errcode error 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-58 DAS ACI Functions
601626-B
Loading...