Welcome to the first edition of the Exchange Support Voice column. We hope that you enjoy it and will return for more. This month we will provide a concise overview of the Microsoft Exchange Server 2003 Connector for Lotus Notes. This article aims to give existing administrators and support individuals more detail about the inner workings of the Connector for Lotus Notes. For details about how to set up the environment for the Connector for Lotus Notes, please review the articles that are referenced throughout this article.
Introduction
What are Lotus Domino and Lotus Notes?
Lotus Domino is the messaging platform that is produced by IBM.
Lotus Notes is the client software that allows users to connect to their mailboxes on Domino servers.
Each Notes user exists in a Domino domain. When you send mail from Exchange to a Domino user, you can type the following format.
One-off addressing- "Notesuser1@Domino_domain"
- "NOTES:Notesuser1@Domino_domain"
What is the Connector for Lotus Notes, what is it used for, and what does it require?
The Connector for Lotus Notes is included with Exchange Server 2003. This connector enables Exchange administrators to implement messaging coexistence between Exchange Server and Lotus Domino organizations. The connector provides mailflow connectivity and the ability to synchronize the two directories. In this article, we will cover details about both mailflow and directory synchronization.
Periodic updates for the Connector for Lotus Notes, known as Web Releases, are available on the following Microsoft Web site:
The most recent version of the connector requires the Exchange Server 2003 connector server to be running the latest service pack for Exchange Server 2003.
The Web Release versions of the Connector for Lotus Notes and the Calendar Connector come with their own installers. This means that you can install the connectors at any time. You are not required to install the Connector for Lotus Notes as part of the Exchange Server 2003 installation. However, the Connector for Lotus Notes requires the Lotus Notes client to be installed before you install the connector. If there is an existing connector, it will be upgraded.
During installation, the new connector creates a log file that is named the Exchange_Lotus_Notes_Connector_Setup_Progress.log file.
The account that is being used to install the connector should have at least an Exchange administrator in the local administrative group plus a member of the Administrators group on the local server.
How does the Connector for Lotus Notes work?
To interact with Domino, the Connector for Lotus Notes uses Notes API calls. For this reason, a Lotus Notes client must be installed on the connector server. More details about this requirement are provided in the following sections.
Preparing the Lotus Domino environment
For details about how to prepare the Domino environment, see the "Exchange Server 2003 Coexistence and Migration for Lotus Domino Mail" topic on the following Microsoft Web site:
Preparing the Exchange Server 2003 environment
The latest version of the Connector for Lotus Notes (Web Release 2.2) was released on December 7, 2005. The Connector for Lotus Notes Web Release 2.7 will be released in June, 2006. Requirements for these versions include:
- Exchange Server 2003 Service Pack 2
-
Windows Server 2003
-
Lotus Notes client 6.5.x (tested with version 6.5.4)
- Connectivity to a Domino server
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
316035
Lotus Notes Client versions that are tested with the Exchange Notes Connector
Exchange Server 2003 Service Pack 2 with the Connector for Lotus Notes Web Release 2.2 requires Windows Server 2003. The Notes client should be running Lotus Notes version 6.5.4.
After you install and configure the connector, you need to enable Notes proxy addresses on the recipient policy. This is required for mailflow and directory synchronization. The Recipient Update Service will then automatically generate the proxy addresses for each mailbox-enabled and mail-enabled account in the Exchange organization by using a proxy address generator.
Typically, the Exchange user's Notes proxy address uses the Notes domain name "Exchange". If you need to change the Notes proxy addresses, you need to modify recipient policies in Exchange System Manager.
For more information, see the "Interoperating with and Migrating from Lotus Notes/Domino Messaging Infrastructures to Exchange Server 2003" topic on the following Microsoft TechNet Web site:
Message flow between Exchange and Domino
Executables used by the connector
The Connector for Lotus Notes works in conjunction with the Microsoft Exchange Connectivity Controller (MSExchangeCoCo) service.
The executable for the Connectivity Controller service is Lscntrl.exe. The Connector for Lotus Notes, the Connector for Novell GroupWise, and the Calendar Connector are dependent on the Connectivity Controller service, which has the responsibility of managing these services.
The following executables are loaded by the Connector for Lotus Notes:
- Notes interface: Dispatch.exe
- Transport to Exchange: Lsmexin.exe
- Transport from Exchange: Lsmexout.exe
-
Exchange to Notes conversion: Lsmexnts.exe
-
Notes to Exchange conversion: Lsntsmex.exe
-
Notes Directory Synchronization: Lsdxa.exe
Diagnostic logging for each of these categories can be changed by selecting the "LME-NOTES" service under the server properties in Exchange Service Manager.
When the Connector for Lotus Notes service starts, the DISPATCH process is started. This process starts each of the other five processes.
What message formats are used
Natively, Exchange keeps messages in TNEF (MAPI) format, and Notes uses Composite Data (CD), which is the rich text formatting that is used in Notes. Exchange and Notes can handle formats such as HTML/MIME.
Where do messages in transit reside?
A message going over the connector can be in any of the following areas:
- MTS-IN
- MTS-OUT
-
READYIN
-
READYOUT
-
BADMAIL
These areas are MAPI queues that are located in the private information store database. You can see these queues in the Exchange System Manager. Messages in these queues are in Exchange format (TNEF).
A message going over the connector can also be in any of the following areas:
- EXCHANGE.BAD
-
MAIL.BOX
-
EXCHANGE.BOX
The areas are databases on the Domino side. You can examine these databases by using the Lotus Notes client on the connector or by using the Domino administrator program.
Note The BADMAIL folder is in the store, and it is used when the LSMEXNTS or LSNTSMEX processes encounter problems with MAPI messages.
The EXCHANGE.BAD
database is a Notes database. Corrupt messages will be copied to this database when the LSMEXNTS or LSNTSMEX process fails to convert a message.
Message flow from Exchange to Domino
Messages are transferred from Outlook on Exchange Server to Lotus Notes on Domino by using the following process:
- Based on the recipient address (the target address or the one-off address), Exchange Categorizer determines that the message is destined for Domino. It then hands the message to the message transfer agent (MTA).
- The MTA delivers the message to the MTS-OUT folder (queue) in the connector mailbox. The LSMEXOUT process polls this folder and retrieves the message. This process converts the address from an X.400-based address to a Lotus Domino address. Then, it delivers the message to the READYOUT folder (queue) in the connector mailbox.
-
The LSMEXNTS process polls this READYOUT queue, picks up the message, and then converts it to a Lotus Domino format, such as Composite Data (CD). Then, this process delivers the message (by using Notes API calls) to the Domino router mailbox, the MAIL.BOX file, on the Lotus Domino server.
Message flow from Domino to Exchange
- A Lotus Notes user sends a message to an Exchange user. The message is placed in the Mail.box mail router database on the Domino server. The mail router determines that the message is for Exchange and deposits it in the EXCHANGE.BOX database file.
- The Connector for Lotus Notes process, LSNTSMEX, polls the EXCHANGE.BOX file every 15 seconds by default. This process picks up the message by using Notes API calls. Then, this process converts the message to TNEF format and delivers it to the READYIN folder on the Exchange server.
-
The LSMEXIN process takes the message in the READYIN folder, converts the address from a Lotus Domino address to an X.400 address, and then deposits it into the MTS-IN folder. Then, the Information Store service processes the message from the MTS-IN folder and places it in the SMTP service MTS-OUT folder. The message is routed from this folder.
Directory synchronization
For each object (contact or Windows user) that is created by directory synchronization in Active Directory, the object's
ImportedFrom attribute in Active Directory will be populated with the connector's ObjectGUID.
In the Domino directory, for the users that are created during directory synchronization, the connector will add its ObjectGUID from Active Directory to the $NotesDXAStamp field on the person document in Domino. This is how the connector can identify the objects that it created in each directory.
If you use the
Immediate Full Reload option for Exchange to Domino synchronizations, all users that are included for directory synchronization (when the OU containers were selected) will be sent to Domino whether they have been synchronized previously or not.
If you use the
Immediate Update option for Exchange to Domino synchronizations, only the objects that were modified since the last synchronization will be resent.
If you use the
Immediate Full Reload option for Domino to Exchange synchronizations, all Domino users will be sent to Active Directory even if they were synchronized previously.
If you use the
Immediate Update option for Domino to Exchange synchronizations, only the objects that were modified in the Domino directory since the last directory synchronization will be sent to Active Directory.
Lsdxa.exe uses the following DLLs to perform directory synchronization:
- Dxamex.dll: This DLL pulls and puts directory entries into Active Directory.
-
Dxanotes.dll: This DLL pulls and puts directory entries into the Notes Name and Address Book (NAB).
These two DLLs work in conjunction. They use the Exchsrvr\Conndata\Temp folder to share data.
Directory synchronization from Exchange and Active Directory to Domino
Dxamex.dll pulls entries from Active Directory and places the results in the Exchsrvr\Conndata\Temp\Dxanotes.txt file. Then, Dxanotes.dll imports this data into the Domino directory.
If a full directory synchronization is initiated, the following steps take place:
- LSDXA calls Dxamex.dll, which polls Active Directory by using Active Directory Service Interfaces (ADSI).
- Dxamex.dll requests a complete list of users from the Export containers.
- When Dxamex.dll extracts the list of users from Active Directory, it writes them to the Exchsrvr\Conndata\Temp\Dxanotes.txt file. When Dxamex.dll starts to write to this file, LSDXA spawns a second instance of itself, which starts Dxanotes.dll.
- Dxanotes.dll reads this text file and creates or updates the user in NAB by using Notes API calls.
- The two LSDXA processes work in tandem. When one process writes to the Dxanotes.txt file, the other process reads from it.
- When directory synchronization is complete, the temporary text file is deleted, and the Usn.tbl file is updated.
If an update directory synchronization is initiated, the following steps take place:
- LSDXA calls Dxamex.dll, which polls Active Directory by using Active Directory Service Interfaces (ADSI).
- The connector keeps track of the highest USN number for the last completed directory synchronization cycle. It records this number in Usn.tbl file that is located in Exchsrvr\Conndata\Dxamex folder.
- The connector requests a list of changed users from the Export containers that have USN numbers that are higher than the last directory synchronization cycle.
- When the connector extracts the list of users from Active Directory, it writes this list to the Exchsrvr\Conndata\Temp\Dxanotes.txt file. When it is starts to write to this file, LSDXA spawns a second instance of itself, which starts Dxanotes.dll.
- Dxanotes.dll reads this text file and creates or updates the user in NAB by using Notes API calls.
- The two LSDXA processes work in tandem. When one process writes to the Dxanotes.txt, the other process reads from it.
- When directory synchronization is complete, the temporary text file is deleted, and the Usn.tbl file is updated.
When the connector writes Active Directory users into the Domino directory, it creates a field for these users named "$NotesDXAstamp". The connector populates this field with the connector server's GUID. This is how the connector keeps track of which Notes user documents were created by the connector.
Directory synchronization from Domino to Exchange and Active Directory
Dxanotes.dll pulls entries from the Domino directory, specifically, the NAB, and places the results in the Exchsrvr\Conndata\Temp\Dxamex.txt file. Then, Dxamex.dll imports this data into Active Directory.
If a full directory synchronization is initiated, the following steps will take place:
- LSDXA calls Dxanotes.dll, which uses Notes API calls to issue a request for all Domino directory users.
- LSDXA writes the Domino users to the Exchsrvr\Conndata\Temp\dxamex.txt file. Then, it spawns a second instance of itself, which starts Dxamex.dll.
- Dxamex.dll reads this text file and creates or updates the users in Active Directory by using ADSI.
- When directory synchronization is complete, the temporary text file is deleted, and the Exchsrvr\Conndata\Dxanotes\Pcta.tbl file is updated so that the "LastExtract" line is set to the date and time of the directory synchronization cycle that was just completed. This file is used during updates to determine changes.
If an update directory synchronization is initiated, the following steps take place:
- LSDXA calls Dxanotes.dll, which looks up the last directory synchronization cycle date and time in the Exchsrvr\Conndata\Dxanotes\Pcta.tbl file. Then, LSDXA uses Notes API calls to initiate a request for any users that were modified since this last directory synchronization cycle.
- LSDXA writes the Domino users to the Exchsrvr\Conndata\Temp\Dxamex.txt file. Then, LSDXA spawns a second instance of itself, which starts Dxamex.dll.
- Dxamex.dll reads this text file and creates or updates the users in Active Directory by using ADSI.
- When directory synchronization is complete, the temporary text file is deleted, and the Exchsrvr\Conndata\Dxanotes\Pcta.tbl file is updated so that the "LastExtract" line is set to the date and time of the directory synchronization cycle that was just completed. This file is used during updates to determine changes.
When the connector creates Notes users' representation in Active Directory (usually as Contacts), it will add a field named "ImportedFrom", which is populated with the connector server GUID. This is how the connector will keep track of the Notes users it created in Active Directory.
Factors that affect directory synchronization
Mapping filesYou may have an issue where a full directory synchronization from Active Directory and Exchange works, but an update directory synchronization does not work. This can happen if the Usn.tbl file is out of sync.
For more information about this issue and a resolution, click the following article number to view the article in the Microsoft Knowledge Base:
902459
Active Directory cannot replicate the object to the Lotus Notes directory when you configure the Exchange Connector for Lotus Notes to use the "Immediate update" mode in the Exchange System Manager in Exchange 2000 Server or in Exchange Server 2003
When the connector is installed, it populates the connector properties in Active Directory with the global catalog name that it used. This information is stored in the
msExchServer1NetworkAddress attribute. If this domain controller is no longer available, directory synchronization may fail.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
321287
Directory synchronization from Exchange 2000 to a foreign mail system fails in Exchange 2000
To keep track of the contacts' user name changes in Domino, a secondary Notes proxy address is applied to every contact. This proxy address uses the Notes unique identifier (UID) that is obtained from each Notes Person Document. Domino assigns a unique UID to each Person Document, much like GUIDs in Active Directory.
Customizing directory synchronization
The default directory synchronization behavior can be changed to fit an organization's requirements. The mapping tables can be modified to provide enough flexibility to meet most needs, such as synchronizing additional attributes or changing the format of an attribute.
For more detail about customizing directory synchronization, see the "Connector for Lotus Notes Directory Synchronization- Part 1" blog entry on the following Web site:
Additional reading
For an online comprehensive resource on this subject, see the "Exchange Server 2003 Coexistence and Migration for Lotus Domino Mail" topic on the following Microsoft Web site:
You can also download this topic in a help file format, NotesDirAndMailMigrat.chm, from the following Microsoft Web site:
To view the "Interoperating with and Migrating from Lotus Notes/Domino Messaging Infrastructures to Exchange Server 2003" topic, visit the following Microsoft Web site:
You can find several interesting blogs, including articles about Notes DocLinks and how the connector provides support for them, at the following Web site: