logo: Ytria - Essential Tools for IBM Notes and Domino (Lotus)
Ytria Tech Lab
Articles, Tips, and Code for IBM Notes and Domino Administrators & Developers

Lotus Notes Profile document management and troubleshooting with scanEZ

on 6/06/11

Though scanEZ is very much a general purpose Lotus Notes and Domino database toolkit, folks often tell us that Profile document issues were what compelled them to download and try the software in the first place. This post will briefly go over the basics of Profile document management with scanEZ; plus show you how to spot Profile conflicts; and finally explain how to deal with ‘enumeration pool is full’-type errors.

Exploring your database’s Profiles

One of scanEZ most basic features is its Selection Tree, which gives you the ability to explore all the Profiles in a Lotus Notes database—along with anything and everything else inside an NSF file (e.g. Documents, Designs, Conflicts, Deletion stubs etc.). This explorer gives you a fast and very convenient way to see all your Profiles and spot any problems.

When you click on a Profile in the Selection Tree, you’ll see all its fields and their values in a sortable item list. The Profile’s Note Info (e.g. UNID, Note ID, Creation dates, etc.) is also shown.

Exploring Notes Profile documents in the scanEZ Selection Tree

Easier Profile editing

Editing Profile docs in scanEZ is an equally simple point-and-click affair. There are options for adding and deleting items. And you can click any field to edit its contents (either manually or by formula) or type.

Point-and-click Lotus Notes Profile document editing

Please note that Profile caches in Notes are extremely ‘sticky’ (and we’ve subjectively observed that they’ve become even more ‘sticky’ in recent Notes versions). For example, changes made to a Profile by one user might take a while to be seen by another user of the database; and the server itself might take a while to ‘see’ changes. So if you edit a Profile in scanEZ and you have the database open in your Notes client, don’t be alarmed if the changes don’t appear right away.

Profile document conflicts? Yes, they’re real (and scanEZ can prove it)

Just a quick note: If you ever notice a Profile document has a response (shown in a response tab in scanEZ), it means that it has a conflict—Profiles should never have responses. We came across this (thankfully uncommon) issue when doing some troubleshooting with scanEZ ourselves: we had noticed that changes made to a Profile on a database were not being applied to a replica. So we opened the Profile in scanEZ and saw something similar to the screen below.

You'll know that a Profile has a conflict when you see a Response tab in scanEZ

When you double-click the response document to open it and look at its fields, you’ll notice that there is a $Conflict item. These Profile conflicts can cause problems with database functionality as one Replica might use the ‘parent’ Profile while another Replica uses the response/conflict Profile.

A Lotus Notes Profile document conflict

Don’t go off the deep end: How to deal with enumeration pool errors

Basic Profile doc viewing and editing is probably old hat for veteran users, but one common issue would confound even scanEZ in the past is now easily solvable—the ‘Profile document enumeration pool is full’ error. This error occurs when Notes reaches a 6000-ish profile document ceiling (described in this IBM Technote). Functionally speaking, this won’t break the Profiles themselves but it does prevents the getProfileDocCollection from working (and it also prevents scanEZ from building the Profiles category in the Selection Tree).

It’s pretty easy to reach this ceiling when a widely-used database makes use of personal Profiles (e.g. a shared calendar). Additionally, if you search for a non-existent Profile using the getProfileDocument Lotusscript method, a blank one will be generated.  Similarly, a blank profile will also be created if you cancel (or close without saving) a form which makes use of the @Command([EditProfile]). All of these things can really run up your Profile document tally to an extent that you’ll trigger the enumeration pool error. (Aside: these cases where blank Profile documents are created can be double trouble when users have Author access to the database: Since the required Authors field hasn’t been created, users are likely to see error messages the next time they try update the profile. Naturally, scanEZ is helpful in finding and troubleshooting these types of Profiles issues).

Our solution for dealing with ‘enumeration pool is full’ errors is included in the scanEZ Extension Database, which includes a feature called ‘Lotusscript-based Note Retrieval.’ This feature neatly sidesteps the enumeration pool error and places all your profiles in a My Section Virtual folder. Here’s how it works:

  1. Open the scanEZ Extension Database (download it here if you don’t already have it).
  2. Select the database with the enumeration pool error.
  3. The scanEZ Extension Database lets you see the full list of Profile documents even when the enumeration pool is full

  4. Make sure to check the box for ‘Profiles’ then click the Open in scanEZ button. Once the retrieval is complete, it will display the number of Profiles found and ask if you’d like to continue; click ‘Yes.’
  5. Now scanEZ should launch. You’ll be prompted to choose your preferences for displayed titles, just click ‘OK’ to use the default.

    The Confirmation dialog (NB: This pictured database only has a handful of Profiles, but the feature was thoroughly tested on databases with well over 6000 Profiles)

  6. All the databases Profiles will now be listed in the Section Tree in a ‘My Selection‘ virtual folder. From here you can analyze, edit, or delete the Profiles.

Retrieved Profile docs will be gathered in a scanEZ 'My Selection' virtual folder

Please note that this method of gathering a list of Profiles is considerably less efficient that the normal way that they’re shown in the scanEZ Selection Tree, so it should only be used in cases where the ‘enumeration pool is full’ error is triggered. If you don’t need to see all the Profiles, you can always use the Document>New/Get Profile option to see any specific Profile as long as you know its key (document name and username if applicable).

You can always look at an individual profile in scanEZ, even when the enumeration pool error prevents the Profile list from being built

-30-

Even though scanEZ is very much a general purpose Lotus Notes database toolkit, when we ask folk to tell us what drew them to the product in the first place, they often say “Profile documents.”

And indeed one of scanEZ most basic features is its Selection Tree, which gives you the ability to explore and edit all the notes in a Lotus Notes database—including profiles. Apart from the obvious convenience, this gives you a non-invasive way to see and troubleshoot profile problems. By “non-invasive”, we mean that without scanEZ, merely searching for a profile will create a blank one if one didn’t already exist.

Editing Profile docs in scanEZ is also a simple point-and-click affair. You can easily add and remove fields or edit field contents (either manually or by formula) in scanEZ’s interface.

All this is surely old hat for veteran users, but one common profile document issue would confound even scanEZ in the past is now easily solvable—the ‘enumeration pool is full’ error. This error occurs when Notes reaches a 6000 profile document ceiling (described in the IBM Technote).

Our solution for this issue is included in the scanEZ Extension Database, which includes a feature called ‘Lotusscript-based Note Retrieval. ’ This feature can neatly sidestep the enumeration pool error and places all your profiles in a My Section Virtual folder. Here’s how it works:

1. Open the scanEZ Extension Database (download it here if you don’t already have it)

2. Select the database with the enumeration pool error.

3. Make sure to check the box for ‘Profiles’

4.

2 Comments

  1. Hi, Peter.

    Thanks for the information here. The use of the ScanEZ extension database really helped me out of a sticky situation today where I was unable to perform a Post Replication Audit because of the enumeration pool error. Thanks,

    David

  2. Hi David,

    You’re very welcome. I’m really glad to hear scanEZ helped you out of that jam.
    And thank you for sharing your story.

    Best,
    Peter

Leave a Comment

To diplay code in your comment, put the code between these brackets: [cc]your code[/cc]. You can also put inline code by using these: [cci]your inline code[/cci]