Click here for The Support Group's Sponsor Message

Hidden Value

HiddenValue details commands and programs in MPE that can improve productivity on HP 3000 systems. Get a free NewsWire "HP 3000 Always Online" cap -- submit an MPE tip to Hidden Value. E-mail your tips to rseybold@zilker.net, or fax them to 512.331.3807.

I have recently purchased an HP5Si LaserJet and attached it to my HP 3000/967 running MPE/iX 5.0 via a DTC72. How can I enable the printer to use different internal fonts when printing spool files?

Mike Hornsby replies:

One method is to set up a terminal type and associated vfc file using TTUTIL.PUB.SYS with the necessary escape sequences.

By the way, when migrating systems make sure to store and restore both the termtype and VFC files required for each printer!

Is there freeware to analyze the contents of IMAGE log files? We've experienced a massive increase in logging and want to know what's that's being written to log files.

Holger Wiemann and Stan Sieler reply:
If you're interested in an image log file formatter that allows you to filter out various information, you'll find one called CATCHLOG on Jazz.

How do I create file names with the date or time as part of the name (for example, Fyymmdd or Fhhmm)? If the files are created on January 2, 1997 at 1:05 PM, the file names should be F970102 and F1305, not F9712 and F135.

Mark Ranft replies:
:setvar fname hpyear*10000+hpmonth*100+hpdate :setvar fname "F"+"!fname" :showvar fname FNAME = F970102 :build !fname;......

Lars Appel gives a different twist to the computation:


:SETVAR VTIME rht("0!hphour",2)+rht("0!hpminute",2)

Some months ago, Jeff Vance noted that if you are willing to work in the Posix name space, you can construct file names with complete time stamps since you are no longer limited to eight character file names.

I have a job in which I am trying to locate specific text in any file within a fileset. Originally, I used just @.@.@. However, the search seemed to hang on a certain file. Any ideas why this is happening?

