After having to do that a few times recently, I decided to put down a short summary on how msi upgrades work. It’s may not be 100% accurate and doesn’t go into much details, but if you want to explain it to colleagues or managers who know very little of msi, it should satisfy them.
So here it goes:
During a recent VOB restore I performed, I noticed that the VOB storage pool (the sdft subfolder) contains several large files, prefixed with tmp_ (for example, myvob.vbs/s/sdft/10/1d/tmp_3996.1)
Turns out these are called ‘unreferenced containers’, or ‘debris’.
This handy little Perl script removes all traces of a view which is irremovable via conventional means – e.g. when the view storage is missing or inaccessible.
The script is design to run on UNIX in an interop environment, but can be easily be adjusted to other cases.
## Usage: perl rmview_by_tag.pl <region> <view tag>
$region = $ARGV;
$region || die "Region must be specified!";
$tag = $ARGV;
$tag || die "View tag must be specified!";
## Detect view UUID
@uuid = `cleartool lsview -l -region $region $tag`;
if (/View uuid/)
s/View uuid: //;
$uuid = $_;
# Remove the tag from the registry
system "cleartool rmtag -view -region $region $tag";
# Unregister the view
system "cleartool unreg -view -uuid $uuid";
# Remove view-related records from all VOBs
system "cleartool rmview -all -uuid $uuid";
Reference: Removing a view