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 via the following commands:

camclose
cam start -c -l

4.  Run the command 'CAMSAVE CONFIG' which will generate a file called 'SAVE.CFG' in that folder.

5.  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

6.  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 #6 above and CHANGE its contents INSTEAD of adding any new entry. Multiple entries for the same machine can lead to unexpected results. 

7.  Save CAM.CFG. 

8.  Perform the same steps on the Domain Manager (DM) or Scalability Server (SS) except put entries like the following:

<FQDN of Agent> protocol=tcp port=4105

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

9.  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 the file CFNOTSRVD.DAT (Default location: ...\CA\dsm\appdata) before executing the CAMCLOSE command to remove the current routing cache.

10.  Once complete, verify whether the CAMPING command works in both directions. 

11.  If CAMPING 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>

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.

When it says "few hundreds," it means agents reporting to a single scalability server.  If the number of agents is roughly more than 1000, TCP is not recommended. With UDP, if the network is slow, the fragment size can be decreased to suit the environment.

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.