Troubleshooting Component Load Balancing (CLB)

Technical Paper

On This Page

Introduction
How to Set Up Component Load Balancing
Appendix A: Testing Component Load Balancing
Appendix B: CLBService Event ID Troubleshooting
Resources

Introduction

The purpose of this document is to assist network administrators with setting up, troubleshooting, and testing component load balancing (CLB). This document assumes that the reader is familiar with Application Center 2000 and component load balancing concepts.

Prerequisites

  1. Application Center 2000 must be installed on all servers involved in CLB, except for DCOM clients.

  2. This document requires the installation of the Application Center 2000 Pre-flight checklist to perform CLB testing. CLB testing ensures baseline functionality. The Pre-flight checklist can be found in the Support directory on the Application Center 2000 product CD.

  3. Test standard DCOM connectivity between the DCOM client to the COM+ Routing servers, and between the COM+ Routing servers and the COM+ application servers using the CLB testing script found in Appendix A.

  4. Remove firewalls and other network devices that might block network connectivity during testing.

  5. High bandwidth, low latency network connections between the DCOM client, COM+ routing servers, and the COM+ application servers are required. A network connection of 10 Mbps or more is recommended.

Figure 1:

Figure 1:

How to Set Up Component Load Balancing

For component load balancing (CLB) to function properly, complete the following steps:

  1. Add each COM+ application server name to the routing list on the COM+ routing cluster.

  2. Install the full COM+ components (not a COM+ proxy stub) that are used in the COM+ application on both the COM+ routing cluster and the COM+ application cluster.

    Note: The New Deployment Wizard can automate this process.

  3. OPTIONAL Export COM+ proxy stub from one of the COM+ routing cluster servers.

    Note: If your DCOM clients are not the COM+ routing servers, then you need a COM+ proxy stub on your DCOM clients.

    1. Using the Component Services Microsoft Management Console (MMC) snap-in. Right click and select properties on My Computer.

    2. Click the Option tab. Enter the virtual IP address or a DNS name that resolves to the COM+ routing cluster's load balanced IP address, and then click OK.

    3. Ensure that Supports dynamic load balancing is cleared on COM+ components.

    4. Export COM proxies from the COM+ applications using the Component Services export wizard. This creates an MSI and corresponding CAB file.

    5. Copy the MSI and CAB files to a client computer, and install the COM+ proxy using the MSI file.

  4. Use the Component Services snap-in to enable dynamic load balancing support for each COM+ component on the COM+ routing cluster.

  5. Important: Restart the COM+ component load balancing Service and the Application Center Cluster Service on each server in the COM+ routing cluster.

A COM+ routing cluster can be any Application Center 2000 cluster. In most cases, this is a Web cluster routing to a COM+ application cluster. The exception to this rule is that a COM+ application cluster cannot self-route – meaning you cannot have a stand-alone COM+ application cluster routing to itself. For example, if you add the server names of the COM+ application to it's own routing list, then the instantiation request may go into an infinite loop. A separate Application Center 2000 cluster must serve as a routing cluster to the COM+ application cluster.

Before deploying COM+ applications, enable or disable support for dynamic load balancing appropriately. For example, if you are deploying from a COM+ routing cluster to a COM+ application cluster, disable support for dynamic load balancing before performing the deployment. Otherwise, the COM+ application cluster attempts to load balance the applications instead of activating them, because they have been marked as supporting dynamic load balancing. When enabling or disabling the support for dynamic load balancing of a COM+ component, you must restart the COM+ Component Load Balancing Service for the changes to take effect.

Troubleshooting

Important: This section assumes that the prerequisites of this document have been met and the setup steps in this document have been followed. Both of these are listed at the beginning of this document.

