How can I know if any DDM is no longer used

How can I know if any DDM is no longer used, unfortunately I don’t have Predict. there is some other way of knowing.?

I work in Mainframe Z/OS
ADA 8.2 SP 6

The mission is to eliminate DDMs that are not used, and FDTs that are not useful.

DDMs are used at compile time. To use a DDM, there must be a reference to it embedded in a GDA, LDA, or programming object, so scan your FUSER source code for each DDM name.

1 Like

The problem is what you mean by “eliminate DDMs that are not used,”. I am guessing that you not only want to eliminate DDMs that do not physically exist in code, but also want to eliminate DDMs that physically exist but are never used.

The latter would be quite time consuming and tedious. It would involve, for example, first looking for the DDMs in objects as Ralph mentioned. Then, however, you would have to see if the objects are ever actually executed. Indeed, it gets worse. You could have a DDM in an object (say a subprogram) that is simply never referenced CALLNAT’ed) in the main line of a system, or a DDM in an object that is used in the code, but the logic of the DDM in the object is such that the code that uses the DDM will never be executed.

1 Like

Thank Ralph, With the scan tool I search for all the objects that are related to the selected DDM.

ok thanks Steve, for your valuable advice, what I am going to do is first with ADAREP I check the DATE-OF-LAST-UPDATE field, if the last record update date is already very old, I select ADABAS FILE (FNR) and I look for its associated DDM, with the SCAN tool of NATURAL I look for all its objects linked to that DDM, later I am going to Block the file, and if it does not receive updates or queries I proceed to delete FDT, DDM and programming objects. I would like to know your comments about it. Thank you.

1 Like

Hi Fernando;

Plan looks good.

However, one thing you might watch out for are “table files” which could go years without updates, but are constantly in use.

Also, something to watch out for. Suppose you find a file that has not been updated for awhile. You create a list of objects that use the matching DDM(s). Now you block the file. No one seems to care that the file is blocked. So far, so good. HOWEVER, before you get rid of any objects, you should manually read through the objects. It may be that the object uses several files. However, the part of the object that references the file is never executed. You cannot safely delete the object, because it is used frequently, and will function properly since the file you want to get rid of is never referenced. This can be a tedious task. You may have to comment out code and test after STOWing the object.

good luck.

1 Like