When a CLI commands fails, a failure specific error status is returned. The value of this status can be interrogated in a DCL command procedure. Most of the possible errors are the result of failures in the MRU Application Programming Interface. A few errors are unique to the ROBOT command.
1 – CLI Specific Errors
1.1 – MRD_STATUS_CLI_COMMAND
Status Code %X07608282 Used when an unrecognized command is given on the command line. For example, there is no 'FRED' command. $ ROBOT FRED ROBOT $1$DUA704
1.2 – MRD_STATUS_CLI_PARAMETER
Status Code %X0760828A Used when an unrecognized parameter is given on the command line. For example, 'VAULT' has no relevance in this command: $ ROBOT SHOW ROBOT $1$DUA704 VAULT
1.3 – MRD_STATUS_CLI_BAD_ARG
Status Code %X07608292 Used for various errors where the argument to a parameter is wrong; a range where none is allowed, invalid element addresses, and similar errors. For example, 'RINGO' is a bad parameter for a slot spec- ification and the load command does not work with a range of slots or drives: $ ROBOT SHOW SLOT 7-RINGO $ ROBOT LOAD SLOT 3-4 DRIVE 1-2
1.4 – MRD_STATUS_CLI_NO_ROBOT
Status Code %X0760829A Used when the command does not include a robot name, and the default robot name is not known.
1.5 – MRD_STATUS_CLI_EXPECTS_PARAM
Status Code %X076082A2 Used when a command expects some parameter, and none was given. For example, this show command doesn't specify anything to show: $ ROBOT SHOW
1.6 – MRD_STATUS_CLI_EXPECTS_ARG
Status Code: %X076082AA Used when a command parameter expects some argument. For example, this show slot command does not specify which slot, or slots, to show: $ ROBOT SHOW SLOT
1.7 – MRD_STATUS_CLI_MANY
Status Code: %X076082B2 Used when a parameter accepts a default, but there are multiple elements that apply. The robot LOAD command allows a default drive, if there is only one drive in the robot. However, if there are two or more drives in the robot, you get this error. For example with a TL810, a robot with four drives, the following command fails with this error status: $ ROBOT LOAD SLOT 15 This error code is also used when multiple parameters are given and fewer are allowed: $ ROBOT POSITION SLOT 5 DRIVE 7
2 – Mapping CLI to MRD Errors
The ROBOT$_ codes translate to the listed values and the MRD_STATUS codes. The MRD_STATUS codes are documented with the MRD API calls from which they can be reported. Use HELP ROBOT MRD to find help for the calls. ROBOT$_FACILITY 1888 MRD_STATUS_FACILITY ROBOT$_INVALID %X0760800A MRD_STATUS_INVALID ROBOT$_SUCCESS %X07608011 MRD_STATUS_SUCCESS ROBOT$_NO_SENSE %X0760801A MRD_STATUS_NO_SENSE ROBOT$_RECOVERED_ERROR %X07608022 MRD_STATUS_RECOVERED_ERROR ROBOT$_ROBOT_NOT_READY %X0760802A MRD_STATUS_ROBOT_NOT_READY ROBOT$_MEDIUM_ERROR %X07608032 MRD_STATUS_MEDIUM_ERROR ROBOT$_ROBOT_HW_ERROR %X0760803A MRD_STATUS_ROBOT_HW_ERROR ROBOT$_ROBOT_ILLEGAL_REQUEST %X07608042 MRD_STATUS_ROBOT_ILLEGAL_REQUEST ROBOT$_ROBOT_ATTENTION %X0760804A MRD_STATUS_ROBOT_ATTENTION ROBOT$_DATA_PROTECT %X07608052 MRD_STATUS_DATA_PROTECT ROBOT$_BLANK_CHECK %X0760805A MRD_STATUS_BLANK_CHECK ROBOT$_VENDOR_UNIQUE_ERROR %X07608062 MRD_STATUS_VENDOR_UNIQUE_ERROR ROBOT$_COPY_ABORTED %X0760806A MRD_STATUS_COPY_ABORTED ROBOT$_SENSE_EQUAL %X07608072 MRD_STATUS_SENSE_EQUAL ROBOT$_ROBOT_CMD_ABORTED %X0760807A MRD_STATUS_ROBOT_CMD_ABORTED ROBOT$_VOLUME_OVERFLOW %X07608082 MRD_STATUS_VOLUME_OVERFLOW ROBOT$_MISCOMPARE %X0760808A MRD_STATUS_MISCOMPARE ROBOT$_SENSE_RESERVED %X07608092 MRD_STATUS_SENSE_RESERVED ROBOT$_ROBOT_COMM_ERROR %X0760809A MRD_STATUS_ROBOT_COMM_ERROR ROBOT$_ROBOT_MECH_ERROR %X076080A2 MRD_STATUS_ROBOT_MECH_ERROR ROBOT$_ROBOT_DOOR_OPENED %X076080AA MRD_STATUS_ROBOT_DOOR_OPENED ROBOT$_STARTUP_ERROR %X076080B2 MRD_STATUS_STARTUP_ERROR ROBOT$_CANCEL %X076080BA MRD_STATUS_CANCEL ROBOT$_CMD_NOT_SUPPORTED %X076080C2 MRD_STATUS_CMD_NOT_SUPPORTED ROBOT$_SOURCE_EMPTY %X076080CA MRD_STATUS_SOURCE_EMPTY ROBOT$_DESTINATION_FULL %X076080D2 MRD_STATUS_DESTINATION_FULL ROBOT$_CART_INVALID %X076080DA MRD_STATUS_CART_INVALID ROBOT$_CART_DAMAGED %X076080E2 MRD_STATUS_CART_DAMAGED ROBOT$_CART_NOT_AVAIL %X076080EA MRD_STATUS_CART_NOT_AVAIL ROBOT$_CART_ALRDY_LOADED %X076080F2 MRD_STATUS_CART_ALRDY_LOADED ROBOT$_CART_SIDE_INVALID %X076080FA MRD_STATUS_CART_SIDE_INVALID ROBOT$_DEVICE_INVALID %X07608102 MRD_STATUS_DEVICE_INVALID ROBOT$_DEVICE_DAMAGED %X0760810A MRD_STATUS_DEVICE_DAMAGED ROBOT$_DEVICE_FULL %X07608112 MRD_STATUS_DEVICE_FULL ROBOT$_DEVICE_EMPTY %X0760811A MRD_STATUS_DEVICE_EMPTY ROBOT$_VOLUME_VALID %X07608122 MRD_STATUS_VOLUME_VALID ROBOT$_VOLUME_MOUNTED %X0760812A MRD_STATUS_VOLUME_MOUNTED ROBOT$_ELEMENT_INVALID %X07608132 MRD_STATUS_ELEMENT_INVALID ROBOT$_INVALID_TYPE %X0760813A MRD_STATUS_INVALID_TYPE ROBOT$_SLOT_INVALID %X07608142 MRD_STATUS_SLOT_INVALID ROBOT$_PORT_INVALID %X0760814A MRD_STATUS_PORT_INVALID ROBOT$_CELL_INVALID %X07608152 MRD_STATUS_CELL_INVALID ROBOT$_PORT_FULL %X0760815A MRD_STATUS_PORT_FULL ROBOT$_PORT_EMPTY %X07608162 MRD_STATUS_PORT_EMPTY ROBOT$_CELL_FULL %X0760816A MRD_STATUS_CELL_FULL ROBOT$_CELL_EMPTY %X07608172 MRD_STATUS_CELL_EMPTY ROBOT$_SLOT_FULL %X0760817A MRD_STATUS_SLOT_FULL ROBOT$_SLOT_EMPTY %X07608182 MRD_STATUS_SLOT_EMPTY ROBOT$_AUTOCLEAN %X0760818A MRD_STATUS_AUTOCLEAN ROBOT$_RES_FAILED %X07608192 MRD_STATUS_RES_FAILED ROBOT$_INSFMEM %X0760819A MRD_STATUS_INSFMEM ROBOT$_NO_ELEMENTS %X076081A2 MRD_STATUS_NO_ELEMENTS ROBOT$_ACCVIO %X076081AA MRD_STATUS_ACCVIO ROBOT$_DEVOFFLINE %X076081B2 MRD_STATUS_DEVOFFLINE ROBOT$_EXQUOTA %X076081BA MRD_STATUS_EXQUOTA ROBOT$_ILLEFC %X076081C2 MRD_STATUS_ILLEFC ROBOT$_IVCHAN %X076081CA MRD_STATUS_IVCHAN ROBOT$_NOPRIV %X076081D2 MRD_STATUS_NOPRIV ROBOT$_UNASEFC %X076081DA MRD_STATUS_UNASEFC ROBOT$_MOUNTED %X076081E2 MRD_STATUS_MOUNTED ROBOT$_NO_SUCH_DEVICE %X076081EA MRD_STATUS_NO_SUCH_DEVICE ROBOT$_EBUSY %X076081F2 MRD_STATUS_EBUSY ROBOT$_EINTR %X076081FA MRD_STATUS_EINTR ROBOT$_EIO %X07608202 MRD_STATUS_EIO ROBOT$_ENOENT %X0760820A MRD_STATUS_ENOENT ROBOT$_EACCES %X07608212 MRD_STATUS_EACCES ROBOT$_EINVAL %X0760821A MRD_STATUS_EINVAL ROBOT$_EBADF %X07608222 MRD_STATUS_EBADF ROBOT$_OS_ERROR %X0760822A MRD_STATUS_OS_ERROR ROBOT$_PARAM %X07608232 MRD_STATUS_PARAM ROBOT$_TRANSPORT_INVALID %X0760823A MRD_STATUS_TRANSPORT_INVALID ROBOT$_NO_VISION %X07608242 MRD_STATUS_NO_VISION ROBOT$_RES_INVALID %X0760824A MRD_STATUS_RES_INVALID ROBOT$_SOURCE_INVALID %X07608252 MRD_STATUS_SOURCE_INVALID ROBOT$_PORT_ACCESSED %X0760825A MRD_STATUS_PORT_ACCESSED ROBOT$_CART_NOT_FOUND %X07608262 MRD_STATUS_CART_NOT_FOUND ROBOT$_BAD_DATES %X0760826A MRD_STATUS_BAD_DATES ROBOT$_PAGE_CODE %X07608272 MRD_STATUS_PAGE_CODE ROBOT$_NOT_CHANGER %X0760827A MRD_STATUS_NOT_CHANGER ROBOT$_CLI_COMMAND %X07608282 ROBOT$_CLI_PARAMETER %X0760828A ROBOT$_CLI_BAD_ARG %X07608292 ROBOT$_CLI_NO_ROBOT %X0760829A ROBOT$_CLI_EXPECTS_PARAM %X076082A2 ROBOT$_CLI_EXPECTS_ARG %X076082AA ROBOT$_CLI_MANY %X076082B2 ROBOT$_SCSI_CHECK %X076082BA MRD_STATUS_SCSI_CHECK ROBOT$_SCSI_CONDMET %X076082C2 MRD_STATUS_SCSI_CONDMET ROBOT$_SCSI_BUSY %X076082CA MRD_STATUS_SCSI_BUSY ROBOT$_SCSI_INTER %X076082D2 MRD_STATUS_SCSI_INTER ROBOT$_SCSI_INTER_CONDMET %X076082DA MRD_STATUS_SCSI_INTER_CONDMET ROBOT$_SCSI_RESCON %X076082E2 MRD_STATUS_SCSI_RESCON ROBOT$_SCSI_TERM %X076082EA MRD_STATUS_SCSI_TERM ROBOT$_SCSI_QUEUE %X076082F2 MRD_STATUS_SCSI_QUEUE ROBOT$_SCSI_RESERVED %X076082FA MRD_STATUS_SCSI_RESERVED ROBOT$_INIT_REQUIRED %X07608302 MRD_STATUS_INIT_REQUIRED ROBOT$_DIAG_FAILED %X0760830A MRD_STATUS_DIAG_FAILED ROBOT$_IDE %X07608312 MRD_STATUS_IDE ROBOT$_OPERATOR %X0760831A MRD_STATUS_OPERATOR ROBOT$_LOG_ERROR %X07608322 MRD_STATUS_LOG_ERROR ROBOT$_ELOG_OVERFLOW %X0760832A MRD_STATUS_ELOG_OVERFLOW ROBOT$_SYNC_XFER_ERROR %X07608332 MRD_STATUS_SYNC_XFER_ERROR