COM+ routing cluster:

  • Application Center 2000 must be installed without error.

  • Ensure the full COM+ components (not proxy stubs) are installed on all servers in the COM+ routing cluster. Keep in mind that COM+ applications are not automatically synchronized, and must be manually deployed to all servers in the COM+ routing cluster.

    Note: The New Deployment Wizard can be utilized to automate this process.

  • Ensure that your COM+ application can be instantiated when Supports dynamic load balancing is cleared.

    Note: If you select or clear Supports dynamic load balancing, the COM+ Component Load Balancing Service (comlbsvc) and the Application Center Cluster Service need to be restarted.

  • In Component Services, set the Identity of the COM+ application to a valid user account. If you plan on deploying this COM+ application, then this account should be a domain level account.

  • Ensure that all of the COM+ application servers are in the COM+ routing list. This can be found in the Application Center 2000 MMC client by clicking cluster name properties, and then clicking the Component Services tab.

  • Ensure that all COM+ components intended for load balancing have Supports dynamic load balancing selected in Component Services.

  • Ensure you are routing to COM+ servers that are members of an Application Center 2000 COM+ application cluster. If you try to route to an Application Center 2000 Web cluster, then it will always fail because only an COM+ application cluster has the ability to turn CLB online/offline for load balancing.

  • Important: If changes have been made to the COM+ routing list, or Supports dynamic load balancing was either selected or cleared on any component, restart the COM+ component load balancing Service (CLBService) and the Application Center Cluster Service on each server in the COM+ routing cluster.

  • Check the Event Viewer application log for events from the CLBService. An event ID of 4097 might indicate a problem with DCOM connectivity to one or more of the COM+ application servers. If all of the COM+ application servers are down, CLB-enabled components will fail until at least one COM+ application server is online.

    • The COM+ CLBService on the COM+ routing servers will attempt to instantiate the Application Center Load Balancer COM+ application on each of the servers listed in the routing list every 800 milliseconds. If instantiation of the Application Center Load Balancer COM+ application on one of the COM+ application servers fails or if it does not respond fast enough, then that application server will be considered down until it responds.
  • Ensure the COM+ CLBService is running and can be restarted without error.

  • AC CLB /LISTCLBMEMBERS will output the COM+ routing list.

  • NetBIOS and/or IP addresses of COM+ application servers will work in the routing list.

COM+ application cluster:

  • Application Center 2000 must be installed without error.

  • Ensure the full COM+ components (not proxies) are installed on all servers in the COM+ application cluster. Keep in mind that COM+ applications must be manually deployed, using the New Deployment Wizard, to all servers in the COM+ application servers.

  • Ensure that standard COM and DCOM instantiation requests on intended CLB COM+ components succeed without error.

  • Ensure that all members of the COM+ application cluster are online for load balancing.

  • Ensure that all COM+ components intended for CLB are on all target COM+ application servers, and that no COM+ components have Supports dynamic load balancing selected in Component Services.

  • Ensure the Application Center Load Balancer COM+ application is running in Component Services, and can be restarted and instantiated without error. This determines if this COM+ application server is considered functional.

  • If standard DCOM instantiation requests fail, then ensure the COM+ application is properly installed and the Identity is set to a valid user.

DCOM client:

  • Install COM+ proxies of the intended CLB components on the DCOM client. The proxy must reference a COM+ routing server or the virtual IP address (VIP) of a network load balanced-enabled cluster of COM+ routing servers.

  • If using the CreateObject method, ensure that the method does not specify a target server as the second argument. If a server is specified, it will override CLB. In that case, ensure that the server name or IP address resolves to the VIP of the COM+ routing cluster.

Appendix A: Testing Component Load Balancing

Use the following code on a client computer, or on one of the COM+ routing servers, to test DCOM connectivity. Copy and paste the code below into a text editor such as Notepad, and save the file as CLBTest.vbs. Run the script using CScript. This script assumes that the Pre-flight checklist COM+ components are properly installed on all servers involved in testing. The Pre-flight checklist is in the Support directory of the Application Center 2000 product CD.

