| Front Page | News Headlines | Technical Headlines | Planning Features | Advanced Search |

December 2004

Net.digest summarizes helpful technical discussions on the HP 3000 Internet newsgroup and mailing list. Advice here is offered on a best-effort, Good Samaritan basis. Test these concepts for yourself before applying them to your HP 3000s.

Edited by John Burke

Hoorah! With the US elections finally over, the number of off-topic political rants has noticeably decreased. Well, okay, at least it is now less than 50 percent. Even the HP and Carly bashing mostly took a holiday. There were a few good jokes, but the posting that made me smile the most was Tracy Pierce’s “picture” of a turkey prior to Thanksgiving. It reminded me of the pre-Windows days, when many of us used to spend hours using only characters on a terminal’s screen or a printout to “draw” pictures. There was still a nice vista of technical material during November on 3000-L, even though it was an light month overall. Some of the best gems are reported below.

I always like to hear from readers of net.digest and Hidden Value. Even negative comments are welcome. If you spot something on 3000-L and would like someone to elaborate on it, let me know. You can reach me at john@burke-consulting.com.

What Happens If FASTSIZE Is Not Set To “0000000F”?

Here is an abbreviated version of a particular tale of woe: “The system has been running fine for several years. The system aborted this morning with a SA 1140, subsystem 101. When the system starts it passes all tests. I then do a boot from Primary (or alt, doesn’t matter), both work fine. The system gets to an ISL prompt. I type ‘start norecovery,’ ODE, whatever, and I get ‘Utility requires more memory than is configured.’ At boot time the system says ‘Available Memory: 2228224 KB’, so memory should not be an issue. Still, I tried taking out memory and swapping it; however, I got the same error.”

Almost immediately (you’ve gotta love 3000-L), Paul Edwards replied suggesting the solution: FASTSIZE might not be set to the required value for normal operation, 0000000F. This turned out to be the case.

At several places in the System Software Maintenance Manual, users are warned to check the FASTSIZE value and make sure it is “0000000F”; but the manual never indicates what FASTSIZE is or does. A value of “F” for FASTSIZE tells the system to test on boot, and configure in, all available physical memory. A value of 0, for example, for the FASTSIZE parameter, says to check and use only 256KB of memory. If you change the value of FASTSIZE (by the way, don’t try to do a Google search on “FASTSIZE” alone), you must reset the system (RS) for the new value to take effect.

Why would you ever want to change the value of FASTSIZE? The Series 9x7 Nova systems are notorious for taking seemingly forever to boot if you have a lot of memory installed. Some people change FASTSIZE if they have to do a number of system boots in succession (adding software, testing hardware components, etc.) in order to save time. But you have to be very careful to change it back to F.

Newbie Gotcha

I have been using the MPE/iX HELP system to get information about CI functions since they were introduced. [For Web access to MPE/iX 6.0 and MPE/iX 6.5 HELP, see www.burke-consulting/default.htm. Mark Bixby and Donna Garverick developed the Web interface.] Here is an example for the CI function REPL showing both the command format and examples:

:help repl
Syntax: REPL(str,oldstr, newstr[,cnt] [,start])

Example: repl(‘aaabcaab’,’aa’,’X’)

Result: ‘XabcXb’

Example: repl(‘aaabcaab’,’ab’,’’,-1)

Result: ‘aaabca’

In all my years using MPE/iX HELP, it never dawned on me that the examples are misleading – until today. A newbie wrote in to 3000-L saying he tried the example exactly as listed in the HELP system with the this result:


Unknown command name. (CIERR 975)

What he did not realize is that either “calc” must be used or the result of the function must be equated to a variable, as in,

:calc repl(‘aaabcaab’,’aa’,’X’)


:setvar temp repl(‘aaabcaab’,’aa’,’X’)

:showvar temp

TEMP = XabcXb

It seems to me the HELP system should be clarified.

While We Are (Sort Of) Talking About Command Files

When I first saw this I thought, “No, that cannot be.” But it is true. Donna Garverick reported that, “Say you are running a script with IO redirection, using myscript < foo.

“Seems pretty straightforward. Then say within ‘myscript’ another script is called and that script also uses IO redirection:

myscript: setvar myeof finfo(‘HPSTDIN’,’eof’)
myscript: while setvar(myeof, myeof-1) > 0
myscript: cmd1
myscript: xeq script2 < bar
myscript: cmd2
myscript: endwhile

