Los Angeles Network Consulting providing professional services to the Los Angeles Area

Migrating from Novell GroupWise to Exchange 2003 Server

Running the Router for Novell GroupWise Service in Console Mode

The connection between Connector for Novell GroupWise and the Novell GroupWise API Gateway is a critical point in the connector architecture. The Router for Novell GroupWise handles the communication between Connector for Novell GroupWise and the Novell GroupWise API Gateway by transferring keyword-based text files between the connector store and the API gateway directory. If you discover that messages are not being transferred successfully, try starting the router process in console mode to obtain more detailed information about this process.

To start the Router for Novell GroupWise service in console mode, perform the following steps:

1. Stop the Microsoft Exchange Router for Novell GroupWise service in the Services tool. In the Stop Other Services dialog box, click Yes to stop the Microsoft Exchange Connector for Novell GroupWise service as well.
2. Start Windows Explorer, open the \Program Files\Exchsrvr\bin directory, and locate the Gwrouter.exe file.
3. Double-click the Gwrouter.exe file to start the GroupWise Router program in console mode. Verify that the router process started successfully and is polling the API Gateway directory (Figure 5.6).

 

Figure 5.6   Polling the API Gateway directory with the Router for Novell GroupWise service in console mode

 
4. To stop the GroupWise Router, press CTRL+BREAK to terminate the program.

Archiving Processed Messages

The Microsoft Exchange Router for Novell GroupWise service supports archiving of messages that pass through Connector for Novell GroupWise. This can be a useful feature if you want to capture damaged or bad messages. To enable the archiving feature, you must activate a parameter switch in the registry settings of Connector for Novell GroupWise using Registry Editor.

Caution :

If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

To activate the archive directory, perform the following steps:

1. Start the Registry Editor (Regedt32.exe) and open the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LME-GWISE\Parameters
2. On the Edit menu, click New, and then click DWORD Value to add the following value:

Value Name: Archive

Value:1

3. Restart the Exchange Router for Novell GroupWise service to create the \Archive directory in the \Programfiles\Exchsrvr\Conndata\Gwrouter directory. The \Archive directory will have the following subdirectories: \Dirsync, \Freebusy, \Gw2mex, \Gw2mexa, \Mex2gw, \Mex2gwa, \Togwise.

Note :

When you activate the archive feature, you must manually purge archives to avoid filling up the disk drive. It is recommended that you activate the archive feature only during troubleshooting sessions.

Troubleshooting X.400 Connectivity

X.400 connectors are objects with many configuration options. Typographical errors and basic configuration errors resulting from misunderstandings between system administrators are among the most typical causes of X.400-related transfer issues. Transfer problems can also be caused by overtaxing an X.400 communication partner (for example, when an X.400 1988 system does not scale back to the X.400 features of 1984 when communicating with an X.400 1984 system) or by outright protocol violations caused by an X.400 communication partner.

The following are typical causes of message transfer problems over X.400 connectors:

Connection attempt is timing out   If the Exchange MTA cannot establish a connection to the remote MTA, verify that the address information for the remote MTA is correct. When communicating over X.25, ensure that the EICON card can successfully establish a connection. When communicating over TCP/IP, make sure that name resolution works and use the Ping tool to probe the IP address of the remote host. If pinging the IP address of the remote MTA fails, you might need to resolve a general network issue. If pinging the IP address of the remote MTA succeeds, verify that the outgoing and incoming Open Systems Interconnect (OSI) address information (that is, T, S, and P Selector) is correct. You specify the OSI address information in the MTA transport stack or on the X.400 connector's Stack tab when you click the OSI Address button. The T-Selector (PSAP), S-Selector (SSAP), and P-Selector (PSAP) can be entered in either hexadecimal format or text. Verify that only the required fields are specified and that the fields are specified in the correct format. If multiple X.400 connectors use the same transport stack to connect to foreign X.400 MTAs, verify that each of the connectors has a unique value specified for the T-Selector. The T-Selector specifies the entry point to the transport layer of the X.400 protocol and, as such, should be unique.

Note :

The P-Selector is not supported in 1984 mode. The S-Selector is not supported in 1988 X.410 mode. The T-Selector is the most uniformly used throughout X.400 MTAs.

Connection attempt is refused   X.400 systems refuse to communicate with other MTAs when security information is mismatched. The security information consists of the remote MTA name and password, as well as the local MTA name and password. The remote and the local password fields are case-sensitive and must be an exact match with the information submitted by the MTA that attempts to connect. You specify the remote MTA name and password on the connector's General tab. The Exchange MTA uses the name of the Exchange server for the local MTA name. If this name must be changed, or if you need to specify a password for the local MTA, switch to the connector's Override tab and click Modify.
Connection is dropped   Sudden disconnects during message transfer suggest that X.400 protocol parameters on the local and the remote MTAs do not match. Verify the settings on the connector's Advanced tab. Ensure that the correct conformance year (1984 or 1988) is selected according to the capabilities of the remote MTA, and clear the Allow Exchange contents check box if the remote MTA is not an Exchange system. The Allow Exchange contents option causes the Exchange MTA to send non-X.400 body parts over the X.400 connector, which non-Exchange systems might identify as a protocol violation.

Note :

You must configure the X.400 connector to match the conformance year of the remote MTA, and the option to allow Exchange contents should always be disabled when connecting to a non-ExchangeMTA. Furthermore, the typical non-Exchange MTA requires that the Two-Way Alternate option be disabled. Allow BP-15 (in addition to BP-14) is available when sending to a 1984 X.410 or a 1988 X.400 MTA.

Also check the Reliable Transfer Service (RTS) values of your connector on the Override tab when you click the Additional Values button. Ensure that the Checkpoint size, Recovery timeout, and Window Size settings match the configuration of the remote MTA. For example, the window size determines how many data packets the local MTA can send unacknowledged. A window size that is too large for the remote MTA will cause the remote MTA to drop the connection as soon as the window of the remote MTA is overrun. If the window size is too small, the connection will time out when the local MTA has sent all allowed packets and is waiting for an acknowledgment from the remote MTA (which never arrives, because the remote MTA is expecting more data packets). Work with the system administrator of the remote MTA to determine which RTS values to use.

Transport Protocol Data Unit (TPDU) size is too large   Some X.400 systems, such as Lotus Soft-Switch EMX, require support for TPDU sizes of 2 kilobytes (KB). To configure the Exchange MTA to support this TPDU size, start the Windows Registry Editor and change the value for the REG_DWORD registry key named Supports 2K TPDU from 0 to 1. This registry key is found in the following location:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeMTA\Parameters

Caution :

If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

Messages are not being transferred in one direction   Message transfer in one direction can function correctly although messages in the other direction are not getting through. This can be caused by mismatched RTS values or by name resolution problems. For example, if the local and remote MTAs are configured with Fully Qualified Domain Names (FQDNs), rather than IP addresses or NetBIOS names, the local MTA might be unable to resolve the IP address of the incoming connection to a fully qualified domain name (FQDN) to identify the X.400 connector responsible for the connection. The local MTA attempts to resolve the IP address to a host name. It first searches the local HOSTS file. If unsuccessful, the MTA then queries Domain Name System (DNS) for the host name. If this reverse lookup also fails, the connection attempt is terminated.

Note :

For the reverse lookup to be successful, the DNS server must have a Pointer (PTR) record in DNS for the remote MTA that maps its IP address to its FQDN.

Testing Messaging Connectivity

The best way to test X.400 connectivity is to send an e-mail message with a large attachment to an X.400 user from Outlook. A large attachment is recommended because, for example, small test messages might not reveal mismatched RTS values. To address the message, create a one-off X.400 address for the e-mail message.

To create a one-off address in an e-mail message, perform the following steps:

1. Open Outlook, start a new e-mail message, and then click To.
2. In the Select Names dialog box, click Advanced, and then click New.
3. In the New Entry dialog box, under Put this entry, select In this Message only, select X.400 Address from the list of entry types, and then click OK (Figure 5.7).

 

Figure 5.7   Specifying a one-off X.400 recipient

 
4. In the New X.400 Address Properties dialog box, specify the recipient information. You must complete the Display Name, PRMD, ADMD, and Country/Region fields, plus one additional field, such as Surname, to form a correct X.400 address. If the X.400 address of your target user has additional fields, you must specify those, as well.
5. Click To.

Note :

Alternatively, you can type a one-off X.400 address directly in the To line. The following is an example (you must type the entire string, including the brackets): [x400:c=us;a=exchange;p=contoso;s=lastname]

