Review of Time Machine
by
Shawn M. Gordon
President
The Kompany

Introduction

The year 2000 issue continues to heat up, and we are starting tosee a new breed of software to help cope with this issue. This month I am reviewing Time Machine from SolutionSoft Systems Inc. Time Machine addresses the issue of being able to set virtual dates and times for a session. Sure you could change the system clock yourself, but that is sort of a pain, and could mess everything up on your system. With Time Machine you are able to set the date and time for a particular run or user, and even log all call’s to date and time intrinsics.

I tested Time Machine on a 927 running MPE/iX 5.5, power patch 2. I tested with COBOL and SpeedWare.

Features

So to start I decided to test with a couple of my applications that I know have a year 2000 problem because the dates are stored in 2 digit years. If you take a look at figure 1 you’ll see a couple of run’s I did of a job, in the first run I don’t re-run Time Machine to set the date back to normal. The impact of this is that little program at the end, JOBTRAK5. This program takes a stamp of the execution time of the job. If you look at figure 2 you will see an extract of my program that show’s the execution time of the two runs of the job. Notice that the number of minutes for the the run on 01/01/00 is rather excessive. The minutes were too large to fit into my short integer, so it wrapped around. This comes out this way because I use the JOBINFO intrinsic to get the intro date and time of the job, which are not affected by the Time Machine. In the second run I reset the virtual clock before I ran JOBTRAK5, so the run information looks more normal.

If you look at figure 3, you will see an example of the log file that can be produced by specifying the PARM on the run of TM.PUB.SSS. The parm just helps name the file. This will show you the program, the virtual date and time, and the date/time sensitive intrinsics that were called. A handy debugging tool for sure.

I guess I should explain the run options now. If you run TM with no info string, then it set’s the date to the present date and time. Otherwise the format is slightly variable. You can set with an absolute value as in;

YYYYMMDD:HHMM – a specific date and time

YYYYMMDD – a specifc date with the current time

YYYYMMDDf – the ‘f’ means freeze the date, or date and time.
This causes the clock to stay at the same date/time until you reset the Time Machine.

You can also use a relative value with positive, negative, or frozen, days, hours and minutes.

When you are running through the Quick Start Guide, you are asked to do a SHOWTIME as well as SHOWVAR of the various Date and Time variables. The only potential problem that this uncovered for me is that wildcards are not supported by Time Machine for variables. So if your programs happen to be doing redirected SHOWVAR’s using wild cards into a file, you might have difficulty, but the odd’s of that are slim I imagine.

A log file is maintained of all users that have ever accessed the Time Machine, see figure 4 for an example. You’ll notice that the log contains the parameters passed to the Time Machine, and the real date/time that it was executed. I did notice that invalid executions of the Time Machine were not logged. Personally I would like to see all run’s of the Time Machine logged, and indicate if it was invalid parms that were passed so that I could see if someone is just messing around, or is not understanding how to do it. I mentioned this to the company, so it could show up soon.

A logon configuration file can be created that allows you to specify default user profiles, and Time Machine virtual date values that will be set when TM is executed. This is very handy for executing large and complex batch environments, or maintaing time integrity across different time zones. There are many uses for the config file, and it’s a welcome addition.

On the other side of the coin is an exclusion file that allows you to exclude certain programs from seeing the virtual date. Again this can be very useful where you are demoing, or renting software, and it is executing in a batch job that you want to set the Time Machine on in.

Usability (also installation)

The software couldn’t be easier to use, you simply RUN TM.PUB.SSS and pass an INFO string for the date and time you want, and optionally pass a PARM to save a log file. Running TM without any optional parameters will cause the virtual date and time to be reset to the current system date and time.

The installation is very simple as well. Restore all the files on tape, and then execute one command file and you are done. All and all a very slick process.

Reliability

I found a couple of things that I thought were fishy, but upon further thought and discussion with SSS, made sense. For example, calls to the JOBINFO intrinsic aren’t traced to the log file, because there is no way for Time Machine to alter or for you to do something with the Intro date and time returned by JOBINFO. Although I still think it could be useful to know you are calling JOBINFO to get the intro date and time of the process.

