The Question is:
OpenVMS Alpha V7.3 Backup exits with $status .eqs. "%X10A38814". There is
nothing written to output (like %BACKUP-F-xxxx, abcdef), even though message
output is not suppressed, nor redirected. F$message() does not translate the
error code other than %BACK
UP-F-NOMSG, Message number 10A38814. As nothing is actually written to tape
when this happens, I have no clue where to search the error. Is there any
translation of this error code?
The Answer is :
While not all messages are immediately accessible from DCL, the
SET MESSAGE command can be used to translate any message with a
message file, and the attached procedure permits you to easily
find and read messages from these message files.
In this case, BACKUP messages are located in the SYSMGTMSG.EXE
message file, and direct access is available as follows:
$ SET MESSAGE SYS$MESSAGE:SYSMGTMSG
$ EXIT %X0A38814
%BACKUP-F-NOAPIARGS, callable interface required parameter not
specified or invalid
This particular message is a peculiar status to receive from a BACKUP
utility command that was invoked from DCL. Please contact your local
Customer Support Centre, and expect to be asked for the exact BACKUP
Note that one possibility for not getting any message from a failed
BACKUP command is insufficient process quotas, or process quotas set
to incorrect proportions. Please check that your quotas are set
appropriately for BACKUP. Details on properly setting process quotas
are are included in the OpenVMS System Managers' Essentials Manual.
Here is a DCL command procedure for translating status codes:
$! Searches system message files for a match with a status code
$! format: @MSGTXT code [filespec] [log]
$! code is assumed to be hexidecimal
$! filespec is the file name(s) to be searched in SYS$MESSAGE (default=*)
$! log will list files being searched if non null
$ IF p1.EQS."" THEN INQUIRE p1 "Message ID"
$ IF F$LOCATE("%X",p1).GE.F$LENGTH(p1) THEN p1="%X"+p1
$ IF p2.EQS."" THEN p2="*"
$ IF F$LOCATE("NOMSG",txt).LT.F$LENGTH(txt) THEN GOTO DoSearch
$ WRITE SYS$OUTPUT "Message found in system messages"
$ WRITE SYS$OUTPUT txt
$ ON CONTROL_Y THEN GOTO NotFound
$ SET MESSAGE/NOFACILITY/NOSEVERITY/NOIDENT/NOTEXT ! Avoid warnings for non
$ ! message files
$ IF file.EQS."" THEN GOTO NotFound
$ IF p3.NES."" THEN WRITE SYS$OUTPUT "''file'"
$ ON WARNING THEN GOTO loop
$ SET MESSAGE 'file'
$ IF F$LOCATE("NOMSG",txt).GE.F$LENGTH(txt) THEN GOTO found
$ GOTO loop
$ a=F$SEARCH(F$ENVIRONMENT("PROCEDURE")) ! Cancel search
$ WRITE SYS$OUTPUT "Message found in ''file'"
$ WRITE SYS$OUTPUT txt
$ SET MESSAGE'Oldmsg'
$ WRITE SYS$OUTPUT "Message ''p1' not found"
$ SET MESSAGE'Oldmsg' SYS$MESSAGE:SYSMSG