Tech Tip

Tech Tip: ADDM 10.1

Written by Colin Vozeh, Director of Sales – Enterprise Services, Datatrend Technologies, Inc.

Software Context

BMC Premier PartnerAn excellent new feature in ADDM 10.1 is Software Contextualization, which is really just a fancy way of saying “visualization.” I’ve always felt the visualization feature in ADDM was lacking in certain regards. The new software contextualization, while still not configurable for specific relationships, is much quicker and better integrated with the UI.

ADDM nodesEach relevant node now has a “Software Context” button on the top right of its page, which brings up a small view of related nodes:

It’s rather abstract, and I felt it was mostly useless, because nothing is labeled – what are those other objects, and why are they here? Then I clicked the green button on the top right of the picture. Everything suddenly became much more clear!

ADDM 10.1

Now we’re talking! We can now see the name of each related node, and clicking on that node will bring us directly to the UI page for that node, giving us all the details we need. At first I thought this was useless, but it’s rapidly becoming my favorite new feature in ADDM 10.1.

model.addContainment can take node sets!

model.addContainment is one of the few functions in TPL that can accept sets of nodes as an argument. For example, the results of these two code snippets are the same:


 

example 1:

dbs := search(SoftwareInstance where type = “Oracle Database Server”

and instance matches “(?i)websales”);

for db in dbs do

model.addContainment(bai, db);

end for;


example 2:

dbs := search(SoftwareInstance where type = “Oracle Database Server”

and instance matches “(?i)websales”);

model.addContainment(bai, dbs);

 

In the end, the result is the same – any WebSales Oracle databases are added to our application model. There may however, be an advantage to the method in example 1, as you can log out each individual addition:


example 3:

for db in dbs do

model.addContainment(bai, db);

log.debug(“Added %db.name% to %bai.name%”);

end for;


In this fashion, we can see when our model changes while performing a manual execution of the pattern. This is especially helpful when changes occur that we weren’t expecting.