The other thing was that the log file is created the first time you run Time Machine, but an entry isn’t created, so the very first time that Time Machine is run, you will not have a record of.

Those things aside, the software is awesome, rock solid. I tried all sorts of odd dates and times, and Time Machine would refuse every invalid one. Time Machine will also only go back to 1900, which seems to be a reasonable limitation.

Performance

Performance doesn’t seem to be an issue with the Time Machine. It adjusts your date and time almost instantly, and has no visible system impact.

Supportability (including Doc)

Support from SSS is very quick and accurate, I was very happy with the response I got to my questions, and the speed with which I received them. The manual is very slim at 14 pages, and rightly so. Each topic is covered adequatly, including a FAQ, appendix, quick start guide, and table of contents.

Summary

At first glance a product like Time Machine may seem to have limited usefullness, getting ready for the year 2000. However I can think of several other usefull options, consider doing month end, quarter end, or year end processing as often as you need to for testing, or even because the system died and you had to re-run, but your software is expecting certain dates? How about testing your batch scheduler to make sure it handles certain dates and times? You could even do it in an emergency to get the right date on a report without impacting anyone else. The more you think about it, the more interesting it gets.

There is a function I would like to see, but I don’t see how you could make it work, that would be to set off a virtual date/time for another process. Specifically to mess with a batch scheduler without having to bring it up and down. Of course I don’t know how they make something like Time Machine work in the first place, so maybe they can pull it off.

This is a very specialized, but very useful program. I can’t imagine that you wouldn’t be able to find use for it in your shop, if for no other reason than to just make sure you will keep working in 2000 and 2001. Not to mention it’s a cool product name.

At-a-Glance box

Time Machine version A.01.08
SolutionSoft Systems
2350 Mission College Blvd., Suite 715
Santa Clara, CA 95054
Phone 888-884-7337
FAX 408-988-4777
email: sales@solution-soft.com
http://www.solution-soft.com

Software price ranges from $750 to $5500 depending on CPU, support ranges from $100 to $850 per year. Includes one 14 page manual. Call, write, fax, or email to recieve your free demo.

Figure 1:



