Intelligent Message Filter, Content Filter, can do more...

WinDeveloper IMF Tune
WinDeveloper IMF Tune

Inside Exchange Cluster Setup and Troubleshooting Tips (Part 5)

Nirmal Sharma [Microsoft MVP, MCSEx3]

Nirmal Sharma [Microsoft MVP, MCSEx3] Photo

Nirmal is a Microsoft MVP in Directory Service. He has been involved in Microsoft Technologies since 1994 and followed the progression of Microsoft Operating System and software. He is specialised in writing “internal” technical articles, white papers and tips on various Microsoft technologies.

Cast your Vote
Poor Excellent

Today we continue our walk through the internals of the Exchange Cluster setup installation. We look at the cluster specific modules. How these are installed, the important role they play in a cluster environment and more troubleshooting tips.

So far we discussed the Exchange installation up to the point when setup actually starts installing the cluster specific modules. Earlier in this series we also presented an important figure referred to as Figure B which I will be presenting here again for your convenience.

FIGURE B – Exchange Cluster Setup Internal Process

FIGURE B - Exchange Cluster Setup Internal Process

Exchange Cluster Installation Process

After setup detecteds that it is going to install the Exchange in a cluster environment, it executes the ScSetupExchangeVirtualServer function as shown in figure B.15. The cluster setup process for Exchange starts from here. The procedure contains a set of functions that are used to make an Exchange Server cluster ready.

Setup Entering into ScSetupExchangeVirtualServer procedure

FIGURE B.15 - Setup Entering into ScSetupExchangeVirtualServer procedure.

It executes and sets the install type to cluster. Setup copies the binary files from x:\Setup\Roles and X:\Setup\Common directories as shown in the main figure B.

Overview of Cluster Specific Files

After setup has finished copying binary files on the current node, it checks to make sure the current server does not have the Active Mailbox role. If this role is detected the cluster specific files won't be installed. Otherwise setup copies the following cluster-specific files:

EXRES.DLL - Exchange Resource DLL

EXCLUADM.DLL - Exchange Cluster Administration DLL

CLUSMSG.DLL - Exchange Cluster Event Message DLL

EXTRAS.DLL - New in Exchange Server 2007

The last file is new to Exchange Server 2007. It is intended for unified messaging and is not used at all. These files are copied to the X:\Windows\Cluster directory.

EXRES.DLL

Setup extends the functionality of EXREL.DLL by creating the Exchange Resource Types as shown in the figure B.

We already covered EXRES.DLL in great detail in the following articles:

Exchange Cluster Resource DLLs and the Failover Process (Part 1)

Exchange Cluster Resource DLLs and the Failover Process (Part 2)

EXCLUADM.DLL

This file provides user interfaces for interacting with the cluster. The setup copies and registers this file so that you can operate the Exchange Resources from the Cluster Administrator and the Exchange System Manager. Exchange supplies this DLL with the default installation.

This DLL is registered with COM+ and cluster services. The COM+ registration is required by the System Manager. It also registers with the cluster so that the resources can be controlled as explained later in this article.

ADMIN.INS file contains the installation data for the Exchange Administration Tools. The setup initially registers this file for the System Manager.

CLUSTER_SERVER.INS file also contains a line which is interpreted by the setup to register this DLL with the cluster services.

Registration of EXCLUADM.DLL with System Manager

FIGURE B.16 - Registration of EXCLUADM.DLL with System Manager

CLUSMSG.DLL

The CLUSMSG.DLL plays an important role for Cluster Administrators. Without this, problems with the Exchange Cluster would not be reported. In fact this DLL is responsible to generate Exchange related Event Messages when called by EXRES.DLL. These events are then recorded in the Event Viewer for Administrators to review. As an example, in figure B.17, you can see that the second entry from the bottom reports that "IsAlive checking for this resource failed due to a timeout". This message is logged with the System Events.

Event Entries in the CLUSMSG.DLL file

FIGURE B.17 - Event Entries in the CLUSMSG.DLL file.

There are more than 200 entries in the CLUSMSG.DLL and all the entries are related to the Exchange Server Cluster resources.

Troubleshooting Tips

If you are not able to manage Exchange resources, try running the following command to register EXCLUADM.DLL:
Regsvr32.exe -s excluadm.dll

You need to specify the exact path if it is not recognized by the regsvr32.exe command.

