|
|
|
|
|
Hidden Value
details commands and procedures in MPE that can improve your
productivity with HP 3000 systems. Get a free NewsWire HP 3000
3000 for 2000 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
I was doing a final bit of
Y2K testing last week and noticed we had the !HPYEAR variable in a
jobstream that renames some files. I realized that the HPDATE and
HPYEAR variables drop any leading zeros but did not expect this for
HPYEAR. Oops. Example: !HPMONTH!HPDATE!HPYEAR used on 01/01/99
returns 1199. But on 01/01/00 and 01/01/01 the variables returned 110
and 111 respectively. How can I fix this? We are running MPE/iX
Version 6.0.
Paul Christidis replies:
You could use something like
setvar filename X
+ RHT(0!hpmonth,2) +
RHT(0!hpdate,2) +
RHT(0!hpyear,2)
HPs Jeff Vance adds:
On MPE/iX 6.0 Express 1
you can use the new HPYYYYMMDD string variable. On the above date you
would get:
:showvar HPYYYYMMDD
HPYYYYMMDD = 20000101
An advantage of using this
new variable versus concatenating the full date from HPYYYY + HPMONTH
+ HPDAY, is that you do not need to be concerned if your job is
running at a day, month or year boundary. The concatenation approach
results in the wrong final date if the day rolls to the next month in
the middle of the equation.
How can I suppress those
pesky expression results messages?
Jeff Vance replies:
I skimmed the 6.0
Communicator technical CI article and I did not find a reference. (I
was sure the enhancement was documented there, but maybe I missed
it).
From my CI talk
at HP World on the Jazz Web server (jazz.external.hp.com/
papers/HPWorld_99/CI/), slide 19 shows the enhancement to the
HPMSGFENCE variable and a few notes.
A value of 8
suppresses false commands, meaning those commands that
were not executed by the CI. A value of 16 suppresses
false commands plus the *** EXPRESSION
true/false messages.
What do these messages mean?
9:53/#J28/111/stat on
/etc/bootptab: No such file or directory
They are caused by the JINETD
job, and are repeatedly displayed on the console of every server that
I have JINETD running on.
Fred Metcalf and Mark
Bixby reply:
I would do the reverse of
the section Adding the BOOTP server to the inetd
configuration, Chapter 4 - The BOOTP Service, in the manual
Configuring and Managing MPE/iX Internet
Services.
Edit
INETDCNF.NET.SYS and place a pound symbol(#) and spaces in front of
the line:
bootps dgram udp
wait MANAGER.SYS /SYS/NET/BOOTPD bootpd
Then:
Save the file and exit the
editor program.
Signal inetd to reread the
configuration file by entering the following command at the CI
prompt:
:INETD.NET.SYS -c
Why does the following
command file need a CONTINUE before the LISTACCT and LISTF commands
but not before the LISTFILE command? Should the LISTFILE command exit
the command file like a failed LISTACCT and LISTF command if it does
not have a CONTINUE? Is this a bug or a feature? We are on MPE/iX 6.0
PP1.
setjcw cierror 0
continue
listacct garbage > $null
echo !cierror
setjcw cierror 0
continue
listf @.@.garbage > $null
echo !cierror
setjcw cierror 0
listfile ./GARBAGE > $null
echo !cierror
Erik Vistica
and Jeff Vance reply:
Feature, in my opinion.
> setjcw cierror 0
> continue
> listacct garbage > $null
sets HPCIERR to 909. Note
CIERROR = abs(hpcierr). This is an error, so the CI will terminate in
a job or exit a UDC/script.
> continue
> listf @.@.garbage > $null
This is the same error, so
the CONTINUE is needed. Note that LISTF of a name component that
contains wildcards, and none match is a warning, not an error. For
example, listf @.@.garbage@ would have produced CIWARN 431
(hpcierr=-431, warnings are negative and errors are positive.)
> listfile ./GARBAGE > $null
LISTFILE of any syntactically
legal name will not produce an error (maybe a warning but no error),
thus no CONTINUE is needed. Why is LISTFILE different from LISTF in
this regard? Since LISTFILE processes a list of filenames
(file1,file2,...fileN) we didnt want the command to stop if,
say in the above list, file2 did not exist. Instead, youd get a
warning and the command would continue to process the next file in
the list.
[Editors note: This
next one comes up often enough it bears repeating.]
How can I
create a command file that efficiently reads each record of a flat
file, performs some processing and then reads the next record?
Suppose MYFILE is the
flat file and CMNDFILE contains the following CI code:
setvar eof
finfo(HPSTDIN,eof)
while setvar(eof,eof-1) > 0 do
input record
...<statements to process
the contents of the record variable>
endwhile
deletevar record,eof
then
:cmndfile < myfile
will open MYFILE only once
and process the contents record by record.
I recently acquired an old
917DX, and after powering up the system Im receiving a constant
display of WARN E040 and WARN EF40 flashing
again and again in the location where the function key labels are
displayed. I have not seen this warning before and it does not allow
me to display my function key labels at all. How can I reset this, or
is there somewhere else I should explore?
Tom Brandt, J
Norbut and Doug Werth reply:
The WARN E040/EF40
messages are telling you that the internal batteries are charging.
The message will stop once the batteries are fully charged.
Where can I find a free
utility to copy DAT tapes? Obviously, STORCOPY in TELESUP
doesnt work (at least for NM :STORE tapes that Ive
tried). Is there some freeware I can snag from a URL?
Joe Geiser replies:
TAPECOPY on HPs Jazz Web server is just what
youre looking for! I use it quite a bit these days and
recommend it wholeheartedly.
Stan Sieler noted:
The last time I checked,
TAPECOPY was using FREAD/FWRITE, which means it cant copy all
STORE tapes, i.e., those created with MAXTAPEBUF have a record size
of 32768 (according to HELP STORE,ALL), and the biggest
record the file system will handle is 32766 bytes. Has it been
updated to handle bigger records?
Our free TAPETAPE
program: (www.allegro.com/softw
are/#TAPETAPE) can handle records larger than the file system
max.
Finally, Denys Beauchemin adds:
You can visit www.hicomp.com/hp3000.htm
for SLTCOPY and other free utilities for the HP 3000.
I am hooking up a new DTC
inside my 927LX chassis. I see what I need to do: take the terminator
off the t-connector on the second DTC, hook up my cable to the second
and connect to the new DTC and put the terminator on the other side
of the t-connector on the new DTC. Can I do that while the system is
up and users are on? Can I configure the DTC while the system is up
and users are on? Does it matter whether the the DTC is connected
before I start configuring it?
Wesley Setree replies:
You can configure and
hook up the DTC while people are on. I would suggest getting it
installed in the cabinet, configuring it on the system and then
hooking up it to the network. The network line will be
down during the time that you hook it up to the new DTC,
so try to make that connection as quickly as possible. In other
words, the network traffic will stop until the connection is
restored. You can do that while people are logged on; they will just
notice a period of no activity while the connection is
broken. It usually takes me about 5-15 seconds to get the connection
re-established, and most users dont notice it.
Jeff Kell adds:
Breaking a network
connection is no worse than a router dropping a packet over a serial
line (which happens a lot). The protocol (TCP) will recover. It can
cause problems with UDP/ICMP and connectionless protocols. But it is
all timing. Are you actively doing a transfer over the socket? How
long are you disconnected? Are you connecting to another subnet? If
this is the case, if you have been idle long enough, you may require
an ARP by the router, and if that fails, results in ICMP unreachable
and the connection is toast.
The biggest
danger to the 3000 (unlike any other platform Ive run across)
is that if you break connection between the 3000 and a configured
gateway long enough, the gateway gets marked as down and it never
comes back automagically. You have to manually do a
gateup in nettool.net.sys. That will spoil your day in a
hurry, especially if you have only one LANIC for DTSLINK and your TCP
LAN.
Ive done
things to a live network that would make your skin crawl. It can be
done, but once in awhile, you get burned. Be careful and be sure you
have all of the possibilities covered, especially in a switched
environment (where MACs get tied to ports), where you can get burned
in a hurry.
I have a job that runs
daily that creates several files for transfer. It blows up about
every six months or so due to file size increases. I want to replace
the DISC= statements so DISC equals a calculated setvar based on the
size of the DB2PRV3 file, say
sizeof DB2PRV4 = sizeof
DB2PRV3 * 1.
(an extra 10% for margin of
error) Can I get some tips to help me with the syntax?
Jeff Vance and Paul H.
Christidis reply:
You can do something like this:
:build
DB2PRV4;...;disc=![finfo(DB2PRV3,eof)*110]...<
br>
Im making a tar file
(from the Posix shell) of ASCII files arranged in directories and
sub-directories. Then I ftp the file to a PC or Unix workstation.
Doing tar xvf there (on Unix) gives me the error message:
x mytar, 0 bytes, 0 tape blocks
x mytar/mydir, 0 bytes, 0
tape blocks
tar: directory checksum error
What is the problem? Do I
have to issue some special flags while running tar?
Lars Appel and Danny van
Delft reply:
One potential issue that
comes to mind is that MPE/iX 5.5 tar adds MPE specific file
attributes in some kind of Posix-compatible way (extra
/tmp/Xattributes.N files). If your Unix machine does not like those,
you might try adding -A when creating the tar archive (to drop these
MPE attribute files).
Im trying to upload
a file, via WRQs Reflection, over a modem dialup. Im
dialed into ldev 21, so this means Im not coming in over a DTC,
but the internal mux port.
Symptom: Reflection says
Host not responding. But, the host received the RUN
PCLINK2.PUB.SYS command and properly executed it and is running
PCLINK2 [Its saying: (#@#@#@)] I believe Ive tried the
obvious, and a fair amount of the non-obvious. How do I get the
upload performed?
Stan Sieler
supplied both the question, and ultimately the answer:
Weve gotten it
going by specifying:
transfer to HP 3000 over X.25
Of course, we arent
using X.25, so this is annoying not to mention rather non-obvious.
We got this error in one
of our batch programs:
*ERROR: CANNOT OPEN DATABASE:
MYDB (TXD 12) [0.3155] [FB272]
MAXIMUM USER COUNT PER LOG
PROCESS REACHED
Could someone please explain
exactly which limit weve hit? A SHOWLOGSTATUS shortly after
showed 119 users of the particular log file.
Lee Gunter replies:
This is a configurable
limit in SYSGEN:
:sysgen
>log
>ulog <usersperproc>
< insert the desired number of users per log process
>hold
>exit
>keep
>exit
Perform a START NORECOVERY.
When trying to load a 1994
DDS tape, I got the following:
LDEV 7 I/O error ignored
during AVR. I/O status %74
Vol (unlabeled) mounted on LDEV# 7
When I tried to restore from
the tape, the error returned said there was no store label. Tried
cleaning the drive and nothing changed. Is this tape really done, or
are there other options?
James Reynolds and Keven
Miller reply:
These errors are usually
the result of trying to read a tape that was created using hardware
compression on a drive that does not support hardware compression.
Giles Schipper adds:
If its not a
compressed tape, you could have an alignment problem.
Several years
ago, a customer had a disk drive failure that required replacement
and subsequent re-install from backup. After disk replacement by HP,
previous nights backup (with SLT included) was mounted on DDS-1
drive. AVR error showed on console. It was obvious this tape could
not be read even by the same drive that had created it only 18
hours or so earlier.
Reverting to an
earlier backup was not an option.
Long story short
tape drive was replaced with DDS3 drive. Install started and
completed without a hitch. I have seen similar situations on a couple
of other occasions.
[Editors
note: another good reason for running CHECKSLT and VSTORE on any
tapes you create.]
I recently acquired a used
957RX. My batch jobs sit in the wait state and never run. Interactive
sessions work, networking works, OS is HP3000 C.60.00. The only thing
I see that Im not sure of is that LDEV6 (LP) is UNAVAILABLE
and, therefore, not spooled. Could this be hanging the jobs up?
System is configured for a HP2567B on LDEV6 Path 52.8.0 but I
dont have one physically attached.
Robert Schlosser, Andreas
Schmidt and Connie Samuel all reply:
Do an openq LP and put
this in your SYSSTART file.
Is it possible to have one
MPE spooler that services multiple printers? For instance, I want to
spread the load of one of our laser printers over two. All the print
jobs would go to device LP06, which would then feed the spool files
to two printers. Both printers are network printers.
Fred Metcalf, John
Hornberger and Glenn Mitchell reply:
Use SYSGEN or IOCONFIG to
add a device class LP06 (using your example) to each of
the printers that you want to share printing duties. As long as your
output is directed to LP06, the first available printer will start
printing that output. No changes are needed in the NPCONFIG file,
assuming both printers are already defined.
How do I ping, or can I
even ping, an address from the HP 3000?
Randy Schleicher and
Joseph Norris reply:
With the right
capabilities (NA and NM) you can run PING.NET.SYS and it will prompt
you for the IP address, packet size and number of packets you wish to
send, or you can simply PING.NET.SYS nnn.nnn.nnn.nnn (the
IP address) and it will continually ping until you hit
Ctrl-y.
[Shane
Devereaux and I both suggested the more feature rich (includes
ping-by-name capabilities) nettool.net.sys. Several people, include
Doug Werth, Patrick Santucci and Chris Bartram all passed along
command files to call ping or nettool (check the archives if you are
interested).]
Copyright The
3000 NewsWire. All rights reserved. |