Remember to ensure that message routing works in both directions. Ask the X.400 user to reply to your message to verify that message transfer also works in the opposite direction.

Examining X.400 Message Flow

The Exchange message queues involved in transferring a message over an X.400 connector are the same as those for Connector for Lotus Notes or Connector for Novell GroupWise, except that the Exchange MTA places outgoing messages into an internal MTA message queue on the file system instead of an MTS-OUT folder in the Exchange store. Figure 5.8 shows how messages flow from Exchange Server 2003 to an X.400 remote MTA.


 

Figure 5.8   Message flow to an X.400 remote MTA

 

Check the Exchange 2003 to X.400 message flow in the following order:

1. Check the Outbox folder in your Outlook client   When you send a message to another user, the mailbox store receives the message from your client and then the store driver passes the message to the SMTP service for routing and transfer. If messages do not leave your Outbox, check that the SMTP service on your mailbox server is running.
2. Check the internal message queues of the SMTP transport engine   The Queues container in Exchange System Manager contains several SMTP message queues. These queues contain messages during various stages in the routing process. For more information about SMTP message queues, see the section "Troubleshooting SMTP Connectivity" later in this chapter.

For X.400 recipients, the routing proceeds as follows:

1. The message is passed to the Advanced Queuing component in the SMTP service, where it is placed in a pre-categorization queue.
2. The categorizer resolves both recipient and sender addresses, and expands any mail-enabled groups. For X.400 recipients, the message is then placed in a post-categorization queue. The categorizer is also discussed in Chapter 4, "Interoperating with and Migrating from Other Non-Exchange Messaging Systems."
3. Because the message is for a remote recipient, the advanced queuing engine moves the message to the pre-routing queue.
4. The routing engine picks up the message from the pre-routing queue and determines the routes for delivering the message. It assigns the message to the X.400 connector instance that handles the address type of the recipient (that is, X.400). Because the Exchange MTA is responsible for X.400 connectors, the routing engine passes the message to the Exchange MTA.
3. Check the Messages Waiting To Be Routed queue of the Exchange MTA   This queue contains messages that are waiting to be routed by the Exchange MTA. If messages remain in this queue for an extended period, a problem with the Exchange MTA might be indicated.
4. Check the message queue of the X.400 connector   When the routing engine passes the message to the Exchange MTA, the MTA places the message in an internal message queue, which the MTA maintains separately from the Exchange store on the file system (\Program Files\Exchsrvr\Mtadata). You can only view the queue of the X.400 connector in Exchange System Manager when the Microsoft Exchange MTA Stacks service is running. The name of the queue in the Queues container corresponds to the name that you assigned the connector during its initial creation (in the Name text box on the General tab).

Note :

If you suspect that a corrupted message is blocking the X.400 connector message queue, use the MTA Check tool to check the MTA message queues for consistency. You can also use the MTA Check tool to repair the MTA message queues, if necessary. To download this tool, visit http://go.microsoft.com/fwlink/?LinkId=25924.

5. Check the application event log and other protocol logs to examine the communication between the Exchange MTA and the remote MTA   Exchange 2003 does not run separate connector services for X.400 connectors. Instead, the Exchange MTA uses the connector configuration objects to determine the protocol parameters to use for message transfer. It is the Exchange MTA itself that communicates with the remote MTA.

There are four different logs that you can use to examine X.400 communication:

1. Application Event Log   By default, the Exchange MTA only logs a minimum of information in the application event log. You can increase the level of event logging for the Exchange MTA in Exchange System Manager when you display the properties of the bridgehead server and switch to the Diagnostics Logging tab. Under Services, select MSExchangeMTA, and under Categories, select the various categories that belong to the MTA, such as X.400 Service. Set the logging level to Maximum to obtain the most detailed information. Remember that there is no service specific to an X.400 connector. All logging relates directly to Exchange MTA activities.

Note :

Setting the diagnostics logging level to Maximum can cause a large number of events to be written to the application event log. As a best practice, set the size of the application and system event log to 30 MB, and enable the option to overwrite events as needed. Remember to reapply the default setting of None after you finish connector testing.

2. EV0.log   This is a text file that the Exchange MTA can write to in addition to the application event log. This log includes the information that is displayed in Event Viewer. It is in text file format so that you can view the events conveniently from a word processor. To enable this log file, you must set a registry parameter for the Exchange MTA. Change the value of the REG_DWORD parameter named Text Event Log from 0 (the default) to 1. You must restart the Microsoft Exchange MTA Stacks service for the change to take effect. The Exchange MTA creates the EV0.log file in the \Program Files\Exchsrvr\Mtadata directory.

The Text Event Log parameter is found in the following location:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \MSExchangeMTA\Parameters

Caution :

If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

3. AP0.log   The APO.log file is generated when you set the diagnostics logging level for the Interface and Interoperability categories to Maximum. This log file contains information about how the local MTA and the remote MTA are establishing connections and sending data. This information is useful if you must examine protocol data units exchanged between the MTAs. This file resides in the \Program Files\Exchsrvr\Mtadata directory.
4. BF0.log   The BF0.log file is generated when the X400 Service and APDU categories are set to a diagnostics logging level of Medium or Maximum. This log file contains a binary dump of messages that have been sent and received by the Exchange MTA.

The application event log and additional log files are also of interest if you must verify message transfer from an X.400 system to Exchange 2003. Figure 5.9 shows the individual stages of X.400 message transfer to Exchange 2003.


 

Figure 5.9   Message flow through an X.400 connector to Exchange 2003

 

Check the message flow from the X.400 system to Exchange 2003 in the following order:

1. Check the Messages Waiting To Be Routed queue of the Exchange MTA   After the Exchange MTA receives a message from a remote MTA, it must communicate with Active Directory to determine the message's destination. Because the message is for an Exchange user, the Exchange MTA puts the message in its SMTP Mailbox Store queue. To view this queue in Exchange System Manager, in the Queues container, select Messages Waiting To Be Routed, and then click Find Messages.
2. Check the SMTP Mailbox Store queue   The Exchange store driver picks up the message from this queue and transfers it to the SMTP service. The SMTP transport engine receives the message, categorizes it, and then routes it to the target recipients. For more information about message transfer through the SMTP service, see the following section, "Troubleshooting SMTP Connectivity."
3. Check the application event log and other protocol logs to examine the communication between the Exchange MTA and the remote MTA   Information about how to check these logs was presented earlier in this section.

Troubleshooting SMTP Connectivity

The SMTP service is the internal transport engine of Exchange 2003 and is involved whenever messages are transferred. The SMTP service uses SMTP connectors to transfer messages to their destinations, similar to the way in which the Exchange MTA uses X.400 connectors. SMTP connectors are configuration objects that contain parameters that determine how the SMTP service establishes connections and transfers messages. However, SMTP connectors are not an absolute requirement for SMTP connectivity. Exchange 2003 virtual SMTP servers can also communicate directly with remote SMTP hosts.

The following are typical causes of message transfer problems over SMTP:

Host Unreachable   If the SMTP service cannot establish a connection to the remote SMTP host, verify that the address information for the remote host is correct and that the name of the remote host can be resolved to a valid IP address. If you know the IP address of the destination system, you can use Telnet.exe to try to establish a connection to TCP port 25. If you do not know the IP address of the destination system, start the NSlookup tool (NSlookup.exe) at a command prompt, and perform the following steps to query the destination domain's mail exchanger (MX) records:
1. In the NSlookup tool, ensure that a network connection exists to your DNS server, and then type the command set type=mx and press ENTER.
2. Type the domain name you are interested in (for example, microsoft.com) and then press ENTER. You should notice one or more MX records and the IP addresses for those hosts in the output screen (Figure 5.10).

 

Figure 5.10   Determining the IP Address of an MX record for a destination domain

 
3. Type exit and press ENTER to exit the NSlookup tool.

If you are unable to connect to TCP port 25 on the destination system using Telnet.exe, see Knowledge Base article 169790, "How to Troubleshoot Basic TCP/IP Problems" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=169790).

