다음을 통해 공유


Configure a Static UDP Port for Push Notifications in an Exchange 2010 Environment


This TechNet Wiki page explains how the new UDP based push notification feature introduced with Update Rollup 3-v3 for Exchange 2010 SP1 works. In addition, it explains how you configure a static UDP port and what you need to consider before enabling this feature.

 

Note

For information on how to configure static RPC ports on an Exchange 2010 Client Access Server, the Configuring Static RPC Ports on an Exchange 2010 Client Access Server TechNet Wiki article.


Exchange 2010 and Lack of Support for UDP Notifications

 

Up until Exchange Server 2010 SP1 Update Rollup 2, Exchange 2010 didn’t have support for User Datagram Protocol (UDP) notifications. When opening a mailbox using Outlook 2003, Outlook 2003 tries to register itself to receive new message notifications. However since this notification method wasn’t supported with Exchange 2010, Outlook 2003 instead reverted to polling the Exchange server for changes in the mailbox. Despite the fact that Outlook 2003 initiates the polling behavior, the Exchange server will dictate the polling frequency. By default Outlook 2003 polls the Exchange server every 60 seconds.

Because of this, the end users would see the following symptoms:

  • Outgoing e-mail messages stay in the Outbox for up to 1 minute
  • New e-mail messages do not arrive in the Inbox for up to 1 minute
  • Read messages will not be immediately marked read
  • Items that are deleted from folders do not disappear from the folder for up to 1 minute
  • Items that are moved from one folder to another folder take up to 1 minute to disappear from the original folder

There were two methods that could be used to work around the above symptoms:

  • Enable cache mode for all Outlook 2003 clients
  • Change the maximum polling frequency to 5 seconds

Based on customer feedback, the Exchange product group decided to re-add support for UDP notifications in Exchange 2010. This means that when Update Rollup 3-v3 has been applied on Exchange 2010 SP1 Client Access Servers, you now have a third workaround:

  • Enable push notifications

Since UDP based push notifications is the primary and most ideal method Outlook 2003 uses to receive notifications from an Exchange server, this will improve the end user experience significantly. You will no longer see delays when sending and receiving e-mail messages in online mode.


Enabling Push Notifications

When Update Rollup 3-v3 has been applied to the Exchange 2010 SP1 Client Access Servers in the organization, push notifications can be enabled by creating a new DWORD registry key named “EnablePushNotifications” under the following location:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeRPC\ParametersSystem

The value for the key should be set to “1” in order to enable push notifications.

To apply the changes, the Exchange 2010 Client Access Server should be restarted.


Configuring a Static Client-Side UDP Port

When enabling push notifications (UDP notifications), the default behavior for Outlook 2003 clients is to connect to the Exchange 2010 CAS servers using TCP and after the logon process, the Outlook 2003 client will tell the CAS server which port and IP address it expects to receive push notifications on. This will be a random UDP port within the dynamic RPC range (6005-59530 when the Exchange 2010 CAS role is installed on a Windows 2008 R2 Server). This means that when push notifications has been enabled on the CAS servers, you will see something like frame number 440 in Microsoft Network Monitor (NetMon), when the CAS server sends a UDP based push notification to an Outlook 2003 client.

In this example the source RPC port used on the CAS server is port 49517 and the destination RPC port on the machine on which Outlook 2003 is running is port 1211.

Note
By default Windows Server 2008 and 2008 R2 are configured with a dynamic RPC range of 49152-65535 for outbound connections. Earlier versions of Windows Server by default used port 1025-65535 (for more details about this change see Microsoft KB article: The default dynamic port range for TCP/IP has changed in Windows Vista and in Windows Server 2008). Also, when the Exchange 2010 Client Access server role is installed on Windows Server 2008 or 2008 R2, the dynamic RPC port range is changed to 6005-59530 and the highest usable port number is set to 60554.

If you have configured a static RPC port for the RPC Client Access (RPC CA) service, Exchange Address Book (AB) service, and for public folder (PF) connections on the Exchange 2010 Client Access Servers within the organization, you might wonder how you configure a static port for UDP notifications. Well, since this is all about push notifications (notifications pushed to the Outlook 2003 client), you cannot configure a static UDP port on the CAS servers. From the CAS server perspective, we will always see a random source port within the dynamic RPC range being used. However, you can configure a static UDP port on the client side. More specifically you can configure an Outlook 2003 specific registry key that forces CAS servers to use a static RPC destination port for push notifications.

To set static UDP port on a client machine, you need to create a DWORD registry key named “FixedUDPPort” under the following location:

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\RPC

The value for this key should be set to the RPC port you wish to use.

After having configured the static UDP port, you will need to restart the Outlook 2003 client.

If we use port 59534 as the static port, we can see this being reflected in NetMon as shown below.

You might wonder what port you should use for push notifications. If choosing to use a static port its best practice to use another port than the static ports used for the RPC CA and the AB services as well as public folder connections.


Considerations when using a Client Access Array

When using a client access array and a load balancer solution to distribute client traffic across the Exchange 2010 CAS servers in the CAS array, you don't need to create a UDP specific rule or virtual service on the load balancer solution. This is because push notifications are sent from the CAS server(s) to the Outlook 2003 client. UDP notifications do not occur from the Outlook 2003 client to the CAS server(s).

If you want push notifications to go through the load balancer and not directly from the CAS server to the client machine, you must employ DSR (Direct Server Return).


**Firewall Considerations  **

You must open the static UDP port (in this case port 59534) you decide to use for push notifications in any firewall that is placed between the Exchange 2010 CAS servers and the client machines.


See Also