“When control returns to myscript the EOF for $stdin is going to be set to zero (most likely, depending on the behavior of script2). This has nothing to do with the contents of the variable that myscript is using (most likely) to act as a counter for foo’s EOF. That value is still correct. If script2 did in fact read bar to EOF, then the next ‘read’ (input) for ‘myscript’ will fail.’

My initial reaction was along the lines of, “Well of course I’ve done this in the past with no problem at all.” But I soon convinced myself I was mistaken. It just seemed like something that others or I would have done many times before. The workaround came from Paul Christidis, via Donna: “If you’re writing a script that is going to call/use/xeq another script and both scripts are using IO redirection, you simply need to re-reference hpstdin for the calling script when control returns to the caller.

“An easy call to finfo, such as finfo (hpstdin, ‘fullfname’) will point hpstdin back to the file the calling script is using.” Interesting, and not at all obvious.

Where Oh Where Did My Posix Environment Go? Where Oh Where Can it Be?

It is a surprisingly common experience when something (or everything) goes wrong with the Posix environment on an MPE/iX system. Usually, this is because the backup and restore procedures are incorrect in some way so that necessary files for the Posix environment do not get restored. There is a relatively simple procedure to correct the situation. Courtesy of Gilles Schipper, here is the procedure:

“To recreate a lost Posix environment, you need to retrieve the appropriate FOS tape that you used to update to your current MPE/iX level. Then, do the following:

“1. Restore @.hp36431.support and i0036431.usl.sys from FOS tape.

“2. Stream supacct.pub.sys if /bin, /dev, /etc, /lib, /tmp, /usr, /var, /hpshell-examples are not all present.

“3. Stream i0036431.usl.sys

“After completing these steps, apply the latest PowerPatch tape appropriate for your OS level.”

Quick Cuts

• Can “finfo” distinguish temporary files? Just use a file equation such as “FILE T,OLDTEMP” and then “finfo(‘*T’, ‘exists’) will be true if T is a temporary file, but false if T only exists as a permanent file.

• Is “*;” Faster Than “@;”? This has been debated since the 1970’s; i.e., for as long as MPE/IMAGE have been around. The consensus is yes, but whether the difference is noticeable depends upon the speed of the system, the number of records being processed and how much security validation must take place (DB password dependent).

• gcc 3.4.2 for MPE/iX, the GNU C Compiler, is now available at jazz.external.hp.com/src/gnu/gnuframe.html.

• For a comparison of MPE and Unix commands, see invent9k.external.hp.com/~csy/cmds.cgi.

• Looking for specifications and hardware configurations for A- and N-class Hp e3000s? Look no further than www.hp.com/products1/evolution/e3000/ download/52430202.pdf and www.hp.com/products1/evolution/e3000/ info_library/config_order.html.

• Is it possible for several (well, 320) IMAGE databases to log to one logging process? You can use one log ID for more then one database. There is no real limit for this; however recovery, if needed, can be an issue. Also, you need to be aware of the maximum number of users per log process and plan accordingly — because if one user opens three databases mode 1, it is counted as three separate users against the logging process.

• Ever wished you could control the sort sequence when using MPE sort? You can. Just check into the “ALTSEQ” command of SORT.PUB.SYS.

• The latest release of the HP MPE/iX WebWise Secure Web Server product (version A.04.00; see jazz.external.hp.com/src/webwise for general information) is now in General Release on both MPE/iX 7.0 (WBWHD96A) and MPE/iX 7.5(WBWHD97A). This version of the Web server is still in Beta for MPE/iX 6.5 (WBWHD95A), apparently due to lack of interest.

• MPE FILE ERROR 0 RETURNED BY FREADDIR ON ROOT FILE — The most likely cause of this error message is a bad delete chain in a master dataset with MDX. This can occur under certain corner case conditions on some versions of IMAGE. Make sure you have the latest version of IMAGE for your OS release.

• When specifying IP addresses in NPCONFIG.PUB.SYS, be sure to never start an octet with zero as that indicates the number is Octal.

• If you are FTP’ing a store-to-disk (STD) file from an HP 3000 to an HP 9000 and then back to an HP 3000, be sure to do the transfer in binary, and on the final get, you must specify both the number of records and record size. If you do not follow this procedure, you will get a file that “looks” okay; even an FCOPY;COMPARE against the original file shows no errors. But a RESTORE will abort with the strange “This message is reserved” error message.

Copyright The 3000 NewsWire. All rights reserved.