Destination domain is unreachable   A message cannot reach its final destination because the SMTP service is unable to determine the MX record that is responsible for the domain. When the SMTP domain cannot be reached, the SMTP service informs the message originator in a non-delivery report (NDR) that the destination server for the recipient could not be found in DNS. This error can also appear if an incorrect address space of type SMTP has been assigned to one or more SMTP connectors. Use Exchange System Manager or the WinRoute tool to verify the message routing topology.
SMTP protocol errors   Protocol errors occur when the remote SMTP host responds to the local SMTP host's EHLO command with a 500-level error (for example, because the remote host does not support Extended SMTP) or when SMTP commands are out of sequence (for example, attempting MAIL FROM before EHLO). If a protocol error is detected, the sending system will QUIT the connection and report this with an NDR indicating that the remote SMTP server cannot handle the protocol. To see why a remote SMTP server rejects protocol requests, enable SMTP logging for the virtual server or use Network Monitor to trace the network communication. To activate SMTP logging, on the virtual server's General tab, select Enabling logging, and specify the logging format you prefer under Active log format.
SMTP address space is not configured for inbound message transfer   You must identify the SMTP address space of your Exchange organization as inbound to reach Exchange 2003 users from the Internet or another SMTP messaging system. For example, if your SMTP address is administrator@fourthcoffee.com, and fourthcoffee.com is not identified as an inbound address space, messages from the Internet addressed to administrator@fourthcoffee.com will not reach your mailbox. To verify that the Exchange organization is configured correctly, in Exchange System Manager, open Default Recipient Policy in the Recipient Policies container, and then switch to the E-Mail Addresses tab. Verify that the SMTP address generation rule contains the correct domain information. If the address information differs from your requirements (for example, if @contoso.com is specified for the Exchange organization, and you also need @fourthcoffee.com), create an additional SMTP address generation rule and ensure that the This Exchange Organization is responsible for all mail delivery to this address check box is selected. For more information about setting up SMTP domains for inbound message transfer, see Knowledge Base article 260973, "Setting Up SMTP Domains for Inbound and Relay E-Mail in Exchange 2000 Server and Exchange Server 2003" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=260973).
Loop-back is detected   If you have multiple SMTP virtual servers configured on your Exchange server, ensure that they serve unique incoming ports and also that the outgoing SMTP port configuration is valid to avoid looping between local virtual servers. Ensure that if you have configured multiple virtual SMTP servers on your bridgehead server, none are set to All Unassigned in the IP address list on the General tab of the virtual server.

If you are using SMTP connectors, you should also ensure that no SMTP connectors exist that have the address space of the local organization. If you must share the SMTP address space of the local organization with another messaging system, ensure that you forward all messages to specified smart hosts. Do not select Use DNS to route to each address space on this connector in your SMTP connector configuration. For detailed step-by-step procedures for configuring an SMTP connector, see Appendix C, "Configuration Procedures for Migrating from a Non-Exchange Messaging System."

Testing Messaging Connectivity

To test messaging connectivity, send e-mail messages to an Exchange user from an Internet messaging system (for example, Microsoft HotmailŪ). You can specify the SMTP address for an Exchange recipient in Active Directory Users and Computers when you display the properties of the user account and switch to the E-mail Addresses tab. Remember to reply to the test message, and ensure that you receive the reply in Hotmail to verify that message routing works in both directions.

You can also use Telnet.exe to quickly test inbound message transfer to an Exchange 2003 recipient, as outlined in Knowledge Base article 153119, "Telnet to Port 25 to Test SMTP Communication" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=153119).

Examining SMTP Message Flow

The SMTP service consists of the following internal components, which handle message transfer between SMTP hosts and Internet-based e-mail clients on one side and Exchange 2003 on the other side:

SMTP protocol service   Handles SMTP communication with remote SMTP hosts and clients. This service implements the SMTP protocol commands that Exchange 2003 supports.
Store driver   Allows the SMTP service to communicate with the Exchange store to save messages that are passing through the SMTP service. The store driver also handles the delivery of messages to local recipients.
Advanced queuing engine   Provides queue management and logic for message delivery, routing, and relay.
Categorizer   Provides categorization services for inbound and outbound messages, such as distribution list expansion using Lightweight Directory Access Protocol (LDAP) and Active Directory.
Routing engine   Provides the routing logic required to pass outbound messages to the correct messaging connector.
Queue manager   Manages link queues, which are used to store messages that are waiting for transfer to the next remote destination.

Figure 5.11 shows how messages pass through the components of the SMTP service.


 

Figure 5.11   Message flow through the SMTP transport engine of an Exchange 2003 server

 

Check the SMTP message flow in the following order:

1. Check the SMTP log   When you enable SMTP logging, as mentioned earlier in this chapter, verify that messages from a remote host are transferred successfully to the local SMTP protocol service, or that messages from the local SMTP protocol service are transferred successfully to a remote host. The following is a sample log listing that shows the results of the Telnet communication discussed earlier:

#Software: Microsoft Internet Information Services 6.0

#Version: 1.0

#Date: 2003-11-30 22:33:03

#Fields: date time c-ip cs-username s-sitename s-computername s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status sc-win32-status sc-bytes cs-bytes time-taken cs-version cs-host cs(User-Agent) cs(Cookie) cs(Referer)

2003-11-30 22:33:03 192.168.202.223 - SMTPSVC1 SERVER01 192.168.202.199 0 HELO - - 250 0 50 4 10 SMTP - - - -

2003-11-30 22:34:05 192.168.202.223 - SMTPSVC1 SERVER01 192.168.202.199 0 MAIL - +FROM:<user@contoso.com> 250 0 41 28 40 SMTP - - - -

2003-11-30 22:35:03 192.168.202.223 - SMTPSVC1 SERVER01 192.168.202.199 0 RCPT - +TO:<Administrator@contoso.com> 250 0 38 35 10 SMTP - - - -

2003-11-30 22:37:42 192.168.202.223 - SMTPSVC1 SERVER01 192.168.202.199 0 DATA - <SERVER01MTwKnhoKQXw00000001@server01.contoso.com> 250 0 133 30 134223 SMTP - - - -

2003-11-30 22:38:16 192.168.202.223 - SMTPSVC1 SERVER01 192.168.202.199 0 QUIT - - 240 331987 69 4 10 SMTP - - - -

2. Check the Messages Pending Submission queue   In Exchange System Manager, in the Queues container, select Messages Pending Submission, and then click Find Messages. When the SMTP protocol service accepts and acknowledges a message, it places the message in this queue. The Messages Pending Submission queue is also called the pre-submission queue, because messages in this queue have not been processed by the categorizer yet. The pre-submission queue is the entry point into the advanced queuing engine.

Note :

If messages constantly accumulate in the pre-submission queue, this might indicate a performance problem. Occasional peaks in CPU performance can cause messages to appear in this queue intermittently. Frequently, problems with event sinks (for example, custom SMTP processing code for antivirus screening and for disclaimers) cause messages to accumulate in this queue.

3. Check the Messages Awaiting Directory Lookup queue   The advanced queuing engine places the message from the pre-submission queue into this queue so that the categorizer can process it. The Messages Awaiting Directory Lookup queue is also called the pre-categorization queue, because it is a throttling queue for the categorizer. The Messages Awaiting Directory Lookup queue contains messages while the categorizer resolves the sender and recipient information against Active Directory, expands distribution lists, checks restrictions, applies per sender and per recipient limits, and so on.

Messages can accumulate in the pre-categorization queue if the categorizer cannot process the messages. The categorizer might not be able to access the global catalog to access recipient information, or the global catalog lookup might be performed slowly. On front-end servers, messages also remain in the Messages Awaiting Directory Lookup queue if you disable the Exchange store. It is recommended that you keep the Exchange Information Store service running on front-end servers to process messages successfully.

If you want to obtain information about categorizer processing, increase the level of event logging for the MSExchangeDSAccess and MSExchangeTransport services. Set the logging level for all categories to Maximum to obtain most detailed information.

Note :

Setting the diagnostics logging level to Maximum can cause a large number of events to be written to the application event log. As a best practice, set the size of the application and system event log to 30 MB, and enable the option to overwrite events as needed. Remember to reapply the default setting of None after you finish connector testing.