(It is tough to tell who was first with the answer, so we'll give credit to David Maclary, Noel Magee, Evan Rudderrow, Mark Ranft, Stan Sieler and Jeff Kell, all of whom chimed in with the speculation that the culprit was a message file.)

Message files are notorious for causing this sort of thing with search programs. If they are opened with default access/options you'll be suspended as a "reader" waiting on a "writer" to post something to the file and you won't get an EOF condition.

Without making any other changes to any software, our Powerhouse applications are now behaving strangely under MPE/iX 5.5. Our staff now has to hit the enter button at least twice before a response is apparently acted upon. What's causing this?

Neil Harvey and Gary Biggs reply:

Yes, this is a documented problem with Powerhouse and MPE 5.5. The work around is to create a file called PHRS (Powerhouse Resource) with one record that contains the word QUIT. The file can either be placed in each logon group or a file equation can be used to point to the one instance of the file.

Apparently, Powerhouse is mistakenly opening this as $stdin under MPE/iX 5.5 and has a read posted. Hitting the RETURN satisfies the read and the application starts.

Several of our user sessions disconnected with the following error message: ** NS/3000 NetIPC ERROR IN VT; Job: #S7839; PIN: 79; Info: 1 - Error: 42; REMOTE NOT RESPONDING, CONNECTION CLOSED We have different brands of PCs and a mix of the Windows operating systems on them. I haven't been able to find any one thing that is consistent on the PCs that have the errors. What's causing the problem?

HP's James Hofmeister replies:

This is VTERR 42. The most common causes are

1. Remote PC has powered down or re-booted instead of shutting down the VT & TCP software.

2. This error is also common when two PCs have the same IP address configured. These two PCs cannot operate at the same time with a duplicate IP address. The last PC to boot up and start the TCP software will be the one working until the other PC experiencing the problem reboots and then they are the working system. Each PC must have a unique IP address.

Bruce Senn adds:

One the "features" we have just discovered with several new Gateways is that its power saver mode turns off the network cards. I don't know if this is the cause of the problem you describe, but it certainly makes network sessions go away.

I'm trying to install patch MPEJX99A, but when I try to perform UNPACKP MPEJX99A, I get an error message "Unrecognized token '#211' " from the MOVER program. How do I fix this?

Mark Bixby replies:

The version of MOVER on 5.5 is broken (Powerpatch 1 does not contain a good version either) and needs to be replaced with the version available on the Jazz server. The UNPACKP command file explicitly calls mover.prvxl.telesup, so be sure to replace this with the Jazz version.

Several months back, I remember reading about a command file that would convert spoolfiles to HTML. I need this application now and would love to know how to set it up.

Mike Hornsby replies:

Printing to HTML can be extremely simple; it depends on the how the report program generates printer control (None, CCTL, or esc sequences).

The sf2html program and command file at our Web site (under utilities) is designed to work directly against spoolfiles by detecting the cctl characters and emulating them using blank lines. I am still waiting for someone to develop a browser add-in for printer translation of esc sequences.

John Burke notes:

Mike's program works great and the command file even creates an index of the reports. For the simple case of a single file with no printer control (no cctl nor esc sequences), all you need do is add the following line to the beginning of the file (it stands for pre-formatted): <PRE>

Then, if you are using Lars Appel's packaging of the Jazz web server port, for example, and the report file is called "foo", :tobyte.hpbin.sys "-at foo /WEB/DOC/foo.html" :chmod.hpbin.sys "777 /WEB/DOC/foo.html" will make foo visible to your browser. [Note: Using "tobyte" with the "-at" option, instead of the COPY command, strips trailing blanks, saving disk space and browser load time.]

I'm trying to use QUERY to change(update) the value of a critical item (key) in a TurboIMAGE database. First thing I tried was DBUTIL with this command:
SET database name CIUPDATE = ALLOWED
and sure enough I got:
>>CIUPDATE is allowed.
However, when I run QUERY with the REPLACE command, I still get this message:
DBUPDATE attempted to modify value of critical item--key, search or sort 0 OF 1 QUALIFYING ENTRIES REPLACED
I need some help.

Tom Kirby and Gregory Stigers reply:

There are three options in DBUTIL for CIUPDATE: DISALLOWED, ALLOWED and ON. If you want to use QUERY, you want ENABLED. With ALLOWED, you need to programmatically call DBCONTROL to enable CIUPDATE.

From the manual:

"The ALLOWED setting requires that a process first call DBCONTROL in mode 5 to enable the CIUPDATE option for the duration of the process or until a call to DBCONTROL in mode 6 disables the option. Using DBCONTROL modes 5 and 6 does not alter the permanent setting set with the DBUTIL >>SET command. The database must be opened in access mode 1, 3, or 4, and your user class must have write access at the set level, or both read access at the set level and write access at the item level."

The ALLOWED option provides a measure of safety, making it more difficult to accidently update a key.

I have many D#######.HPSPOOL groups on my 4.0 MPE box. Only two of them have files in them and only one file for these two groups. What is the purpose of these groups?

Bob Brown replies:

I believe that these groups hold the spooler checkpoint files. You will have one of the D####### groups for each configured spool device (either through sysgen or nmmgr). The files in the D####### groups correspond to existing spool files, so if you have some spool files waiting for, say, ldev 19, the D0000019 group will have some files in it. For instance, if you have a spool file #O841 waiting to print (or in the process of printing), there will be a corresponding C841 file in the D####### group, with a file type "CHKSP." Spooler checkpoint files disappear when the spool files disappear, which is why the D####### groups will often be empty. Checkpoint files help in the recovery of interrupted or incomplete spool files (I think).

Lee Gunter adds:

I think Bob is essentially correct, but we've found that the checkpoint files don't always go away, so we've set up a daily script to purge the orphaned checkpoint files (i.e., those without a corresponding file in the ..OUT.HPSPOOL group).

Finally, from Jon Broz:

A spooler checkpoint file should only exist for the life of a currently printing spoolfile. It's created when the spoolfile starts to print and is or should be deleted when the spoolfile finishes. Its purpose is to track of how much of the spoolfile has been printed in case you need to suspend or resume spooling or have a paper jam, etc.

There should only be one file in the device group and then only if a spoolfile is currently printing. If you have a file(s) in the group and no spoolfile printing to that printer, the checkpoint file can be purged.

How do I setup my HP 3000 to work as an internal Domain Name Server? We are using WIN95 clients and have NS/VT and FTP running. We will soon set up the ODBC listener and TELNET. At some point I want to run a web site off the NT Server that is attached. I am getting tired of remembering a bunch of IP addresses. Can the HP 3000 support DNS resolution? NT can, but right now that server isn't the server the PCs are connecting through. (That's another story...)

