Tool Time
by Alan Sadowsky

Howdy neighbor! In just a few short weeks Father's Day will be upon us, and so will the burden of finding that special gift. Well after years and years of sweaters and ties and bottles of cologne, I finally saw the light, and found the best gift a father can receive. How about tools! Nothing (with maybe one exception) opens a man eyes and gets the blood racing like a set of tools. So what's my point? If you've ever tinkered around the house, you know as well as I do that if you want to do the job right, you have to have the right tools. With this thought in mind, let's turn our attention to data processing.

TPF provides many challenges to those of us fortunate to be involved with it on a day-to-day basis. Whether you work in Operations, Database Management, Applications, or Systems, there's an abundance of tools that can either be purchased from third party vendors, or developed in-house with a moderate degree of effort. While space will not permit a discussion of every tool that's out there, I will touch briefly on the more familiar tools I've run across at various shops, and at least attempt to spark some interest.

The most widely known tool in the TPF arena is probably Step-By-Step Trace, or SST. SST is primarily an applications development tool which allows the user to trace an entry from start to finish. Running under TPF, SST suspends the transaction on every SVC and displays the entry's formatted ECB. The user also has a myriad of commands available to display attached core blocks, data records, registers, etc. providing an opportunity to make sure things are processing as intended. SST also has Instruction Trace capability which will literally walk the user through every instruction in the program(s) being traced. Coupled with the ability to trace entries originating from another terminal, and the ability to load programs to only your test terminal without effecting other testers on the system (Test By Terminal Address), SST is a powerful and valuable tool.

In the same category is VPARS and VTAPE both which run under VM. VPARS provides the user with their own virtual TPF operating system. The user must IPL and cycle the system to NORM state, and has literally every TPF function available to them. The advantage VPARS provides is its ability to read from the TPF database, and write to a VPARS disk instead of the TPF database. What this means is that many VPARS systems can all share a common TPF "test" database, and each of these users can change or update records on the database without effecting any other user. When someone updates and files a record on VPARS, that record is filed only to their VPARS database.

When that same user wants to read that record again, it is retrieved from their VPARS database so they can continue to build and test their application without impacting any other VPARS users. Additionally, since you're running under VM, you also have the added advantage of VM and PER trace available to you. VTAPE eliminates the need for real tape drives during testing. Since hardware tends to be a scarce commodity, VTAPE is a practical solution to resource constraints. The user defines virtual tape drives to his/her VPARS system, mounts virtual tapes using standard ZTMNT commands, and all tape reads and writes take place to DASD instead of tape.

A relative newcomer to the tools arena is CMSTPF. Available in XA and non-XA versions, CMSTPF is another excellent tool for the applications developer. Also running under VM, CMSTPF provides a combined SST/VPARS type tool. Utilizing full-screen editing, the user can alter file or core by just typing their changes over the existing displayed data. Another unique feature CMSTPF provides is its SourceView facility which permits the user to instruction trace the source code for their programs by displaying the program's listing on the screen and stepping through the actual listing while tracing.

In the area of dump analysis, the trace tools we've already mentioned are great tools as long as you have the ability to duplicate a real-time problem on the test system. When you don't, you're often faced with post-processing the dump and solving the problem independently. Online Dump Formatter (ODF, or Mini Dump as it is often called), expedites the post-processing phase by eliminating the need to post-process and print the dump. ODF runs under TPF, and when a dump occurs on the system TPF gathers all of the associated data for that dump and writes the dump to tape during normal CPSE/CPSF error processing. Once TPF has written the dump to tape, the same data is written to the TPF database on DASD. ODF then provides the user with the ability to immediately display the dump on a terminal, and begin the analysis process without having to wait for the RTL tape to be switched, the dump to be post-processed, and the time it can take to print and distribute the output. Not only is the dump immediately available after occurring, but is also fully formatted and accessible with a full compliment of functional commands to display specific parts of the dump to the user. And think about all the trees that won't be killed for the sake of printing dumps!

Another tool which has tremendous potential in dump analysis is VIPER. Running under VM, VIPER utilizes the power of REXX to provide several benefits to the user. With a full range of search, bookmarking, and data extraction facilities, VIPER's unique memory management makes it many times faster than XEDIT or BROWSE regardless of how big the file you're working with is. Add to this VIPER's exclusive data-mapping capability which will display core blocks fully mapped to DSECT tags (and even displays DSECT comments), and you truly have a powerful dump analysis tool at your disposal.

In the database realm there are several tools that are almost "required" by every TPF shop. I would be very surprised if any of these tools are not already in your toolbox. In the interest of time (and space) I'll just briefly touch on a few of these facilities:

Chain Chase
Provides the user with the ability to forward and backward chain chase file records. Other options are the ability to specify a displacement for imbedded addresses, the ability to perform ID validation to detect broken chains, the ability to detect looping chains, and the ability to count the number of records in a chain.

Database Initializer
Provides the user with the ability to functionally initialize a record or records on the database. Initialization might clear these records to binary zeros, insert record ID's, or even propagate live data such as record code checks, control bytes, ordinal numbers, etc..

Record Copy
Provides the ability to copy one record to either a new pool address, or to copy the contents of a record over an existing fixed or pool record. A few nice features to incorporate in your record copy utility are the ability to copy from a small record to a larger size record, creating a backup copy of a record which will be overwritten (in case you have to fallback to the original record, and providing a fixed file alternative for copies when the system is in 1052 state and GFS in not active.

Selective Capture/Restore
Provides the ability to selectively capture and restore critical portions of the on-line database. Some of these utilities are custom-written, and there are others that utilize existing Recoup descriptors which already map the logical configuration of the database for you.

In future issues, we'll continue to expand on the full spectrum of tools in the TPF world. In fact, we've really only scratched the surface at this point. If there are tools which you use in the course of your job that you would like to share with other readers, please drop us a line, and we'll be happy to include them in the next Tool Time. As for Father's Day, forget the brass plated shaving set. Go for the cordless, variable-speed, chuckless, reversible drill. After all, he's your father!