4. Check the Local Delivery queue   When the recipient's mailbox resides on the local Exchange 2003 server, the message categorizer marks the recipient as local by setting a per-recipient property that indicates the destination server according to the recipient's homeMDB attribute, which points to the private store where the recipient's mailbox resides. (At this point, the messages are in the post-categorization queue.) For local recipients, routing is skipped, and the advanced queuing engine transfers the messages to the Local Delivery queue, from which the Exchange store driver obtains them for local delivery to an Exchange mailbox. Messages accumulate in this queue if the Exchange Information Store service is not accepting messages or has a performance problem. To obtain detailed information in the application event log about why messages are accumulating in the Local Delivery queue, you can enable diagnostics logging for the MSExchangeIS service and for the MSExchangeTransport service.
5. Check the Messages Waiting To Be Routed queue   This queue holds messages for remote delivery. The advanced queuing engine transfers messages for non-local recipients from the post-categorization queue into this queue, which is also called the pre-routing queue. The advanced queuing engine then calls the routing engine to move the messages to their respective link queues. Messages might accumulate in the pre-routing queue if routing problems exist. If messages accumulate in the pre-routing queue, increase the diagnostics logging level for the MSExchangeTransport service for the Routing category to obtain additional information.
6. Check the remote delivery (link) queues   Link queues are dynamic in nature and are managed by the queue manager component. The name of the queue matches the remote delivery destination. If the queue is in a retry state (that is, failed connection attempts occurred), use Telnet.exe to try to connect to the destination host, as explained earlier in this section. To immediately retry sending the messages that are queued, restart the virtual SMTP server.
7. Check the Messages With An Unreachable Destination queue   Messages in this queue cannot reach their final destination server. For example, Exchange cannot determine a route or a connector to the final destination, or all available routes or connectors are labeled as down. Check the routing configuration in your Exchange 2003 organization to ensure that at least one connector to the destination is available. To retry sending the messages that are queued, restart the virtual SMTP server.
8. Check the Messages Queued For Deferred Delivery queue   This queue contains messages that are queued for later delivery. When this option is set, the Messages Queued for Deferred Delivery queue includes messages that were sent by older versions of Microsoft Outlook, such as Microsoft Outlook 2000. Newer versions of Outlook queue these types of messages in the Exchange store. Messages remain in the Messages Queued For Deferred Delivery queue until their scheduled delivery time. Other reasons why messages can end up in this queue include:
A message is sent to a user's mailbox while the mailbox is being moved.
The user does not yet have a mailbox, and no master account security ID (SID) exists for the user. For further information, see Knowledge Base article 316047, "XADM: Addressing Problems That Are Created When You Enable ADC-Generated Accounts" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=316047).
SMTP message routing is configured in a way that causes a message to loop. SMTP moves looping messages to this queue, so you can correct the problem without messages immediately returning an NDR. Moving messages to the Messages Queued For Deferred Delivery queue also helps to prevent a performance impact to the server resources.
9. Check the DSN Messages Pending Submission queue   This queue contains delivery status notifications (DSNs) that are waiting to be rendered by Exchange. For example, NDRs are delivery status notifications. Messages can accumulate in the DSN Messages Pending Submission queue under the following conditions:
The Information Store service is unavailable or is not running.
A private store is not mounted.
Issues exist with the IMAIL Exchange store component. IMAIL is the component that performs message conversion.

To obtain detailed information in the application event log about why messages are queuing up in the DSN Messages Pending Submission queue, increase diagnostics logging for all categories of the MSExchangeIS service.

10. Check the Failed Message Retry queue   This queue contains messages that failed a queue submission. Messages can fail a queue submission for several reasons, and the failure can occur before any other processing has been done. If messages are corrupted or system resources are low, messages appear in this queue. If messages appear in the Failed Message Retry queue, review your server configuration to determine whether you have non-Microsoft programs or event sinks installed, such as virus scanners, that can interfere with message queuing. If the computer responds slowly, use Windows Task Manager to identify processes that use too many system resources. Restarting the Internet Information Services (IIS) Admin service might provide temporary relief until you can determine the root cause of the problem. By default, messages in the Failed Message Retry queue are reprocessed every 60 minutes.
Top of pageTop of page

Troubleshooting Directory Synchronization

Exchange System Manager is a helpful tool for troubleshooting directory synchronization problems. You can use this tool to trigger manual synchronization cycles and full reloads, which is a recommended first action if you discover that address information in Active Directory or the non-Exchange messaging system is incomplete or missing. Triggering a synchronization cycle is also a good idea after you apply a configuration change to determine whether you successfully solved the problem.

Directory synchronization issues can be classified as follows:

The messaging connector is unable to read or write recipient information in Active Directory   When you configure directory synchronization with Lotus Notes or Novell GroupWise, you must specify export and import containers for the recipient objects. The messaging connector requires the following access permissions:
Import Container   The computer account of the Exchange server that is running the messaging connector must be granted the Create All Child Objects and Delete All Child Objects permissions to create, modify, or delete recipients in this container. The computer account also requires the special permissions List Contents, Read All Properties, and Write All Properties.
Export Containers   The computer account of the Exchange server that is running the messaging connector must be granted the Read permission to read the recipient objects in the selected container. The computer account also requires the special permissions List Contents, Read All Properties, and Read Permissions.

Note :

When you configure Import and Export containers in Exchange System Manager, you will be prompted to assign the computer account the required permissions automatically. To verify how permissions are assigned, start Active Directory Users and Computers, right-click the target container, select Properties, and then switch to the Security tab. Click Advanced, and then double-click the computer account (for example, SERVER01$ (CONTOSO\SERVER01$)).

The messaging connector is unable to communicate with the non-Exchange messaging system to export or import recipient information   Directory synchronization requires a functioning connector configuration. In addition, you must ensure that the connector has the permissions required to access and update directory information in the non-Exchange messaging system. Check the following:
Directory synchronization with Lotus Notes   You must grant the connector ID that Connector for Lotus Notes uses to communicate with Lotus Domino editor access to the Lotus Domino directories that you want to synchronize. For step-by-step instructions for how to configure permissions for the directory of a Lotus Domino domain, see Appendix A, "Configuration Procedures for Migrating from Lotus Notes/Domino Messaging Functionality."
Directory synchronization with Novell GroupWise   When you configure the Novell GroupWise API Gateway using the GroupWise administrator program, you must specify the directory synchronization option in the optional gateway settings. Ensure that you set the Directory Sync/Exchange option to Exchange so that directory information can be exchanged between Novell GroupWise and Exchange 2003 through the API gateway. For step-by-step instructions for how to configure optional gateway settings, see Appendix B, "Configuration Procedures for Migrating from Novell GroupWise Messaging Functionality."

Communication with Active Directory

Both Connector for Lotus Notes and Connector for Novell GroupWise rely on the same directory synchronization architecture to communicate with Active Directory. As shown in Figure 5.12, the LSDXA process is responsible for handling the actual directory synchronization processes. Lsdxa.exe resides in the \Program Files\Exchsrvr\Bin directory and is started automatically when you start the Microsoft Exchange Connector for Lotus Notes or Microsoft Exchange Connector for Novell GroupWise service in the Services tool.

Tip :

You can use Task Manager to verify that Lsdxa.exe is running on your bridgehead server. When the connector service is started, Lsdxa.exe is listed on the Processes tab.


 

Figure 5.12   The Exchange 2003 directory synchronization architecture

 

The LSDXA process is responsible for parsing the Exchconn.ini file and loading the appropriate subprocesses into memory to communicate with Active Directory and the non-Exchange directory. To communicate with Active Directory, Lsdxa.exe starts the Microsoft Exchange Server DX Agent (DXAMEX), which is implemented in a dynamic-link library (DLL) called Dxamex.dll.

DXAMEX communicates with Active Directory through Active Directory Service Interfaces (ADSI). DXAMEX extracts the recipient information from the export containers that you specified in the connector configuration and places the data, in the form of a temporary file in message interchange format (MIF), into the \Program Files\Exchsrvr\Conndata\Temp directory. The file name depends on the system with which you are synchronizing recipient information (Table 5.4). In the other direction, the DXAMEX process seeks an MIF file named Dxamex.txt, which it processes to place recipient information into the import container that you specified in the connector configuration.

Table 5.4   MIF files for directory synchronization
Directory synchronization File name Example

Active Directory to Lotus Notes

Dxanotes.txt

Load

A

FULLNAME:Administrator

MAILDOMAIN:Exchange

COMPANY:

DEPARTMENT:

FIRSTNAME:

LASTNAME:Administrator

LOCATION:

SHORTNAME:Administrator

UNID:DBC07527-91C1F649-8427525F-902428E2

DN:CN=Administrator,CN=Users,DC=contoso,DC=com

USNCreated:8194

Initials:

Title:

Phone:

MobilePhn:

Fax:

Resource:

CALDOM:Exchange

MAILSRV:

 

EndOfBuffer

 

Active Directory to Novell GroupWise

Dxagwise.txt

Load

A

DOMAIN:

POSTOFFICE:

OBJECT:

