![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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 command specified. 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="*" $ txt=F$MESSAGE(p1) $ IF F$LOCATE("NOMSG",txt).LT.F$LENGTH(txt) THEN GOTO DoSearch $ WRITE SYS$OUTPUT "Message found in system messages" $ WRITE SYS$OUTPUT txt $ EXIT $ DoSearch: $ Oldmsg=F$ENVIRONMENT("MESSAGE") $ ON CONTROL_Y THEN GOTO NotFound $ SET MESSAGE/NOFACILITY/NOSEVERITY/NOIDENT/NOTEXT ! Avoid warnings for non $ ! message files $loop: file=F$SEARCH("SYS$MESSAGE:''p2'.EXE") $ IF file.EQS."" THEN GOTO NotFound $ IF p3.NES."" THEN WRITE SYS$OUTPUT "''file'" $ ON WARNING THEN GOTO loop $ SET MESSAGE 'file' $ txt=F$MESSAGE(p1) $ IF F$LOCATE("NOMSG",txt).GE.F$LENGTH(txt) THEN GOTO found $ GOTO loop $ found: $ a=F$SEARCH(F$ENVIRONMENT("PROCEDURE")) ! Cancel search $ WRITE SYS$OUTPUT "Message found in ''file'" $ WRITE SYS$OUTPUT txt $ SET MESSAGE'Oldmsg' $ EXIT $ NotFound: $ WRITE SYS$OUTPUT "Message ''p1' not found" $ SET MESSAGE'Oldmsg' SYS$MESSAGE:SYSMSG $ EXIT
|