Identifying redundant or unused DXL code

I have inheritted a very large amount of dxl code and would like to determine:

    a) which code is redundant

    b) which code is never or rarely called.

For example, to determine if any attribute or layout dxl code is redundant requires a script to trawl through all the columns in all the views in all the modules in the database. Not sure about previous baselines?

I also need to monitor how often each script / function is used.

I was wondering if anyone has tackled this issue or if there are any COTS monitoring tools that could help as I'm reluctant to update and tag each dxl script / function.

Any suggestions would be most helpful.

- Martin


Martin_Hunter - Thu Feb 19 09:17:57 EST 2015

Re: Identifying redundant or unused DXL code
Mike.Scharnow - Thu Feb 19 09:55:24 EST 2015

You would need something like DXL-Lint, but I don't think this is available yet.

This would need code parsing and code augmentation, tracing of a run and finally an analysis of uncalled code.

Some of these features have been developed for the DXL debugger, so theoretically there is a chance to develop such a product. But IMO this would take an enormous effort to complete. Don't think that such a program would sell enough to cover the development costs...

Having said this, there are the perms "string startDXLProfiling_ (string)" and "string startDXLTracing_ (string)". Did not work much with them, but they might help you in getting a start...

 

Re: Identifying redundant or unused DXL code
Wolfgang Uhr - Fri Feb 20 15:33:07 EST 2015

In this thread https://www.ibm.com/developerworks/community/forums/html/topic?id=dbbd8f85-a2df-446f-a895-a552331d53a9&ps=100 we have discussed how to hook some dxl routines. And this technique can be used for all other non dialog functions too. This hooked functions can use a dxlHere()-Routine to calculate path, name and line number.

Perhaps this routine set can be included somewhere the dxl doors starterpack.

This may be a chance to solve the problem, but ist is not an easy and fast implemented solution.