Hidden Value – July 2001

 

Q: Is C part of the FOS on 6.5 or is it an add-on product?

A: Mark Bixby replied:

It's an add-on product, P/N 31506A.

Charles Finley elaborated:

At the risk of answering the wrong question, HP C is only a C compiler, it will not handle C++. The implication of this goes beyond the obvious. It means it is not suitable for porting many modern products including various popular open source products. There is an alternative C compiler, gcc, and it is free. Mark Klein ported it to the HP 3000. In my opinion it is a better (more modern and full featured) compiler than ANSI C, although ANSI C has one advantage that has to do with the use of PRAGMA Intrinsics. Most, if not all, Open Source products are ported using gcc. Hewlett-Packard uses it extensively. Paid support is available through a third party.

Finally, Walter Murry added:

The HP C/iX compiler is not part of FOS. The run-time library, however, including the relocatable form of the HP C/iX Library, is part of FOS.

Q: I’m trying to connect a [fill in the blank with a non-HP manufacturer] printer to my HP e3000 using MPE/iX network printing but it does not seem to work. Anyone have an idea what I’m doing wrong?

A: [Editor’s note: Some variant of this question is asked at least once a month (this month three times). Here are the necessary and sufficient conditions to use a printer as a network printer with MPE/iX. If you cannot meet these conditions then you will have to use a third party product to affect network printing from MPE.]

The printer must understand basic PCL. The network print spooler has several hard-coded PCL commands and there is no way to override them. Most laser printers understand PCL since HP pretty much established the standard for laser printers. Most non-HP impact printers do not understand PCL because other manufacturers set the defacto standards for impact printers. Always check with your vendor before purchasing.

The network interface should ideally be a HP (or 100% compatible) JetDirect card or external JetDirect box. Other network interfaces can usually be made to work by adding the directive ‘snmp_enabled=false’ to the network printing configuration file. You may also need to specify a different port number along with the IP address.

Also, these requirements are not going to change. CSY has steadfastly refused to consider enhancing network printing any more because there are multiple third party solutions available.

Q: I'm having some trouble transferring files between a HP 3000 and a HP 9000. Sometimes, when the HP 9000 tries to send a file to the HP 3000, the client hangs when doing a 'dir" or other command and we have to kill the process. We are transferring large files every 5 minutes using ftp and there is always a heavy traffic on the link.

A: Scott Swartzell suggested, and the original questioner responded that it fixed the problem:

Try increasing significantly (double if already small) the number of TCP connections via NMMGR.

Q: We had a batch job that ran out of control and filled up our system volume set. I have removed the offending spool file but now none of out batch jobs will run; they are all in a WAIT status. Can anyone help?

A: Many people surmised that the spooler queue for device LP had shut down and either an OPENQ LP or STARTSPOOL LP would fix things. Often this is all that is necessary case. However, it did not work for this person and, in fact, he provided some further information:

I have tried startspool LP and get the following:

SYS:startspool lp
Device 00000006 is unavailable. (CIWARN 4604)
Device is already spooled out. (CIERR 3218)

What he also had to do was issue an ABORTIO 6, then a STARTSPOOL LP and batch jobs resumed.

Q: Can someone please give me the syntax for the ns killsess command. I can't connect to the archives.

A: John Burke replied:

Ah, yes, the still not documented in HELP command to abort a vt session instead of using ABORTJOB,

nscontrol killsess=#Snnn

Cecile Chi noted that this form of the command is documented in Orbit's Pocket Guide for MPE/iX.

Robert Mills added a cautionary note:

We have had problems with killsess on our machine (979/200) since moving to MPE/iX 6.5 It has been causing system failures.

An explanation and fix status came from James Hofmeister:

The only known problem with killsess is a SA614, as documented in SR 8606185990, which can be viewed in HP-ITRC with a keyword of killsess. This abort is specific to MPE/iX 6.5 and the fix was to repair a short vs. long pointer problem. One of the customer sites that saw this abort frequently has installed the patch NSTGD60 for 6.5 and has seen immediate relief from the aborts.

Q: Is there a way to determine the last time the system was rebooted?

A: Paul Christidis, Gregory Stigers and Andreas Schmidt all suggested:

:print logdcc.pub.sys

