| Front Page | News Headlines | Technical Headlines | Planning Features | Advanced Search |
  3k Associates Sponsor Message

February 2002

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

HP’s end-of-support announcement for the HP 3000 and the proposed HP-Compaq merger are still topics 1a and 1b up on 3000-L, but there was also plenty of other content, both whimsy and fact, during January. Some of the fact is presented below. As for the whimsy, there was reminiscing about the HP 2000 (it seems many people cut their IT baby teeth on the HP 2000) and an unbelievably long thread about a seventh grade algebra word problem. And let’s not forget the two threads about “2001, A Space Odyssey,” one exploring what Kubrick and Clarke meant and the other exploring what actually went wrong with HAL.

On a more sobering note, there was universal condemnation of the HP 3000 division’s floated proposal to charge for technical “How-To” migration Webcasts. Hopefully, CSY will take the suggestion that perhaps the HP 9000 and NetServer divisions should sponsor these Webcasts — since they have much to gain — and run with it.

As always, I would like to hear from readers of net.digest and Hidden Value. Even negative comments are welcome. If you think I’m full of it or goofed, or a horse’s behind, let me know. If something from these columns helped you, let me know. You can reach me at john@burke-consulting.com.

Playing nice with Unix and NT — Or, there’s more than one way to skin a cat

With the increased attention focused on migration strategies since November 14 comes increased interest in inter-operability. Even current 100-percent MPE shops are likely to be running a mixture of MPE and something else during any transition period. Thus, the following question and the answers take on increased importance: “I’d like something to happen on an HP 3000 (a command to run) when a file arrives in a directory. The command would take care of file deletion/renaming etc. Any suggestions?”

Michael Gueterman proposed: “If you are using Samba, you might be able to use the ‘magic script’ functionality. From the documentation: ‘This parameter specifies the name of a file which, if opened, will be executed by the server when the file is closed. This allows a Unix script to be sent to the Samba host and executed on behalf of the connected user. Scripts executed in this way will be deleted upon completion, permissions permitting.’”

From Alan Wyman: “We are currently using FTP from an NT box to the HP 3000. The NT box does a PUT and then a SITE STREAM command in FTP. The job then is launched to process the file and create a new file to send back to the NT box. The NT box is running a Java program to watch for the new file in the directory and does a GET when it appears. Not exactly what you want but it sounds like you have control of both sides of the process.”

Lars Appel: “In addition to the Samba ‘magic script,’ you might also use the print server functionality of Samba. Simply configure a ‘dedicated dummy printer’ in smb.conf and adjust the ‘print command’ to not invoke RawLP like done in the default case, but some shell command or script that picks up the ‘staged spoolfile’ and performs the desired processing. The Unix side would send the data with an smbclient similar to

$ smbclient ‘\\your3k\dummyLP’ -P -c ‘print some-unix-file’

“Your custom ‘print command’ shell script on the 3000 would also have to take care of returning the resulting file back to the Unix side (e.g. by FTP or using a similar smbclient trick).”

A switch in time saves ... retransmits

In the last year or so, the cost of network switches has come down so much that it is practical for many of us to put in a switch where formerly we would put in a hub. The question though is why is a switch more desirable than a hub? Denis St. Amand gave this nice explanation:

“When a hub receives data (a frame) on one port, it repeats it on all other ports. A switch has some intelligence built-in. For example, a level-2 switch maintains a table associating MAC address with port. When receiving a frame, it looks at destination MAC address and sends it only where it should go. This reduces amount of traffic on each port, thus reducing possible collisions, which would require the retransmit of one or more frames. So, a switch doesn’t increase traffic speed but decreases the amount of traffic.”

Just because you can put anything in IMAGE fields doesn’t mean you should

Here was the question: “Does anyone know of any undesirable side effects of storing the ASCII 0, NUL, in a field in an IMAGE dataset? I’m looking to use it or another ASCII character as a logical separator in free form text entry.”

Many people correctly said that IMAGE does not care what you put in an X field. However, it was also pointed out that many reporting tools, including QUERY, might give undesirable results if you use nulls in X fields. I’ve often used the vertical bar “|” as a separator because it is not normally used in text and it displays nicely. Other people suggested an escape sequence. What you use is up to you, but null is probably the worst choice. Brian Duncombe suggested another reason to avoid using nulls: “If you have people writing code to access your database using a language such as C, which normally treats character data as NULL terminated strings, then they must be extremely careful. They will get truncated data if they use the common string functions or treat the item as a char string.”

Ah, what a tangled web…

When using a file equation with the dev= parameter, it appears that sometimes the system validates the value and sometimes it does not. Consider the following:

:file t;dev=LP



Unknown device class. (CIERR 344)


:showdev 1baddev


Logical device class “1BADDEV” cannot be found on the system. (CIERR 1583)



Unknown logical device. (CIERR 345)

Jeff Vance explained: “I looked at the code and the FILE command calls GETDEVINFO, which calls an internal routine named ATOB, which converts ASCII to decimal. ATOB() stops its scan at the first non-numeric character. The resultant value is then used for a validity check. In the case of “1BADDEV”, most systems have an ldev 1, so it passes; while ldev 12345 is unlikely to exist and therefore gives the ‘Unknown logical device’ error. It is a bug, but appears to have been in place a long time.”

To this someone responded: “There should be a consistent set of rules for what is a ‘valid’ device class name and what will be accepted as a (potentially) valid LDEV number.”

Here’s where the tangled web comes in. Jeff Vance again: “This seems perfectly reasonable, but I was involved many years ago in cleaning up some of this code. We enforced stricter parsing rules specifically for DEV= and broke Netbase, which embedded remote machine info into the DEV= parm. We had to undo our “fix”. Also, the FILE command is a mixed bag. Most of the parameters must exist on the system, but some don’t need to. For example, :file a=b works fine even if B does not exist at the time the file equation is created. :FILE was not originally designed to be an LDEV checker etc., but has been used very creatively by our customers for so many years that there is a fair chance of breaking something if we alter its parsing rules.”

John Burke is the editor of the NewsWire’s HiddenValue and net.digest columns and has more than 20 years’ experience managing HP 3000s.

Copyright The 3000 NewsWire. All rights reserved.