'=========================================================
' BEGIN CODE
'=========================================================
On Error Resume Next
'=========================================================
'Get TargetCOMPlusServer Argument
'=========================================================
Set objArgs = WScript.Arguments
If objArgs.Count = 1 Then
If objArgs(0) = "/?" Then
WScript.Echo ""
WScript.Echo "Syntax:"
WScript.Echo "CScript CLBTest.vbs [COM+Server]"
WScript.Echo ""
WScript.Echo "Specifying a COM+Server will " &_
"use standard DCOM to that server. " & _
"Otherwise, it will use the local COM component" &_
" which may be CLB if enabled." 
WScript.Echo ""
WScript.Echo "Use Ctrl-C to break the infinite loop."
WScript.Echo ""
WScript.Quit 
Else
TargetCOMPlusServer = objArgs(0)
End If
End If
'=========================================================
'Begin an Infinite loop. 
'Use Ctrl-C to break the loop.
'=========================================================
Do Until WillNeverEqualOne = 1
Dim sobjPFComp
'=========================================================
'Was a COM+ Server given as an argument?
' If yes, then use standard DCOM to the server specified.
' If no, then instantiate the component locally.
'=========================================================
 If NOT TargetCOMPlusServer = "" Then
Set sobjPFComp = CreateObject("PFComponent.PFComp", _
TargetCOMPlusServer)
Else
Set sobjPFComp = CreateObject("PFComponent.PFComp")
End If
If (Err <> 0) Then
WScript.Echo "Error creating Component!"
WScript.Echo "Last Error: " & Err & _
" (" & Hex(Err) & ")" & Err.Description
WScript.Quit
 End If
 '=========================================================
'Report where the COM component was created on
'=========================================================
 Dim sstrComputerName
 sstrComputerName = sobjPFComp.GetMachineName
 Set sobjPFComp = Nothing
 WScript.Echo "The component was created on: " & _
 sstrComputerName
 Loop
'=========================================================
' END CODE
'=========================================================

The PFComponent.PFComp and sobjPFComp.GetMachineName are sample COM+ components provided by the Pre-flight checklist for Application Center 2000. This script assumes that the PFComponent.PFComp and sobjPFComp.GetMachineName COM+ components are properly installed on all Application Center 2000 servers involved in component load balancing.

Appendix B: CLBService Event ID Troubleshooting

Event ID: 4097

Source: CLBService

Type: Information

Description:

Microsoft COM Load Balancing Service has started.

Meaning: The COM+ Component Load Balancing service has started. This event can be found on a COM+ routing server.

Effect: Component load balancing (COM+ routing) will begin to operate.

Event ID: 4098

Source: CLBService

Type: Information

Description:

Microsoft COM Load Balancing Service has stopped.

Meaning: The COM+ Component Load Balancing service has stopped. This event can be found on a COM+ routing server.

Effect: Component load balancing (COM+ routing) will fail until this service has been restarted.

Event ID: 4101

Source: CLBService

Type: Information

Description:

COM Load Balancing Service updated the list of servers with %1;%2;…

Meaning: The COM+ Component Load Balancing service is reporting the current list of COM+ application servers in the routing list, where %1, %2,… indicate the COM+ application server names. This event can be found on a COM+ routing server.

Event ID: 4102

Source: CLBService

Type: Information

Description:

COM Load Balancing Service has detected server %1 up.

Meaning: The COM+ Component Load Balancing service previously detected server %1 to be down, and has now detected server %1 to be back up. This event can be found on a COM+ routing server.

Effect: Server %1 will be considered for CLB activations.

Event ID: 4103

Source: CLBService

Type: Information

Description:

The server is going online.

Meaning: This server has been placed online for component load balancing. This event can be found on the COM+ application server that went online.

Effect: This server will be considered for CLB activations starting with the next polling interval.

Event ID: 4104

Source: CLBService

Type: Information

Description:

The server is going offline.

Meaning: This server has been placed offline for component load balancing. This event can be found on the COM+ application server that went offline.

Effect: This server will not be considered for CLB activations starting with the next polling interval.

Event ID: 4105

Source: CLBService

Type: Information

Description:

COM Load Balancing Service updated the polling interval with %1.