LASTNAME:

FIRSTNAME:Administrator

DESCRIP:Administrator

ACCOUNTID:

TITLE:

DEPARTMENT:

PHONE:

FAX:

GWADDR:Exchange.First Administrative Group.Administrator

EXCHANGEID:Microsoft Exchange Connector for Novell GroupWise

 

EndOfBuffer

 

Lotus Notes or Novell GroupWise to Active Directory

Dxamex.txt

Load

U

DN:admin

TA:GWISE:CONTOSO_DOM.CONTOSO_PO.admin

ALIAS:admin

NAME:admin

FULLNAME:admin

FIRSTNAME:

Initials:

LASTNAME:admin

GWISEADDR:CONTOSO_DOM.CONTOSO_PO.admin

UNID:3d39133c-9085ae59-5a332abf-7ded4de3

COMPANY:

DEPARTMENT:

TITLE:

OFFICE:

PHONE:

FAX:

MOBILEPHN:

USNCREATED:

 

EndOfBuffer

 

 

Note :

If you want to examine the communication between the DXAMEX process and Active Directory, click the Diagnostics Logging tab for your bridgehead server, and then select the MSExchangeADDXA service. From the list of categories, select LDAP Operations and then set the logging level to Maximum. Remember to set the logging level back to the default setting of None after you complete a directory synchronization cycle. Otherwise, you might quickly fill the application event log with a very large number of entries.

Communication with the Lotus Domino Directory

To communicate with Lotus Domino, the LSDXA process starts the Lotus Notes DX Agent (DXANOTES), which is implemented in a dynamic-link library (DLL) named Dxanotes.dll. This file resides in the \Program Files\Exchsrvr\Bin directory. The DXANOTES process parses the Dxanotes.txt file, processes the addresses, and places them in the target directory on the Lotus Domino server. To communicate with Lotus Domino, DXANOTES uses the Lotus Notes client API.

DXANOTES also performs the directory synchronization from Lotus Notes to Active Directory. The process uses the Lotus Notes client API to read the Lotus Domino directory and writes the recipient information into the Dxamex.txt file in the \Program Files\Exchsrvr\Conndata\Temp directory.

Note :

If you want to examine the processing performed by DXANOTES, click the Diagnostics Logging tab for your bridgehead server, and then select the LME-NOTES service. From the list of categories, select Notes Directory Synchronization and then set the logging level to Maximum. Remember to set the logging level back to the default setting of None after you complete a directory synchronization cycle.

Communication with the Novell GroupWise Directory

Directory synchronization with Novell GroupWise follows a similar pattern. However, instead of DXANOTES, the LSDXA process starts the Novell GroupWise DX Agent (DXAGWISE), which is implemented in a DLL named Dxagwise.dll. This file resides in the \Program Files\Exchsrvr\Bin directory.

DXAGWISE communicates with Novell GroupWise by means of the Novell GroupWise API Gateway and admin messages. DXAGWISE reads the Dxagwise.txt file, processes the recipient information, and places an admin message into the API Gateway directory (subdirectory API_IN) to perform the update operation (add, modify, or delete recipient objects) in the Novell GroupWise directory. The admin message is placed in the \Program Files\Exchsrvr\Conndata\Gwrouter\Togwise directory, and the Router for Novell GroupWise service transfers this message to the API Gateway's API_IN directory. The following is an example of an admin message to update recipient objects in the Novell GroupWise directory:

WPC-API= 1.2; 
Msg-Type= Admin; 
DS-External-Post-Office= 
    Operation= Add; 
    Domain= EXCHANGE; 
    Post-Office= FIRST ADMINISTRATIVE GROUP; 
    Time-Zone= gmt; 
    ; 
DS-User= 
    Operation= Modify; 
    Visibility= System; 
    Domain= Exchange; 
    Post-Office= First Administrative Group; 
    Object= Administrator; 
    Last-Name= \; 
    First-Name= Administrator; 
    Description= Administrator; 
    Account-ID= \; 
    Title= \; 
    Department= \; 
    Phone= \; 
    Fax= \; 
    Network-ID= \; 
    User-Def-5= Microsoft Exchange Connector for Novell GroupWise; 
    ; 
-END-

In the opposite direction, DXAGWISE places a request (this time for a list of GroupWise users) in the form of an admin message in the \Program Files\Exchsrvr\Conndata\Gwrouter\Togwise directory. The Router for Novell GroupWise service transfers this message into the API_IN directory on the NetWare server. The API gateway, the GroupWise MTA, and the Novell GroupWise Post Office Agent handle the request, and return results in the form of an e-mail message. The API gateway places the results into the API_OUT directory in the form of an .api file. The Router for Novell GroupWise service retrieves this file and places it into the \Program Files\Exchsrvr\Conndata\Gwrouter\Dirsync directory. DXAGWISE receives the recipient information from there and writes updates or the complete list (Full Load) to Dxamex.txt.

The following is an example of an admin message to request directory information from the Novell GroupWise directory:

WPC-API= 1.2;
Msg-Type= Admin;
-GET-DIRECTORY-
-END-

Note :

To examine the content of Novell GroupWise admin messages, enable message archiving as explained earlier in the section "Troubleshooting Novell GroupWise Connectivity." You can then find the request files in the \Program Files\Exchsrvr\Conndata\Gwrouter\Archive\Dirsync and \Program Files\Exchsrvr\Conndata\Gwrouter\Archive\ToGwise directories. In addition, if you want to examine the processing performed by DXAGWISE, display the Diagnostics Logging tab for your bridgehead server, and then select the LME-GWISE service. From the list of categories, select GroupWise Directory Synchronization and then set the logging level to Maximum. Remember to set the logging level back to the default setting of None after you complete a directory synchronization cycle.

Top of pageTop of page

Troubleshooting Calendar Connectivity

The synchronization of free/busy information between Exchange 2003 and Lotus Notes or Novell GroupWise relies on hidden free/busy system folders in the Exchange store. Exchange 2003 maintains a separate free/busy folder for each administrative group in an organization. As Exchange users create appointments in their calendars, their Outlook clients update the users' free/busy information in the free/busy folder, so that other Exchange users who are scheduling meetings with a user can check that user's availability. When you add recipient objects for Lotus Notes or Novell GroupWise users to Active Directory by way of directory synchronization, their free/busy information can also be stored in the free/busy system folder.

Note :

It is a good idea to increase the level of event logging for Calendar Connector in Exchange System Manager if you are interested in examining the individual processes involved in free/busy updates. Select MSExchangeCalCon from the Services list on the Diagnostics Logging tab, and then select Request from Partner, Request to Partner, Response from Partner, Response to Partner, Connection, General, and Housekeeping from the Categories list. Set the logging level to Maximum to obtain the most detailed information. Remember to reapply the default setting of None after you finish testing the connector.

Troubleshooting Free/Busy Lookups to and from Exchange 2003

Calendar Connector updates the free/busy information for non-Exchange users when an Exchange user requests the information. First, Calendar Connector intercepts the request and checks for existing free/busy records in the system folder. If the record has been updated within the time frame you specify under Maximum age in minutes of foreign free/busy data in Exchange that can be used without querying the foreign calendar in the Calendar Connector configuration, Calendar Connector returns this data to the Outlook client immediately. Otherwise, Calendar Connector uses the NOTESCAL or GWISECAL component to send a request for free/busy data to the non-Exchange system (Figure 5.13).

If the non-Exchange system responds within the period of time specified under Maximum number of seconds to wait for response from foreign calendars in the Calendar Connector configuration, the data is written to the target user's free/busy record in the Exchange free/busy folder. Exchange 2003 then returns this information to the Outlook client. However, if the non-Exchange system does not respond within the allowed time frame (or if Calendar Connector is not running), Exchange 2003 returns the existing data from the free/busy record to the client without performing an update operation first.

Sometimes responses from the non-Exchange system come in late. For example, the non-Exchange system might not respond quickly enough due to a performance problem. When responses come in late, Exchange 2003 returns the existing data to the Outlook client, and when the new data is finally received, Calendar Connector updates the free/busy public record for the user. The updated information is not returned to the Outlook client.

Note :

include the most recent updates or that more up-to-date information could be obtained with a subsequent query.


 

Figure 5.13   Performing free/busy lookups for Lotus Notes or Novell GroupWise users

 

The following are typical Calendar Connector issues related to Exchange 2003:

