Stopping a system agent is putting the second one installed on the same server offline

Document ID : KB000098229
Last Modified Date : 29/05/2018
Show Technical Document Details
Issue:
I have installed two System Agents release 11.3 SP7 on the same Linux server.
When I stop the System Agent which belongs to the host name of the Linux server, the second system agent installed on the same server  is also brought offline

For example:
When I stop System Agent "Agent_2" with "cybAgent -s" , the second System Agent is also put OFFLINE while its cybAgent process is still running.
Here Agent_2 is also the host name of the Linux Server

When I restart it, both machines are put  ONLINE again.

Machines Definition :

insert_machine: Agent_1
type: a
factor: 1.00
port: 11601
node_name: Agent_1
agent_name: Agent_1
/* key_to_agent: *** masked value ***/
encryption_type: AES
heartbeat_attempts: 1
heartbeat_freq: 5
character_code: ASCII

insert_machine: Agent_2
type: a
factor: 1.00
port: 11601
node_name: Agent_2
agent_name: Agent_2
/* key_to_agent: *** masked value ***/
encryption_type: AES
heartbeat_attempts: 1
heartbeat_freq: 5
character_code: ASCII
 
Environment:
CA WAAE 11.3.6 SP6 CUM1 on Linux / Oracle

2 System Agents at release 11.3 SP7 installed on the same Linux server

On the Linux server, there are two network cards
Each agent is defined to bind same port number on a separate network card ( and therefore separate IP addresses )

For example
agentname=Agent_1 
communication.bindaddress=Agent_1 
communication.inputport=11601 


The other agent: 

agentname=Agent_2
communication.bindaddress=Agent_2 
communication.inputport=11601
Cause:
Based on the machine definitions, we see that both agents share the same port numbers: 
However, based on the "autoping"  pair of request/response messages, both agents identify themselves as coming from the same host: (Here Agent_2 is the host name of the Linux Server and also the agent name of one of the System Agents)

[2018/04/23 14:39:14.9041] 61772 46644080 L:64 CybAFMBuilder.cpp 104 BUILD AFM:20180423 14391490-0200 Agent_1 PF4_SCH 1_61772_46644080_1524487154_903652/WAAE_WF0.1/MAIN CONTROL STATUS Port(11612) Address(Agent_2) User(PF4_SCH) 

[2018/04/23 14:39:14.9738] 61772 48749424 L:64 CybAFMParser.cpp 425 PARSE AFM qid:typ:src[55714:000:Agent_1 Agent_2] msg#[6628] rc=0 AFM:20180423 13391495-0100 PF4_SCH Agent_1 1_61772_46644080_1524487154_903652/WAAE_WF0.1/MAIN RESPONSE STATUS Plugin(status) User(Agent_1) Host(Agent_2) 

[2018/04/23 14:39:21.1217] 61772 48749424 L:64 CybAFMBuilder.cpp 104 BUILD AFM:20180423 14392112-0200 Agent_2 PF4_SCH 1_61772_48749424_1524487161_121277/WAAE_WF0.1/MAIN CONTROL STATUS Port(11612) Address(Agent_2) User(PF4_SCH) 

[2018/04/23 14:39:21.1836] 61772 4120902512 L:64 CybAFMParser.cpp 425 PARSE AFM qid:typ:src[46965:000:Agent_2 Agent_2] msg#[67] rc=0 AFM:20180423 13392116-0100 PF4_SCH Agent_2 1_61772_48749424_1524487161_121277/WAAE_WF0.1/MAIN RESPONSE STATUS Plugin(status) User(Agent_2) Host(Agent_2) 

Because both agents identify their Host values as the same host, the scheduler thinks that the Agent_1 node_name machine attribute value corresponds to the same host as the Agent_2 node_name attribute value. Thus, it cannot reconcile the fact that 2 different agent names are coming from the same host and port. The scheduler behavior is undefined. 

We do not support 2 uniquely named agents sharing the same port and presenting themselves as originating from the same host.
Since this is an unsupported configuration, the scheduler behavior is undefined.

Conceptually, it is not possible for you to install 2 distinct agents that listen on the same port on the same machine.
Therefore, the agent name you choose is implicitly tied to the port and encryption key.
In other words, you cannot have the 2 separate agent names for the same port on the same machine. 

 
Resolution:
The solution here is to configure these both System Agents to use different port numbers on the same host name ( even if each System Agent binds a different network card) 

For example:

For example
agentname=Agent_1 
communication.bindaddress=Agent_1 
communication.inputport=11601 


The other agent: 

agentname=Agent_2
communication.bindaddress=Agent_2 
communication.inputport=11602