DOCUMENT:Q86375 28-OCT-1999 [pcmail] TITLE :PC DB: Global Address List Definition and Details PRODUCT :Microsoft Mail For PC Networks PROD/VER:WINDOWS:3.0 OPER/SYS: KEYWORDS: ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Mail for PC Networks, version 3.0 ------------------------------------------------------------------------------- SUMMARY ======= This article provides information about the following topics: - What is the Global Address List (GAL)? - Support for Groups - Administration - Installation - International Issues - User Agent Modifications - Global Address List Index - Performance - Search Performance - Rebuild Performance - Additional Details What Is the Global Address List (GAL)? -------------------------------------- The GAL is a single flat address list that contains all addresses defined at a Microsoft Mail postoffice. For Mail users, the GAL's main purpose is to provide a single list where users can find all the addresses they can send mail to. Users do not need to know the location (network, postoffice, or gateway) of the user to whom they want to send mail. The GAL will accommodate more than 500,000 user names. Once it is installed at the postoffice, the GAL is supported by any Microsoft Mail version 3.0 or later clients. To see the GAL, users require External Mail privileges. Most users configure the GAL as their primary address list. Finding an address located in the GAL is very fast because a binary search algorithm is used. The GAL is not administered in the same way as the other lists. Instead, it is periodically rebuilt from scratch. Between the time the postoffice administrator makes a change to one of the GAL's constituent lists and the time the GAL is rebuilt, any change will not be reflected in the GAL. For example, if the administrator creates a new user at the postoffice, this user will not appear in the GAL until it is rebuilt. If the name services distribution agent (for example, directory synchronization) is installed at the postoffice, that agent will rebuild the GAL as part of its normal cycle. This rebuild can occur as frequently as once per day. Optionally, the postoffice administrator can rebuild the GAL at any time by running a command-line utility. There is no explicit support for the GAL planned for the Mail Administrator program. Support for Groups ------------------ In the same way external postoffice user lists contain group aliases, so does the GAL. This means that group names belonging to external postoffices (or gateways) are not distinguishable from regular aliases except by inference. Remember, you cannot resolve the members of groups that are defined at other postoffices. Local postoffice groups can be displayed in the GAL but they cannot be created, modified, or deleted. The postoffice administrator creates, modifies, and deletes postoffice groups in the postoffice address list (POL). When the GAL is rebuilt, any newly created local group aliases are added. Currently, postoffice groups can only be created from members of the POL. Similarly, personal groups can only be created from members of Personal Address Lists (PALs). From a usability point of view, this means that even with the GAL installed, it is still difficult for an administrator to define groups that contain large numbers of members. While it would be convenient to be able to create groups arbitrarily from any set of address lists or, in particular, from members of the GAL, this capability would require overwhelming changes in both the Mail client's and administration client's directory interface code. Furthermore, certain architectural changes would need to take place to solve group mail delivery problems. Administration -------------- The GAL becomes out of date when the administrator creates or deletes a local user or group and when the name services distribution agent updates the postoffice with external address transactions. Rather than maintain the GAL incrementally, since this is considered inefficient, the GAL is periodically rebuilt from scratch. There are two ways the GAL can be rebuilt: - The name services distribution agent automatically rebuilds the GAL during its normal directory synchronization cycle. In most cases, this is done once per day. - A postoffice administrator can manually run a utility that rebuilds the GAL. You can code an Administrator interface that allows the administrator to trigger a GAL rebuild from the Administrator program. When the GAL is being built, duplicate full names may be encountered. Duplicate aliases are supported in the GAL. Installation ------------ Installation of the GAL is part of the server version 3.0 installation/update program. During installation, all the tools needed to create a GAL are installed, but an actual list is not created. The Administrator program has an interface that allows the administrator to enable or disable the GAL. By default, the GAL is disabled unless it is specifically enabled through the Administrator program. International Issues -------------------- Other than normal translation of client and administration screen data, there are no issues that affect international versions of Mail. If, for some reason, the GAL's sort order is wrong (that is, clients start using a different code page), you can resolve the problem by simply rebuilding the GAL with the correct code page loaded. This means there is no need for the re-sort utility to support the GAL. User Agent Modifications ------------------------ All Microsoft Mail user agents need to be modified to support the GAL. These modifications include code to detect the existence of the GAL and a binary search mechanism for the alias files. Additional and significant code changes are required to extend support from 32K users to an unlimited number of users. Additional code changes will be necessary to support local group names on the GAL. Global Address List Index ------------------------- The GAL is the largest address list in the Mail for PC Networks database. It is sorted on the Full Name field to allow fast access. For Mail for Windows' Ambiguous Names Resolution feature, it is necessary to support an index on the GAL because the names being searched for (first, last, and so on) are not accessible except by linear search. The GAL index consists of two parts: a sorted Offset Records list and an index to the index. The index of the index consists of 52 file offsets into the GAL index file--one for each letter of the alphabet, uppercase and lowercase, because these are the most likely characters to start the search on. The Offset Records list consists of a WORD specifying which word the index points in the Full Name field and a DWORD pointer to the GAL.NME file. To search the GAL Index file, the following steps are performed: 1. Open the GAL Index file and the GAL.NME file. 2. Find the offset of the first letter in the word being searched for in the index. 3. Read in the Offset Record from that position in the file, then read in the Alias record from the GAL.NME file and determine if it is before or after the word being searched for. 4. A simple binary search finds the correct alias record. The GAL.NME file should be of size 45*n bytes, where n is the number of records. If we assume that there are on average 2.5 "words" per Full Name, then the size of the GAL index file will be 2.5*6*n + 52*4. Therefore, for an 80,000 user list then the GAL.NME file will be 3,600,000 bytes and the GALINDEX.GLB file will be 1,200,208 bytes. Performance ----------- Because the GAL is much larger than any other list normally supported at the Microsoft Mail postoffice, performance is an important concern. Two issues are important: the time it takes to search for an address using a client, and the time it takes to rebuild the GAL so that it reflects all changes in the name service domain. The former issue is important to the average user and the latter issue is important to administrators. Search Performance ------------------ The GAL is searched using a binary search. This is an extremely efficient method of searching large lists. The theoretical performance is log (base 2) times the number of addresses. Rebuild Performance ------------------- The GAL is rebuilt by reading through all the hierarchical address lists and merging them into a single flat list. The native Microsoft Mail addresses have their physical addresses duplicated while foreign addresses reference a single shared physical address record. Additional Details ------------------ - The GAL can display up to 231 entries. - You can select entries for the TO or CC recipient lists. - You can select non-group entries and move them to the Personal Address List. - Custom addressing from the GAL is NOT supported. - The GAL can be selected as the default address list. - If the GAL files are missing, the client hides all references to the Global Address List and the functionality it provides. - The address search feature (MS-DOS) will not work with the GAL. Additional query words: 3.00 Admin Dir-Sync DirSync ====================================================================== Keywords : Technology : kbMailSearch kbZNotKeyword3 kbMailPCN300 Version : WINDOWS:3.0 ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 1999.