JOB JOBTRAK2,MANAGER.SYS,PUB.
Priority = DS; Inpri = 8; Time = UNLIMITED seconds.
Job number = #j38.
TUE, SEP 23, 1997,  1:22 PM.
HP3000  Release: C.55.00   User Version: C.55.00
MPE/iX  HP31900 C.05.08  Copyright Hewlett-Packard 1987.
All rights reserved.
STREAMED BY SHAWN,MANAGER.SYS (#S22) ON LDEV# 3
   STREAM DATE:   TUE, SEP 23, 1997,  1:22 PM
:comment
:comment  This job is used to collect the tree information from the
:comment  job streams.  The first paramenter specifies if you want
:comment  to either 'O'nly clean up, 'Y'es to clean up and collect
:comment  data, or 'N'o clean up, just collect data.  The program
:comment  will accept an unlimited number of MPE file sets, enter
:comment  // to terminate prompting.
:comment
:RUN TM.PUB.SSS;PARM=1;INFO="20000101:1030"

Time Machine / Time & Space Manager  A.01.08  (09/11/1997)
(C) SolutionSoft Systems, Inc., 1997. All Rights Reserved.
This TM copy is licensed for exclusive use by Shawn Gordon
There are  17 days left for this demo copy

You are traveling in time from TUE, SEP 23, 1997 ...
Virtual date and time is now SAT, JAN  1, 2000, 10:30 AM and running

Calls to date and time intrinsics logged to TMLOG001.PUB.SSS

END OF PROGRAM

:RUN JOBTRAK2.PROG.SMGA

This is a perm  copy of JOBTRAK licensed to S.M.Gordon & Associates

Begin run of JOBTRAK2 at 10:31:12
Cleanup? N
Enter MPE fileset - // to end: @.JCL.SYS
Enter MPE fileset - // to end: //
End of JOBTRAK2 at 10:32:10

END OF PROGRAM
:RUN JOBTRAK5.PROG.SMGA;INFO= '=.JOB.SMGA'
END OF PROGRAM
:EOJ
CPU sec. = 7.  elapsed min. = 2.  TUE, SEP 23, 1997,  1:24 PM.

second run

:RUN TM.PUB.SSS;INFO="20000102"
Time Machine / Time & Space Manager  A.01.08  (09/11/1997)
(C) SolutionSoft Systems, Inc., 1997. All Rights Reserved.
This TM copy is licensed for exclusive use by Shawn Gordon
There are  17 days left for this demo copy
You are traveling in time from TUE, SEP 23, 1997 ...
Virtual date and time is now SUN, JAN  2, 2000,  1:46 PM and running

END OF PROGRAM
:RUN JOBTRAK2.PROG.SMGA

This is a perm  copy of JOBTRAK licensed to S.M.Gordon & Associates

Begin run of JOBTRAK2 at 13:47:01
Cleanup? N
Enter MPE fileset - // to end: @.JCL.SYS
Enter MPE fileset - // to end: //
End of JOBTRAK2 at 13:47:03

END OF PROGRAM
:RUN TM.PUB.SSS

Time Machine / Time & Space Manager  A.01.08  (09/11/1997)
(C) SolutionSoft Systems, Inc., 1997. All Rights Reserved.
This TM copy is licensed for exclusive use by PAY USA
There are  17 days left for this demo copy

You are traveling back to the present
Current date and time is now TUE, SEP 23, 1997,  1:47 PM

END OF PROGRAM
:RUN JOBTRAK5.PROG.SMGA;INFO= '=.JOB.SMGA'
END OF PROGRAM
:EOJ
CPU sec. = 8.  elapsed min. = 1.  TUE, SEP 23, 1997,  1:47 PM.





Figure 2



J O B T R A K / 3 0 0 0           RUN HISTORY             09/23/97   C.03.01

Job Name                     Run Date   Time End   Exec Min  Streaming User    

JOBTRAK2.JOB.SMGA            01/01/00   10:32 AM      19306  SHAWN,MANAGER.SYS 
JOBTRAK2.JOB.SMGA            09/23/97    1:47 PM          1  SHAWN,MANAGER.SYS 

 to continue 

Figure 3

PRINT TMLOG001.PUB.SSS

 PROGRAM NAME                INTRINSIC/COMMAND    DATE & TIME RETURNED

-----------------------------------------------------------------------------

 JOBTRAK2.PROG.SMGA          CALENDAR             SAT, JAN  1, 2000, 10:31 AM
 JOBTRAK2.PROG.SMGA          CLOCK                SAT, JAN  1, 2000, 10:31 AM
 JOBTRAK2.PROG.SMGA          CALENDAR             SAT, JAN  1, 2000, 10:31 AM
 JOBTRAK2.PROG.SMGA          DATELINE             SAT, JAN  1, 2000, 10:31 AM
 JOBTRAK2.PROG.SMGA          CLOCK                SAT, JAN  1, 2000, 10:31 AM
 JOBTRAK2.PROG.SMGA          CLOCK                SAT, JAN  1, 2000, 10:32 AM
 JOBTRAK5.PROG.SMGA          CALENDAR             SAT, JAN  1, 2000, 10:32 AM
 JOBTRAK5.PROG.SMGA          CLOCK                SAT, JAN  1, 2000, 10:32 AM


Figure 4



PRINT TMLOG.PUB.SSS

         USER NAME       TM PARM      TM INFO       DATE & TIME INVOKED

-----------------------------------------------------------------------------

JOBTRAK2,MANAGER .SYS          1   20000101:1030  TUE, SEP 23, 1997,  1:22 PM
JOBTRAK2,MANAGER .SYS          0        20000102  TUE, SEP 23, 1997,  1:46 PM
JOBTRAK2,MANAGER .SYS          0                  TUE, SEP 23, 1997,  1:47 PM