Analysis by John Burke
Ooops! An update on MPE/iX 5.5 and TurboSTORE
In the February net.digest, I noted that we magically obtained the full TurboSTORE/iX product (TurboSTORE/iX 7x24 True Online, P/N B5152AA) when we updated to MPE/iX 5.5. We do not own a license for any version of TurboSTORE/iX. Rumor was that others were also blessed in a like manner.
It did not seem to be a normal demo program, since there was no announcement either in the Communicator or in the program banner. And my copy had been installed for over 90 days.
The March issue of the HP 3000 Advisor contains a brief explanation of the situation. For a more thorough explanation, see www.hp.com/go/3000servers, us support.hp.com or the Express 2 Communicator when available. [Note: the Express 2 release of MPE/iX 5.5 is scheduled for April or May availability.]
The gist is HP goofed. The version of TurboSTORE shipped with MPE/iX 5.5 is a demo which will expire on July 15, 1997. Furthermore, "Users of TurboSTORE/iX II or TurboSTORE/iX 7x24 will need to install the SUBSYS or the appropriate XL from the MPE/iX 5.5 Express 2 (C.55.02) SUBSYS tape prior to July 15, 1997. ... Failure to install either the SUBSYS or the appropriate XL will remove TurboSTORE/iX II or TurboSTORE/iX 7x24 from your system, leaving you with FOS STORE functionality."
Read the above carefully if you own a license for TurboSTORE/iX II or TurboSTORE/iX 7x24 and are currently on MPE/iX 5.5. It seems to say that you MUST install Express 2 by July 15 or risk serious disruption to your production environment.
CI commands 102
This is an edited collection of postings from HP's Jeff Vance that were prompted by the following questions:
Q1: From the documentation for the CI ESCAPE command: ":ESCAPE allows you to propagate error codes up to the next :CONTINUE 'marker'". What does this mean?
Q2: Our group uses some command files peppered with :CONTINUEs. I searched the LaserROM in vain for information on how to use HPAUTOCONT & HPCONTINUE instead. What is the difference between the two?
Q3: Is there a way to suppress the display of "the road not taken" messages in IF .... THEN ... ELSE ... ENDIF dialogs? They make interpreting STDLISTs very difficult. I've gotten all sorts of calls (usually on weekends and especially on holidays) from people who misread the $STDLIST and assume something disastrous has occurred.
The ESCAPE command introduced in Release 2.1 causes the CI to execute its error handling code as if a real error occurred. This means that the CI will execute the command following the command protected by an active :CONTINUE. If no :CONTINUE is active, the CI will terminate the job and prompt a session. An "active" :CONTINUE means that a :CONTINUE was just executed or a :CONTINUE command is protecting a script; e.g.,
:CONTINUE ESCAPE is probably most interesting when used in a script,
although it is useful
for terminating jobs in an error state: "REMAINDER OF JOB FLUSHED".
ESCAPE differs from the RETURN command in two ways:
- RETURN only exits back one level, whereas ESCAPE can exit out of nested scripts; and,
- RETURN (currently) does not return a value, but ESCAPE
can set the CIERROR and
HPCIERR CI variables.
file1:------In this example, file1 executes script "cmd2". If any command in "cmd2" fails, execution resumes back in "file1" at "cmd3". This is also true if "cmd2" invokes the ESCAPE command, as shown. If "file1" did not have the CONTINUE active, then the ESCAPE in "cmd2" acts just like any other error: it terminates the job or reissues the prompt for a session. This example also sets HPCIERR and CIERROR to 999, which "cmd3" could test.
cmd2 ---> cmd2:
HPCONTINUE is a read-only boolean variable that indicates if a CONTINUE is "active" for the next CI command. HPCONTINUE is a pretty useless variable and I probably should have deleted it long ago. Useless because it is only TRUE if the previously executed command was :CONTINUE or if HPAUTOCONT is true. In a script, HPCONTINUE cannot detect that the entire script may be "protected" by a :CONTINUE. It only knows if :CONTINUE was last command executed.
HPAUTOCONT is a read/write boolean variable initially set to false. When set to true, HPAUTOCONT causes the CI to act as if every command executed in a job or script is preceded by a :CONTINUE command. Since HPAUTOCONT is a job/session variable, its value is persistent across all processes and scripts in your job or session. If you set it to true and forget to reset it, then all of your subsequent scripts will have auto-continue set. This is a problem that will be solved with the new script-local (private) variables enhancement being worked on right now. Until private CI variables are available, I personally prefer to not use HPAUTOCONT. I use explicit :CONTINUEs only on the commands that I expect may return errors.
I have made an enhancement to the HPMSGFENCE variable that will be in release 6.0 of MPE/iX. I've split up HPMSGFENCE into 3-bit fields where each field acts like a message "fence". Here are the bits:
bits 29..31 - controls CI error/warn msgs, like today:
0 = show all CI error and warn messages
1 = show only CI error messages (suppress warnings)
2 = suppress CI error and warn messages.
bits 26..28 - (new) controls echoing of "skipped" commands and the "***
RESUME EXECUTION..." or "*** COMMANDS SKIPPED UNTIL..." messages:
0 = show all skipped commands and show the above "***" msgs
1 = don't echo skipped commands, but show the "***" msgs
2 = don't echo skipped commands nor the "***" msgs
bits 0..25 - reserved (enforced).
This gives the following HPMSGFENCE values:
0 - show "***" msgs, skipped cmds, CI warns, CI error msgs
1 - show "***" msgs, skipped cmds, CI error msgs, no warns
2 - show "***" msgs, skipped cmds, no errors/warns
8 - show "***" msgs, no skipped cmds. show CI warns/errors
9 - show "***" msgs, no skipped cmds, show CI errors, no warns
10 - show "***" msgs, no skipped cmds, no errors/warns
16 - no "***" msgs, no skipped cmds, show CI errors/warns
17 - no "***" msgs, no skipped cmds, no warns, show errors
18 - no "***" msgs, no skipped cmds, no warns, no errors
Any other values for HPMSGFENCE are an error.
This has been coded and tested. It is backwards compatible. HPCMDTRACE overrides HPMSGFENCE command echo suppression. HPMSGFENCE overrides OPTION LIST. OPTION NOLIST works as of today.