HP OpenVMS Systemsask the wizard |
The Question is: We are having problems with some command procedures that are submitted to batch queues. Everything runs ok, but there are errors where the data sent to the program invoked is interpreted again as a DCL command. These are the error lines from the log fil e: %DCL-W-IVVERB, unrecognized command verb - check validity and spelling \3\ %DCL-W-IVVERB, unrecognized command verb - check validity and spelling \TXT\ %DCL-W-ABVERB, ambiguous command verb - supply more characters \END\ %DCL-W-ABVERB, ambiguous command verb - supply more characters \END\ %DCL-W-IVVERB, unrecognized command verb - check validity and spelling \BYE\ KEITH job terminated at 2-AUG-2000 10:16:38.95 Accounting information: Buffered I/O count: 153 Peak working set size: 4960 Direct I/O count: 167 Peak virtual size: 172592 Page faults: 670 Mounted volumes: 0 Charged CPU time: 0 00:00:01.48 Elapsed time: 0 00:00:02.80 This is the command procedure that produced the errors: $! Invoke a command procedure which defines some logicals $ SS GF $! invoke a command procedure which starts a program, followed by data for $! the program $ @SYS$SYSDEVICE:[DOLLARS.COM]STD_RD.COM TXT END END BYE $ EXIT This is STD_RD.COM: $ GOTO SKIP_REV $!****************************************************************************** $! !! PLEASE DO NOT DEFINE SYS$PRINT? OR SYS$QUEUE? IN THIS COM FILE !! $! !! PLEASE DO NOT DEFINE SYS$PRINT? OR SYS$QUEUE? IN THIS COM FILE !! $!****************************************************************************** $! REVISION LOG (newest entries first, please) -- $! $! SJM, 1/26/94 $! Removed DEFINEs of SYS$PRINT? and SYS$QUEUE?. This is now done in $! SYLOGIN, and any re-defines in systems/areas that captive USWFS users access $! will cause trouble. $!****************************************************************************** $ SKIP_REV: $ ! KDK 11/16/99 ************************************************** $ ! Set logicals to point to PRODUCTION $ !**************************************************************** $ DEF_CMD := DEFINE/NOLOG $ DEF_CMD SFFA_FSSCR_DATA 'F$LOG("PPRG") $ DEF_CMD SFFA_FSSAM_PROG 'F$LOG("PPRG") $ DEF_CMD SFFA_FSSDF_DATA 'F$LOG("PPRG") $ DEF_CMD SFFA_FSSAM_DATA 'F$LOG("PDAT") $ DEF_CMD SFFA_FSSAM_COM 'F$LOG("PPRG") $ DEF_CMD FSD$PROGRAMS 'F$LOG("PPRG") $ DEF_CMD FSD$CUSTOM 'F$LOG("PPRG") $ DEF_CMD FSD$DATA 'F$LOG("PDAT") $ DEF_CMD FSD$SCRATCH 'F$LOG("PSCR") $ PROG*RAMS :== SET DEFAULT 'F$LOG("FSD$PROGRAMS") $ DATA :== SET DEFAULT 'F$LOG("FSD$DATA") $ SCR*ATCH :== SET DEFAULT 'F$LOG("FSD$SCRATCH") $ ! END KDK ******************************************************* $ SFFA_RUN_CMD := 'F$ENVIRONMENT("PROCEDURE")' $ JUNK := 'F$PARSE(SFFA_RUN_CMD,,,"VERSION")' $ JUNK = F$LOCATE(JUNK,SFFA_RUN_CMD) $ SFFA_RUN_CMD := $@'F$EXTRACT(0,JUNK,SFFA_RUN_CMD)' $ save_dir = f$environment("default") $ SCR $ define/nolog sys$input sys$command $ on control_y then goto error_handler $ IF F$MODE() .EQS. "INTERACTIVE" THEN set noon $ run fsd$programs:dollars $ if .not. $status then goto error_handler $ set on $ set default 'save_dir' $ exit $ error_handler: $ set on $ run fsd$programs:reset_port $ set default 'save_dir' $ exit We have successfully used these command procedures on VAX/VMS V5.5-2 and OpenVMS Alpha versions prior to v7.2, but we get the errors when we run on v7.2. Thanks for any assistance you can give us. The Answer is : To re-state the problem, the command or utility is clearly not processing the data and thus DCL is finding the data in the command stream and (correctly) reporting an error. DCL command procedures do not normally read data from the command input stream, and also typically do not attempt to alter the DCL command input stream in operation at a different command level. The OpenVMS Wizard would suggest relocating the necessary data for the image into a separate file, or using the PIPE command.
|