From:
To: Users of Robelle Software
Re: News of the HP 3000 and of HP-UX, 1998 #2
In the following example we sort by agent and by bill-date (in descending order), but only check for duplicates at the agent level.
>sort agent {sort by agent} >sort bill-date, desc {sort by date} >duplicate none keys 1 {only check the first (primary) key} >output agents {create roster of agents}
With the release of MPE/iX 5.5 Power Patch 4, IMAGE SQL has two new features: Master Dataset Expansion (MDX) and B-trees. Suprtool 4.1 supports these two new features.
In the native-mode version of Suprtool we have used some new data structures and techniques to remove the 15 MB limitation on tables. Before this release, Suprtool allowed up to ten tables with a maximum of 15 MB for all tables. In Suprtool 4.1, we increased the limit to 2 GB for each table.
We also found that the CPU and Wall time for extracts using If $lookup have decreased by as much as half. The biggest performance improvements were for large single tables. Improvements in performance vary depending on your current system load, the amount of available memory and the size of the tables.
For Year 2000 testing, Suprtool is now compatible with the following date simulation programs: Hourglass (from Allegro Consultants), Time Machine (from SolutionSoft Systems), and HP’s Setdate utility. A new Set Date Ifyy2000Error command has been added to control whether Suprtool considers dates with two- digit years an error when they go beyond 1999 during a relative operation.
To arrange Suprtool training at your site, call us at 1-888-762-3553.
The first phase is quite simple. For each dataset and for each date field, append new data fields to hold the century-equivalent values.
For example, you can start with a dataset that looks like this:
D-SECURITY Detail Set# 4 Entry: Offset USER-PASSWORD X8 1 TRANS-EFF-DATE X6 9 <<YYMMDD>> TRANS-EXP-DATE X6 15 <<YYMMDD>> SEARCH-TYPE X2 21 ACCT-DATE X4 23 <<YYMM>> PASSWORD X8 27 SECURITY-LEVEL X2 35Add fields for each of the date fields that cannot currently store the century, so that the dataset looks like this:
D-SECURITY Detail Set# 4 Entry: Offset USER-PASSWORD X8 1 TRANS-EFF-DATE X6 9 <<YYMMDD>> TRANS-EXP-DATE X6 15 <<YYMMDD>> SEARCH-TYPE X2 21 ACCT-DATE X4 23 <<YYMM>> PASSWORD X8 27 SECURITY-LEVEL X2 35 TRANS-EFF-CYMD X8 37 <<CCYYMMDD>> TRANS-EXP-CYMD X8 45 <<CCYYMMDD>> ACCT-CCYYMM X6 53 <<CCYYMM>>Initialize the new fields to some standard value, such as a blank or zero, depending on the data-type of the field. Then fill the fields with the correct century dates using Suprtool. For example:
get d-security update define trans-eff-cc, trans-eff-cymd[1],2 define trans-eff-yymmdd, trans-eff-cymd[3],6 define trans-exp-cc, trans-exp-cymd[1],2 define trans-exp-yymmdd, trans-exp-cymd[3],6 define acct-cc, acct-ccyymm[1],2 define acct-yymm, acct-ccyymm[3],4 extract trans-eff-cc = "19" extract trans-eff-yymmdd = trans-exp-date extract trans-exp-cc = "19" extract trans-exp-yymmdd = trans-exp-date extract acct-cc = "19" extract acct-yymm = acct-date xeqThis simple example assumes that all the dates in the dataset are in the 19xx range. It further assumes that all the dates are valid (e.g., there are no special date values such as all blanks, zeros or nines; special values should not be changed). If either of these assumptions is not true, then the Suprtool process would need to be different. Multiple tasks might be required.
The second phase examines all the code that puts or updates values to the date fields. Change the code that supplements putting or updating the new century fields (as well as maintains putting or updating the old date fields). This method allows for a safe, gradual change to all code on the system. (See also SmartDate article below.
The last phase changes all the code to reference only the new date fields (for instance, within the If statements). Once this is done, the old fields can be removed from the dataset.
SmartDate can also compare dates stored in different formats, without converting one of the fields to a common intermediate format (of course, SmartDate does this internally).
For more information about SmartDate, contact the sales department.
From HP, we heard that a Web server from Netscape Communications Corporation, Samba/iX, Java, Multiple Job Queues and Date Intrinsics will be bundled into MPE/iX 6.0. After that, look for massive changes to MPE that would allow file sizes of 1 terabyte or 1,099,511,627,776 bytes. The limit to these files is 2 gigarecords or 2,147,483,648 records. So if you need to create a global phone book, the HP 3000 will be ready for it. Of course you’ll need hardware to support this: 18 - 200 GB disk drives, disk arrays set with AutoRaid, and Fibre Channel Arrays. For backups you’ll need DLT Libraries, then high-end devices with backup speeds of 1 terabyte/hour by year 2000. The plans are for annual performance growth of 20% per year.
From the users, the forum offered tutorials on porting to POSIX, COBOL 2000, as well as various approaches to the Y2K projects and a great session on Java from Mike Yawn and Gavin Scott. Having done a lot of work creating small Java modules from the IMAGE intrinsics, Mike showed how to create Web applications that access your data. That led to a real showstopper of a demo from Synchronix, who converted COBOL code to Java applications.
Of course, there were also the HP round table events with complaints about compiler support, upgrade credits and NT printer support. In response, HP management showed it was listening and supportive.
All who attended felt the conference was very positive. The atmosphere was friendly and people were there to share information. The biggest impact was the amount of development in the MPE labs and within the user community. See you there next year.
[Paul Gobes]
Version 4.6.08 now keeps track of the last 15 host filenames entered (in the Open Host File dialog box). This should make it easier to open frequently accessed files to correct a typo in a long filename without retyping it.
Another enhancement allows you to sort the file list in the Directory dialog box in ascending or descending order.
If you are interested in upgrading to this new version, please call our technical support staff. If you have not tried Qedit for Windows, please call our sales department and order your free 30-day demo.
This year has been a little bit different. At the beginning of January, four severe ice storms in five days hit the area roughly delimited by the city of Québec to the east, Ottawa to the west, Montréal to the north and the Québec/US border to the south. The area hardest hit ended up with 100 mm (4 inches) of ice. Trees suffered serious damage and some forests have been devastated.
From the "human" point of view, many power lines were brought down. Thousands of wooden poles along the roads were broken in half. Even high-voltage steel towers collapsed as if they were made out of toothpicks. At the peak of the storm, there were more than 1.2 million households (approximately 2.5 million people) without electricity. Although the loss of power meant no lighting and cooking, most importantly, it meant no heating. In the middle of winter, this is really serious.
At the beginning of February, a month later, there were still close to 20,000 households without power. Whole towns had to close down. People had to move in with relatives, neighbors, or to official shelters set up in schools, city halls and community centers. Some people had a secondary heating system (wood burning stoves), something to cook on (you can only live for so long on cold cuts and sandwiches), propane or gas, a hot water tank, or a generator to provide emergency power and to save whatever was left in the freezer. Very few had all of these resources. If someone had two or more of these items, they lived in luxury.
People started to help each other with whatever commodity they had. Someone would trade wood in exchange for a hot shower or a hot meal. They would find new ways to bring relief and support to each other. Support came, not only from other regions of Québec, but also from across Canada and the United States.
Although these have been very stressful times, they have also been a time to recognize solidarity and how people can stand together against adversity.
Personally, my family and I were not hit directly. Some of our relatives were not as lucky. We were without power for 24 hours over a period of three days. I had to work off-line only one day when my Internet Service Provider (ISP) lost power. And for a little more than a week, my ISP operated on emergency power with somewhat limited services.
The storms have come and gone. A lot of work has been done to bring things back to normal. But now we are entering a new phase: roofs are still overloaded with ice, warm days are thawing the ice, and water is leaking everywhere. It is going to take a while before we evaluate the total impact. Mother Nature has found a new way to show us how fragile we (and the things we have built) are. It is not unusual to see her brute force in tornadoes, hurricanes and earthquakes. This time, it was just a rather gentle rainfall.
[François Desrochers]
Robelle will once again showcase its products in the exhibit area. Some of our staff will also be presenting a number of papers and tutorials.
For more information about the conference, contact Interex at 1-800-INTEREX or point your browser to http://www.hpworld.org.
If you need a large number of manuals, this may be a cost-effective way of getting them. The manuals for the current version are US$20 each. Now you can purchase manuals of previous versions at 50% off. Call us for details.
The example below shows how to extract data from an Allbase database on your HP 3000 and load it into an Oracle database on your HP 9000.
:run Suprtool.pub.robelle > {extract the data into a self-describing file} >open allbase employee.db humres >select * from humres.employees >sort department_no >output emp,link >xeq >export {invoke STExport} $input emp $output empfmt $xeqIn this example, we are using the following defaults: no heading record, text fields in quotation marks with trailing blanks suppressed, comma separators, and variable length columns.
Because the Oracle database resides on the HP 9000, you have to transfer the formatted file. Once the file is on the machine, you can use Oracle’s SQL*Loader to insert the data in the appropriate table. The command to run SQL*Loader is:
sqlload userid=username/userpass control=loaddata.ctl log=load.logwhere sqlload is the filename of the SQL*Loader program; userid is the username and password to connect to the database; control points to the file that contains the load specifications (shown below); and log requests SQL*Loader to write the various messages generated during the load operation, including error messages.
The control file should contain the following:
load data infile '/users/mike/oracle/data/empfmt' append into table employees fields terminated by "," optionally enclosed by '"' (employee_name, employee_number, status, address, city, province_state, country, postal_zip_code, home_phone_number, sex, social_insurance_number, hire_date, marital_status, spouse_name, monthly_salary, bank_name, bank_account_id, birth_date, title, department_name, work_phone_number, last_review_date, vacation_days)This list describes the elements in the file:
load data - the load command infile - the name of the data file append into table - the destination table insert - assumes the table is empty append - creates new rows replace - deletes existing rows before loading truncate - the same as replace fields terminated by - the character used between column values optionally enclosed by - the character used around text strings (employee_name etc.) - the column names, in the same sequence as the data fileIt’s as simple as that. There is a lot more you can do with STExport. Read the STExport section in the Suprtool manual and find new ways to exploit its power. If you have a minute, let us know what you did. We are always on the lookout for new, innovative ideas.
DELBLANK /l "~"(pat) last if qeditcount <> 0 then /zzq * setjcw cierror 0 continue /findupq "~"(pattern nomatch) if cierror = 900 then /zzq first else /zzq *+1 endif /dq zz endif[Mike Shumko]
Another Outlook Express user gave me the following tip for reducing the amount of junk mail that appears in my Inbox. This tip depends on the fact that most junk mail appears to be addressed to bogus e-mail addresses instead of directly to the person who receives it. (Usually it gets to you using the blind carbon copy (BCC) feature of e-mail.)
The solution involves creating a new folder for the e-mail that I want to keep and setting up the MS Outlook Express Inbox Assistant to move the messages from expected sources to that folder. Any messages that stay in my Inbox are almost certainly UCE, which I can safely ignore or delete.
In general, the filters catch messages in which the To address or the CC address has any of the common aliases people use for me (mike, shumko, mcs). Anything that is not directly addressed to me gets screened out. Most of the newer e-mail clients should have similar features to the Inbox Assistant.
[Mike Shumko]
You can use the numeric conversion feature of the Extract command to move the existing value to a temporary field with the desired length.
Define New-field, 1,, display {new display field with <numdigits>} Item J2-field, decimal, {original field has decimal places} Item New-field, decimal, {same decimal places as original} Extract New-field = J2-field
:file filea=ARES3.PAUL :file fileb=ARES22B.PAUL :file outfile=$STDLIST :run compare.pub.robelle Compare/iX/Copyright Robelle Solutions Technology Inc. 1991-1997, J.Miner 1978 (Version 2.5) Licensee: Robelle Solutions Technology Inc. [0] Compare/iX (Version 2.5) Match Criterion = 4 Lines ---------------------------------------- Mismatch: Line 7 of ARES3.PAUL.TECHSUP: > DATE: 07 Aug 97 Line 7 of ARES22B.PAUL.TECHSUP: > DATE: 04 Jun 97 End RunThe Compare program is installed by the Bonus.Job.Robelle job. If this job has not been streamed, it may still be called Compnm.Pub.Robelle. For more information on the options in the Compare program, you can use
:run compare.pub.robelle;info="?"or you can print the complete 20-page manual from the Printdoc program in Pub.Robelle.
Right now the electronic version of our newsletter is in a text-only format, but otherwise it has all the same great Robelle news, tips and technical information that you get in our printed version. Send your request to support@robelle.com.