What's Up DOCumentation Robelle Consulting Ltd. 8648 Armstrong Rd., R.R.#6 Langley, B.C. Canada V3A 4P9 Telephone: (604) 888-3666 Telex: 04-352848 Fax: (604) 888-7731 Date: August 25, 1988 From: Robert M. Green, President David J. Greer, Research & Development Michael C. Shumko, Customer Support To: Users of Robelle Software Re: News of the HP 3000, 1988 #5 What You Will Find in This News Memo: News Tidbits SUPRTOOL Performance On MPE XL Version 1.1, Part I Technical Tips TurboIMAGE XL Squeezing the Last Bit From Your HP 3000 Final Installment: Use One CPU Per Problem About Robelle Robelle Products: Problems, Solutions, and Suggestions News Tidbits Exciting Contest. See the About Robelle section. One Rumor Right, One Rumor Wrong. HP will not announce a 915 as incorrectly predicted here. HP did have a smaller Spectrum ready to go, but decided to cancel it at the last moment. Bradmark did announce US distribution of SI-IMAGE, as predicted here, but they have changed the name to Superdex (competes with Omnidex). Adager Moves to Sun Valley. At a June users group meeting in Vancouver, B.C., Alfredo Rego announced that the Adager business office is moving to the USA. Even bigger news is the availability of a toll-free support line, 1-800-LDD-REGO (Long Distance Dial REGO). Product Update: Kelly Ramdisc. In a previous news memo we pointed out Kelly's Ramdisc/3000, which allows you to install up to 120 Mbytes of memory on your HP 3000 backplane and treat it as a disc drive. This can dramatically improve speeds for things like sorts, compiles, preps, 4GLs, etc. Since then, Kelly has made some improvements in the Ramdisc. The contents of the Ramdisc are now protected during power or system failure (they recommend a UPS if you plan to put critical data on the Ramdisc, since the batteries only protect it for 15 minutes). They now allow you to put specific datasets of a database, the ones most heavily accessed, on the Ramdisc and leave the rest of the database on the rotating disc. This product can be a real lifesaver for overworked Classic 3000s (it appears to work on most models). For more information, telephone (415) 960-1010. P.S. If you are having trouble getting memory boards for your 950, Kelly is another source besides HP. VESOFT Sales Triumph. MPEX has achieved 50% market penetration in Cameroon, Africa. That's right - it's on one of the two cpus. P.S. VESOFT is hosting another GLUG seminar by Gilles Schipper on Effective System Management, November 14-15, $500. Well worth it. Call (213) 282-0420 to reserve a seat. SUPRTOOL Performance On MPE XL Version 1.1, Part I In June 1988, we were able to test the latest version of SUPRTOOL on the new version 1.1 of MPE XL (x.11.50) in Cupertino at the Software Evalution and Migration Center (SEMC, now called Technology Access Center). We ran a series of performance tests, including such functions as copying a disc file, extracting from a database, and varying blocking factors. This issue we will report our results for copying a disc file; in future news memos we will report the other test results. In January, 1988 we tested SUPRTOOL on the original release of MPE XL, copying a disc file with 68,000 records (80 bytes each), blockfactor 16, moving 19 blocks per read and write. We re-ran these tests on MPE XL 1.1 and here are the results (all times are in seconds): MPE XL 1.0 MPE XL 1.1 Cpu Elapsed Cpu Elapsed SUPRTOOL 3.0 (CM) 6 28 5 19 SUPRTOOL 3.0 (OCT) 6 27 5 19 MPE XL :COPY (NM) 6 21 As you can see, the new MPE XL reduced the Cpu time by 17% and the Elapsed time by 32% over the base release of MPE XL. The CM SUPRTOOL (Compatibility Mode) was the same speed as the OCT SUPRTOOL (Object Code Translator). We believe that this is due to that fact that SUPRTOOL file copies use so little internal cpu resources; you will see in later tests that the OCT SUPRTOOL can be much faster in certain cases. Finally, note that both versions of SUPRTOOL equaled the performance of the built-in :COPY command of MPE XL, which is in Native Mode! Technical Tips SUPRTOOL With QUIZ. There is an excellent article on page 151 of the August 1988 issue of INTERACT magazine. In this article, Tim Cahoon of Federal Mogul Corp. shows how to combine SUPRTOOL with QUIZ, using the best features of each. As Tim says, "Since QUIZ is excellent for writing reports and SUPRTOOL is unbeaten for extracting data, you can significantly reduce your batch processing time by combining them." XP Disc Drives and MPE XL. MPE XL makes no use of the caching on the XP versions of the Eagle and 7933 disc drives. There is no published date to correct this and HP is not offering any rebate for the XP option. [John Welsh] HP Quick Reference Card. HP has a quick reference card for the HPPA Instruction Set, part number 09740-90027. Reports and PCs. I heard a good idea for improving nightly batch work in Rolf Schleicher's Orlando talk. Instead of producing large reports on your system printer, then waiting for bursting, sorting and delivery to the end user, why not have your batch job download to each user's PC the exact data of interest to him? Then you can have the PC produce the report on his local PC printer. Immediate delivery, first thing in the morning! Stackdump on MPE XL. Eugene Volokh did not like the Native-Mode stack trace that is produced on MPE XL, but he found that the :SETDUMP command has new options that allow you to specify any System Debugger action at all to be invoked if your program aborts. For example, this command forces a CM symbolic trace using the FPMAP information: :setdump ;debug="cm;tr" MPE XL File Layout. MPE XL does not lay out files the same way as MPE V. Blocks do not have to start on sector or page boundaries, so there is no wasted space between blocks. If you create a file with an odd-byte record size on MPE V, there will be a slack byte inserted at the end of each record. Not so on MPE XL. Of course, when you read the files through the intrinsics, MPE XL re-inserts the wasted bytes so that the file will look right! Creating MAC Files With SUPRTOOL. John Calvin at the City of Mountain View wanted to download 10 Mbytes of data to his MAC II so that he could build a map of the city that people could point to when they needed information. Unfortunately, his MAC II database took 5 hours to massage the data into the format required by the graphics program. All he needed was a TAB character between each field and a RETURN at the end of each line. SUPRTOOL can do the extract in just a few minutes, inserting the TAB characters as follows: >extract field-one,"",field-two,"",field-three You just include a literal TAB character in quotes between each field. If you download this to the MAC II as an ASCII file (not a BINARY file), it will end up with a RETURN/LINEFEED at the end of each record. TurboIMAGE XL Mark Klein of DIS International was a project team member for the Native-Mode version of TurboIMAGE. Mark published his experiences in the BARUG proceedings: TurboIMAGE XL: The Anatomy of a Successful Migration, copyright DIS International, 1988. TurboIMAGE contains about 70,000 lines of SPL code distributed over 60 source files, making heavy use of split-stack mode, option internal procedures (which were duplicated across segments), and assembly code. A project manager, eight engineers, and two contractors did the TurboIMAGE conversion to native-mode in six months. How did they achieve this impressive record? The project involved a dual migration. All the SPL code was converted to SPL II (an internal language in the HP Labs). At the same time, the language lab produced a modified version of SPL II specifically for compiling TurboIMAGE into Native Mode; this new compiler was called PSPL. The language lab also developed a modified SPL/V compiler that disabled non-portable aspects of the language (e.g., split-stack mode and many address calculations). Phase I of the migration involved rewriting all assembly language routines and removing all address arithmetic. In SPL, addresses and offsets are used interchangeably. This is not the case when you switch to the byte-addressed HPPA architecture. Most of this conversion was done on Classic HP 3000s. Mark says: "Converting all of the code to high-level SPL essentially unoptimized it for performance reasons on the 16-bit machines. That was acceptable for our purposes since we were only shooting for the ability to pass the [Classic] test suite in preparation for the actual migration. The Phase II migration was where any optimization could be performed if needed, especially since what is optimal for HPPA is quite different from what is optimal on the 16-bit machines." In split-stack mode, addresses and offsets are identical; both are relative to zero. TurboIMAGE XL doesn't use split-stack mode; mapped files are used for all control blocks. This produced most of the conversion problems: "The biggest gotcha turned out to be some of the internal tables that we used. Since pointers to pointers and arrays of pointers are not allowed, certain control structures contained offsets that really turned out to be addresses. Others contained what really amounted to offsets. What's the difference? In the old structure, not much - all the addresses were zero-based and therefore for all practical purposes, they were one and the same. However, on HPPA using mapped files, these addresses were actually a base + offset, the base being the virtual address of the start of the control block within the mapped file and the offset being the number of bytes into that control block. It took some manual inspection to determine which `indices' were just that and which were actually addresses. We also had to be careful when using the index that the base address to which the index was to be added was properly established. On the other hand, it was determined that any pointer would contain a full virtual address, thus allowing the area to be referenced regardless of where the base address was pointing. Ultimately, it was decided to use addresses wherever possible. A side benefit of this is that the control blocks are no longer limited in size by that dictated through the use of 16-bit addresses. Theoretically, individual control-block size is limited only by available disc space. Larger data bases and applications could be handled by TurboIMAGE XL." At the database round table at the users group meeting in Scarborough, England, there were a few more tidbits on TurboIMAGE XL. DBFIND and DBGET Mode-7 are no longer single-threaded, performance is 1.7 - 3.5 times faster than a Series 70, and TurboIMAGE XL is much faster in MPE XL Version 1.1 (at least according to HP). In England, there is great interest in SQL, and HP claimed that HP SQL XL now has 60% of the performance of TurboIMAGE XL (in 1.1). Squeezing the Last Bit From Your HP 3000 Part Seven: Use One CPU Per Problem We have done an informal survey of large HP shops to find out how the successful ones avoid topping out the HP 3000 line. Most frequently mentioned was: Use One CPU Per Problem. How do you add CPU power to a 3000 when you already have a Series 70? Use one CPU per problem, or application, or department. Don't try to crowd everything onto one computer. Instead, use a separate CPU for each major application, or give each department its own machine. That way, you make each application independent of the problems in other applications. If the Payroll application is a hog, there's no reason for the Accounting users to suffer. Using separate machines also allows you to tune each machine for its own application. `Distributed processing' was the strategy most frequently mentioned in our survey of successful sites. Most give programmers their own machine. Boeing. At Boeing, one of the large manufacturing systems has an `update' machine and an `inquiry' machine. The `update' machine has 150 users updating the database. No uncontrolled inquiries or reports are allowed on this CPU. The `inquiry' CPU has a copy of last night's database from the `update' CPU; on this machine they allow people to make inquiries and to run QUIZ. HealthPlus of Michigan. HealthPlus of Michigan provides heath care services using a Series 70 with 52 sessions for all data entry, and a Series 68 with 30 sessions for all on-line inquiries and reports. They use Silhouette to keep the inquiry database current, and a Series 48 is reserved for all program development. Word processing is done on two stand-alone Series 37 machines. Longs Drugs. Longs Drugs, a large west-coast chain of drug stores, has 200 HP 3000s. An extreme example? Not really. True to the distributed processing ideal, each store has its own Series 37. These handle the main pharmacy applications, keeping track of prescription stock, filling orders, and checking for dangerous drug interactions. These Series 37s can use dial-up DS to exchange information with the head office Series 70s; otherwise, they're stand-alone machines. Every machine has a Console Engine to let the head office know when problems occur. (In fact, the Console Engine was initially developed for Longs Drugs.) At the head office, Longs puts separate applications on separate machines. For instance, all the Personnel applications are on one Series 70, the Accounting applications on another. Development is done on a separate machine again. Another Example. Consider another example, a company that sells supplies. They have 18 HP 3000s spread all over the world. Before the MIS manager went to work there, his philosophy was always `get a bigger machine'. Then he went there, and they have a philosophy of `getting the data down to the users'. So they have 3000s everywhere; every warehouse has its own small HP 3000. They were having a problem with FA/3000: they gave it its own Series 58. They don't even have a Series 70, and aren't budgeting for one until fiscal '88. Tools. If you go this route you'll want to make sure that you have the proper tools to manage the network of machines properly. One useful tool is for routing spool files from one machine to another conveniently. Unispool from Holland House is one example of this type of tool. It allows you to have an expensive peripheral like a laser printer connected to one machine, and have more than one computer send output to it. RSPOOL, from the contributed library, will duplicate spool files across a DS line. RSPOOL creates a remote session, runs a remote program to generate the remote spool file, and purges the original spool file. The price is cheap, but Joe Ballman of Textron Marine warns that RSPOOL eats up the LAN and consumes over 3% of the cpu. $Stdlist Management software (now called Job Rescue) from NSD can also help; it checks spool files for error messages. This lets the computer look for problems itself, allowing the users to get on with their own work instead of baby-sitting the computer. If you set up a machine in a user department for unattended operation, you'll still have console messages to contend with. The Console Engine from Telamon attaches to the console and looks for specific conditions such as system failure messages, error conditions, and that sort of thing. If it sees that the system has run into some trouble, it can either take action on its own (a `pseudo operator') or it can dial the head office and notify the system manager. Resist getting a bigger machine. You can always have that in reserve if you get in trouble. Get another machine instead. Dexter Shoes manages one million open items, one million inventory items, six shoe factories, over 50 retail outlets, and numerous wholesale clients with a network of six Series 40s. The key advantage that system managers see to the "one cpu per problem" philosophy, in addition to never `topping out', is that you can push the machines into the user environment. You don't have to have a giant MIS. And when the machine is slow, it's because the users are running heavy QUIZ reports. There are only a dozen users, so they can observe and figure it out, whereas on a Series 70 with 180 users, even the system manager doesn't know what's causing the problem. So you break it into smaller problems. Each machine is less complicated, and we would guess, has fewer problems. You will pay a little more for maintenance and raw horsepower, but you should be easily repaid in better user service. "BUT WHAT IF MY APPLICATION IS AN INTEGRATED SOLUTION?" "I know that I should use distributed processing, but my application is an integrated system. All of the modules access common databases and I don't have time to rewrite it." Or, "I bought the package and I don't have the source code." AutoNet. Karl Smith of Softsmith has developed an ingenious, simple method of distributing an integrated application over several HP 3000s. Compaq Computers started in business a few years ago. To manage their manufacturing work, they used ASK's MANMAN system over dialup lines to a time-shared Series 42. Within weeks they had their own machine, then two, and so on. Their growth has been so dramatic that they have never had the time to customize ASK's programs -- they use them "as is". Compaq now runs its entire company on a network of 900 PCs and seven HP 3000s (no IBM mainframe). When their processing needs for MANMAN exceeded the power of a single Series 70, Tom Callaghan hired Karl to program a solution. Tom wanted to be able to spread the databases and files of the integrated MANMAN application over more than one HP 3000. Karl wrote an SL routine to intercept all calls to the FOPEN intrinsic. His routine, called Global FOPEN, checks the user's desired filename against a table of remote file-set names. If it doesn't find a match, Global FOPEN calls the real FOPEN. If it does find a table entry for the filename, Global FOPEN automatically gets the user a remote session with the same logon as his local session (unless he already has one), and calls FOPEN for the remote file. With this method, Compaq can easily distribute the ASK MANMAN package across several machines, with no changes to the application. Karl advises that there be a logical split in the application, where files may be moved. In the case of MANMAN, the three major components are purchasing, manufacturing and physical inventory. Users logon to the machine which contains the component they are interested in. This ensures that most of the database access is local, with only occasional access to files on the other systems. For more details, contact Karl at (713) 890-4182 and ask about "AutoNet". Reflecting Mirror Images. Miles Gilbert was designing a new Accounts Receivable system in Transact for Dexter Shoes. Unfortunately, the people responsible for names and addresses were in Boston and the people responsible for transactions were in Maine. How could Miles put the data near the responsible users when both groups needed access to all of the data? First, Miles split the database in two: names/address versus transaction. Then he put a Series 40 in each location, with both databases on both machines. The users in Boston maintain the name/address database and have read access to a copy of the transaction database. In Maine the users maintain the transaction database and have read access to a copy of the Boston database. Each site has a mirror copy of the other's database. To keep the mirror databases in sync, Miles runs Silhouette in both directions betweeen the sites. Silhouette transmits name/address changes from Boston to Maine, where it applies them to the mirror copy of the database. This keeps Maine updated to within a few minutes of real-time. Silhouette also transmits transaction changes from Maine back to Boston, where they are updated to another mirror database. Each site has all the current information, has control of its own data, and provides emergency backup for the other site. About Robelle The Robelle Prize. Robelle Consulting Ltd. and Interex announce a contest for the best contributed program of the year, with a prize of $2500 US. Contributions must be submitted to the Interex Contributed Software Library, not to Robelle. Contributions from the Orlando Swap tape through to the Brussels Swap tape will be eligible. The criterion for winning is "most incremental value to the HP 3000 installed base." The Interex Contributed Library Committee will narrow the field down to ten finalists. Then Robert Green of Robelle will select the winner. (No Mike, Robelle employees are not eligible to win!) The winner will be announced during the San Francisco Interex Conference in September '89. If you win, you will receive $2500 US cash (if that causes a problem with your boss, you will receive the equivalent in HP equipment, or have your attendance at the next conference paid), and more importantly, Robelle and Interex will make you famous! Fax Number. Robelle now has a FAX machine that can accept messages 24 hours a day, unless the power fails. The number is (604) 888-7731. P.S. In Orlando, STR Software was pushing FAX/3000, a product that allows the HP 3000 to transmit text messages out via a FAX machine. Now all they have to do is figure out how to accept FAX and convert it to text! Robelle Products: Problems, Solutions, and Suggestions SUPRTOOL Version 3.0 Integer Overflow in System SL. In UB-MIT through V-Delta-1, SUPRTOOL can abort with an Integer Overflow in the System SL. This is due to a bug in the DLSIZE intrinsic, and can be corrected by installing MPE patch V029. Many thanks to the Response Center for tracking this down for two of our users, one an HP internal site and the other one in Denmark! Checking for Empty Files. You can use SUPRTOOL to check whether a file has records in it, then skip the report phase when the file is empty. [Giancarlo Zappala] :run suprtool.pub.robelle >input file >numrecs 1 {limit time if not empty} >output $null >exit :if suprtooloutcount > 0 then {process the file} NODUPKEY Bug. Version 3.0 has a serious bug. The NODUPKEY option of the output command doesn't work when one of the sort fields is not included in the list of extracted fields. $LOOKUP On Zoned Fields. The $LOOKUP feature for searching tables works only on BYTE type fields, so if you have a Z-type field you must re-DEFINE it as BYTE. >define tfield,customer-number,byte >table cust-table,tfield,FILE,extrtfle XPRESS Version 2.5 Under certain versions of MPE, such as V-Delta-2, an XPRESS bug surfaces when you send a message to a printer. The symptoms are "Unable to access the XPRESS logical device" and a strange MPE error message about labelled tapes. Here is a patch to fix the problem: :hello mgr.robelle,mail :rename xpress,xpress {to verify no one in it} :run patch.pub.sys Filename? XPRESS ?m,6,3411 001004,002004 ?Return QEDIT Version 3.6 FORTRAN 77 Patch. The FORTRAN 77 compiler will not read temporary files, so you cannot compile QEDITSCR. Here are patches for two versions of FORTRAN 77: Version A.00.10 Version A.01.01 ?m,32,7270 ?m,32,10054 041403,021003 041403,021003 These patches are courtesy of E.A. Kilroy, who also points out that V-MIT versions of FORTRAN 77 required the FTN2 program to be in Q.ROBELLE if the FTN program was there. If you don't have one of these two versions of FORTRAN 77, you can still compile QEDITSCR using this UDC: ftn77 text=qeditscr,uslfile=$newpass,list=$stdlist,info="" file ftntext=!text file ftnlist=!list file ftnusl=!uslfile run ftn.pub.sys;info="!info";parm=7;qinput=ftntext reset ftntext reset ftnlist reset ftnusl if jcw < fatal then echo end fortran compilation else echo fortran compilation aborted endif **** COBOL II Problems. One customer has been having strange problems with his COBOL II compiler. It seems that his program calculates numbers 100 times larger than it should, until he adds an unreferenced 14-byte data item into his working storage. Then the program works fine. In an effort to resolve the problem, we are soliciting other weirdo COBOL II problems that magically go away when you insert a line. QEDITSCR Problems. When QEDIT starts to act weird, refusing to Text files, check for problems involving QEDITSCR. Look for: a file command for QEDITSCR; a permanent file named QEDITSCR that isn't in QEDIT format, etc. V-MIT and TRANSACT. The TRANSACT compiler now reqires MR capability. If you use the segregated installation method, you must alter the capabilities of the Q group of the Robelle account after using Qeditj1a.Job.Robelle: :hello mgr.robelle :altgroup q;cap=ia,ba,ph,ds,mr,pm 700/92 and VEMODIFY. VEMODIFY uses Control-S (^S) for two functions (scan and shift), but if you have your 700/92 configured for XON-XOFF pacing (Send and Receive), the terminal will freeze when you type ^S. Solution: disable pacing. QLIB Version 4.7 DESKQED. DESKQED requires the temporary file QEDITSCR. If you have this file open in QEDIT, invoke HPDESK, then try to edit a message, DESKQED will fail. Your original message will remain unchanged in HPDESK and the following message is printed: To edit a message, QEDIT needs the file QEDITSCR. This file is already open. Return to QEDIT and /shut this file before editing a message in HPDESK. QHELP. QHELP had a bug that made it go into a loop if you misspelled a keyword. This was corrected in version 1.3 of QHELP. Prose Version 2.6 The Prose manual has been improved. <>