Previous Issue Index Next Issue


What's Up, DOCumentation? 1998 # 2

logo

April 1998


From:

To: Users of Robelle Software

Re: News of the HP 3000 and of HP-UX, 1998 #2

What You Will Find in This News Memo:






What’s New in Suprtool?


We are currently putting the final touches on Suprtool 4.1.01, which will be distributed to customers with support in the next few weeks. In the new features this year, we see increased performance of If $lookup extracts. These are some of the key new features:

  1. The Num option of the Duplicate command determines which keys to check for duplicates.

    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}
    
  2. Suprtool can now limit specific users to read-only access. In read-only mode, the Delete, Put and Update commands are disabled. To ensure that this setting stays enabled, it is not reversible for the duration of the current Suprtool session.

  3. Suprtool now allows usefiles to be nested up to 10 levels.

  4. New IMAGE SQL features:

    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.

  5. Performance improvements:

    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.

  6. Year 2000:

    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.

[Neil Armstrong]



Up to Table of Contents


Suprtool Training Schedule


Want to learn more about Suprtool? We’ll be offering training at Robelle’s head office on May 28 - 29 and October 15 - 16.

To arrange Suprtool training at your site, call us at 1-888-762-3553.



Up to Table of Contents


One User’s Solution to the Year 2000 Problem


A user told us how his company plans to implement Year 2000 capability in its databases and programs. They are using the following three-phase approach.

  1. Add new date fields to each dataset.

    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	35
    
    Add 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
        xeq
    
    This 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.

  2. Alter the programs to keep the new fields updated.

    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.

  3. Alter the programs to use only the new fields.

    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.

[Mike Shumko]



Up to Table of Contents


Using SmartDate in Year 2000 Solution


To facilitate the conversion from the old date format to the new, you can use SmartDate from Robelle in step 2 of the Year 2000 story above. SmartDate can automatically insert the century by using a cutoff year.

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.



Up to Table of Contents


IPROF ’98 or "What’s a Terabyte?"


As in previous years, the Interex MPE Programmers’ Forum last month in Sunnyvale, CA gets my vote as the best conference around. It’s three days of sessions, SIG meetings, tutorials as well as updates from HP lab techies and from a who’s who of the MPE community.

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]



Up to Table of Contents


Qedit for Windows Continues to Improve


We have just released the latest version of Qedit for Windows. As David Greer mentioned in the last issue of this newsletter, we have been putting our energy into the scripting language for an automated test suite. However, we also found some time to add a few nice enhancements.

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.



Up to Table of Contents


Surviving the Ice Storms


Freezing rain and ice storms are all part of winter in Québec. Every year we get at least one storm that significantly affects the landscape and the human activities in relatively small areas. Fortunately, they usually last only one day and the ice melts or falls away after a couple more days.

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]



Up to Table of Contents


HP World ’98 Early Registration


HP World ’98 will be held in San Diego, CA on August 2 - 6, 1998. If you want to take advantage of the early registration discount, you have to send your registration form before July 10, 1998.

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.



Up to Table of Contents


Inventory Reduction Sale on User Manuals


Now that everyone has received Qedit 4.6 and we are about to ship Suprtool 4.1.01, the manuals from previous versions (Qedit 4.5 and Suprtool 4.0) are on sale at a very attractive price. These manuals include the same subjects as the latest manuals, except for the enhancements introduced in the last versions. For information about the new enhancements, you can print a copy of the appropriate change notice simply by running Printdoc.Pub.Robelle.

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.



Up to Table of Contents


Technical Tip for STExport


STExport is the newest component in Suprtool. Although it was introduced more than two years ago, STExport is still fairly unknown. STExport allows you to format data from a self-describing file into almost any format you want, from fixed-length fields to HTML tables. You can control field delimiters, quotation marks, numeric and date formats among other things. You can export data from IMAGE SQL, Oracle or Allbase databases that reside on your HP 3000 or 9000 to just about any other platform, all without having to write a custom program.

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
    $xeq
In 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.log
where 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 file
It’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.



Up to Table of Contents


Qedit Removes Trailing Blank Lines


When I edit e-mail messages in Xpress, I use the following command file. Just before sending a message, I execute this file to remove any trailing blank lines.

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]



Up to Table of Contents


Screening Junk E-Mail


As an active Netizen for years, my e-mail address has made its way into commercial advertisers’ lists. I would prefer, however, not to receive unsolicited commercial e-mail (UCE), which, in my case, is handled by the Outlook Express program from Microsoft.

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.

example of message moving rules in Inbox Assistant

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]



Up to Table of Contents


SPAM vs. UCE


What is discussed in the Junk E-Mail story isn’t SPAM. SPAM is excessive, off-topic cross-posting of messages to Usenet newsgroups. When junk mail is directed through e-mail not newsgroups, it is UCE not SPAM.



Up to Table of Contents


Suprtool Changes Display Length


One of our customers wanted to extract a J2 field with List Standard, but the default column width for J2 is too wide for the screen and overflows to a second line. This customer wanted to specify a smaller width for the J2 field.

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



Up to Table of Contents


Comparing Two Files


Did you know that with every Suprtool or Qedit tape we include a free program that can compare files and note any differences? Simply set up a few file equates, then run the Compare program.

    :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 Run
The 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.



Up to Table of Contents


What’s Up, DOCumentation? Available in E-Mail


Are you tired of waiting for Robelle’s popular newsletter to make the rounds in your office? Would you like to receive our newsletter first, not last? Then send us your e-mail address and we will add you to our growing list of electronic mail readers. You’ll receive your copy automatically, without the wait.

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.



Up to Table of Contents