Meaning: The COM+ Component Load Balancing service is polling the COM+ application servers in the routing list at %n intervals, in milliseconds. This event can be found on a COM+ routing server.

Effect: Every %n milliseconds the COM+ Component Load Balancing service will poll the COM+ application servers in the routing list for performance and down/up information.

Note: The CLB polling interval is set to 800 milliseconds, and is not configurable.

Event ID: 4106

Source: CLBService

Type: Information

Description:

The server list was emptied.

Meaning: All servers in the COM+ routing list have been removed. This event can be found on a COM+ routing server.

Effect: Component load balancing (COM+ routing) will fail until COM+ application servers have been added to the routing list.

Troubleshooting:

  • Add one or more COM+ application servers to the routing list.

  • Restart the COM+ Component Load Balancing service.

  • Reboot the server.

Event ID: 4097

Source: CLBService

Type: Warning

Description:

COM Load Balancing Service has detected server %1 down.

Meaning: COM+ Component Load Balancing service received an error or no response from the AC Load Balancer COM+ application on server %1. This can happen if the server is down, the AC Load Balancer COM+ application is not installed properly, or if server %1 has been taken offline from component load balancing. %n indicates the name of the COM+ application server that is down. This event may be found on a COM+ routing server.

Effect: The server will not be considered for activations starting with the next polling interval.

Troubleshooting:

  • Ensure the server is currently running and able to fulfill DCOM requests.

  • Ensure the AC Load Balancer COM+ application is properly installed and running.

  • Restart the COM+ CLBService on all of the COM+ routing servers.

  • Reboot server %1.

Event ID: 4098

Source: CLBService

Type: Warning

Description:

COM Load Balancing Service has detected that all the servers are down.

Meaning: The COM+ routing server has determined that all COM+ application servers in the routing list are down. This event can be found on a COM+ routing server.

Effect: No servers will be considered for CLB activations. Component load balancing will fail for all CLB enabled components until this problem is resolved.

Troubleshooting:

  • Ensure all servers in the routing list are currently running and able to fulfill DCOM requests.

  • Ensure the AC Load Balancer COM+ application is properly installed and running on all servers in the routing list.

  • Restart the COM+ Component Load Balancing service on all of the COM+ routing servers.

  • Reboot the servers in the routing list.

Event ID: 4097

Source: CLBService

Type: Error

Description:

Failed to initialize COM libraries.

Meaning: A CoInitialize call failed. This event can be found on a COM+ routing server.

Effect: The server's COM services are not available. The system might be out of resources, or the COM CLB installation is corrupt. Component load balancing will fail for all CLB-enabled components until this problem is resolved. This is a serious error and will most likely affect other operating system services.

Troubleshooting:

  • Reboot the server.

  • Reinstall Application Center 2000.

  • Contact 6124272Microsoft Product Support.

Event ID: 4099

Source: CLBService

Type: Error

Description:

Failed to obtain catalog data. %1%0

Meaning: The COM+ Component Load Balancing service received an error when trying to retrieve information from the COM+ catalog. This event can be found on a COM+ routing server.

Effect: The COM+ Component Load Balancing service will stop. COM+ Component Services catalog might be corrupt. Component load balancing will fail for all CLB-enabled components until this problem is resolved.

Troubleshooting:

  • Restart the COM+ Component Load Balancing service.

  • Reboot the server.

  • Follow steps in article 246499, "PRB: Problems w/ Component Services After Upgrading to Win2000"

  • Contact 6124273Microsoft Product Support.

Event ID: 4100

Source: CLBService

Type: Error

Description:

Failed to update CLB Service configuration. %1%0

Meaning: Installation of the COM+ Component Load Balancing service failed. Component load balancing will fail for all CLB enabled components until this problem is resolved. This event can be found on a COM+ routing server.

Effect: COM+ Load Balancing (COM+ routing) will not be available until this problem is resolved.

Troubleshooting:

  • Reinstall Application Center 2000

  • Contact 6124274Microsoft Product Support

Resources