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
HPs 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 lets 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 divisions 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 Im full of it or goofed, or a horses behind, let me know. If something from these columns helped you, let me know. You can reach me at email@example.com.
Playing nice with Unix and NT Or, theres 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: Id 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 doesnt increase traffic speed but decreases the amount of traffic.
Just because you can put anything in IMAGE fields doesnt 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? Im 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. Ive 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:
Unknown device class. (CIERR 344)
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.
Heres 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 dont 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 NewsWires HiddenValue and net.digest columns and has more than 20 years experience managing HP 3000s.
Copyright The 3000 NewsWire. All rights reserved.