Printout Header

LEX Online Manual Content

Container Class Evaluation

Lex shows the hierarchy of the current connected LDAP directory in the tree view panel on the left side in the LEX main window, so that a fast and easy navigation is possible. To show this hierarchy, LEX reads all the container objects from the server, so that these objects can be used to build up the navigation tree.

The probem is: LDAP allows all types of objects to have child objects. So if you want to build up the current LDAP tree, normall you have to check literally all LDAP objects for children. This would lead to a sluggish application performance when you want to browse through a large tree hierarchy. Or if you would first pre-cache the tree structure, it would last very long to achieve this.

Therefore LEX has a list for each type of directory server with the names of the typical container object classes. There are different lists for the following environments:

  • OpenLDAP
  • Microsoft Active Directory (this includes AD LDS and ADAM)
  • Novell eDirectory
  • Sun iPlanet (this includes SUN Directory Servers and NetScape Directory Servers)
  • Siemens DirX
  • Generic LDAP (all other LDAP servers)

This classification was made to reflect the fact that all types of directories tend to have their typical structural elements. In all these lists, the object class 'organizationalUnit' will be in the list for sure. Other classes are not so obvious to be potential container classes with child objects.

If LEX loads the directory tree hierarchy, the list of container classes will be converted to the appropriate LDAP filter. This filter is used then to retrieve all the object from the server which are needed to built up the tree view.

The list of the container classes can be configured with the menu option Tools - Options - Container Classes. You see here different buttons for the regarding LDAP server environments where you can configure the appropriate list of container classes:

Configuring the container classes

Normally you do not have to work hard on these lists because a lot of the classes usually used as container classes are predefined as default values here.

Maybe you have to configure new classes to this lists if you encounter the following problem: You don't see an object in the tree view hierarchy as a container, even if it is shown in the object list when you look at the parent container:

Domain Controllers don't appaear in the tree

If you change the object list scope to 'deeptree', so that you see the entire subtree under the parent object, you may notice that this object have child objects - although it was not shown as a container.

Child objects visible in deeptree scope

Then you have to check what object class the regarding object has. Add this object class to the appropriate container class list under Tools - Options - Container Classes. If you don't know to which type of directory your current LDAP server belongs, you can check this in the option Connection - Connection Info.

Pseudo Container Classes

There might be object classes in a directory environment which have a large number of real objects existing for this class, whereas these objects have very seldom child objects below them. An example of such an object class are the 'computer' objects in an Active Directory environment.

In order to be able to show all hierarchical structures in the tree view panel in a very fast way, LEX works with so-called Pseudo Container Classes. These container classes are handles as follows:

  • Container Class objects are shown in the tree view panel ONLY if they have actually child objects:

    Pseudo Container Classes

  • If the entire tree hierarchy has to be cached (first connection or reload operation on the entire tree), LEX does not search for Pseudo Container Class objects. This is because there may be a huge count of these objects in the current directory - so this would last far too long for building up a tree with these information included. Even if we would search for all these - this would result potentially in a very large number of container objects in the tree view - although most of such objects doesn't have child objects.

    So for the caching of the entire tree hierarchy, no Pseudo Container Classes are used. Only the normal container class objects are evaluated.

  • If you just reload the 'tree environment' of the currently selected node, then only the node's parent, siblings and child nodes are refeshed. This is done by just pressing F5 or using the View- Refresh option. Because this is probably a smaller amount of container objects to read from the server, LEX requests the normal container classes together with the Pseudo Container Classes.

The list of the pseudo container classes can be configured with the menu option Tools - Options - Container Classes. You see here different buttons for te regarding LDAP server environments where you can configure the approprate list of pseudo container classes:

Configuring the container classes