This will show the date and time of the last reboot.

Gary Jackson and John Burke suggested:

Run SYSINFO.PRVXL.TELESUP and issue the MISC command.

Finally, Cory Black and Barry Durand suggested the UPTIME program available for download free at www.allegro.com.

Q: I have a script that does a 'listfile {something},6' to a file. From there the output from LISTFILE is passed to the ‘finfo’ function. I was running this script where {something} was hfs notation for a regular MPE group and finfo failed. In this particular case (where the script failed), there are files, both in MPE and hfs name space, that are links to other files. Is there any way around this problem?

A: Mark Bixby replied:

The POSIX /bin/find command returns :LISTFILE,6 style output and will work the way you expect.

Q: I need to add a new DTC Printer Profile and spooled Printer LDEV on a production system. Is there any reason to be afraid of the dynamic DTC configuration stuff, or can I assume that it will at least not screw anything up (assuming the new LDEV I want to use is free)?

A: John Burke and Richard Bayly replied:

I've done dozens of printers and terminals this way without problem. You are correct that the LDEV must be "free" - if the DTC definition already exists then this is usually simple. Note that to remove a printer configuration dynamically, you need to stop the spooler first to free up the ldev.

Adding a DTC dynamically can be a challenge if vt and telnet sessions are using some ldevs in the range of ldevs you want. In this case just wait for a "quiet" time or pick a range of ldevs above anything being used.

Dynamic Configuration in NMMGR has been around since the introduction of MPE/iX 5.5 and does work well assuming there are not pre-existing problems with the network. After you make the changes in NMMGR and Validate DTS, NMMGR will automatically apply the changes for you if you choose, or you can wait until later and use DTCCNTRL.

If you want to be safe, then you can copy nmconfig.pub.sys before making the changes, and if a problems occurs, copy the old file back to nmconfig, 'Shutdown DTS' in DTCCNTRL and 'Restart DTS' in DTCCNTRL.

Q: We have a Mirror/iX disk environment without an online backup solution. We are currently taking the system down for nightly backups, which take up to 5 1/2 hours for full backups. I'm thinking of changing the system to stop the mirror, back up from the secondary disks without taking the production system off line and then letting the disks re-sync after the backup. Will this work? Does anyone have any Pro's, Con's or otherwise to suggest?

A: Bob Thelen, Ron Burnett and Ted Ashton replied:

We do this and a quite happy with it. You do have to get users off the system to break the mirrors of course (vsuser <volsetname> is handy to tell us what's using that set, then vsclose <volsetname>;split). But they can get back on as soon as you've split the mirrors.

The only real problem is the performance penalty during resynchronization. The resynchronization is in fact a complete rebuild of the mirror and that places a tremendous burden on your disc i/o channels. You also need to construct your backup job with care so that it can handle any exceptional conditions.

Q: I have a LaserJet connected serially via DTC. I would like to also connect it via network printing as a different ldev and name. Is this possible?

A: Donna Garverick, Wayne Boyer, John Burke, Wirt Atmar and J Hurzeler replied:

This should work in most cases. We've all done it. The only problem might be if you are planning to use an external JetDirect box connected to the printer's parallel port. You might not be able to use both the serial and parallel ports simultaneously on older Laserjets. If it is an internal JetDirect card it should work just fine on any model LaserJet.

Q: Is it possible, using pattern matching in Query, to find records where a particular character position in a field does not contain a particular character, such as a blank?

A: Paul Scott replied:

You can do something like >FIND NAME NOT MATCHING "???b?*"

Q: In one of our batch jobs we execute many Posix commands from the shell. Sometimes it doesn't work, aborting at ANY command with a "cannot fork" message as shown below:

/etc/profile 93: tabs: cannot fork: Resource busy, try again
/etc/profile 93: tabs: Internal error: j_close: no processes

What kind of resource might be busy? How can we check what is the cause?

A: Mark Bixby and Danny van Delft replied:

The most common cause of fork failing with resource busy is a lack of sufficient contiguous free disk space. Use DISCFREE to check if that is the cause.

Q: I'm trying to improve our backup time and am looking for a few opinions. Can someone tell me of any potential pitfalls or problems when using the INTER option during a STORE command?

A: Mark Bixby replied:

The INTER option should be avoided if you have lots of POSIX HFS files on your machine, because it causes HFS files to be written to the backup media in random order rather than following HFS directory structure. If you do a subsequent :RESTORE from this kind of backup, if a file is restored before its directory, the directory will be automatically created with default (and usually wrong) permissions.

Stan Sieler added:

INTER will create a tape set that is in general harder to restore, both for ordinary restores and for damaged tape restores. The speed reduction is probably not worth those costs.

Q: Just happened to notice our SCSI tape drive (7980SX) is no longer showing up on the system. I went back and checked console messages at boot time and found:

LLIO Error - subsys: 213, proc num: -49, error_num: -28
Leaving - System I/O configuration.
ERROR - LLIO device configuration error: -11

SYSTEM I/O AT BOOT TIME

The path 10/4/20.9.0 was configured but is not available.

ldev: 1 ST34371W configured available 10/4/24.6.0
ldev: 2 ST34371W configured available 10/4/24.5.0
ldev: 6 HPTCPJD configured available NONE
ldev: 7 HPC1533A configured available 10/4/20.0.0
ldev: 8 Not added to configuration; LLIO device configuration error: -11

A: Bill Cadier replied:

This problem might be described in service request 1653-164749. This SR states that 7980SX's produce this error after a reboot where the system has been powered down. It states that the problem can also occur if the device itself is power cycled if the system is down. Subsequent reboots (with no power cycle) appear to clear up the problem according to the SR.

The problem was resolved by a new rev. of firmware 8.67 and this was back in June of 1998. FYI, the error -28 from procedure -49 is a time-out during device binding.

[Editor's note: I've seen this very same error and can confirm the situation that produces it and that a subsequent reboot clears up the problem.]

Q: How do I configure the HPe3000 so that if I STREAM a job while logged into the account that the job is STREAMED from, I am not required to supply the password to the ACCOUNT and GROUP?

A: Gary Jackson and Ron Horner replied:

From OPERATOR.SYS type in the command JOBSECURITY LOW;PASSEXEMPT=MAX

Q: Would someone care to share how they are managing their syslog log? Mine is really big and I know I should do something with it.

A: Tom Brandt and Cory Black replied:

I have a process which, once a week when everything is quiet, shuts down JSYSLOGD, renames syslog.log to syslog.log.<date>, and restarts JSYSLOGD. Every once in a while, I clean out old copies of syslog.log.<date>.

Q: I want to find an X type item using Query that contains a particular string that includes several " characters and replace the string with another string that also contains the " character.

I can find the items OK, but when I do the REPLACE how can I specify the " character several times?

REPL ITEM2='STARTTEXT,Find "K<00000,0>"' where the ' should be the " Query expects and " is the " I want in the string.

A: Doug Werth and Roy Brown replied:

Use double quote marks to substitute the quote mark into the string. Continue to put quote marks around the entire string. This will look kind of strange because you want a quote mark at the end of your string so you will actually have three quotation marks - two of them to indicate a quote mark and one as a delimiter.

REPL ITEM2="STARTTEXT,Find ""K<00000,0>"""

Q: Is there a simple way to require users to change their password on a periodic basis, for example, every 180 days?

A: Many people responded to this:

You can not do this within standard MPE/iX. HP sells an add-on security product that will do this. Several third party vendors also sell products that include this feature.

Q: If I do this:

:PRINT <circular file>;START=-2;END=-2

I get the error msg "END= record number has been ignored. (CIWARN 9084)" MPE/iX interpretation:

"An invalid ending record was specified. Evidently, you specified zero as the record number to stop printing it."

Anyone know how to print the second-to-last record of a circular file?

A: Jeff Vance replied:

I did some digging and it is a bug. PRINT calls the FFILEINFO intrinsic to get the device type. PRINT expects device types of 0,1,2,3 to be disk files. Guess what? The device type, returned by FFILEINFO for a CIR file is 4. I patched the code (on a test system) to handle 4 and ":PRINT cir;end=-2" works fine.

I don't know if FFILEINFO is returning the correct device type (4), and thus the bug is in PRINT, or if FFILEINFO should be returning a number in 0..3. At this point I don't have a work-around.