xTrace Success at KMD

KMD - Company Profile

KMD is the main supplier of IT solutions for the Danish government and public sector. KMD is the absolute expert in public sector IT and have more than 40 years experience in comprehensive and complicated IT projects. KMD deliver a wide range of successful and integrated solutions within salary, tax, social, pension, real property, financial and environment systems. A large part of our solutions are developed using Gen.

The Problem

Due to the size and complexity of KMD, all code generation is performed in a standardized way. All of the Gen code generation is done using GuardIEn in all environments. The code is generated with trace and a customized GuardIEn step is run to strip the code for all trace calls, leaving two sets of source, one with trace and one without. The code is then installed using the GuardIEn - ChangeMan interface. When a developer needs to debug the Gen code, the load library containing trace code is used which means that all code is with trace. This fact combined with very large applications, 10,000+ action block calls in one execution and the Gen Diagram Trace Facility (DTF) as the trace tool presented a big problem. Having to press enter through every single action block meant that 80% of the time spent on fixing a problem was used to skip through unwanted trace calls and only 20% or less on fixing the actual error. Further we very often have to run the DTF several times, because in the very boring process of tracing through every single action block, the relevant errors were often missed.

The Solution

We found that the powerful breakpoint options in xTrace turned these numbers around. Now we actually go directly to the problem and concentrate on solving it. The main driver for looking at xTrace was very large CICS transactions. Getting a tool that lets us trace our batch programs in batch rather that TSO test as well was an extra bonus. Now that our developers are more used to xTrace, we see that using the extensive callstack feature allows us to look at performance in a very early stage of development. We save a lot of time fixing performance problems before the application is released into system test .