Support Group Logo theSupportGroupinc
Sponsor Page

     

Hidden Value details commands and procedures in MPE (and some in Vesoft’s MPEX) that can improve your productivity with HP 3000 systems. Get a free NewsWire HP 3000 Always Online cap — submit your MPE tip directly to us here at the NewsWire. Send your tips to editor@3000newswire.com, or fax them to 512.331.3807.

Edited by John Burke

We are on MPE/iX 5.5 PowerPatch 6. It seems that the RENAME command no longer requires you to be the creator of the file in order to perform the rename. MPE HELP, however, says you must be the creator. What gives?

Lee Gunter replies:

Unfortunately, I think this is another case of MPE’s help subsystem not keeping up with changes. If I recall correctly :RENAME was enhanced in 5.5 PP4 to allow this operation if the user had read (and lock?) access to the source file and write access to the location for the target file — which is how VESOFT’s MPEX %RENAME has always worked.
[Here’s an HP Communicator quote:]
• With this release of MPE/iX, users with SM capability can create and rename files across account boundaries
• You no longer have to be the creator of a file to RENAME it. If you can read the old file, purge the old file, and create the new file, then you can RENAME the file.

We are running a 939KS and trying to upgrade to MPE/iX 6.0. The system will not boot to 6.0. It gives some kind of a firmware error. Why am I getting this error?

Ian Sargent replies:

It may be that the firmware revision of the DDS is wrong. I had a problem on one of two machines going to 6.0 The first one was smooth sailing, while the second would just not play. It turned out that the firmware revision of the DDS was too NEW! Yes, I did say too NEW! I had previously (months earlier) swapped out a dead DDS with a new one.

Bruce Toback adds:

The installation manual has one checklist item in which the operator is told to check the firmware rev level in the DDS drive, and provides instructions for doing so. The item concludes with a statement like “verify that the firmware version is 10.7”. Naturally, anyone who’s been in this business longer than about two weeks reads that as, “verify that the firmware version is 10.7 or later.” It turns out that in this particular case, there is exactly one firmware revision that works, and it’s the one given in the manual, not the latest one.

Has it always been the case that LISTF,6 and LISTFILE,6 work differently? In a batch job (it’s different from a session), LISTF,6 writes the date/time as the first record, while LISTFILE,6 does not. (This is on MPE/iX 5.5 PowerPatch 6.)

HP’s Jeff Vance replies:

I think LISTFILE came out in release 2.1. Back then it probably worked identically to LISTF. It was added to support SELEQs for the new Spooler commands. I believe it called the same output formatting routine that LISTF called.
Along came Posix in release 4.5 and LISTFILE was enhanced to accept Posix syntax filenames and some new SELEQ options. At this time it used a different output formatting routine (from LISTF) and it called a new procedure to traverse the directory. LISTF was not changed, and still called the old directory services.
Later in 5.0 LISTF was hooked into the same directory traversal routine and output routine as LISTFILE uses, although we attempted to preserve all of LISTF’s quirks. At this time (with input from 3000-L) LISTFILE was changed to work consistently in batch and interactively.
LISTF from MPE V days is different in a job than in a session. It was by design, since in those days op centers saved paper output for archive, and LISTF in a job did a page throw and wrote a date/timestamp at the top of the new page. Feedback from 3000-L and other sources did not favor this decision, and so LISTFILE was changed to be consistent in batch and in sessions.

We purchased an LPQ1000 to replace our 2564C system LP (HP-IB). Is there a way for the system to be configured so this printer can be known as LDEV 6, even though it’s a serial printer off of our DTC? We are on 5.5 PowerPatch 4.

Fred Metcalf replies:

Make the SYSGEN LP device any LDEV number (600?) and a dummy path (similar to LDEV 10’s) and the serial printer LDEV 6 and CLASS LP in NMMGR.

There are third-party utilities that have the ability to display the job stream for jobs that are still waiting in the job queue. Is there any way to do this is MPE?

Mark Bixby replies:

Do a :LISTSPF with appropriate parameters to find out what the input spoolfile number is and then do

:XEQ PRINTSPF.PUB.SYS Innnn.IN.HPSPOOL

I tested this from MANAGER.SYS on 5.5, so I don’t know what security rules PRINTSPF uses to determine if you’re worthy.
Also note that the !JOB card doesn’t get written to input spoolfiles, and so this method is incapable of showing you the !JOB card. Third-party utilities that do show the !JOB card reconstruct it by examining the internal JMAT table (and maybe others) that the original !JOB card is parsed and stuffed into.