Recipient objects for non-Exchange users are not in Active Directory   The requirements for Calendar Connector are similar to those for Connector for Lotus Notes and Connector for Novell GroupWise. These connectors must be installed in the same administrative group as Calendar Connector and should be configured before Calendar Connector. It is important that directory synchronization between Active Directory and the partner directory works. For detailed step-by-step procedures for configuring Calendar Connector in a Lotus Notes environment, see Appendix A, "Configuration Procedures for Migrating from Lotus Notes/Domino Messaging Functionality." For detailed step-by-step procedures for configuring Calendar Connector in a Novell GroupWise organization, see Appendix B, "Configuration Procedures for Migrating from Novell GroupWise Messaging Functionality."
Calendar Connector is unable to access the SCHEDULE+ FREE BUSY folder   You must install Calendar Connector on an Exchange server that contains a replica of the free/busy system folder for the administrative group. To check whether an Exchange server contains a replica of the free/busy system folder for the administrative group, in Exchange System Manager, open the Folders container, right-click Public Folders, and then select View System Folders. Free/busy folders are named according to their administrative group and reside in the SCHEDULE+ FREE BUSY container. Display the properties of the system folder for your local administrative group, and switch to the Replication tab. Ensure that the public store of the Exchange server that is running Calendar Connector is listed in the list of stores.

Also ensure that Calendar Connector has permissions to read and create items in the free/busy system folder. To do this, switch to the Permissions tab and click Client Permissions. In the Client Permissions dialog box, verify that the Default account is assigned the Editor role.

Note :

You can verify that Calendar Connector is able to access the free/busy system folder when you start Calendar Connector in console mode. Ensure that the Calendar Connector service is not running, and then double-click Calcon.exe, which resides in the \Program Files\Exchsrvr\Bin directory. If Calendar Connector is able to access the free/busy system folder in console mode, the following message will appear: The Calendar Connector has logged onto the "Schedule+ Free Busy Information - first administrative group" system folder on SERVER01 to submit calendar query responses. To stop Calendar Connector, press CTRL+BREAK.

Troubleshooting Free/Busy Lookups to and from Lotus Notes

NOTESCAL, an internal component within Calendar Connector, is responsible for free/busy communication with Lotus Notes (Figure 5.13). NOTESCAL is implemented in a DLL called Notescal.dll, which resides in the \Program Files\Exchsrvr\Bin directory. NOTESCAL communicates with Lotus Domino through the Lotus Notes client API to transfer requests for Lotus Notes free/busy information to the Lotus Notes Schedule Manager task. Schedule Manager is a task running on the Lotus Domino server that manages a Notes database called busytime.nsf. The busytime.nsf database holds free/busy information for all of the users on the server and for resources, such as conference rooms, identified in the server's public address book.

The following processes are involved when performing free/busy lookups from Exchange 2003:

1. NOTESCAL receives the free/busy query from MAPICAL and passes it to the Lotus Notes Schedule Manager task.
2. The Schedule Manager task retrieves the information for local users from the busytime.nsf database. For users on downstream Lotus Domino servers, Schedule Manager communicates with the Lotus Notes Calendar Connector task that is also running on the Lotus Domino server to locate the free/busy information.
3. The Lotus Notes Calendar Connector task determines the domain of the target user and reads the Calendar Server Name field from the domain document. Calendar Connector then communicates with the remote calendar server to perform the free/busy query.
4. The Lotus Notes Calendar Connector task returns the information to the Schedule Manager task.
5. The Schedule Manager task returns the information to NOTESCAL.
6. NOTESCAL passes the information to MAPICAL, which updates the Lotus Notes user's free/busy record in the system folder.
7. Exchange 2003 returns the information to the Outlook user.

The following processes are involved when performing free/busy lookups from Lotus Notes:

1. The Lotus Notes client passes the free/busy query to the Schedule Manager task.
2. The Schedule Manager task determines that the request is for a non-local user and passes it to the Calendar Connector task.
3. The Calendar Connector task reads the Person document for the Exchange user and determines that the user is in a foreign domain. The Calendar Connector task checks the Calendar System field in the Foreign Domain document for the Exchange 2003 organization. The Calendar System field identifies the name of the add-in program that handles the free/busy lookups on the Lotus Domino server, the Exchange Calendar Connector add-in (ExCalCon).
4. The Calendar Connector task passes the free/busy request to ExCalCon.
5. ExCalCon passes the request to the NOTESCAL component, which processes the request and communicates with MAPICAL to obtain the free/busy information for the Exchange user from the free/busy system folder.
6. NOTESCAL passes the response back to ExCalCon, which in turn passes the information to the Calendar Connector task.
7. The Calendar Connector task passes the data to Schedule Manager.
8. Schedule Manager delivers the free/busy information to the Lotus Notes user.

Note :

Because Lotus Notes identifies all Exchange users as belonging to a foreign domain, all requests for Exchange free/busy information are received from the Lotus Notes Calendar Connector task.

Calendar Connector Issues

The following are typical Calendar Connector issues related to Lotus Notes/Domino:

Unable to connect to the target Lotus Domino server   Calendar Connector only supports x86-based Lotus Domino servers running on Microsoft Windows NTŪ 4.0, Windows 2000, or Windows Server 2003. Also, you must ensure that the name of the Lotus Domino server is the same as the name of the server running Windows. The Lotus Notes client requirements are the same as for Connector for Lotus Notes. Ensure that you are using Lotus Notes release 4.6 or later and that the Lotus Notes client directory is in the system search path.
ExCalCon is not running   You must install and run ExCalCon (Excalcon.exe) on the Lotus Domino server so that Lotus Notes users can query the free/busy information of Exchange users. By default, ExCalCon must be started manually using the load excalcon server01 exchange.box command each time the Lotus Domino server restarts. It is recommended that you automate the startup by updating the notes.ini file on the Lotus Domino server. To do this, edit the ServerTasks= line and append the command excalcon server01 exchange.box.
Foreign domain document for the Exchange organization is not updated   It is important that you identify the Lotus Domino server that is running ExCalCon in the foreign domain document for your Exchange organization. In the foreign domain document, switch to the Calendar Information tab and specify the calendar server name as well as a calendar system name in the Calendar system text box (for example, exchange.box).
Calendar Connector cannot route requests to non-adjacent Lotus Notes domains   In smaller Lotus Notes networks, or in hub and spoke topologies in which all domains are adjacent to the connected domain, a single Calendar Connector instance with a direct connection to one Lotus Domino server can handle all free/busy communication. The Lotus Notes Calendar Connector task handles this communication. Lotus Notes domains that are downstream from the domain that hosts the bridgehead server must have a foreign domain document that matches the bridgehead server domain. However, free/busy querying is not supported to Notes domains that are not adjacent to the domain connected to the Calendar Connector. To work around this limitation, install multiple instances of Calendar Connector.

Enabling Detailed Logging on Lotus Domino

It is difficult to locate problems that are encountered when Lotus Notes users try to access free/busy information for Exchange users, because most of the processes are handled by tasks that are running on the Lotus Domino server. It might be a good idea to enable debug logging for the Lotus Domino server to collect helpful troubleshooting information.

To enable debug logging for calendar processes on the Lotus Domino server, perform the following steps:

1. Stop the Lotus Domino server.
2. Edit the Notes.ini file for the Lotus Domino server. By default, this file resides in the \Lotus\Domino directory.
3. Add the following line to the end of the Notes.ini file:
debug_sched_all=1 
4. Save the Notes.ini file and restart the Lotus Domino server.

After restarting the Lotus Domino server, all Lotus Notes Calendar Connector and Exchange Calendar Connector activities are reported to the server console. In addition, you can save the information in an output file. To do this, you must the set the DEBUG_OUTFILE variable in the server's Notes.ini file. For example, you can type the following line to write all console messages to a file named output.txt in the root directory: DEBUG_OUTFILE=C:\output.txt. You must restart the Lotus Domino server for the changes to take effect. After the server reinitializes, all messages, as well as debugging information, are written into this file. This can involve a high volume of data. Debugging affects the performance of your Lotus Domino server. You should specify the debugging parameters only in a troubleshooting situation.

Troubleshooting Free/Busy Lookups to and from Novell GroupWise

Novell GroupWise servers can route calendar queries anywhere within the Novell GroupWise network, so you can have one Calendar Connector handling all free/busy requests between Exchange 2003 and Novell GroupWise. As shown in Figure 5.13, the GWISECAL component handles this communication. GWISECAL is implemented in a DLL named Gwisecal.dll, which resides in the \Program Files\Exchsrvr\Bin directory. GWISECAL relies on Connector for Novell GroupWise, which means that if message transfer and directory synchronization work properly, free/busy requests will most likely be transferred correctly as well.

