So, I was talking about the ‘iDiscovery’ application I developed in order to aide with database discovery, usage and also migration.
Continuing from Part 1 – using this categorised list of databases I had, I was able to delete a large number based on whether they had usage logged against them, and whether they had secondary replicas. Quite often I found that when users’ moved from one location to another, the ‘Move Database’ AdminP function didn’t actually remove the old replica, so this stayed dormant in most cases.
In our environment we use IIS sitting on top of the Domino HTTP stack along with the Websphere Application Server Plugin to provide single sign on with Active Directory. This means that in every person document there needs to be the AD username listed as the last item in the ‘Fullname’ field. Another good way for us to find stale users was to modify the iDiscovery application so it not only trawled the domino servers for NSFs, but also, to look up the database in the NAB to see if there was a matching person document.
To do this I had to modify the names.nsf and add a custom view. This isn’t something I do lightly as I am aware of the impact of doing such activities (performance, stability etc) but there was no other way to achieve what I was trying to do so I added a new view which had a first sorted column of a concatenation of MailServer and MailFile fields. I then used this view in the ‘discovery’ agent to lookup databases against. This function produced an amazing number of databases that should have been deleted by AdminP when the user was removed, but didn’t.
We used the same code to check for orphan mail archives and also found a lot of large databases that could be removed
So with these things in place we’ve deleted hundreds of databases and have already saved over 2TB of storage AND reduced the number of databases we need to migrate which was great.
Next things I’ll talk about:
- How we sync’d the Local Address Books for each user with the mail database in order for the migration suite to migrate them to Outlook Contacts.
- How we produced a list of each ‘Mail Distribution’ group and internet addresses of each member (trying to exclude groups used to provide access to notes databases, admin/system groups etc)
- How we produced a list of each generic mailbox (i.e. firstname.lastname@example.org) and who had access to them.