Click here for Robelle sponsor message
A Prescription to Quick
Year 2000 Compliance
Millennium Rx helps buy time to bring
more applications in line for the century shift

Millennium Rx

Millennium Rx version 980111
Redstone Technologies, Inc.
4786 S. Olathe Way
Aurora, CO 80015
Phone: 888.766.7610
FAX: 303.766.3223

Millennium Rx comes with a stand-alone sort and extract utility that can be used to test your configuration or used as a general purpose high-speed sort and extract tool. You also get the intercept libraries, which will handle all of your bridging and windowing needs for retrieve, putting, updating, and sorting data. The intercept libraries have the nice side effect of speeding up the sorting of programs that run through them, sometimes by a very large amount.

Millennium Rx runs on all HP 3000 Series, Classic or Spectrum. The software price is tier-based ranging from $3,765 to $18,900 for Model II, which includes both windowing and bridging. Model I includes only windowing and is 25 percent less. Discounting is available on multiple CPUs. Support is 15 percent of the purchase price per year and includes phone-in and electronic support as well as new releases of the software. All prices are in US dollars.

Review by Shawn Gordon

As I write this, there are about 570 days left till the year 2000. Every day I run into another company that hasn’t even started dealing with this issue yet. Fortunately for many of these companies, there are more and more products coming out that either help them make the conversion more quickly, or buy them some time to finish.

Millennium Rx (MRX) is a product that will help buy you time, or possibly avoid making the change. What MRX does is provide intercept software for doing date windowing or bridging. It also handles all of the date-dependent sort scenarios that can arise.

What are date windowing and date bridging? Windowing allows you to specify a pivot year, something like 1970, so that any years between 00 and 69 are assumed to be in the century 2000, and 70 thru 99 are assumed to be in the century 1900.

The big trick here is to make sure that your sorting comes out correctly, and this is one of the things that MRX does for you. It automatically handles the manipulation of dates for sorting purposes when used with a pivot year.

Date bridging involves converting dates from one format to another on the fly. So let’s say your databases are in YYMMDD format, but for extraction and reporting they need to be YYYYMMDD. You create a bridge filter which converts date values as one file is copied to another, and a bridge wrapper which converts date values as records are written or read by an application program. The wrapper technique allows separate programs to have different views of the same physical data. One program will see a two-digit year, and another a four-digit year. This allows converted, and non-converted programs to run simultaneously.

A nice side benefit of MRX is its sort utility. This is used internally to make sure that your reports come out in the correct sort sequence when using windowing and/or bridging. The best part is that the MRX sort utility can be up to four times (or more) faster than TurboSort on the HP 3000.

How does it work?

MRX comes with both NM and CM trap libraries in the form of an XL and an SL. You need to direct your code through the libraries so that it can cross-reference your application against the configuration and determine what kind of changes need to be made, if any, to the dates.

Command files are included that will do the LINKEDIT..ALTPROG to attach or detach the MRX libraries, but for CM code you will have to copy the SL into the appropriate area and run with a LIB option. This allows MRX to intercept and properly handle pretty much any kind of date for bridging, so we have 98 in the database, but 1998 returned to the application.

MRX also allows you to properly sort data whose dates are stored in a non-sortable format. For example, some companies, instead of going to four-digit years, are going to use A0 to represent 2000, A1 for 2001, etc. This obviously presents problems for sorting reports or doing range retrievals. MRX handles all of this for you, and by using their sort utility, you realize performance benefits as well.


There is a config program (shown below) that allows you to specify the type of date and physical location in your database of every date that you want to affect.

Select the operation you would like to perform
0 - Set system Year 2000 cutoff (pivot) value
1 - Add new Image controls to the MRX Database
2 - Delete existing Image controls in the MRX Database
3 - List existing Image control entries in the MRX Database
4 - Obtain help information on Millennium Rx
5 - Add new SORT controls to the MRX Database
6 - Delete existing SORT controls in the MRX Database
7 - List existing SORT control entries in the MRX Database
<CR> Exit program

If the field is a data item, you can just specify the data item name and have it affect all datasets. You can specify the byte position of the date within a field, so for those big generic buffers that have embedded dates, you’re all set. The software supports ASCII, Integer, and Packed style dates.

This program also allows you to set up and store sort rules for these fields so that a year of A0 or 00 will end up sorting correctly with a year of 99, for example.

MRX also includes its stand-alone high speed sort program, one that also allows you to do high speed extracts from IMAGE data sets. You can think of this program as similar to Supertool from Robelle, but with fewer features. This program will let you do the same types of things with dates as the intercept routines.

Installation and Documentation

Installation is the very common type – load tape, restore job, stream job, reload tape, done. Installation is quick and clean, and the software takes up less than 10 megabytes.

The documentation is well written and clearly organized, and includes a table of contents. There is a nice introduction to the concepts of windowing and bridging that helps get you started. I think, however, the product could greatly benefit from a small tutorial guide, including a sample database and one or two sample programs. This would really show you what’s going on – some of these concepts can be a little tough to wrap your brain around.

The TestDrive

I have a sample data base that is an extreme example of poor use of dates. It has huge generic ASCII buffers with 32-bit integer date fields embedded in them. MRX only supported an offset of up to 99 initially, but after I talked with them, they bumped it up to 9999.

I configured a couple of embedded dates in my database and used a generic lookup program to see what I got. See Figure 1 for my results. The first example is before any change – as you can see the date has no century on it. The second example shows the same data being retrieved through MRX using a pivot year of 97, so our date comes out in the year 2000. The third example shows the data through MRX using a pivot year of 50, so now we have a century of 19. This was accomplished with just a few minutes of setup, running the lookup program through the MRX XL library.

I was able to retrieve the data and sort using their supplied utilities as well. To really test, you need to have data that has dates in the next century – this is where a data aging product would come in handy.

I didn’t write any programs to take advantage of the two supplied date manipulation routines, but they appear to be similar to some of the new HP supplied date intrinsics, which I have used.

All in all, everything worked very well and “as advertised.” I did run into a problem with Native Mode Query, but Redstone fixed this the next day, which makes the question of good support a non-issue – support was excellent. Turns out that NM Query does different things with the database name than CM Query.


It’s very nice that MRX supports CM and NM style programs, since it is pretty likely that your program is in CM if you don’t have the source for it. This just underlines the completeness of the product. I liked that they include utilities for adding their sort intercepts to your programs without having to change anything in the environment. The performance on their sorts is just astounding, and it really does help speed up Powerhouse code.

My personal preference is to bite the bullet, and make the changes that are needed to live to the year 10,000. However, this may not be practical in all – or even many – situations. Instead, I am starting to look at MRX as my Plan B. I am thinking that we plan for the whole shebang, but start setting up MRX at the same time to make sure that we are covered, and say we are Y2K compliant now. Windowing is a viable alternative for some time to come, but I see bridging as more of an intermediate and crucial step.

MRX is a fine product: A bit confusing to explain to many people, and a bit more confusing once you get into the details, but Redstone has done a good job of making this as easy as possible. And honestly once you start doing it, it’s pretty easy. If you are starting to run down to the wire on Y2K, MRX could save your bacon.

Shawn Gordon, whose S.M. Gordon & Associates firm supplies HP 3000 utilities such as the TimeWarp/3000 Y2K tool, has worked with 3000s since 1983.

Copyright 1998, The 3000 NewsWire. All rights reserved.