Chris Bartram replies:

A 3000 can't (yet) be a DNS Server. It can "resolve" but not serve. Hopefully this will change someday (i.e. if someone gets BIND ported).

A DNS Server can sit anywhere on your network as long as your clients that need to use it can reach it (via a network TCP/IP or UDP/IP connection). If you have an NT server in the organization that's on the same network as your other systems, put up a DNS server on it. If you have a Unix system running anywhere on the network, then you've probably already got a DNS server and just need to configure it and turn it on.

If you have none of the above, a PC running the freeware Linux operating system will do a wonderful job as a nameserver.

I need to determine the IP address of a PC that has logged on via NS/VT as part of a security check. In reviewing the FAQ, I found a reference to item #38 on environment $BACK, which is fully documented in the Using NS3000/iX Network Services manual. Of course, we don't have that manual! It's ordered but will take a week to arrive. What are the details (intrinsic call, parms, etc) I need to get a quick and dirty Cobol program running?

Duane Percox replies:

If you are on 5.5, these values are HP variables you can interrogate. If not, then you can get the source code in COBOL to do exactly what you are looking for from our web site: http://www.qss.com/vtverify.zip

This is a little COBOL utility that will get the IP address of the client PC and then read an external file, which is sort of like a router filter table to validate the user. A JCW of your choosing can be set to indicate an error code of your choosing.

Steve Dirickson adds:

:SHOWVAR HPSTDIN_NETWORK_ADDR

This capability is available in MPE/iX 5.0, as of MPE IX MIT C.50.00, SUBSYS C.50.03 and PowerPatch C.50.05 P2 And John Burke adds:

You could also use :showvar hpremipaddr. A description is available by typing :help hpremipaddr

On our systems we have quite a few file equations and most of the time, I only want to check the setting of one equation. Does anyone have a modified listeq which will allow you to enter for example :LISTEQ filename and have it return just that file equation?

HP's Jeff Vance replies:

There is a file named HPPXUDC.PUB.SYS that comes with all 5.0 and later systems. There is a UDC in this file named HPPARSEFEQ that will scan all of your file equations had extract the one you ask for. For example,

:listeq
FILE EQUATIONS

FILE LP;DEV=LP
FILE PP;DEV=PP
FILE ELITE;DEV=PP;ENV=ELITE.HPENV.SYS
FILE LP602;DEV=PP;ENV=LP602.HPENV.SYS
FILE T;DEV=TAPE

:hpparsefeq lp602 foo # foo is the name of a CI var
:showvar foo
FOO = LP602;DEV=PP;ENV=LP602.HPENV.SYS

This UDC can be simplified on 5.5 systems using the new word() function, which is left as an exercise for the reader. Note that in HPPXUDC there is also a UDC that converts MPE to POSIX names.

[Editor's note: there were many solutions. We decided to present the one that comes with all MPE/iX 5.0 and later systems.]

I've installed perl into /usr/local/perl on my 5.0 system. When I try to run a perl script, I get syntax errors. I thought I remembered reading that 5.0 does not evaluate the first line of scripts correctly, which should tell the shell which program will execute the script. For instance, my test script starts with #!/usr/local/perl/perl. Shouldn't this work? If not, is there a workaround?

Kevin Newman replies:

The #! syntax unfortunately does not work with perl on 5.0. The solution to the problem with perl and my program output coming back before a previous print, is due to the same type of output buffering that C uses. To prevent this, you need to tell perl that the output file is to be 'hot piped. In other words, all output to the output file will be flushed immediately. To do this, add the following to your script:

$| = 1;

That's it! The $| is perl's way of setting the buffering option to the CURRENT output file. You may change your current output file, but that is another lesson. Setting the value to '0' will use the default I/O specifications for buffering. Using the value of '1' will automatically post any output to the file WITHOUT buffering it.

(Thanks to Craig Vespe and Jeff Kell for information that sent me in the right direction!)

You can also try this:

#!/usr/local/bin/perl eval "exec /usr/local/bin/perl -S $0 $*" if $running_under_some_shell;

This has been suggested to me by a couple of people, and it seems to work just great for both GET and POST methods of CGI calling. Also, when calling perl via the #! starts working, you will not have to change anything.


Copyright 1997, The 3000 NewsWire. All rights reserved.