How can I configure CAM to use TCP instead of UDP?
search cancel

How can I configure CAM to use TCP instead of UDP?

book

Article ID: 25876

calendar_today

Updated On:

Products

CA Client Automation - IT Client Manager CA Client Automation

Issue/Introduction

This document details how Client Automation communication can be improved between the Domain manager and Scalability server and or the Enterprise Server by configuring CAM to use TCP instead of UDP. 

Environment

Client Automation - All Versions

Cause

UDP protocol was implemented to reduce overhead since it is a stateless protocol ,but the downside to this is there aren't any retry attempts if the registration messages do not reach their intended target(s).   

By forcing CAM to only use TCP there is a more robust communication channel.   

As a workaround an administrator can configure cam to utilize port 4105 TCP instead of the default port of 4104 UDP. 

Resolution

To use TCP for CAM between any machine (or Scalability Server [SS]) and the DM (or SS), please do the following:

 1.  Windows 
     Browse to %cai_msq% from Start->Run. 

    Linux 
    Change directory to $CAI_MSQ 

 2.  Check if 'CAM.CFG' exists. 

 3.  If it does not then STOP CAF and Recycle CAM:   camclose & cam start -c -l

    run 'CAMSAVE CONFIG' which will generate a file called 'SAVE.CFG' in that folder. 

 4.  Rename 'SAVE.CFG' to 'CAM.CFG'. Its contents should look like below: 

# CAM config saved: <date & time>
.
*CONFIG fixed_paths = no close_time = 60 client_hold = 60 connect_retry = 60 udp_port = 4104 tcp_port = 4105 spx_port = 4905 cas_port = 3104 dg_log_files = 8 dg_log_size = 64 dg_log = * au_log_files = 8 au_log_size = 256 au_log = * tr_log_files = 8 tr_log_size = 1024 tr_log = * trace = none . *PATHS . *ROUTING . *AUDIT off

5.   Under '*PATHS' add an entry like the following***
     <Fully Qualified Domain Name (FQDN) of the Server>      protocol=tcp     port=4105 
      

***NOTE: If CAM.CFG already exists, look for a pre-existing entry matching the item in #5 (above) and CHANGE its contents INSTEAD of adding any new entry. Multiple entries for the same machine can lead to unexpected results. 

6.   Save CAM.CFG. 

7.  Perform the same steps on the DM (or SS) except put entries like the following**: 
         <FQDN of Agent> protocol=tcp port=4105

**NOTE: While the agents each will only have 1 such entry, the DM (or SS) will have 1 entry for EACH agent (or SS) which communicates with it. An agent only has one direct point of contact however, so only 1 line is required on the agent. 

8.   Once the CAM.CFG files are built, recycle CAM using the following command:  

        camclose  & cam start -c -l


*OPTIONALLY: you can search for and delete 'CFNOTSRVD.DAT' before executing the 'CAMCLOSE' command to remove the current routing cache.

(Default location: ...\CA\dsm\appdata') 

9.  Once complete, verify whether CAMPING works in both directions. 

10.  If CAMPING still fails, execute the following command 2-3 times, until the message 'No such CAM queue' appears: 

          camq -c -d -n <Ip address of the target machine> 

       Do this in both directions.

Additional Information

****ADVISORY: Due to the overhead involved with using TCP over UDP and the native design of CAM, it is highly recommended that no more than a few hundred machines be converted as outlined above. UDP over port 4104 is the preferred mechanism used by CAM and is optimized for this transport. Using TCP for more than a few hundred agents can cause problems with CAM in general.

UDP can be reconfigured to use smaller fragment sizes via the 'fragment_size' parameter under '*CONFIG' in CAM.CFG. This can address many UDP issues that exist when using UDP in many environments. Please explore this as an option, if possible, before pursuing TCP as the CAM communication protocol.

NOTE: 'Fragment_Size' does NOT have any impact, if CAM is configured to use TCP.