Click here for Forsythe sponsor message | ||||||||||
Shifting the
3000s sands of time, date by date |
||||||||||
TimeShift 2000
finds, analyzes date fields, ages them in HP 3000 databases |
||||||||||
TimeShift 2000
Version A.00.00 TimeShift for the HP 3000 runs on all HP 3000 Series 900s, MPE/iX 4.0 or later. The software also requires that you be using the Reflection terminal emulator software from WRQ. The software is tier-based ranging from $990 to $8,000 with a 25 percent discount on multiple CPUs. Support is 15 percent of the purchase price per year and includes phone in, electronic support and new releases of the software. All prices are in US dollars. |
||||||||||
Review by Shawn
Gordon
As the year 2000 gets closer, we are seeing more and more ways to test and solve our Y2K problems. This month we look at TimeShift 2000. TimeShift provides two main functions. The first is in-depth analysis of dates within your database, which includes things like finding your date fields, tallying the types of dates it finds, including special or invalid dates. The other is to age the dates in the database by a value such as days or years. What this does is allow you to actually test your changes, whether they are bridging or date expansion, with actual data in the date range required to verify your tests. This aging process is critical to making sure that you are going to have your programs respond correctly. Even doing virtual dates will only help partially, because your data will still be in its original form. I believe there are three basic problems that need to be addressed in terms of Y2K compliance: 1) Date range retrieval
that crosses centuries So as you can see, its important to have data that allows you to properly address these issues, and thats what TimeShift will do not to mention finding many of the invalid dates that you might have in your database.
What TimeShift does is to use some fairly clever JCL to try to find all the databases in the logon account of its collection job stream. It will then generate a schema file using either Adager, DBGeneral or QUERY, in that order of the database. It then scans through the schema, finding all the fields that contain any of the strings contained in the TSPARM file. This file ships by default with the following values: DATE, DTE, YMD, MDY, YEAR, YY. You can add your own values, too. This automatic scanning is very convenient, and reduces the work on your part. This step also produces a report giving you some statistics about the dates and how they are spread in your system (See Figure 1 below for an example). Figure 1
You now have a file that will be downloaded to the PC and used to do granular configuration of how you want to age each date field on an individual basis (see Figure 2 and Figure 3 for an example of how the PC client program looks). After you make whatever changes you are interested in deleting, adding, specifying aging parameters you click on a button to put it back on the HP 3000. After the data is on the HP 3000, you stream another job that reads this driver file and executes the changes. Features The analysis reports TimeShift creates during the load phase will be helpful in determining how you want to configure the aging process. While they give you very nice, concise summary information, there doesnt seem to be a way to get any detail information for invalid dates the software might find. Putting the actual
configuration program on the PC certainly makes it nicer to go through and
quickly switch between databases, and configure each individual item. Since
you are in a grid, you can easily add and delete items from the list of
prequalified items. Pre-qualifying the data information puts less burden on
where to find everything, and makes what could be a very tedious task a lot
easier. The installation on the HP 3000 side is very clean and only requires a single pass on the tape. On the PC side, there is an installation program which puts the software onto your computer, but it doesnt create a program group, or give you an option of placing the icon on the desktop. The instructions explain how to do it, but its a bit tedious, and the icon for the program didnt work, either. All of which is trivial, but it looks like it should be cleaned up.
I tested a simple example of a single database, one that had a single dataset with a single date field. I also tested an extreme example, one with a half-dozen databases with a variety of date fields. As mentioned earlier, TimeShift tries to use Adager, DBGeneral or QUERY to create an item search list to find potential date item fields. I have Adager on my system, so it tried to use that. But in my extreme example I had databases with b-trees on them, which some versions of Adager before 980731 cant handle without a special JCW being set beforehand. I hadnt set the JCW, so this caused Adager to gracefully exit with a message about the b-trees incompatibility, so TimeShifts collection job was unable to complete successfully. Ive let G.R. Helm Inc. know about this, and they are going to fall back on a pure QUERY collection in this event. That means TimeShift will produce its reports without dependency on any database tools, but you can still use the third-party database tools which do supply you with information QUERY does not. (G.R. Helm says they have modified the JCL so if a collection job cannot complete, the job will not abort, but will fall through to the Query section of the process.) On a side note, Adager versions 980731 and later now handle b-trees without a special JCW being set. I decided to finish my tests on my simple example, one whose date was stored in an X6 in YYMMDD format. After TimeShift collected the data and generated the report in Figure 1, I activated the PC program and brought the config file down as seen in Figure 2. I then configured an offset of four years (Figure 3) and sent the file back up to the PC. I noticed that TimeShift makes use of the OLE methods that have been exposed in the Reflection terminal emulator, to upload and download the config file. This means you can only have one copy of Reflection running, and it needs to be logged into where the file is located. After the file was uploaded I launched the aging job, which processed my data in a couple of seconds. I then ran my interface program to see what the data looked like; Figure 4 below shows an example of my aged dates after running a dataset through TimeShift. Figure 4
As you can see, the dates all properly ended up in the year 2002. I was able to successfully examine and shift my database in time, showing that TimeShift does what it claims to do.
Data aging is a critical part of thoroughly testing your applications, and something that everyone should look at. G.R. Helm has done a nice job with TimeShift 2000, and goes beyond straight data aging by providing a nice, detailed analysis of your data. There are a number of limitations in the current release that might make the software less than ideal for some situations. You can only age dates that are in a database, no MPE or KSAM file support, and you can only age dates that are actual IMAGE fields. In other words, you cant do byte offsets into buffers to age an embedded date. If you dont have either of those two requirements, and you are serious about your Y2K testing, then a product like TimeShift is something you should definitely give consideration to. Shawn Gordon, whose S.M. Gordon & Associates firm supplies HP 3000 utilities including a Year 2000 product, has worked with 3000s since 1983. |
||||||||||
G.R. Helm replies to our TestDrive Since we submitted our software for this review in June, we have made several enhancements and corrected many of the problems pointed out in this review. To start with, we have changed the PC software installation to create a "program group" and to also include a desktop icon. In addition, we have made many other enhancements to the PC client application to improve the overall functionality and user interface. We have also enhanced the JCL on the HP3000 side to retain the use of Adager or DBGeneral; however it now forces the utilization of Query as a backup should one of these two other products fail or be unavailable. In the 'Conclusions' section, the author makes the following statements: "You can only age dates that are in a database, no MPE or KSAM file support, and you can only age dates that are actual IMAGE fields. In other words, you can't do byte offsets into buffers to age an embedded date." This last sentence is somewhat misleading, since Time Shift does deal with embedded dates and always has. Please note that the 'Offset' values shown in figures 1, 2 and 3 are used specifically to indicate the starting location of where the date is embedded in the field defined by the item picture. If, for example, the item picture is an X10 and the date is embedded in the last 6 bytes of this field, the offset value would be 5. The aging would then be applied to the date embedded in these last 6 bytes, without affecting the data stored in the first 4 bytes of the field. This feature applies to dates embedded in either character or numeric type fields. Lastly,
regarding the statement about the limitation of aging dates in MPE and KSAM
files, this is currently true however we are completing an enhancement to
perform this function which should be available sometime in November. |