The following processes are involved when performing free/busy lookups from Exchange 2003:

1. The MAPICAL component identifies a Novell GroupWise user in a free/busy query and passes the request to the GWISECAL component.
2. The GWISECAL component translates the request into a SEARCH-type keyword-based text file and places it into the \Program Files\Exchsrvr\Conndata\GWRouter\ToGwise directory. Note that the message originator is the Microsoft Exchange System Attendant. The message is addressed to the Novell GroupWise user for whom Calendar Connector requests the free/busy information. The following is an example of a SEARCH-type request:
WPC-API= 1.2;
MSG-TYPE= Search;
Msg-ID= AAIMIDMI:2003.12.2.21.28:2004.1.31.21.28:2003.12.3.5.28.51;
From= 
    WPD= CONTOSO_DOM; 
    WPPO= Exchange Gateway; 
    WPU= Microsoft System Attendant; 
    CDBA= CONTOSO_DOM.Exchange Gateway.Microsoft System Attendant; ; 
To= 
    WPD= CONTOSO_DOM; 
    WPPO= CONTOSO_PO; 
    WPU= FrankM; 
    CDBA= CONTOSO_DOM.CONTOSO_PO.FrankM; ; 
Begin-Time= 2/12/2003 21:28;
End-Time= 31/1/2004 21:28;
-END-
3. The Router for Novell GroupWise obtains the message from the \ToGwise directory and places it into the API_IN directory of the API gateway.
4. The API gateway processes the message according to the MSG-TYPE keyword and places it into the WPCSIN directory for the Novell GroupWise MTA.
5. The Novell GroupWise MTA routes the message to the home post office of the GroupWise user and passes it to the appropriate Novell GroupWise Post Office Agent (POA).
6. The Novell GroupWise POA processes the request and returns the resulting free/busy information to the GroupWise MTA in the form of a SEARCH message.
7. The GroupWise MTA transfers the message into the WPCSOUT directory in the API Gateway directory and the API gateway transfers the message into the API_OUT directory.
8. The Router for Novell GroupWise picks up the SEARCH message from the API_OUT directory and places it according to the MSG-TYPE keyword into the \Program Files\Exchsrvr\Conndata\GWRouter\FreeBusy directory. The following is an example of a response to a free/busy query:
WPC-API= 1.2; 
Header-Char= T50; 
Msg-Type= SEARCH; 
Orig-Msg-ID= AAIMIDMI:2003.12.2.21.28:2004.1.31.21.28:2003.12.3.5.28.51; 
To= 
    CDBA= CONTOSO_DOM.Exchange Gateway.Microsoft System Attendant; 
    ;
Busy-For= 
        CDBA= CONTOSO_DOM.CONTOSO_PO.FrankM; 
Busy-Report=  
    Start-Time= 11/12/03 17:00; 
    End-Time= 12/12/03 8:00; , 
    Start-Time= 12/12/03 17:00; 
    End-Time= 15/12/03 8:00; , 
    Start-Time= 15/12/03 17:00; 
    End-Time= 16/12/03 8:00; , 
    Start-Time= 16/12/03 17:00; 
    End-Time= 17/12/03 8:00; , 
    Start-Time= 17/12/03 17:00; 
    End-Time= 18/12/03 8:00; , 
    Start-Time= 18/12/03 17:00; 
    End-Time= 19/12/03 8:00; , 
    ;
Send-Options= None; 
-END-
9. The GWISECAL component retrieves the message and translates it into Exchange format. GWISECAL then passes the data to the MAPICAL component.
10. MAPICAL updates the free/busy record for the Novell GroupWise user in the free/busy system folder, and Exchange 2003 returns the information to the requesting Outlook user.

The following processes are involved when performing free/busy lookups from Novell GroupWise:

1. A Novell GroupWise user performs a free/busy search for an Exchange user. The Novell GroupWise client generates a SEARCH message, which the Novell GroupWise system transfers to the API gateway.
2. The API gateway transfers the SEARCH message from the WPCSOUT directory into the API_OUT directory, where the Router for Novell GroupWise picks it up and places it according to the MSG-TYPE keyword into the \Program Files\Exchsrvr\Conndata\GWRouter\FreeBusy directory. The message is addressed to the Exchange user for whom the Novell GroupWise user requests free/busy information. The structure of the message is similar to the one generated by the GWISECAL component for queries from Exchange users.
3. The GWISECAL component obtains the SEARCH message from the \FreeBusy directory, translates it into Exchange format, and then passes the request to the MAPICAL component.
4. MAPICAL processes the free/busy query and returns the requested information to the GWISECAL component.
5. The GWISECAL component translates the request into a SEARCH-type response and places it into the \Program Files\Exchsrvr\Conndata\GWRouter\ToGwise directory. The structure of the message is similar to the one generated by the Novell GroupWise system for a response to queries from Exchange users.
6. The Router for Novell GroupWise obtains the message from the \ToGwise directory and places it into the API_IN directory of the API gateway. The Novell GroupWise system routes the response to the user who issued the free/busy query.

Note :

GroupWise users must have a visibility setting of System or higher to receive calendar information from Exchange.

Calendar Connector Issues

The following are issues that you might encounter when synchronizing free/busy information between Exchange 2003 and Novell GroupWise:

Free/busy request might cause the Novell NetWare server to stop responding   If you send a free/busy request to a nonexistent Novell GroupWise domain or nonexistent post office through the Novell API gateway, the Novell NetWare server might stop responding. This is caused by a Novell GroupWise and Novell GroupWise API Gateway bug related to handling non-delivery reports.

When the GroupWise MTA receives a free/busy request that is not valid through the API gateway, the GroupWise MTA responds with a mail-based NDR. The API gateway picks up the mail NDR and attempts to match it with the original free/busy request. The following error message is then displayed: Message does not contain Orig-Msg-ID property. The API gateway goes into an unstable state, and when the next free/busy request is received, the API gateway causes the server to stop responding.

Routing probe messages are not received   When you start Calendar Connector, the GWISECAL component places a test message into the connector store to ensure that the Microsoft Exchange Router for Novell GroupWise service and the API gateway are running and can communicate with each other to transfer the free/busy requests between Novell GroupWise and Exchange 2003. You might have to troubleshoot Connector for Novell GroupWise and the API Gateway, as explained earlier in this chapter, to ensure that message transfer works. The following is a probe message request:
WPC-API= 1.2;
MSG-TYPE= Search;
Msg-ID= FB-PROBE:2003.12.3.6.8:2003.12.3.6.8:2003.12.3.6.8.17;
From= 
    WPD= CONTOSO_DOM; 
    WPPO= Exchange Gateway; 
    WPU= FB-PROBE; 
    CDBA= CONTOSO_DOM.Exchange Gateway.FB-PROBE; ; 
To= 
    WPD= CONTOSO_DOM; 
    WPPO= Exchange Gateway; 
    WPU= FB-PROBE; 
    CDBA= CONTOSO_DOM.Exchange Gateway.FB-PROBE; ; 
Begin-Time= 3/12/2003 6:8;
End-Time= 3/12/2003 6:8;
-END-

The Novell GroupWise system responds to this message with the following answer:

WPC-API= 1.2; 
Header-Char= T50; 
Msg-Type= SEARCH; 
From-Text= CONTOSO_DOM.Exchange Gateway.FB-PROBE; 
From= 
    WPD= CONTOSO_DOM; 
    WPPO= Exchange Gateway; 
    WPU= FB-PROBE; ; 
To= 
    WPD= CONTOSO_DOM; 
    WPPO= Exchange Gateway; 
    WPU= FB-PROBE; 
    WPPONUM= 1; 
    WPUNUM= 1; 
    CDBA= 0001:0001; ; 
All-To= 
    WPD= CONTOSO_DOM; 
    WPPO= Exchange Gateway; 
    WPU= FB-PROBE; 
    WPPONUM= 1; 
    WPUNUM= 1; ; 
Msg-Id= 3FCD7DD9.2A0A.000B.000; 
To-Text= CONTOSO_DOM.Exchange Gateway(FB-PROBE); 
Date-Sent= 2/12/03 22:08; 
Send-Options= None; 
Status-Request= None; 
Begin-Time= 3/12/03 6:08; 
End-Time= 3/12/03 6:08; 
-END-