If you ever face any problem while creating exchange resources or the System Attendant resource doesn't create the Exchange Resources automatically, then that means the Setup couldn't find or execute the CLUSTER_SETUP.INS file from the source directory. In that case you need to create and register the Exchange Resource Types manually with the clustering software. You can use Cluster.exe to do that:
cluster [[/cluster:]ClusterName] resourcetypeResourceType_DisplayName/Option

Also make sure the CLUSMSG.DLL, EXRES.DLL and EXLCUADM.DLL are in the %SystemRoot%\Cluster directory.

Executing Cluster Specific UNS and INS files

After copying the cluster-specific files, setup executes the Exchange Cluster specific UNS and INS files in this order:
CLUSTER_SERVER.UNS
CLUSTER_SERVER.INS

It first executes the CLUSTER_SERVER.UNS file to cleanup any already installed components. Following that CLUSTER_SERVER.INS file is executed to create and register the Exchange Resource Types with the cluster, register the EXCLUADM.DLL with COM+ and Cluster, and bind the Exchange Provider with RPC and the TCP/IP Stack. The Setup executes CLUSTER_SERVER.INS to make sure the Exchange Resource Types are created and registered with the cluster before you are able to create any Exchange-specific resources in the cluster. Setup interprets each line in the file as shown in the figure below:

Contents of CLUSTER_SERVER.INS file

FIGURE B.18 - Contents of CLUSTER_SERVER.INS file

It executes CreateClusterResourceType function to create and register these resources with the clustering service. The resources which it pre-creates are shown in the main figure (Figure B).

Next the following commands will register excluadm.dll:
regsvr32.exe /s \bin\excluadm.dll
cladmreg.exe /q excluadm.dll

The first command registers the EXCLUADM.DLL with COM+ and next command registers the DLL with the cluster service. The last command is very important to the setup in cluster environment. You are able to interact with the cluster only with the help of EXCLUADM.DLL so this DLL must be registered in order to operate Exchange Resources in the cluster.

Troubleshooting Tips

Make sure you see the "Process has exited with 00000000" after each line the setup has interpreted or executed. If you don't see that then you need to run the commands manually or find the problem.

If cluster admin doesn't show the resources or you are not able to create the exchange resources, simply register the EXCLAUADM.DLL with COM+ and the cluster as shown above.

Executing Other INS and UNS files

Setup also executes other INS and UNS files. Some files are related to clustering and some are not.

CLUSTER_SHARED.INS and CLUSTER_SHARED.UNS

The CLUSTER_SHARED.INS file which is the next file executed by Setup is shown in the figure below:

Exchange Setup interpreting CLUSTER_SHARED.INS file

FIGURE B.19 - Exchange Setup interpreting CLUSTER_SHARED.INS file

The CLUSTER_SHARED.UNS file is executed first and then CLUSTER_SHARED.INS file. The reason to execute this file is to create a registry key for the Exchange Cluster. The registry key which is created is MSExchangeCluster. This key contains a reference to CLUSMSG.DLL to identify the module where Event Messages are located. The registry entry which is created is shown in the main figure (Figure B).

The following registry entry will be created under the MSExchangeCluster key:
EventMessageFile;%clusterdir%\clusmsg.dll

The %clusterdir% is the variable assigned to X:\Windows\Cluster directory which holds the CLUSMSG.DLL file.

Troubleshooting Tips

If Exchange Cluster doesn't log any entry in the event log it is always advisable to create the above registry entry manually.

SERVEREVENTLOG.INS

This file is mainly used to create more registry entries necessary by all other Exchange components to generate Event Log report entries. It contains DLL file names and registry locations for the other Exchange components. These DLLs are responsible to report Events as they occur. For example, the setup executes these lines to enable event logging for the SMTP service:

Enabling Logging for SMTP

FIGURE B.20 - Enabling Logging for SMTP

The file contains a key that will be created in the registry and the Event Logging file name (EXSMTP.DLL). The EXSMTP.DLL file is responsible to generate events for the SMTP Service. There are other entries also in the file which Exchange Setup executes to make sure these registry entries are created.

Troubleshooting Tips

If you don't see logging for any of the Exchange Component, go through this file and create these registry entries manually. The easiest way is to create a .REG file and then import it.

Conclusion

Today we saw what happens when Setup detects that it is going to operate/install in a cluster environment. We explored the Cluster specific INS and UNS files used by Setup and the corresponding entries in the Exchange Setup log file. Amongst other things we looked into the registration of event logging and we could re-create the registry entries if these go missing.

Copyright © 2005 - 2014 All rights reserved. ExchangeInbox.com is not affiliated with Microsoft Corporation