What does this error message mean when validating in the DTS/LINK option within NMMGR? We were trying to add two printers.

<< DTCCVT03 changes in progress... >>
CTL ERROR: Failed to add/modify/delete TIO LDEV 336 in card 3.
CTL ERROR: Failed to add/modify/delete TIO LDEV 337 in card 3.
CTL ERROR: DTCCVT03 dynamic configuration failed.
CTL ERROR: Dynamic configuration failed.

[Editor’s note: I never saw a reply to this question, so I thought I would give it a shot here.]
This usually means the devices are in use. For example, if you are deleting a printer, you must stop the spooler first before telling NMMGR to apply the changes. If you get this message, all is not lost. Just answer “no” to “apply changes”, exit NMMGR, eliminate whatever is holding the LDEVs and then execute the command file DOIONOW.PUB.SYS. If the system still will not make the changes, then you are probably stuck having to do a START NORECOVERY.

In a job, I want to create a report and copy it to another printer so that a copy prints on two different printers. Is there a variable that contains that last spool ID that I created? The SPOOLF command won’t do a PRINT using seleq syntax to identify the report by its other characteristics.

John Zoltak replies:

Do a SPOOLF with the seleq syntax to identify the spool file number and send this to a file. Then read the line out of the file and parse the spool file number. Using the spool file name, fully qualified, use the DEV= and PRINT in another spoolf command.

I have an HP 3000 957 MPE/iX 5.0. PowerPatch 3, I think. What’s the best way to clear out old log files?

Fred Metcalf replies:

HELLO MANAGER.SYS,PUB
FILE NULL=$NULL
LISTF LOG####,2 << Note the name of the open log file has ‘*’ >>
STORE LOG####-LOG9999;*NULL;PURGE << Where LOG9999 is the open file >>


If you upgrade to MPE/iX 5.5, you can just use: PURGE LOG####. Also do the same for NMLG####.

Is there any way to “PING” from my MPE/iX system?

John Hornberger replies:

You want PING.NET.SYS:

ping.net.sys ip_address

will generate a looping ping which can be halted by CONTROL-Y. If you want more control, create a command file called “PING”, or whatever, and put the following lines in it:

PARM IPADDR,NUMPKTS=5,PKTSIZE=64
SETVAR IP “!IPADDR”
SETVAR NUM !NUMPKTS
SETVAR SIZE !PKTSIZE
PING.NET.SYS;INFO=”!IP,!NUM,!SIZE”
ECHO

John Zoltak adds:

NETTOOL.NET.SYS contains a PING command which can ping by name as well as IP address.

I’m trying to compress some IMAGE databases using LZW, but they won’t compress even though the group, account and user all have PM capability. LZW is sitting in the group lzw.sys, and the IMAGE databases are in another account, and I’ve even tried to give the group of the originating files PM capability. But IMAGE bases just won’t compress. Why?

Stan Sieler and Paul Christidis reply:

To process IMAGE databases, the LZW program must be given PM (the standard distribution does not have PM for security reasons). There are third-party products that can do it easier, but within standard MPE/iX you can use LINKEDIT as follows:

:linkedit
HP Link Editor/iX (HP30315A.05.26) Copyright Hewlett-Packard 1986
LinkEd> altprog lzw;cap=ia,ba,pm
LinkEd> e
xit

We have a job stream that logs onto account A, but runs a program from account B. The run statement says:
!RUN PROGRAM.GROUP.B;XL=”XL.PUB”
I had expected it to use the XL.PUB.A library since A is the logon account, but instead it is using the XL.PUB.B library, the account the program resides in. Is this a feature or a bug?

Jeff Woods, Ron Horner, and yours truly reply:

The short answer is “feature.”
This behavior is probably designed to achieve consistency between NM and CM library references. CM programs use the “LIB=G|P|S” option to locate the proper SL. In particular, “LIB=P” means use the SL in the PUB group of the account in which the program resides. So, RUN CMPROG.GROUP.B;LIB=P would try to resolve library references first in SL.PUB.B.
In the case of XLs, from the MPE/iX Commands Reference Manual: “If any library name in the list is not fully qualified, it will be qualified with a name consistent with the program file being loaded.” This describes the behavior of the example in the original question.


Copyright The 3000 NewsWire. All rights reserved.