There are a number of situations when Cisco Unity reports that a Microsoft Exchange server is offline. Typically, this occurs directly as a response to an outage with the Exchange server in question. But, there are a few scenarios when an offline status is reported even if the Exchange server appears to be online. This document describes how to diagnose and resolve these situations.
Cisco recommends that you have knowledge of these topics:
This document is not restricted to specific software and hardware versions.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
These event log entries can appear if Cisco Unity detects that an Exchange server is offline.
Note: These event log errors are specific to Cisco Unity 3.1(5) and earlier. For Cisco Unity 4.0(1), the event source changes to CiscoUnity_MalEx and CiscoUnity_AvWm. Event IDs can change as well.
| Event Log Errors Specific to Cisco Unity 3.1(5) and Earlier
Event Type: Error
Event Source: AvWm
Event Category: Warning
Event ID: 2903
Time: 11:44:34 AM
Description: <Exchange server name> has gone offline (AvCsMgr:3982)
Note: The <Exchange server name> is replaced with the name of the Exchange server that is detected to be in the down state. In this previous example, AvCsMgr:3982 represents the name of the Cisco Unity service that detected the server to be offline and the process ID of that service.
In addition to the previous event log entry, MalEx, Doh, and Conversations can report errors related to messaging activity with error code 8004aa00. This is an example of this scenario. In short, whenever the error code 8004aa00 is seen in the event log, it is a result of the detection of the AvWm component that an Exchange server is offline.
| Messaging Activity with Error Code 8004aa00
Event Type: Error
Event Source: MALEx_MC
Event Category: Error
Event ID: 30002
Time: 7:41:45 AM
Description: Last Category An attempt to access Exchange Private Store
has failed: 8004aa00.
The AvWm component within Cisco Unity is responsible for the determination of the state of the Exchange servers with which it interacts. The AvWm component periodically tests each Exchange server that is monitored by Cisco Unity at 15-second intervals. The AVWm component test process has two steps:
Open the Service Control Manager on each Exchange server.
Query the status of the MSExchange services, for example, MSExchangeIS and MSExchangeDS are services for Exchange 5.5, and the MSExchangeIS is the service for Exchange 2000, in order to determine if the services are in the running state.
While this test is not an absolute indication of Exchange server status, it does give a good glimpse of the health of both the network connectivity to the Exchange server and the Exchange server itself.
If Cisco Unity incorrectly reports that an Exchange server is down, complete these steps in order to help diagnose the cause:
Check network cabling, Network Interface Card (NIC) settings, switches, and so forth in order to ensure that the Cisco Unity server and the Exchange server(s) in question are properly connected.
Verify that the server reported in the event log message for AvWm previously shown is indeed reachable by name. Utilities such as PING, IPCONFIG, and NSLOOKUP are useful in the diagnosis of name resolution issues.
Enable AvWm tracing to the event log. Choose HKLM > Software > Active Voice > AvWm > 1.00.
Change the Diag Level value to 1.
At the next server ping interval, AvWm generates additional information related to the cause of the error in the application event log. Error codes can be displayed in those event log entries. The error codes that display in the event log provide information in order to help diagnose the reason why Cisco Unity reports that an Exchange server is offline.
Note: In the event log, error codes are displayed as eight-digit hex values, for example, 80040005 or 80070005. For simplicity, this error code descriptions are identified by only the four right-most hex digits of the error code. For example, the hex value 80040005 is represented as 0005.
| Error Code
|| The specified service does not exist as an installed service.
|| Check in order to ensure that Exchange is installed on the server that is pinged. Also, if Cisco Unity interacts with any Exchange 2000 servers, the HKLM > Software Active Voice > AvWm > 1.00 > Exchange 2000 value must be set to 1. If it is not, Cisco Unity pings for MSExchangeDS, which is not available for Exchange 2000 servers.
|| The Remove Procedure Cal (RPC) server is unavailable.
|| This indicates a connectivity problem with the Exchange server mentioned. Re-verify that the specified server is valid, its name can be resolved, and that the network connection between Cisco Unity and this server is valid.
|| The remote procedure call failed.
|| This can indicate either an issue with the connection to the Exchange server, or that the Exchange Services do not run. Check the Service Control Manager and event log on the Exchange server in question in order to see if there are issues with the Exchange Services.
|| Access is denied.
|| The account under which the Cisco Unity Service runs does not have rights to query the Service Control Manager. This can occur when Cisco Unity interacts with Exchange 2000 clusters and the Cisco Unity Message Store that faces services, for example, AvCsMgr, AvUmrSyncSvr, AvMsgStoreMonitorSvr, are configured to run as local system accounts. Because Exchange 2000 clusters do not allow local system account access to query the Service Control Manager, AvWm considers the cluster to be down. The solution is to switch these services to run as a domain account, and to ensure that that account is not blocked by local or domain policies from accessing the Service Control Manager.
Choose HKLM > Software > Active Voice > AvWm > 1.00 > Disable Server Status Check (DWORD) and set the value to 1.
Restart the Unity services.
This section describes some tips for the resolution of Exchange server connectivity issues.
Caution: If you change the wrong registry key or enter an incorrect value, this can cause the server to malfunction. Before you edit the registry, confirm that you know how to restore it if a problem occurs. Refer to the Restoring topics in the Registry Editor Help.
Note: A typical backup of the Cisco Unity server does not back up the registry. Also note that for Cisco Unity failover, registry changes on one Cisco Unity server must be made manually on the other Cisco Unity server, because registry changes are not replicated. If you have any questions on how to change registry key settings, contact the Cisco Technical Support.
If you add this registry value and set it to 1, this disables the server ping check:
HKLM > Software > Active Voice > AvWm > 1.00 > Disable Server Status Check (DWORD)
This causes AvWm to assume that all Exchange servers are up all the time. This is especially useful in cases when Cisco Unity interacts with an Exchange 2000 cluster, and a rights issue prevents AvWm from querying the Service Control Manager on the cluster. If you set this registry value, it can allow Cisco Unity to start up, and allow the rights issue to be addressed at a later time.
Caution: This should be considered a short-term workaround, since any network or cluster failure results in severe Cisco Unity performance degradation.
If you add this registry value and set it to 1, this disables the server ping check:
HKLM > Software > Active Voice > AvWm > 1.00 > All Servers Down (DWORD)
This causes AvWm to assume that all Exchange servers are offline. This can be useful in the diagnosis of Cisco Unity Message Repository (UMR) functionality.
If you add this registry value, this allows the default server ping interval to be changed:
HKLM > Software > Active Voice > AvWm > 1.00 > Server Ping Period in msecs (DWORD)
Note: This requires you to restart all message facing services for it to take effect, and must be specified in milliseconds. The default is 15000 or 15 seconds.
These steps are useful in the verification that there is a rights issue outside of Cisco Unity. This issue can surface if the Service Control Manager on a remote Exchange server is accessed when the Cisco Unity message store facing services, for example, AvCsGateway, AvCsMgr, AvMsgStoreMonitor, AvTTSSvr, are already running as a domain account.
From the Start menu, choose Run, and enter cmd.exe.
At the command prompt, enter run as /profile /user:<svcacct> cmd.exe where <svcacct> is the Domain\Account by which the message store facing Cisco Unity services are running. This should display a new command window that runs under the context of the service account.
From this new command window, enter MMC.
From the MMC console, choose Console > Add/Remove Snap-in.
In the Add/Remove Snap-in property window, click Add and choose Services.
Click Add. In the Services dialog box, activate the Another Computer radio button, and either enter the name of the server or browse the drop list and select the Exchange server in question.
Click Finish, Close, and then OK. In the tree view, select the services snap-in just added.
If a dialog box appears that says Unable to open service control manager on <server name>, Error 5 Access is denied, this verifies that a privilege problem exists with the ability of the service account to access the Exchange server Service Control Manager. This must be addressed for AvWm in order to function correctly.
If a rights issue is found, it can be due to the security policies in place which affect the message store facing accounts. Dependent upon the type of installation, the domain controller, domain, and local security policies should be removed in order to verify that the rights to query the Service Control Manager are available.
If you receive the Exchange Server Offline error message even after you resolve the exchange server connectivity issues, verify permissions for the UnityMsgStoreSvc account, and check if you are a member of the Domain Admins and Local Administrators group. Use a Domain Admin account in order to run Permissions Wizard from the Cisco Unity Tools Depot .
If there is any firewall between the exchange server and the Cisco Unity Server, make sure that all the necessary ports are opened to enable communication between the servers.