When GWISECAL receives the answer, Calendar Connector has successfully verified connectivity.

Unable to find requestor in the directory   As illustrated earlier in this section, System Attendant is the originator of all free/busy SEARCH messages from Exchange 2003 to Novell GroupWise. Therefore, it is critical to assign System Attendant a proper proxy e-mail address. When connecting to Novell GroupWise, the type must be GWISE. Ensure that you enable the generation of proxy addresses for your Exchange users in the default recipient policy. The Recipient Update Service will then assign System Attendant the required addresses during the next update cycle.

You can verify the proxy addresses of the System Attendant service using the ADSI Edit snap-in. Start ADSI Edit, connect to the configuration naming context of a domain controller, and then browse to the following object:

CN=Microsoft System Attendant,CN=Your Server Name,CN=Servers,CN=Your Administrative Group,CN=Administrative Groups,CN=Your Organization Name,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Your Domain,DC=com

Caution :

Use ADSI Edit at your own risk and do not change any values. If you modify the attributes of Active Directory objects incorrectly, you can cause serious problems. These problems might require you to reinstall both Active Directory and the Exchange 2003 organization. Microsoft cannot guarantee that problems that occur if you incorrectly modify Active Directory object attributes can be solved.

Right-click System Attendant, click Properties, and then, in the Select which Properties to View box, select Both. In the Select a Property to view box, locate the proxyAddresses attribute, and then verify that the required proxy address is present.

Top of pageTop of page

Troubleshooting the Exchange Migration Wizard

The Exchange Migration Wizard is the primary tool for migrating users and data from non-Exchange messaging systems to Exchange 2003. As explained in Chapter 1, the migration process consists of two key phases:

1. Extracting messaging data and recipient information from the source messaging system into temporary migration files   You can take a number of steps to increase your chances of a complete and successful migration. Reducing the amount of data to be migrated from the external system before beginning migration is an excellent strategy. Old files can be purged from the foreign system, and users can be asked to empty their mailboxes and calendars of outdated data. You can also configure the Exchange Migration Wizard to select only data from a more recent time period and only from active user accounts.
2. Importing the messaging data from temporary migration files into an Exchange mailbox store and importing recipient information into Active Directory   For optimum performance, move the migration files to the hard disk drive of the computer running the Exchange Migration Wizard. If errors occur during the import of migration files, the Exchange Migration Wizard logs errors to the application event log and import might stop. If import continues, the error is written to a recovery file in the Temp directory.

Troubleshooting the Data Extraction Process

The following are typical problems that prevent a successful extraction of data from the source system using the Exchange Migration Wizard:

Insufficient access rights for the migration account   For the Exchange Migration Wizard to successfully extract messaging data from user mailboxes, the migration account that you use to access the source system must be granted appropriate access rights. For example, GroupWise users must grant all appropriate proxy access rights to the GroupWise migration account and the account must be local to the post office that you are migrating. A similar requirement exists in Lotus Notes. Some messaging systems, such as Microsoft Mail for PC Networks, grant the post office administrator full access to all mailboxes.
The Exchange Migration Wizard stops responding during data extraction   The Exchange Migration Wizard uses non-Microsoft software components to communicate with the source system. For example, you must have a Novell GroupWise client installed on the local computer when migrating Novell GroupWise users. When migrating from Lotus Notes, a Lotus Notes client must be installed. Ensure that you use the proper versions of the software, and include the client directory in the system search path.
Source mailboxes are corrupted   Corrupted items in source mailboxes can cause the Exchange Migration Wizard to report problems during the extraction process. It is recommended that you check the source mailboxes using the database tools provided with the source messaging system prior to starting the Exchange Migration Wizard. For example, when you are migrating from Novell GroupWise, run the GroupWise messaging database repair tool, GroupWise Check (GWCheck), available from Novell. When migrating from Lotus Notes, run the Lotus Notes database fixup process on the Lotus Domino server.

Troubleshooting the Data Import Process

The following are typical problems that can prevent the successful import of data into an Exchange 2003 organization using the Exchange Migration Wizard:

Insufficient access permissions   To successfully import messaging data and recipient information into an Exchange 2003 organization, you must be an Exchange Full Administrator in the target administrative group and an account administrator in the target Active Directory domain or organizational unit.
The DLL Mmfmig32.dll cannot be found   You might encounter this problem if you install Microsoft Office XP or Outlook 2002 on the computer that you use to run the Exchange Migration Wizard. Office XP or Outlook 2002 might delete the correct Mmfmig32.dll file and copy an earlier version to the computer. To work around this problem, use one of the following procedures:
Install Outlook before you install the Exchange Migration Wizard. This ensures that the Mmfmig32.dll file is placed in the Program Files\Exchsrvr\bin folder, which is required for the Exchange Migration Wizard to function correctly.
Before you install Outlook on the computer, copy or move the Mmfmig32.dll file from the Winnt\System32 folder to a temporary location on the server. After installation, copy or move the Mmfmig32.dll file that you moved from the temporary location back to the Winnt\System32 folder.
Copy the Mmfmig32.dll file from the Program Files\Common Files\System\Mapi\1033 folder to the Program Files\Exchsrvr\bin folder.
Data inconsistencies in migration files   To import data into Exchange 2003, the Exchange Migration Wizard reads the packaging list file that is created during data extraction to determine which migration files to process. The following is an example of a packaging list file:
! CodePage
1252
! HeaderLine
Filename,Filetype
Directory.PRI,Primary
00000001.PRI,Primary
00000001.SEC,Secondary
00000002.PRI,Primary
00000002.SEC,Secondary

Every pair of primary (.pri) and secondary (.sec) files corresponds to a user who is being migrated. If a migration cycle fails because the Exchange Migration Wizard cannot process a user, you can edit the packaging list file to exclude the primary and secondary files for that user from the migration process. You can also edit the primary file to detect and correct any problems. Both the packing list and the primary files are comma-separated values (.csv) files. The following is an example of a primary file for a Novell GroupWise user:

! Migration Type

MAILMESSAGE,GWise:CONTOSO_DOM.CONTOSO_PO.admin,admin

! HeaderLine

Folder,Sender,To,Cc,Bcc,Subject,Send-Date,Received-Date,Priority,Unread,Unsent,Body,Level,Position

Inbox,,,,,,,,,,,,0,0

Inbox,Exchange Test[GWISE:Exchange.First Administrative Group.Administrator],NGWAPI,,,API Gateway Test,20031119172100,20031119172100,0,FALSE,FALSE,#00000001.SEC(66),0,0

Inbox,Ted Bremer[GWISE:CONTOSO_DOM.CONTOSO_PO.Ted],admin[GWISE:CONTOSO_DOM.CONTOSO_PO.admin]; Administrator[GWISE:Exchange.First Administrative Group.Administrator],,,This is a message,20031119210624,20031119210624,0,TRUE,FALSE,#00000001.SEC(532),0,0

Inbox,,,,,,,,,,,,0,0

Inbox,,,,,,,,,,,,0,0

Documents,,,,,,,,,,,,0,0

Work In Progress,,,,,,,,,,,,0,0

Cabinet,,,,,,,,,,,,0,0

Sent Items,admin,Exchange.First Administrative Group.Administrator[GWISE:Exchange.First Administrative Group.Administrator],,,API Test Message,20031119172104,20031119172104,0,FALSE,FALSE,#00000001.SEC(717),0,0

Sent Items,admin,Ted Bremer[GWISE:CONTOSO_DOM.CONTOSO_PO.Ted]; Administrator[GWISE:Exchange.First Administrative Group.Administrator],,,Re: This is a message,20031119210701,20031119210701,0,FALSE,FALSE,#00000001.SEC(967),0,0

Sent Items,,,,,,,,,,,,0,0

Inbox,GroupWise,,,,Migrated Calendar Information,,,0,TRUE,FALSE,#00000001.SEC(1235),0,0

Note :

Do not edit secondary files. These files contain the raw data and checksums. Adding or removing even a single character from the secondary file can cause errors when you later import the data.


 

Los Angeles Singles

Exchange with us

View Other Topics on Groupwise and Exchange:

Running the Router for Novell GroupWise Service in Console Mode

Migrate GroupWise-to-Exchange migration plan

Plan your migration from GroupWise to Exchange

Testing Messaging Connectivity in GroupWise Migration

Preparing the Novell GroupWise Migration Environment

GroupWise to Exchange Migration mail and calendars

Migrating from Novell GroupWise to Exchange 2000 Server

 

 


Site Map